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 "platform/PlatformExport.h" | 8 #include "platform/PlatformExport.h" |
9 #include "wtf/Allocator.h" | 9 #include "wtf/Allocator.h" |
10 #include "wtf/MathExtras.h" | 10 #include "wtf/MathExtras.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 const uint64_t CompositingReasonOverflowScrollingParent = UINT6
4_C(1) << 10; | 29 const uint64_t CompositingReasonOverflowScrollingParent = UINT6
4_C(1) << 10; |
30 const uint64_t CompositingReasonOutOfFlowClipping = UINT6
4_C(1) << 11; | 30 const uint64_t CompositingReasonOutOfFlowClipping = UINT6
4_C(1) << 11; |
31 const uint64_t CompositingReasonVideoOverlay = UINT6
4_C(1) << 12; | 31 const uint64_t CompositingReasonVideoOverlay = UINT6
4_C(1) << 12; |
32 const uint64_t CompositingReasonWillChangeCompositingHint = UINT6
4_C(1) << 13; | 32 const uint64_t CompositingReasonWillChangeCompositingHint = UINT6
4_C(1) << 13; |
33 const uint64_t CompositingReasonBackdropFilter = UINT6
4_C(1) << 14; | 33 const uint64_t CompositingReasonBackdropFilter = UINT6
4_C(1) << 14; |
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 = UINT6
4_C(1) << 15; | 36 const uint64_t CompositingReasonAssumedOverlap = UINT6
4_C(1) << 15; |
37 const uint64_t CompositingReasonOverlap = UINT6
4_C(1) << 16; | 37 const uint64_t CompositingReasonOverlap = UINT6
4_C(1) << 16; |
38 const uint64_t CompositingReasonNegativeZIndexChildren = UINT6
4_C(1) << 17; | 38 const uint64_t CompositingReasonNegativeZIndexChildren = UINT6
4_C(1) << 17; |
39 const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT6
4_C(1) << 18; | 39 const uint64_t CompositingReasonSquashingDisallowed = UINT6
4_C(1) << 18; |
40 const uint64_t CompositingReasonSquashingSparsityExceeded = UINT6
4_C(1) << 19; | |
41 const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT6
4_C(1) << 20; | |
42 const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT6
4_C(1) << 21; | |
43 const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT6
4_C(1) << 22; | |
44 const uint64_t CompositingReasonSquashingFilterMismatch = UINT6
4_C(1) << 23; | |
45 const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT6
4_C(1) << 24; | |
46 const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT6
4_C(1) << 25; | |
47 const uint64_t CompositingReasonSquashedLayerClipsCompositingDescendants = UINT6
4_C(1) << 26; | |
48 const uint64_t CompositingReasonSquashingLayoutPartIsDisallowed = UINT6
4_C(1) << 27; | |
49 const uint64_t CompositingReasonSquashingReflectionIsDisallowed = UINT6
4_C(1) << 28; | |
50 const uint64_t CompositingReasonSquashingBlendingIsDisallowed = UINT6
4_C(1) << 29; | |
51 const uint64_t CompositingReasonSquashingNearestFixedPositionMismatch = UINT6
4_C(1) << 30; | |
52 const uint64_t CompositingReasonScrollChildWithCompositedDescendants = UINT6
4_C(1) << 31; | |
53 const uint64_t CompositingReasonSquashingLayerIsAnimating = UINT6
4_C(1) << 32; | |
54 | 40 |
55 // Subtree reasons that require knowing what the status of your subtree is befor
e knowing the answer | 41 // Subtree reasons that require knowing what the status of your subtree is befor
e knowing the answer |
56 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT6
4_C(1) << 33; | 42 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT6
4_C(1) << 19; |
57 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6
4_C(1) << 34; | 43 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6
4_C(1) << 20; |
58 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6
4_C(1) << 35; | 44 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6
4_C(1) << 21; |
59 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6
4_C(1) << 36; | 45 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6
4_C(1) << 22; |
60 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6
4_C(1) << 37; | 46 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6
4_C(1) << 23; |
61 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6
4_C(1) << 38; | 47 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6
4_C(1) << 24; |
62 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6
4_C(1) << 39; | 48 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6
4_C(1) << 25; |
63 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6
4_C(1) << 40; | 49 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6
4_C(1) << 26; |
64 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6
4_C(1) << 41; | 50 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6
4_C(1) << 27; |
65 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6
4_C(1) << 42; | 51 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6
4_C(1) << 28; |
66 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6
4_C(1) << 43; | 52 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6
4_C(1) << 29; |
67 const uint64_t CompositingReasonPositionFixedWithCompositedDescendants = UINT6
4_C(1) << 44; | 53 const uint64_t CompositingReasonPositionFixedWithCompositedDescendants = UINT6
4_C(1) << 30; |
68 | 54 |
69 // The root layer is a special case that may be forced to be a layer, but also i
t needs to be | 55 // The root layer is a special case that may be forced to be a layer, but also i
t needs to be |
70 // a layer if anything else in the subtree is composited. | 56 // a layer if anything else in the subtree is composited. |
71 const uint64_t CompositingReasonRoot = UINT6
4_C(1) << 45; | 57 const uint64_t CompositingReasonRoot = UINT6
4_C(1) << 31; |
72 | 58 |
73 // CompositedLayerMapping internal hierarchy reasons | 59 // CompositedLayerMapping internal hierarchy reasons |
74 const uint64_t CompositingReasonLayerForAncestorClip = UINT6
4_C(1) << 46; | 60 const uint64_t CompositingReasonLayerForAncestorClip = UINT6
4_C(1) << 32; |
75 const uint64_t CompositingReasonLayerForDescendantClip = UINT6
4_C(1) << 47; | 61 const uint64_t CompositingReasonLayerForDescendantClip = UINT6
4_C(1) << 33; |
76 const uint64_t CompositingReasonLayerForPerspective = UINT6
4_C(1) << 48; | 62 const uint64_t CompositingReasonLayerForPerspective = UINT6
4_C(1) << 34; |
77 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT6
4_C(1) << 49; | 63 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT6
4_C(1) << 35; |
78 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT6
4_C(1) << 50; | 64 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT6
4_C(1) << 36; |
79 const uint64_t CompositingReasonLayerForOverflowControlsHost = UINT6
4_C(1) << 51; | 65 const uint64_t CompositingReasonLayerForOverflowControlsHost = UINT6
4_C(1) << 37; |
80 const uint64_t CompositingReasonLayerForScrollCorner = UINT6
4_C(1) << 52; | 66 const uint64_t CompositingReasonLayerForScrollCorner = UINT6
4_C(1) << 38; |
81 const uint64_t CompositingReasonLayerForScrollingContents = UINT6
4_C(1) << 53; | 67 const uint64_t CompositingReasonLayerForScrollingContents = UINT6
4_C(1) << 39; |
82 const uint64_t CompositingReasonLayerForScrollingContainer = UINT6
4_C(1) << 54; | 68 const uint64_t CompositingReasonLayerForScrollingContainer = UINT6
4_C(1) << 40; |
83 const uint64_t CompositingReasonLayerForSquashingContents = UINT6
4_C(1) << 55; | 69 const uint64_t CompositingReasonLayerForSquashingContents = UINT6
4_C(1) << 41; |
84 const uint64_t CompositingReasonLayerForSquashingContainer = UINT6
4_C(1) << 56; | 70 const uint64_t CompositingReasonLayerForSquashingContainer = UINT6
4_C(1) << 42; |
85 const uint64_t CompositingReasonLayerForForeground = UINT6
4_C(1) << 57; | 71 const uint64_t CompositingReasonLayerForForeground = UINT6
4_C(1) << 43; |
86 const uint64_t CompositingReasonLayerForBackground = UINT6
4_C(1) << 58; | 72 const uint64_t CompositingReasonLayerForBackground = UINT6
4_C(1) << 44; |
87 const uint64_t CompositingReasonLayerForMask = UINT6
4_C(1) << 59; | 73 const uint64_t CompositingReasonLayerForMask = UINT6
4_C(1) << 45; |
88 const uint64_t CompositingReasonLayerForClippingMask = UINT6
4_C(1) << 60; | 74 const uint64_t CompositingReasonLayerForClippingMask = UINT6
4_C(1) << 46; |
89 const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT6
4_C(1) << 61; | 75 const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT6
4_C(1) << 47; |
90 | 76 |
91 // Composited elements with inline transforms trigger assumed overlap so that | 77 // Composited elements with inline transforms trigger assumed overlap so that |
92 // we can update their transforms quickly. | 78 // we can update their transforms quickly. |
93 const uint64_t CompositingReasonInlineTransform = UINT6
4_C(1) << 62; | 79 const uint64_t CompositingReasonInlineTransform = UINT6
4_C(1) << 48; |
94 | 80 |
95 const uint64_t CompositingReasonCompositorProxy = UINT6
4_C(1) << 63; | 81 const uint64_t CompositingReasonCompositorProxy = UINT6
4_C(1) << 49; |
96 | 82 |
97 // Various combinations of compositing reasons are defined here also, for more i
ntutive and faster bitwise logic. | 83 // Various combinations of compositing reasons are defined here also, for more i
ntutive and faster bitwise logic. |
98 const uint64_t CompositingReasonComboAllDirectReasons = | 84 const uint64_t CompositingReasonComboAllDirectReasons = |
99 CompositingReason3DTransform | 85 CompositingReason3DTransform |
100 | CompositingReasonVideo | 86 | CompositingReasonVideo |
101 | CompositingReasonCanvas | 87 | CompositingReasonCanvas |
102 | CompositingReasonPlugin | 88 | CompositingReasonPlugin |
103 | CompositingReasonIFrame | 89 | CompositingReasonIFrame |
104 | CompositingReasonBackfaceVisibilityHidden | 90 | CompositingReasonBackfaceVisibilityHidden |
105 | CompositingReasonActiveAnimation | 91 | CompositingReasonActiveAnimation |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 CompositingReasonComboAllDirectStyleDeterminedReasons | 127 CompositingReasonComboAllDirectStyleDeterminedReasons |
142 | CompositingReasonComboCompositedDescendants | 128 | CompositingReasonComboCompositedDescendants |
143 | CompositingReasonCombo3DDescendants | 129 | CompositingReasonCombo3DDescendants |
144 | CompositingReasonInlineTransform; | 130 | CompositingReasonInlineTransform; |
145 | 131 |
146 const uint64_t CompositingReasonComboReasonsThatRequireOwnBacking = | 132 const uint64_t CompositingReasonComboReasonsThatRequireOwnBacking = |
147 CompositingReasonComboAllDirectReasons | 133 CompositingReasonComboAllDirectReasons |
148 | CompositingReasonOverlap | 134 | CompositingReasonOverlap |
149 | CompositingReasonAssumedOverlap | 135 | CompositingReasonAssumedOverlap |
150 | CompositingReasonNegativeZIndexChildren | 136 | CompositingReasonNegativeZIndexChildren |
151 | CompositingReasonScrollsWithRespectToSquashingLayer | 137 | CompositingReasonSquashingDisallowed |
152 | CompositingReasonSquashingSparsityExceeded | |
153 | CompositingReasonSquashingClippingContainerMismatch | |
154 | CompositingReasonSquashingOpacityAncestorMismatch | |
155 | CompositingReasonSquashingTransformAncestorMismatch | |
156 | CompositingReasonSquashingFilterMismatch | |
157 | CompositingReasonSquashingWouldBreakPaintOrder | |
158 | CompositingReasonSquashingVideoIsDisallowed | |
159 | CompositingReasonSquashedLayerClipsCompositingDescendants | |
160 | CompositingReasonSquashingLayoutPartIsDisallowed | |
161 | CompositingReasonSquashingReflectionIsDisallowed | |
162 | CompositingReasonSquashingBlendingIsDisallowed | |
163 | CompositingReasonTransformWithCompositedDescendants | 138 | CompositingReasonTransformWithCompositedDescendants |
164 | CompositingReasonOpacityWithCompositedDescendants | 139 | CompositingReasonOpacityWithCompositedDescendants |
165 | CompositingReasonMaskWithCompositedDescendants | 140 | CompositingReasonMaskWithCompositedDescendants |
166 | CompositingReasonFilterWithCompositedDescendants | 141 | CompositingReasonFilterWithCompositedDescendants |
167 | CompositingReasonBlendingWithCompositedDescendants | 142 | CompositingReasonBlendingWithCompositedDescendants |
168 | CompositingReasonIsolateCompositedDescendants | 143 | CompositingReasonIsolateCompositedDescendants |
169 | CompositingReasonPreserve3DWith3DDescendants // preserve-3d has to create
backing store to ensure that 3d-transformed elements intersect. | 144 | CompositingReasonPreserve3DWith3DDescendants // preserve-3d has to create
backing store to ensure that 3d-transformed elements intersect. |
170 | CompositingReasonSquashingNearestFixedPositionMismatch | |
171 | CompositingReasonScrollChildWithCompositedDescendants | |
172 | CompositingReasonBackdropFilter | 145 | CompositingReasonBackdropFilter |
173 | CompositingReasonPositionFixedWithCompositedDescendants | 146 | CompositingReasonPositionFixedWithCompositedDescendants; |
174 | CompositingReasonSquashingLayerIsAnimating; | |
175 | 147 |
176 const uint64_t CompositingReasonComboSquashableReasons = | 148 const uint64_t CompositingReasonComboSquashableReasons = |
177 CompositingReasonOverlap | 149 CompositingReasonOverlap |
178 | CompositingReasonAssumedOverlap | 150 | CompositingReasonAssumedOverlap |
179 | CompositingReasonOverflowScrollingParent; | 151 | CompositingReasonOverflowScrollingParent; |
180 | 152 |
181 typedef uint64_t CompositingReasons; | 153 typedef uint64_t CompositingReasons; |
182 | 154 |
183 // Any reasons other than overlap or assumed overlap will require the layer to b
e separately compositing. | 155 // Any reasons other than overlap or assumed overlap will require the layer to b
e separately compositing. |
184 inline bool requiresCompositing(CompositingReasons reasons) | 156 inline bool requiresCompositing(CompositingReasons reasons) |
(...skipping 13 matching lines...) Expand all Loading... |
198 const char* shortName; | 170 const char* shortName; |
199 const char* description; | 171 const char* description; |
200 }; | 172 }; |
201 | 173 |
202 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString
Map[]; | 174 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString
Map[]; |
203 PLATFORM_EXPORT extern const size_t kNumberOfCompositingReasons; | 175 PLATFORM_EXPORT extern const size_t kNumberOfCompositingReasons; |
204 | 176 |
205 } // namespace blink | 177 } // namespace blink |
206 | 178 |
207 #endif // CompositingReasons_h | 179 #endif // CompositingReasons_h |
OLD | NEW |