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

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

Issue 1730653002: Move squash preventing reasons out of compositing reasons (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Bug and test fixes. Created 4 years, 9 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698