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

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

Issue 1375393002: Output subsequence for children layers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 2 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 DisplayItem_h 5 #ifndef DisplayItem_h
6 #define DisplayItem_h 6 #define DisplayItem_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/graphics/ContiguousContainer.h" 9 #include "platform/graphics/ContiguousContainer.h"
10 #include "platform/graphics/paint/DisplayItemClient.h" 10 #include "platform/graphics/paint/DisplayItemClient.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 EndCompositing, 158 EndCompositing,
159 BeginTransform, 159 BeginTransform,
160 EndTransform, 160 EndTransform,
161 BeginClipPath, 161 BeginClipPath,
162 EndClipPath, 162 EndClipPath,
163 BeginFixedPosition, 163 BeginFixedPosition,
164 EndFixedPosition, 164 EndFixedPosition,
165 BeginFixedPositionContainer, 165 BeginFixedPositionContainer,
166 EndFixedPositionContainer, 166 EndFixedPositionContainer,
167 167
168 BeginSubsequence, 168 SubsequenceFirst,
169 EndSubsequence, 169 SubsequenceNegativeZOrder = SubsequenceFirst,
170 CachedSubsequence, 170 SubsequenceNormalFlowAndPositiveZOrder,
171 SubsequenceLast = SubsequenceNormalFlowAndPositiveZOrder,
172 EndSubsequenceFirst,
173 EndSubsequenceLast = EndSubsequenceFirst + SubsequenceLast - Subsequence First,
174 CachedSubsequenceFirst,
175 CachedSubsequenceLast = CachedSubsequenceFirst + SubsequenceLast - Subse quenceFirst,
171 176
172 UninitializedType, 177 UninitializedType,
173 TypeLast = UninitializedType 178 TypeLast = UninitializedType
174 }; 179 };
175 180
176 static_assert(TableCollapsedBorderBase >= TableCollapsedBorderUnalignedBase, "TableCollapsedBorder types overlap with other types"); 181 static_assert(TableCollapsedBorderBase >= TableCollapsedBorderUnalignedBase, "TableCollapsedBorder types overlap with other types");
177 static_assert((TableCollapsedBorderBase & 0xf) == 0, "The lowest 4 bits of T ableCollapsedBorderBase should be zero"); 182 static_assert((TableCollapsedBorderBase & 0xf) == 0, "The lowest 4 bits of T ableCollapsedBorderBase should be zero");
178 // Bits or'ed onto TableCollapsedBorderBase to generate a real table collaps ed border type. 183 // Bits or'ed onto TableCollapsedBorderBase to generate a real table collaps ed border type.
179 enum TableCollspaedBorderSides { 184 enum TableCollspaedBorderSides {
180 TableCollapsedBorderTop = 1 << 0, 185 TableCollapsedBorderTop = 1 << 0,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 const DisplayItemClient client; 226 const DisplayItemClient client;
222 const Type type; 227 const Type type;
223 const unsigned scope; 228 const unsigned scope;
224 }; 229 };
225 230
226 // Convert cached type to non-cached type (e.g., Type::CachedSVGImage -> Typ e::SVGImage). 231 // Convert cached type to non-cached type (e.g., Type::CachedSVGImage -> Typ e::SVGImage).
227 static Type nonCachedType(Type type) 232 static Type nonCachedType(Type type)
228 { 233 {
229 if (isCachedDrawingType(type)) 234 if (isCachedDrawingType(type))
230 return cachedDrawingTypeToDrawingType(type); 235 return cachedDrawingTypeToDrawingType(type);
231 if (type == CachedSubsequence) 236 if (isCachedSubsequenceType(type))
232 return BeginSubsequence; 237 return cachedSubsequenceTypeToSubsequenceType(type);
233 return type; 238 return type;
234 } 239 }
235 240
236 // Return the Id with cached type converted to non-cached type. 241 // Return the Id with cached type converted to non-cached type.
237 Id nonCachedId() const 242 Id nonCachedId() const
238 { 243 {
239 return Id(m_client, nonCachedType(m_type), m_scope); 244 return Id(m_client, nonCachedType(m_type), m_scope);
240 } 245 }
241 246
242 virtual void replay(GraphicsContext&) { } 247 virtual void replay(GraphicsContext&) { }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 DEFINE_PAINT_PHASE_CONVERSION_METHOD(ClipLayerFragment) 305 DEFINE_PAINT_PHASE_CONVERSION_METHOD(ClipLayerFragment)
301 DEFINE_PAINT_PHASE_CONVERSION_METHOD(ClipBox) 306 DEFINE_PAINT_PHASE_CONVERSION_METHOD(ClipBox)
302 DEFINE_PAINT_PHASE_CONVERSION_METHOD(ClipColumnBounds) 307 DEFINE_PAINT_PHASE_CONVERSION_METHOD(ClipColumnBounds)
303 308
304 DEFINE_PAIRED_CATEGORY_METHODS(FloatClip, floatClip) 309 DEFINE_PAIRED_CATEGORY_METHODS(FloatClip, floatClip)
305 DEFINE_PAINT_PHASE_CONVERSION_METHOD(FloatClip) 310 DEFINE_PAINT_PHASE_CONVERSION_METHOD(FloatClip)
306 311
307 DEFINE_PAIRED_CATEGORY_METHODS(Scroll, scroll) 312 DEFINE_PAIRED_CATEGORY_METHODS(Scroll, scroll)
308 DEFINE_PAINT_PHASE_CONVERSION_METHOD(Scroll) 313 DEFINE_PAINT_PHASE_CONVERSION_METHOD(Scroll)
309 314
310 DEFINE_PAIRED_CATEGORY_METHODS(Transform3D, transform3D); 315 DEFINE_PAIRED_CATEGORY_METHODS(Transform3D, transform3D)
311 316
312 static bool isCachedType(Type type) { return isCachedDrawingType(type) || ty pe == CachedSubsequence; } 317 DEFINE_PAIRED_CATEGORY_METHODS(Subsequence, subsequence)
318 DEFINE_CATEGORY_METHODS(CachedSubsequence)
319 DEFINE_CONVERSION_METHODS(Subsequence, subsequence, CachedSubsequence, cache dSubsequence)
320
321 static bool isCachedType(Type type) { return isCachedDrawingType(type) || is CachedSubsequenceType(type); }
313 bool isCached() const { return isCachedType(m_type); } 322 bool isCached() const { return isCachedType(m_type); }
314 static bool isCacheableType(Type type) { return isDrawingType(type) || type == BeginSubsequence; } 323 static bool isCacheableType(Type type) { return isDrawingType(type) || isSub sequenceType(type); }
315 bool isCacheable() const { return !skippedCache() && isCacheableType(m_type) ; } 324 bool isCacheable() const { return !skippedCache() && isCacheableType(m_type) ; }
316 325
317 virtual bool isBegin() const { return false; } 326 virtual bool isBegin() const { return false; }
318 virtual bool isEnd() const { return false; } 327 virtual bool isEnd() const { return false; }
319 328
320 #if ENABLE(ASSERT) 329 #if ENABLE(ASSERT)
321 virtual bool isEndAndPairedWith(DisplayItem::Type otherType) const { return false; } 330 virtual bool isEndAndPairedWith(DisplayItem::Type otherType) const { return false; }
322 virtual bool equals(const DisplayItem& other) const 331 virtual bool equals(const DisplayItem& other) const
323 { 332 {
324 return m_client == other.m_client 333 return m_client == other.m_client
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 bool isEndAndPairedWith(DisplayItem::Type otherType) const override = 0; 392 bool isEndAndPairedWith(DisplayItem::Type otherType) const override = 0;
384 #endif 393 #endif
385 394
386 private: 395 private:
387 bool isEnd() const final { return true; } 396 bool isEnd() const final { return true; }
388 }; 397 };
389 398
390 } // namespace blink 399 } // namespace blink
391 400
392 #endif // DisplayItem_h 401 #endif // DisplayItem_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698