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

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

Issue 2754983002: Composite sticky-positioned elements when they have composited descendants (Closed)
Patch Set: Address chrishtr comment Created 3 years, 7 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 <stdint.h> 8 #include <stdint.h>
9 #include "platform/PlatformExport.h" 9 #include "platform/PlatformExport.h"
10 #include "platform/wtf/Allocator.h" 10 #include "platform/wtf/Allocator.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 const uint64_t kCompositingReasonClipsCompositingDescendants = UINT64_C(1) 56 const uint64_t kCompositingReasonClipsCompositingDescendants = UINT64_C(1)
57 << 25; 57 << 25;
58 const uint64_t kCompositingReasonPerspectiveWith3DDescendants = UINT64_C(1) 58 const uint64_t kCompositingReasonPerspectiveWith3DDescendants = UINT64_C(1)
59 << 26; 59 << 26;
60 const uint64_t kCompositingReasonPreserve3DWith3DDescendants = UINT64_C(1) 60 const uint64_t kCompositingReasonPreserve3DWith3DDescendants = UINT64_C(1)
61 << 27; 61 << 27;
62 const uint64_t kCompositingReasonReflectionOfCompositedParent = UINT64_C(1) 62 const uint64_t kCompositingReasonReflectionOfCompositedParent = UINT64_C(1)
63 << 28; 63 << 28;
64 const uint64_t kCompositingReasonIsolateCompositedDescendants = UINT64_C(1) 64 const uint64_t kCompositingReasonIsolateCompositedDescendants = UINT64_C(1)
65 << 29; 65 << 29;
66 const uint64_t kCompositingReasonPositionFixedWithCompositedDescendants = 66 const uint64_t
67 UINT64_C(1) << 30; 67 kCompositingReasonPositionFixedOrStickyWithCompositedDescendants =
68 UINT64_C(1) << 30;
68 69
69 // The root layer is a special case. It may be forced to be a layer, but it also 70 // The root layer is a special case. It may be forced to be a layer, but it also
70 // needs to be a layer if anything else in the subtree is composited. 71 // needs to be a layer if anything else in the subtree is composited.
71 const uint64_t kCompositingReasonRoot = UINT64_C(1) << 31; 72 const uint64_t kCompositingReasonRoot = UINT64_C(1) << 31;
72 73
73 // CompositedLayerMapping internal hierarchy reasons 74 // CompositedLayerMapping internal hierarchy reasons
74 const uint64_t kCompositingReasonLayerForAncestorClip = UINT64_C(1) << 32; 75 const uint64_t kCompositingReasonLayerForAncestorClip = UINT64_C(1) << 32;
75 const uint64_t kCompositingReasonLayerForDescendantClip = UINT64_C(1) << 33; 76 const uint64_t kCompositingReasonLayerForDescendantClip = UINT64_C(1) << 33;
76 const uint64_t kCompositingReasonLayerForPerspective = UINT64_C(1) << 34; 77 const uint64_t kCompositingReasonLayerForPerspective = UINT64_C(1) << 34;
77 const uint64_t kCompositingReasonLayerForHorizontalScrollbar = UINT64_C(1) 78 const uint64_t kCompositingReasonLayerForHorizontalScrollbar = UINT64_C(1)
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 124
124 const uint64_t kCompositingReasonComboCompositedDescendants = 125 const uint64_t kCompositingReasonComboCompositedDescendants =
125 kCompositingReasonTransformWithCompositedDescendants | 126 kCompositingReasonTransformWithCompositedDescendants |
126 kCompositingReasonIsolateCompositedDescendants | 127 kCompositingReasonIsolateCompositedDescendants |
127 kCompositingReasonOpacityWithCompositedDescendants | 128 kCompositingReasonOpacityWithCompositedDescendants |
128 kCompositingReasonMaskWithCompositedDescendants | 129 kCompositingReasonMaskWithCompositedDescendants |
129 kCompositingReasonFilterWithCompositedDescendants | 130 kCompositingReasonFilterWithCompositedDescendants |
130 kCompositingReasonBlendingWithCompositedDescendants | 131 kCompositingReasonBlendingWithCompositedDescendants |
131 kCompositingReasonReflectionWithCompositedDescendants | 132 kCompositingReasonReflectionWithCompositedDescendants |
132 kCompositingReasonClipsCompositingDescendants | 133 kCompositingReasonClipsCompositingDescendants |
133 kCompositingReasonPositionFixedWithCompositedDescendants; 134 kCompositingReasonPositionFixedOrStickyWithCompositedDescendants;
134 135
135 const uint64_t kCompositingReasonCombo3DDescendants = 136 const uint64_t kCompositingReasonCombo3DDescendants =
136 kCompositingReasonPreserve3DWith3DDescendants | 137 kCompositingReasonPreserve3DWith3DDescendants |
137 kCompositingReasonPerspectiveWith3DDescendants; 138 kCompositingReasonPerspectiveWith3DDescendants;
138 139
139 const uint64_t kCompositingReasonComboAllStyleDeterminedReasons = 140 const uint64_t kCompositingReasonComboAllStyleDeterminedReasons =
140 kCompositingReasonComboAllDirectStyleDeterminedReasons | 141 kCompositingReasonComboAllDirectStyleDeterminedReasons |
141 kCompositingReasonComboCompositedDescendants | 142 kCompositingReasonComboCompositedDescendants |
142 kCompositingReasonCombo3DDescendants | kCompositingReasonInlineTransform; 143 kCompositingReasonCombo3DDescendants | kCompositingReasonInlineTransform;
143 144
144 const uint64_t kCompositingReasonComboReasonsThatRequireOwnBacking = 145 const uint64_t kCompositingReasonComboReasonsThatRequireOwnBacking =
145 kCompositingReasonComboAllDirectReasons | kCompositingReasonOverlap | 146 kCompositingReasonComboAllDirectReasons | kCompositingReasonOverlap |
146 kCompositingReasonAssumedOverlap | 147 kCompositingReasonAssumedOverlap |
147 kCompositingReasonNegativeZIndexChildren | 148 kCompositingReasonNegativeZIndexChildren |
148 kCompositingReasonSquashingDisallowed | 149 kCompositingReasonSquashingDisallowed |
149 kCompositingReasonTransformWithCompositedDescendants | 150 kCompositingReasonTransformWithCompositedDescendants |
150 kCompositingReasonOpacityWithCompositedDescendants | 151 kCompositingReasonOpacityWithCompositedDescendants |
151 kCompositingReasonMaskWithCompositedDescendants | 152 kCompositingReasonMaskWithCompositedDescendants |
152 kCompositingReasonFilterWithCompositedDescendants | 153 kCompositingReasonFilterWithCompositedDescendants |
153 kCompositingReasonBlendingWithCompositedDescendants | 154 kCompositingReasonBlendingWithCompositedDescendants |
154 kCompositingReasonIsolateCompositedDescendants | 155 kCompositingReasonIsolateCompositedDescendants |
155 kCompositingReasonPreserve3DWith3DDescendants | // preserve-3d has to 156 kCompositingReasonPreserve3DWith3DDescendants | // preserve-3d has to
156 // create a backing store 157 // create a backing store
157 // to ensure that 158 // to ensure that
158 // 3d-transformed elements 159 // 3d-transformed elements
159 // intersect. 160 // intersect.
160 kCompositingReasonBackdropFilter | 161 kCompositingReasonBackdropFilter |
161 kCompositingReasonPositionFixedWithCompositedDescendants; 162 kCompositingReasonPositionFixedOrStickyWithCompositedDescendants;
162 163
163 const uint64_t kCompositingReasonComboSquashableReasons = 164 const uint64_t kCompositingReasonComboSquashableReasons =
164 kCompositingReasonOverlap | kCompositingReasonAssumedOverlap | 165 kCompositingReasonOverlap | kCompositingReasonAssumedOverlap |
165 kCompositingReasonOverflowScrollingParent; 166 kCompositingReasonOverflowScrollingParent;
166 167
167 typedef uint64_t CompositingReasons; 168 typedef uint64_t CompositingReasons;
168 169
169 // Any reasons other than overlap or assumed overlap will require the layer to 170 // Any reasons other than overlap or assumed overlap will require the layer to
170 // be separately compositing. 171 // be separately compositing.
171 inline bool RequiresCompositing(CompositingReasons reasons) { 172 inline bool RequiresCompositing(CompositingReasons reasons) {
(...skipping 15 matching lines...) Expand all
187 }; 188 };
188 189
189 PLATFORM_EXPORT extern const CompositingReasonStringMap 190 PLATFORM_EXPORT extern const CompositingReasonStringMap
190 kCompositingReasonStringMap[]; 191 kCompositingReasonStringMap[];
191 PLATFORM_EXPORT extern const size_t kNumberOfCompositingReasons; 192 PLATFORM_EXPORT extern const size_t kNumberOfCompositingReasons;
192 PLATFORM_EXPORT String CompositingReasonsAsString(CompositingReasons); 193 PLATFORM_EXPORT String CompositingReasonsAsString(CompositingReasons);
193 194
194 } // namespace blink 195 } // namespace blink
195 196
196 #endif // CompositingReasons_h 197 #endif // CompositingReasons_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698