OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |