Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/DisplayItemList.h

Issue 2230513005: Move visual rect unioning between paired items to cc::DisplayItemList. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code review feedback. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef DisplayItemList_h 5 #ifndef DisplayItemList_h
6 #define DisplayItemList_h 6 #define DisplayItemList_h
7 7
8 #include "platform/graphics/ContiguousContainer.h" 8 #include "platform/graphics/ContiguousContainer.h"
9 #include "platform/graphics/paint/DisplayItem.h" 9 #include "platform/graphics/paint/DisplayItem.h"
10 #include "platform/graphics/paint/Transform3DDisplayItem.h" 10 #include "platform/graphics/paint/Transform3DDisplayItem.h"
(...skipping 14 matching lines...) Expand all
25 static const size_t kMaximumDisplayItemSize = sizeof(BeginTransform3DDisplayItem ); 25 static const size_t kMaximumDisplayItemSize = sizeof(BeginTransform3DDisplayItem );
26 26
27 // A container for a list of display items. 27 // A container for a list of display items.
28 class PLATFORM_EXPORT DisplayItemList : public ContiguousContainer<DisplayItem, kDisplayItemAlignment> { 28 class PLATFORM_EXPORT DisplayItemList : public ContiguousContainer<DisplayItem, kDisplayItemAlignment> {
29 public: 29 public:
30 DisplayItemList(size_t initialSizeBytes) 30 DisplayItemList(size_t initialSizeBytes)
31 : ContiguousContainer(kMaximumDisplayItemSize, initialSizeBytes) {} 31 : ContiguousContainer(kMaximumDisplayItemSize, initialSizeBytes) {}
32 DisplayItemList(DisplayItemList&& source) 32 DisplayItemList(DisplayItemList&& source)
33 : ContiguousContainer(std::move(source)) 33 : ContiguousContainer(std::move(source))
34 , m_visualRects(std::move(source.m_visualRects)) 34 , m_visualRects(std::move(source.m_visualRects))
35 , m_beginItemIndices(std::move(source.m_beginItemIndices))
36 {} 35 {}
37 36
38 DisplayItemList& operator=(DisplayItemList&& source) 37 DisplayItemList& operator=(DisplayItemList&& source)
39 { 38 {
40 ContiguousContainer::operator=(std::move(source)); 39 ContiguousContainer::operator=(std::move(source));
41 m_visualRects = std::move(source.m_visualRects); 40 m_visualRects = std::move(source.m_visualRects);
42 m_beginItemIndices = std::move(source.m_beginItemIndices);
43 return *this; 41 return *this;
44 } 42 }
45 43
46 DisplayItem& appendByMoving(DisplayItem&); 44 DisplayItem& appendByMoving(DisplayItem&);
47 45
48 bool hasVisualRect(size_t index) const { return index < m_visualRects.size() ; } 46 bool hasVisualRect(size_t index) const { return index < m_visualRects.size() ; }
49 IntRect visualRect(size_t index) const 47 IntRect visualRect(size_t index) const
50 { 48 {
51 DCHECK(hasVisualRect(index)); 49 DCHECK(hasVisualRect(index));
52 return m_visualRects[index]; 50 return m_visualRects[index];
(...skipping 10 matching lines...) Expand all
63 Iterator begin() const { return m_begin; } 61 Iterator begin() const { return m_begin; }
64 Iterator end() const { return m_end; } 62 Iterator end() const { return m_end; }
65 private: 63 private:
66 Iterator m_begin; 64 Iterator m_begin;
67 Iterator m_end; 65 Iterator m_end;
68 }; 66 };
69 Range<iterator> itemsInPaintChunk(const PaintChunk&); 67 Range<iterator> itemsInPaintChunk(const PaintChunk&);
70 Range<const_iterator> itemsInPaintChunk(const PaintChunk&) const; 68 Range<const_iterator> itemsInPaintChunk(const PaintChunk&) const;
71 69
72 private: 70 private:
73 // If we're currently within a paired display item block, unions the
74 // given visual rect with the begin display item's visual rect.
75 void growCurrentBeginItemVisualRect(const IntRect& visualRect);
76
77 Vector<IntRect> m_visualRects; 71 Vector<IntRect> m_visualRects;
78 Vector<size_t> m_beginItemIndices;
79 }; 72 };
80 73
81 } // namespace blink 74 } // namespace blink
82 75
83 #endif // DisplayItemList_h 76 #endif // DisplayItemList_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698