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

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

Issue 1552693002: Add paint testing mode subsequence_caching_disabled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@RemoveSyncPaint
Patch Set: Created 4 years, 11 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 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 PaintController_h 5 #ifndef PaintController_h
6 #define PaintController_h 6 #define PaintController_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/IntRect.h" 10 #include "platform/geometry/IntRect.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 const PaintArtifact& paintArtifact() const; 123 const PaintArtifact& paintArtifact() const;
124 const DisplayItemList& displayItemList() const { return paintArtifact().disp layItemList(); } 124 const DisplayItemList& displayItemList() const { return paintArtifact().disp layItemList(); }
125 const Vector<PaintChunk>& paintChunks() const { return paintArtifact().paint Chunks(); } 125 const Vector<PaintChunk>& paintChunks() const { return paintArtifact().paint Chunks(); }
126 126
127 bool clientCacheIsValid(const DisplayItemClient&) const; 127 bool clientCacheIsValid(const DisplayItemClient&) const;
128 bool cacheIsEmpty() const { return m_currentPaintArtifact.isEmpty(); } 128 bool cacheIsEmpty() const { return m_currentPaintArtifact.isEmpty(); }
129 129
130 bool displayItemConstructionIsDisabled() const { return m_constructionDisabl ed; } 130 bool displayItemConstructionIsDisabled() const { return m_constructionDisabl ed; }
131 void setDisplayItemConstructionIsDisabled(const bool disable) { m_constructi onDisabled = disable; } 131 void setDisplayItemConstructionIsDisabled(const bool disable) { m_constructi onDisabled = disable; }
132 132
133 bool subsequenceCachingIsDisabled() const { return m_subsequenceCachingDisab led; }
chrishtr 2016/01/04 17:32:08 Add a comment that these are used only benchmarkin
Xianzhu 2016/01/04 17:39:55 Done.
134 void setSubsequenceCachingIsDisabled(bool disable) { m_subsequenceCachingDis abled = disable; }
135
133 bool textPainted() const { return m_textPainted; } 136 bool textPainted() const { return m_textPainted; }
134 void setTextPainted() { m_textPainted = true; } 137 void setTextPainted() { m_textPainted = true; }
135 bool imagePainted() const { return m_imagePainted; } 138 bool imagePainted() const { return m_imagePainted; }
136 void setImagePainted() { m_imagePainted = true; } 139 void setImagePainted() { m_imagePainted = true; }
137 140
138 // Returns displayItemList added using createAndAppend() since beginning or 141 // Returns displayItemList added using createAndAppend() since beginning or
139 // the last commitNewDisplayItems(). Use with care. 142 // the last commitNewDisplayItems(). Use with care.
140 DisplayItemList& newDisplayItemList() { return m_newDisplayItemList; } 143 DisplayItemList& newDisplayItemList() { return m_newDisplayItemList; }
141 144
142 #ifndef NDEBUG 145 #ifndef NDEBUG
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 177
175 #if ENABLE(ASSERT) 178 #if ENABLE(ASSERT)
176 void assertDisplayItemClientsAreLive(); 179 void assertDisplayItemClientsAreLive();
177 #endif 180 #endif
178 181
179 protected: 182 protected:
180 PaintController() 183 PaintController()
181 : m_newDisplayItemList(kInitialDisplayItemListCapacityBytes) 184 : m_newDisplayItemList(kInitialDisplayItemListCapacityBytes)
182 , m_validlyCachedClientsDirty(false) 185 , m_validlyCachedClientsDirty(false)
183 , m_constructionDisabled(false) 186 , m_constructionDisabled(false)
187 , m_subsequenceCachingDisabled(false)
184 , m_textPainted(false) 188 , m_textPainted(false)
185 , m_imagePainted(false) 189 , m_imagePainted(false)
186 , m_skippingCacheCount(0) 190 , m_skippingCacheCount(0)
187 , m_numCachedNewItems(0) 191 , m_numCachedNewItems(0)
188 , m_nextScope(1) { } 192 , m_nextScope(1) { }
189 193
190 private: 194 private:
191 // Set new item state (scopes, cache skipping, etc) for a new item. 195 // Set new item state (scopes, cache skipping, etc) for a new item.
192 void processNewItem(DisplayItem&); 196 void processNewItem(DisplayItem&);
193 197
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 #if ENABLE(ASSERT) 248 #if ENABLE(ASSERT)
245 // Set of clients which had paint offset changes since the last commit. This is used for 249 // Set of clients which had paint offset changes since the last commit. This is used for
246 // ensuring paint offsets are only updated once and are the same in all phas es. 250 // ensuring paint offsets are only updated once and are the same in all phas es.
247 HashSet<const DisplayItemClient*> m_clientsWithPaintOffsetInvalidations; 251 HashSet<const DisplayItemClient*> m_clientsWithPaintOffsetInvalidations;
248 #endif 252 #endif
249 253
250 // Allow display item construction to be disabled to isolate the costs of co nstruction 254 // Allow display item construction to be disabled to isolate the costs of co nstruction
251 // in performance metrics. 255 // in performance metrics.
252 bool m_constructionDisabled; 256 bool m_constructionDisabled;
253 257
258 // Allow subsequence caching to be disabled to test the cost of display item caching.
259 bool m_subsequenceCachingDisabled;
260
254 // Indicates this PaintController has ever had text. It is never reset to fa lse. 261 // Indicates this PaintController has ever had text. It is never reset to fa lse.
255 bool m_textPainted; 262 bool m_textPainted;
256 bool m_imagePainted; 263 bool m_imagePainted;
257 264
258 int m_skippingCacheCount; 265 int m_skippingCacheCount;
259 266
260 int m_numCachedNewItems; 267 int m_numCachedNewItems;
261 268
262 unsigned m_nextScope; 269 unsigned m_nextScope;
263 Vector<unsigned> m_scopeStack; 270 Vector<unsigned> m_scopeStack;
264 271
265 #if ENABLE(ASSERT) 272 #if ENABLE(ASSERT)
266 // Record the debug names of invalidated clients for assertion and debugging . 273 // Record the debug names of invalidated clients for assertion and debugging .
267 Vector<String> m_invalidations; 274 Vector<String> m_invalidations;
268 275
269 // This is used to check duplicated ids during add(). We could also check 276 // This is used to check duplicated ids during add(). We could also check
270 // during commitNewDisplayItems(), but checking during add() helps developer 277 // during commitNewDisplayItems(), but checking during add() helps developer
271 // easily find where the duplicated ids are from. 278 // easily find where the duplicated ids are from.
272 DisplayItemIndicesByClientMap m_newDisplayItemIndicesByClient; 279 DisplayItemIndicesByClientMap m_newDisplayItemIndicesByClient;
273 #endif 280 #endif
274 281
275 OwnPtr<Vector<String>> m_trackedPaintInvalidationObjects; 282 OwnPtr<Vector<String>> m_trackedPaintInvalidationObjects;
276 }; 283 };
277 284
278 } // namespace blink 285 } // namespace blink
279 286
280 #endif // PaintController_h 287 #endif // PaintController_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698