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

Side by Side Diff: Source/platform/graphics/CompositingReasons.h

Issue 331203003: Improve the compositing reasons when squashing fails (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
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 CompositingReasons_h 5 #ifndef CompositingReasons_h
6 #define CompositingReasons_h 6 #define CompositingReasons_h
7 7
8 #include "wtf/MathExtras.h" 8 #include "wtf/MathExtras.h"
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 18 matching lines...) Expand all
29 const uint64_t CompositingReasonOverflowScrollingParent = UINT64_ C(1) << 12; 29 const uint64_t CompositingReasonOverflowScrollingParent = UINT64_ C(1) << 12;
30 const uint64_t CompositingReasonOutOfFlowClipping = UINT64_ C(1) << 13; 30 const uint64_t CompositingReasonOutOfFlowClipping = UINT64_ C(1) << 13;
31 const uint64_t CompositingReasonVideoOverlay = UINT64_ C(1) << 14; 31 const uint64_t CompositingReasonVideoOverlay = UINT64_ C(1) << 14;
32 const uint64_t CompositingReasonWillChangeCompositingHint = UINT64_ C(1) << 15; 32 const uint64_t CompositingReasonWillChangeCompositingHint = UINT64_ C(1) << 15;
33 // Bit 16 is available. 33 // Bit 16 is available.
34 34
35 // Overlap reasons that require knowing what's behind you in paint-order before knowing the answer 35 // Overlap reasons that require knowing what's behind you in paint-order before knowing the answer
36 const uint64_t CompositingReasonAssumedOverlap = UINT64_ C(1) << 17; 36 const uint64_t CompositingReasonAssumedOverlap = UINT64_ C(1) << 17;
37 const uint64_t CompositingReasonOverlap = UINT64_ C(1) << 18; 37 const uint64_t CompositingReasonOverlap = UINT64_ C(1) << 18;
38 const uint64_t CompositingReasonNegativeZIndexChildren = UINT64_ C(1) << 19; 38 const uint64_t CompositingReasonNegativeZIndexChildren = UINT64_ C(1) << 19;
39 const uint64_t CompositingReasonNoSquashingTargetFound = UINT64_ C(1) << 20; 39 const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT64_ C(1) << 20;
40 const uint64_t CompositingReasonSquashingSparsityExceeded = UINT64_ C(1) << 21;
41 const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT64_ C(1) << 22;
42 const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT64_ C(1) << 23;
43 const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT64_ C(1) << 24;
44 const uint64_t CompositingReasonSquashingFilterAncestorMismatch = UINT64_ C(1) << 25;
45 const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT64_ C(1) << 26;
46 const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT64_ C(1) << 27;
40 47
41 // Subtree reasons that require knowing what the status of your subtree is befor e knowing the answer 48 // Subtree reasons that require knowing what the status of your subtree is befor e knowing the answer
42 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT64_ C(1) << 21; 49 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT64_ C(1) << 28;
43 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT64_ C(1) << 22; 50 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT64_ C(1) << 29;
44 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT64_ C(1) << 23; 51 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT64_ C(1) << 30;
45 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT64_ C(1) << 24; 52 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT64_ C(1) << 31;
46 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT64_ C(1) << 25; 53 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT64_ C(1) << 32;
47 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT64_ C(1) << 26; 54 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT64_ C(1) << 33;
48 const uint64_t CompositingReasonClipsCompositingDescendants = UINT64_ C(1) << 27; 55 const uint64_t CompositingReasonClipsCompositingDescendants = UINT64_ C(1) << 34;
49 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT64_ C(1) << 28; 56 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT64_ C(1) << 35;
50 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT64_ C(1) << 29; 57 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT64_ C(1) << 36;
51 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT64_ C(1) << 30; 58 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT64_ C(1) << 37;
52 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT64_ C(1) << 31; 59 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT64_ C(1) << 38;
53 60
54 // The root layer is a special case that may be forced to be a layer, but also i t needs to be 61 // The root layer is a special case that may be forced to be a layer, but also i t needs to be
55 // a layer if anything else in the subtree is composited. 62 // a layer if anything else in the subtree is composited.
56 const uint64_t CompositingReasonRoot = UINT64_ C(1) << 32; 63 const uint64_t CompositingReasonRoot = UINT64_ C(1) << 39;
57 64
58 // CompositedLayerMapping internal hierarchy reasons 65 // CompositedLayerMapping internal hierarchy reasons
59 const uint64_t CompositingReasonLayerForAncestorClip = UINT64_ C(1) << 33; 66 const uint64_t CompositingReasonLayerForAncestorClip = UINT64_ C(1) << 40;
60 const uint64_t CompositingReasonLayerForDescendantClip = UINT64_ C(1) << 34; 67 const uint64_t CompositingReasonLayerForDescendantClip = UINT64_ C(1) << 41;
61 const uint64_t CompositingReasonLayerForPerspective = UINT64_ C(1) << 35; 68 const uint64_t CompositingReasonLayerForPerspective = UINT64_ C(1) << 42;
62 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT64_ C(1) << 36; 69 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT64_ C(1) << 43;
63 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT64_ C(1) << 37; 70 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT64_ C(1) << 44;
64 const uint64_t CompositingReasonLayerForScrollCorner = UINT64_ C(1) << 38; 71 const uint64_t CompositingReasonLayerForScrollCorner = UINT64_ C(1) << 45;
65 const uint64_t CompositingReasonLayerForScrollingContents = UINT64_ C(1) << 39; 72 const uint64_t CompositingReasonLayerForScrollingContents = UINT64_ C(1) << 46;
66 const uint64_t CompositingReasonLayerForScrollingContainer = UINT64_ C(1) << 40; 73 const uint64_t CompositingReasonLayerForScrollingContainer = UINT64_ C(1) << 47;
67 const uint64_t CompositingReasonLayerForSquashingContents = UINT64_ C(1) << 41; 74 const uint64_t CompositingReasonLayerForSquashingContents = UINT64_ C(1) << 48;
68 const uint64_t CompositingReasonLayerForSquashingContainer = UINT64_ C(1) << 42; 75 const uint64_t CompositingReasonLayerForSquashingContainer = UINT64_ C(1) << 49;
69 const uint64_t CompositingReasonLayerForForeground = UINT64_ C(1) << 43; 76 const uint64_t CompositingReasonLayerForForeground = UINT64_ C(1) << 50;
70 const uint64_t CompositingReasonLayerForBackground = UINT64_ C(1) << 44; 77 const uint64_t CompositingReasonLayerForBackground = UINT64_ C(1) << 51;
71 const uint64_t CompositingReasonLayerForMask = UINT64_ C(1) << 45; 78 const uint64_t CompositingReasonLayerForMask = UINT64_ C(1) << 52;
72 const uint64_t CompositingReasonLayerForClippingMask = UINT64_ C(1) << 46; 79 const uint64_t CompositingReasonLayerForClippingMask = UINT64_ C(1) << 53;
73 80
74 // Various combinations of compositing reasons are defined here also, for more i ntutive and faster bitwise logic. 81 // Various combinations of compositing reasons are defined here also, for more i ntutive and faster bitwise logic.
75 const uint64_t CompositingReasonComboAllDirectReasons = 82 const uint64_t CompositingReasonComboAllDirectReasons =
76 CompositingReason3DTransform 83 CompositingReason3DTransform
77 | CompositingReasonVideo 84 | CompositingReasonVideo
78 | CompositingReasonCanvas 85 | CompositingReasonCanvas
79 | CompositingReasonPlugin 86 | CompositingReasonPlugin
80 | CompositingReasonIFrame 87 | CompositingReasonIFrame
81 | CompositingReasonBackfaceVisibilityHidden 88 | CompositingReasonBackfaceVisibilityHidden
82 | CompositingReasonActiveAnimation 89 | CompositingReasonActiveAnimation
(...skipping 12 matching lines...) Expand all
95 | CompositingReasonActiveAnimation 102 | CompositingReasonActiveAnimation
96 | CompositingReasonTransitionProperty 103 | CompositingReasonTransitionProperty
97 | CompositingReasonFilters 104 | CompositingReasonFilters
98 | CompositingReasonWillChangeCompositingHint; 105 | CompositingReasonWillChangeCompositingHint;
99 106
100 const uint64_t CompositingReasonComboReasonsThatRequireOwnBacking = 107 const uint64_t CompositingReasonComboReasonsThatRequireOwnBacking =
101 CompositingReasonComboAllDirectReasons 108 CompositingReasonComboAllDirectReasons
102 | CompositingReasonOverlap 109 | CompositingReasonOverlap
103 | CompositingReasonAssumedOverlap 110 | CompositingReasonAssumedOverlap
104 | CompositingReasonNegativeZIndexChildren 111 | CompositingReasonNegativeZIndexChildren
105 | CompositingReasonNoSquashingTargetFound 112 | CompositingReasonScrollsWithRespectToSquashingLayer
113 | CompositingReasonSquashingSparsityExceeded
114 | CompositingReasonSquashingClippingContainerMismatch
115 | CompositingReasonSquashingOpacityAncestorMismatch
116 | CompositingReasonSquashingTransformAncestorMismatch
117 | CompositingReasonSquashingFilterAncestorMismatch
118 | CompositingReasonSquashingWouldBreakPaintOrder
119 | CompositingReasonSquashingVideoIsDisallowed
106 | CompositingReasonTransformWithCompositedDescendants 120 | CompositingReasonTransformWithCompositedDescendants
107 | CompositingReasonOpacityWithCompositedDescendants 121 | CompositingReasonOpacityWithCompositedDescendants
108 | CompositingReasonMaskWithCompositedDescendants 122 | CompositingReasonMaskWithCompositedDescendants
109 | CompositingReasonFilterWithCompositedDescendants 123 | CompositingReasonFilterWithCompositedDescendants
110 | CompositingReasonBlendingWithCompositedDescendants 124 | CompositingReasonBlendingWithCompositedDescendants
111 | CompositingReasonIsolateCompositedDescendants 125 | CompositingReasonIsolateCompositedDescendants
112 | CompositingReasonPreserve3DWith3DDescendants; // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect. 126 | CompositingReasonPreserve3DWith3DDescendants; // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect.
113 127
114 const uint64_t CompositingReasonComboSquashableReasons = 128 const uint64_t CompositingReasonComboSquashableReasons =
115 CompositingReasonOverlap 129 CompositingReasonOverlap
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 { 0, 0, 0 }, // Available. 205 { 0, 0, 0 }, // Available.
192 { CompositingReasonAssumedOverlap, 206 { CompositingReasonAssumedOverlap,
193 "assumedOverlap", 207 "assumedOverlap",
194 "Might overlap other composited content" }, 208 "Might overlap other composited content" },
195 { CompositingReasonOverlap, 209 { CompositingReasonOverlap,
196 "overlap", 210 "overlap",
197 "Overlaps other composited content" }, 211 "Overlaps other composited content" },
198 { CompositingReasonNegativeZIndexChildren, 212 { CompositingReasonNegativeZIndexChildren,
199 "negativeZIndexChildren", 213 "negativeZIndexChildren",
200 "Parent with composited negative z-index content" }, 214 "Parent with composited negative z-index content" },
201 { CompositingReasonNoSquashingTargetFound, 215 { CompositingReasonScrollsWithRespectToSquashingLayer,
202 "noSquashingTargetFound", 216 "scrollsWithRespectToSquashingLayer",
203 "Cannot be squashed due to no compatible squashing owner found" }, 217 "Cannot be squashed since this layer scrolls with respect to the squashi ng layer" },
218 { CompositingReasonSquashingSparsityExceeded,
219 "squashingSparsityExceeded",
220 "Cannot be squashed as the squashing layer would become too sparse" },
221 { CompositingReasonSquashingClippingContainerMismatch,
222 "squashingClippingContainerMismatch",
223 "Cannot be squashed because this layer has a different clipping containe r than the squashing layer" },
224 { CompositingReasonSquashingOpacityAncestorMismatch,
225 "squashingOpacityAncestorMismatch",
226 "Cannot be squashed because this layer has a different opacity ancestor than the squashing layer" },
227 { CompositingReasonSquashingTransformAncestorMismatch,
228 "squashingTransformAncestorMismatch",
229 "Cannot be squashed because this layer has a different transform ancesto r than the squashing layer" },
230 { CompositingReasonSquashingFilterAncestorMismatch,
231 "squashingFilterAncestorMismatch",
232 "Cannot be squashed because this layer has a different filter ancestor t han the squashing layer" },
233 { CompositingReasonSquashingWouldBreakPaintOrder,
234 "squashingWouldBreakPaintOrder",
235 "Cannot be squashed without breaking paint order" },
236 { CompositingReasonSquashingVideoIsDisallowed,
237 "squashingVideoIsDisallowed",
238 "Squashing video is not supported" },
204 { CompositingReasonTransformWithCompositedDescendants, 239 { CompositingReasonTransformWithCompositedDescendants,
205 "transformWithCompositedDescendants", 240 "transformWithCompositedDescendants",
206 "Has a transform that needs to be known by compositor because of composi ted descendants" }, 241 "Has a transform that needs to be known by compositor because of composi ted descendants" },
207 { CompositingReasonOpacityWithCompositedDescendants, 242 { CompositingReasonOpacityWithCompositedDescendants,
208 "opacityWithCompositedDescendants", 243 "opacityWithCompositedDescendants",
209 "Has opacity that needs to be applied by compositor because of composite d descendants" }, 244 "Has opacity that needs to be applied by compositor because of composite d descendants" },
210 { CompositingReasonMaskWithCompositedDescendants, 245 { CompositingReasonMaskWithCompositedDescendants,
211 "maskWithCompositedDescendants", 246 "maskWithCompositedDescendants",
212 "Has a mask that needs to be known by compositor because of composited d escendants" }, 247 "Has a mask that needs to be known by compositor because of composited d escendants" },
213 { CompositingReasonReflectionWithCompositedDescendants, 248 { CompositingReasonReflectionWithCompositedDescendants,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 "layerForMask", 312 "layerForMask",
278 "Secondary layer, to contain the mask contents" }, 313 "Secondary layer, to contain the mask contents" },
279 { CompositingReasonLayerForClippingMask, 314 { CompositingReasonLayerForClippingMask,
280 "layerForClippingMask", 315 "layerForClippingMask",
281 "Secondary layer, for clipping mask" } 316 "Secondary layer, for clipping mask" }
282 }; 317 };
283 318
284 } // namespace WebCore 319 } // namespace WebCore
285 320
286 #endif // CompositingReasons_h 321 #endif // CompositingReasons_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698