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

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

Issue 1413363003: Always composite position: fixed elements with composited descendants. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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/MathExtras.h" 9 #include "wtf/MathExtras.h"
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6 4_C(1) << 33; 55 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6 4_C(1) << 33;
56 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6 4_C(1) << 34; 56 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6 4_C(1) << 34;
57 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6 4_C(1) << 35; 57 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6 4_C(1) << 35;
58 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6 4_C(1) << 36; 58 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6 4_C(1) << 36;
59 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6 4_C(1) << 37; 59 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6 4_C(1) << 37;
60 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6 4_C(1) << 38; 60 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6 4_C(1) << 38;
61 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6 4_C(1) << 39; 61 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6 4_C(1) << 39;
62 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6 4_C(1) << 40; 62 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6 4_C(1) << 40;
63 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6 4_C(1) << 41; 63 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6 4_C(1) << 41;
64 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6 4_C(1) << 42; 64 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6 4_C(1) << 42;
65 const uint64_t CompositingReasonPositionFixedWithCompositedDescendants = UINT6 4_C(1) << 43;
65 66
66 // The root layer is a special case that may be forced to be a layer, but also i t needs to be 67 // The root layer is a special case that may be forced to be a layer, but also i t needs to be
67 // a layer if anything else in the subtree is composited. 68 // a layer if anything else in the subtree is composited.
68 const uint64_t CompositingReasonRoot = UINT6 4_C(1) << 43; 69 const uint64_t CompositingReasonRoot = UINT6 4_C(1) << 44;
69 70
70 // CompositedLayerMapping internal hierarchy reasons 71 // CompositedLayerMapping internal hierarchy reasons
71 const uint64_t CompositingReasonLayerForAncestorClip = UINT6 4_C(1) << 44; 72 const uint64_t CompositingReasonLayerForAncestorClip = UINT6 4_C(1) << 45;
72 const uint64_t CompositingReasonLayerForDescendantClip = UINT6 4_C(1) << 45; 73 const uint64_t CompositingReasonLayerForDescendantClip = UINT6 4_C(1) << 46;
73 const uint64_t CompositingReasonLayerForPerspective = UINT6 4_C(1) << 46; 74 const uint64_t CompositingReasonLayerForPerspective = UINT6 4_C(1) << 47;
74 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT6 4_C(1) << 47; 75 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT6 4_C(1) << 48;
75 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT6 4_C(1) << 48; 76 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT6 4_C(1) << 49;
76 const uint64_t CompositingReasonLayerForOverflowControlsHost = UINT6 4_C(1) << 49; 77 const uint64_t CompositingReasonLayerForOverflowControlsHost = UINT6 4_C(1) << 50;
77 const uint64_t CompositingReasonLayerForScrollCorner = UINT6 4_C(1) << 50; 78 const uint64_t CompositingReasonLayerForScrollCorner = UINT6 4_C(1) << 51;
78 const uint64_t CompositingReasonLayerForScrollingContents = UINT6 4_C(1) << 51; 79 const uint64_t CompositingReasonLayerForScrollingContents = UINT6 4_C(1) << 52;
79 const uint64_t CompositingReasonLayerForScrollingContainer = UINT6 4_C(1) << 52; 80 const uint64_t CompositingReasonLayerForScrollingContainer = UINT6 4_C(1) << 53;
80 const uint64_t CompositingReasonLayerForSquashingContents = UINT6 4_C(1) << 53; 81 const uint64_t CompositingReasonLayerForSquashingContents = UINT6 4_C(1) << 54;
81 const uint64_t CompositingReasonLayerForSquashingContainer = UINT6 4_C(1) << 54; 82 const uint64_t CompositingReasonLayerForSquashingContainer = UINT6 4_C(1) << 55;
82 const uint64_t CompositingReasonLayerForForeground = UINT6 4_C(1) << 55; 83 const uint64_t CompositingReasonLayerForForeground = UINT6 4_C(1) << 56;
83 const uint64_t CompositingReasonLayerForBackground = UINT6 4_C(1) << 56; 84 const uint64_t CompositingReasonLayerForBackground = UINT6 4_C(1) << 57;
84 const uint64_t CompositingReasonLayerForMask = UINT6 4_C(1) << 57; 85 const uint64_t CompositingReasonLayerForMask = UINT6 4_C(1) << 58;
85 const uint64_t CompositingReasonLayerForClippingMask = UINT6 4_C(1) << 58; 86 const uint64_t CompositingReasonLayerForClippingMask = UINT6 4_C(1) << 59;
86 const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT6 4_C(1) << 59; 87 const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT6 4_C(1) << 60;
87 88
88 // Composited elements with inline transforms trigger assumed overlap so that 89 // Composited elements with inline transforms trigger assumed overlap so that
89 // we can update their transforms quickly. 90 // we can update their transforms quickly.
90 const uint64_t CompositingReasonInlineTransform = UINT6 4_C(1) << 60; 91 const uint64_t CompositingReasonInlineTransform = UINT6 4_C(1) << 61;
91 92
92 const uint64_t CompositingReasonCompositorProxy = UINT6 4_C(1) << 61; 93 const uint64_t CompositingReasonCompositorProxy = UINT6 4_C(1) << 62;
93 94
94 // Various combinations of compositing reasons are defined here also, for more i ntutive and faster bitwise logic. 95 // Various combinations of compositing reasons are defined here also, for more i ntutive and faster bitwise logic.
95 const uint64_t CompositingReasonComboAllDirectReasons = 96 const uint64_t CompositingReasonComboAllDirectReasons =
96 CompositingReason3DTransform 97 CompositingReason3DTransform
97 | CompositingReasonVideo 98 | CompositingReasonVideo
98 | CompositingReasonCanvas 99 | CompositingReasonCanvas
99 | CompositingReasonPlugin 100 | CompositingReasonPlugin
100 | CompositingReasonIFrame 101 | CompositingReasonIFrame
101 | CompositingReasonBackfaceVisibilityHidden 102 | CompositingReasonBackfaceVisibilityHidden
102 | CompositingReasonActiveAnimation 103 | CompositingReasonActiveAnimation
(...skipping 17 matching lines...) Expand all
120 | CompositingReasonBackdropFilter; 121 | CompositingReasonBackdropFilter;
121 122
122 const uint64_t CompositingReasonComboCompositedDescendants = 123 const uint64_t CompositingReasonComboCompositedDescendants =
123 CompositingReasonTransformWithCompositedDescendants 124 CompositingReasonTransformWithCompositedDescendants
124 | CompositingReasonIsolateCompositedDescendants 125 | CompositingReasonIsolateCompositedDescendants
125 | CompositingReasonOpacityWithCompositedDescendants 126 | CompositingReasonOpacityWithCompositedDescendants
126 | CompositingReasonMaskWithCompositedDescendants 127 | CompositingReasonMaskWithCompositedDescendants
127 | CompositingReasonFilterWithCompositedDescendants 128 | CompositingReasonFilterWithCompositedDescendants
128 | CompositingReasonBlendingWithCompositedDescendants 129 | CompositingReasonBlendingWithCompositedDescendants
129 | CompositingReasonReflectionWithCompositedDescendants 130 | CompositingReasonReflectionWithCompositedDescendants
130 | CompositingReasonClipsCompositingDescendants; 131 | CompositingReasonClipsCompositingDescendants
132 | CompositingReasonPositionFixedWithCompositedDescendants;
131 133
132 const uint64_t CompositingReasonCombo3DDescendants = 134 const uint64_t CompositingReasonCombo3DDescendants =
133 CompositingReasonPreserve3DWith3DDescendants 135 CompositingReasonPreserve3DWith3DDescendants
134 | CompositingReasonPerspectiveWith3DDescendants; 136 | CompositingReasonPerspectiveWith3DDescendants;
135 137
136 const uint64_t CompositingReasonComboAllStyleDeterminedReasons = 138 const uint64_t CompositingReasonComboAllStyleDeterminedReasons =
137 CompositingReasonComboAllDirectStyleDeterminedReasons 139 CompositingReasonComboAllDirectStyleDeterminedReasons
138 | CompositingReasonComboCompositedDescendants 140 | CompositingReasonComboCompositedDescendants
139 | CompositingReasonCombo3DDescendants 141 | CompositingReasonCombo3DDescendants
140 | CompositingReasonInlineTransform; 142 | CompositingReasonInlineTransform;
(...skipping 17 matching lines...) Expand all
158 | CompositingReasonSquashingBlendingIsDisallowed 160 | CompositingReasonSquashingBlendingIsDisallowed
159 | CompositingReasonTransformWithCompositedDescendants 161 | CompositingReasonTransformWithCompositedDescendants
160 | CompositingReasonOpacityWithCompositedDescendants 162 | CompositingReasonOpacityWithCompositedDescendants
161 | CompositingReasonMaskWithCompositedDescendants 163 | CompositingReasonMaskWithCompositedDescendants
162 | CompositingReasonFilterWithCompositedDescendants 164 | CompositingReasonFilterWithCompositedDescendants
163 | CompositingReasonBlendingWithCompositedDescendants 165 | CompositingReasonBlendingWithCompositedDescendants
164 | CompositingReasonIsolateCompositedDescendants 166 | CompositingReasonIsolateCompositedDescendants
165 | CompositingReasonPreserve3DWith3DDescendants // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect. 167 | CompositingReasonPreserve3DWith3DDescendants // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect.
166 | CompositingReasonSquashingNearestFixedPositionMismatch 168 | CompositingReasonSquashingNearestFixedPositionMismatch
167 | CompositingReasonScrollChildWithCompositedDescendants 169 | CompositingReasonScrollChildWithCompositedDescendants
168 | CompositingReasonBackdropFilter; 170 | CompositingReasonBackdropFilter
171 | CompositingReasonPositionFixedWithCompositedDescendants;
169 172
170 const uint64_t CompositingReasonComboSquashableReasons = 173 const uint64_t CompositingReasonComboSquashableReasons =
171 CompositingReasonOverlap 174 CompositingReasonOverlap
172 | CompositingReasonAssumedOverlap 175 | CompositingReasonAssumedOverlap
173 | CompositingReasonOverflowScrollingParent; 176 | CompositingReasonOverflowScrollingParent;
174 177
175 typedef uint64_t CompositingReasons; 178 typedef uint64_t CompositingReasons;
176 179
177 // Any reasons other than overlap or assumed overlap will require the layer to b e separately compositing. 180 // Any reasons other than overlap or assumed overlap will require the layer to b e separately compositing.
178 inline bool requiresCompositing(CompositingReasons reasons) 181 inline bool requiresCompositing(CompositingReasons reasons)
(...skipping 12 matching lines...) Expand all
191 const char* shortName; 194 const char* shortName;
192 const char* description; 195 const char* description;
193 }; 196 };
194 197
195 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString Map[]; 198 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString Map[];
196 PLATFORM_EXPORT extern size_t kNumberOfCompositingReasons; 199 PLATFORM_EXPORT extern size_t kNumberOfCompositingReasons;
197 200
198 } // namespace blink 201 } // namespace blink
199 202
200 #endif // CompositingReasons_h 203 #endif // CompositingReasons_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698