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

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

Issue 1330453002: Cleanup DisplayItemList::processNewItem to take a reference (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « no previous file | Source/platform/graphics/paint/DisplayItemList.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/RuntimeEnabledFeatures.h" 9 #include "platform/RuntimeEnabledFeatures.h"
10 #include "platform/geometry/LayoutPoint.h" 10 #include "platform/geometry/LayoutPoint.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 // These methods are called during painting. 63 // These methods are called during painting.
64 template <typename DisplayItemClass, typename... Args> 64 template <typename DisplayItemClass, typename... Args>
65 DisplayItemClass& createAndAppend(Args&&... args) 65 DisplayItemClass& createAndAppend(Args&&... args)
66 { 66 {
67 static_assert(WTF::IsSubclass<DisplayItemClass, DisplayItem>::value, 67 static_assert(WTF::IsSubclass<DisplayItemClass, DisplayItem>::value,
68 "Can only createAndAppend subclasses of DisplayItem."); 68 "Can only createAndAppend subclasses of DisplayItem.");
69 static_assert(sizeof(DisplayItemClass) <= kMaximumDisplayItemSize, 69 static_assert(sizeof(DisplayItemClass) <= kMaximumDisplayItemSize,
70 "DisplayItem subclass is larger than kMaximumDisplayItemSize."); 70 "DisplayItem subclass is larger than kMaximumDisplayItemSize.");
71 71
72 DisplayItemClass& displayItem = m_newDisplayItems.allocateAndConstruct<D isplayItemClass>(WTF::forward<Args>(args)...); 72 DisplayItemClass& displayItem = m_newDisplayItems.allocateAndConstruct<D isplayItemClass>(WTF::forward<Args>(args)...);
73 processNewItem(&displayItem); 73 processNewItem(displayItem);
74 return displayItem; 74 return displayItem;
75 } 75 }
76 76
77 // Scopes must be used to avoid duplicated display item ids when we paint so me object 77 // Scopes must be used to avoid duplicated display item ids when we paint so me object
78 // multiple times and generate multiple display items with the same type. 78 // multiple times and generate multiple display items with the same type.
79 // We don't cache display items added in scopes. 79 // We don't cache display items added in scopes.
80 void beginScope(); 80 void beginScope();
81 void endScope(); 81 void endScope();
82 82
83 // True if the last display item is a begin that doesn't draw content. 83 // True if the last display item is a begin that doesn't draw content.
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 , m_nextScope(1) { } 150 , m_nextScope(1) { }
151 151
152 private: 152 private:
153 friend class DisplayItemListTest; 153 friend class DisplayItemListTest;
154 friend class DisplayItemListPaintTest; 154 friend class DisplayItemListPaintTest;
155 friend class DisplayItemListPaintTestForSlimmingPaintV2; 155 friend class DisplayItemListPaintTestForSlimmingPaintV2;
156 friend class LayoutObjectDrawingRecorderTest; 156 friend class LayoutObjectDrawingRecorderTest;
157 friend class LayoutObjectDrawingRecorderTestForSlimmingPaintV2; 157 friend class LayoutObjectDrawingRecorderTestForSlimmingPaintV2;
158 158
159 // Set new item state (scopes, cache skipping, etc) for a new item. 159 // Set new item state (scopes, cache skipping, etc) for a new item.
160 // TODO(pdr): This only passes a pointer to make the patch easier to review. Change to a reference. 160 void processNewItem(DisplayItem&);
161 void processNewItem(DisplayItem*);
162 161
163 void updateValidlyCachedClientsIfNeeded() const; 162 void updateValidlyCachedClientsIfNeeded() const;
164 163
165 // Update the recorded paint offsets to remove any items that no longer have 164 // Update the recorded paint offsets to remove any items that no longer have
166 // corresponding cached display items. 165 // corresponding cached display items.
167 // TODO(pdr): Remove this once the paint offset cache is on LayoutObject. 166 // TODO(pdr): Remove this once the paint offset cache is on LayoutObject.
168 void removeUnneededPaintOffsetEntries(); 167 void removeUnneededPaintOffsetEntries();
169 168
170 #ifndef NDEBUG 169 #ifndef NDEBUG
171 WTF::String displayItemsAsDebugString(const DisplayItems&) const; 170 WTF::String displayItemsAsDebugString(const DisplayItems&) const;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 // the duplicated ids are from. 231 // the duplicated ids are from.
233 DisplayItemIndicesByClientMap m_newDisplayItemIndicesByClient; 232 DisplayItemIndicesByClientMap m_newDisplayItemIndicesByClient;
234 #endif 233 #endif
235 234
236 OwnPtr<Vector<String>> m_trackedPaintInvalidationObjects; 235 OwnPtr<Vector<String>> m_trackedPaintInvalidationObjects;
237 }; 236 };
238 237
239 } // namespace blink 238 } // namespace blink
240 239
241 #endif // DisplayItemList_h 240 #endif // DisplayItemList_h
OLDNEW
« no previous file with comments | « no previous file | Source/platform/graphics/paint/DisplayItemList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698