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

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

Issue 1299323005: blink: Add backdrop-filter support (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: one more Created 5 years, 3 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/MathExtras.h" 9 #include "wtf/MathExtras.h"
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 11 matching lines...) Expand all
22 const uint64_t CompositingReasonIFrame = UINT6 4_C(1) << 4; 22 const uint64_t CompositingReasonIFrame = UINT6 4_C(1) << 4;
23 const uint64_t CompositingReasonBackfaceVisibilityHidden = UINT6 4_C(1) << 5; 23 const uint64_t CompositingReasonBackfaceVisibilityHidden = UINT6 4_C(1) << 5;
24 const uint64_t CompositingReasonActiveAnimation = UINT6 4_C(1) << 6; 24 const uint64_t CompositingReasonActiveAnimation = UINT6 4_C(1) << 6;
25 const uint64_t CompositingReasonTransitionProperty = UINT6 4_C(1) << 7; 25 const uint64_t CompositingReasonTransitionProperty = UINT6 4_C(1) << 7;
26 const uint64_t CompositingReasonPositionFixed = UINT6 4_C(1) << 8; 26 const uint64_t CompositingReasonPositionFixed = UINT6 4_C(1) << 8;
27 const uint64_t CompositingReasonOverflowScrollingTouch = UINT6 4_C(1) << 9; 27 const uint64_t CompositingReasonOverflowScrollingTouch = UINT6 4_C(1) << 9;
28 const uint64_t CompositingReasonOverflowScrollingParent = UINT6 4_C(1) << 10; 28 const uint64_t CompositingReasonOverflowScrollingParent = UINT6 4_C(1) << 10;
29 const uint64_t CompositingReasonOutOfFlowClipping = UINT6 4_C(1) << 11; 29 const uint64_t CompositingReasonOutOfFlowClipping = UINT6 4_C(1) << 11;
30 const uint64_t CompositingReasonVideoOverlay = UINT6 4_C(1) << 12; 30 const uint64_t CompositingReasonVideoOverlay = UINT6 4_C(1) << 12;
31 const uint64_t CompositingReasonWillChangeCompositingHint = UINT6 4_C(1) << 13; 31 const uint64_t CompositingReasonWillChangeCompositingHint = UINT6 4_C(1) << 13;
32 const uint64_t CompositingReasonBackdropFilter = UINT6 4_C(1) << 14;
32 33
33 // Overlap reasons that require knowing what's behind you in paint-order before knowing the answer 34 // Overlap reasons that require knowing what's behind you in paint-order before knowing the answer
34 const uint64_t CompositingReasonAssumedOverlap = UINT6 4_C(1) << 14; 35 const uint64_t CompositingReasonAssumedOverlap = UINT6 4_C(1) << 15;
35 const uint64_t CompositingReasonOverlap = UINT6 4_C(1) << 15; 36 const uint64_t CompositingReasonOverlap = UINT6 4_C(1) << 16;
36 const uint64_t CompositingReasonNegativeZIndexChildren = UINT6 4_C(1) << 16; 37 const uint64_t CompositingReasonNegativeZIndexChildren = UINT6 4_C(1) << 17;
37 const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT6 4_C(1) << 17; 38 const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT6 4_C(1) << 18;
38 const uint64_t CompositingReasonSquashingSparsityExceeded = UINT6 4_C(1) << 18; 39 const uint64_t CompositingReasonSquashingSparsityExceeded = UINT6 4_C(1) << 19;
39 const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT6 4_C(1) << 19; 40 const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT6 4_C(1) << 20;
40 const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT6 4_C(1) << 20; 41 const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT6 4_C(1) << 21;
41 const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT6 4_C(1) << 21; 42 const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT6 4_C(1) << 22;
42 const uint64_t CompositingReasonSquashingFilterMismatch = UINT6 4_C(1) << 22; 43 const uint64_t CompositingReasonSquashingFilterMismatch = UINT6 4_C(1) << 23;
43 const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT6 4_C(1) << 23; 44 const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT6 4_C(1) << 24;
44 const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT6 4_C(1) << 24; 45 const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT6 4_C(1) << 25;
45 const uint64_t CompositingReasonSquashedLayerClipsCompositingDescendants = UINT6 4_C(1) << 25; 46 const uint64_t CompositingReasonSquashedLayerClipsCompositingDescendants = UINT6 4_C(1) << 26;
46 const uint64_t CompositingReasonSquashingLayoutPartIsDisallowed = UINT6 4_C(1) << 26; 47 const uint64_t CompositingReasonSquashingLayoutPartIsDisallowed = UINT6 4_C(1) << 27;
47 const uint64_t CompositingReasonSquashingReflectionIsDisallowed = UINT6 4_C(1) << 27; 48 const uint64_t CompositingReasonSquashingReflectionIsDisallowed = UINT6 4_C(1) << 28;
48 const uint64_t CompositingReasonSquashingBlendingIsDisallowed = UINT6 4_C(1) << 28; 49 const uint64_t CompositingReasonSquashingBlendingIsDisallowed = UINT6 4_C(1) << 29;
49 const uint64_t CompositingReasonSquashingNearestFixedPositionMismatch = UINT6 4_C(1) << 29; 50 const uint64_t CompositingReasonSquashingNearestFixedPositionMismatch = UINT6 4_C(1) << 30;
50 const uint64_t CompositingReasonScrollChildWithCompositedDescendants = UINT6 4_C(1) << 30; 51 const uint64_t CompositingReasonScrollChildWithCompositedDescendants = UINT6 4_C(1) << 31;
51 52
52 // Subtree reasons that require knowing what the status of your subtree is befor e knowing the answer 53 // Subtree reasons that require knowing what the status of your subtree is befor e knowing the answer
53 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT6 4_C(1) << 31; 54 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT6 4_C(1) << 32;
54 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6 4_C(1) << 32; 55 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6 4_C(1) << 33;
55 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6 4_C(1) << 33; 56 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6 4_C(1) << 34;
56 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6 4_C(1) << 34; 57 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6 4_C(1) << 35;
57 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6 4_C(1) << 35; 58 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6 4_C(1) << 36;
58 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6 4_C(1) << 36; 59 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6 4_C(1) << 37;
59 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6 4_C(1) << 37; 60 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6 4_C(1) << 38;
60 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6 4_C(1) << 38; 61 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6 4_C(1) << 39;
61 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6 4_C(1) << 39; 62 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6 4_C(1) << 40;
62 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6 4_C(1) << 40; 63 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6 4_C(1) << 41;
63 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6 4_C(1) << 41; 64 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6 4_C(1) << 42;
64 65
65 // The root layer is a special case that may be forced to be a layer, but also i t needs to be 66 // The root layer is a special case that may be forced to be a layer, but also i t needs to be
66 // a layer if anything else in the subtree is composited. 67 // a layer if anything else in the subtree is composited.
67 const uint64_t CompositingReasonRoot = UINT6 4_C(1) << 42; 68 const uint64_t CompositingReasonRoot = UINT6 4_C(1) << 43;
68 69
69 // CompositedLayerMapping internal hierarchy reasons 70 // CompositedLayerMapping internal hierarchy reasons
70 const uint64_t CompositingReasonLayerForAncestorClip = UINT6 4_C(1) << 43; 71 const uint64_t CompositingReasonLayerForAncestorClip = UINT6 4_C(1) << 44;
71 const uint64_t CompositingReasonLayerForDescendantClip = UINT6 4_C(1) << 44; 72 const uint64_t CompositingReasonLayerForDescendantClip = UINT6 4_C(1) << 45;
72 const uint64_t CompositingReasonLayerForPerspective = UINT6 4_C(1) << 45; 73 const uint64_t CompositingReasonLayerForPerspective = UINT6 4_C(1) << 46;
73 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT6 4_C(1) << 46; 74 const uint64_t CompositingReasonLayerForHorizontalScrollbar = UINT6 4_C(1) << 47;
74 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT6 4_C(1) << 47; 75 const uint64_t CompositingReasonLayerForVerticalScrollbar = UINT6 4_C(1) << 48;
75 const uint64_t CompositingReasonLayerForOverflowControlsHost = UINT6 4_C(1) << 48; 76 const uint64_t CompositingReasonLayerForOverflowControlsHost = UINT6 4_C(1) << 49;
76 const uint64_t CompositingReasonLayerForScrollCorner = UINT6 4_C(1) << 49; 77 const uint64_t CompositingReasonLayerForScrollCorner = UINT6 4_C(1) << 50;
77 const uint64_t CompositingReasonLayerForScrollingContents = UINT6 4_C(1) << 50; 78 const uint64_t CompositingReasonLayerForScrollingContents = UINT6 4_C(1) << 51;
78 const uint64_t CompositingReasonLayerForScrollingContainer = UINT6 4_C(1) << 51; 79 const uint64_t CompositingReasonLayerForScrollingContainer = UINT6 4_C(1) << 52;
79 const uint64_t CompositingReasonLayerForSquashingContents = UINT6 4_C(1) << 52; 80 const uint64_t CompositingReasonLayerForSquashingContents = UINT6 4_C(1) << 53;
80 const uint64_t CompositingReasonLayerForSquashingContainer = UINT6 4_C(1) << 53; 81 const uint64_t CompositingReasonLayerForSquashingContainer = UINT6 4_C(1) << 54;
81 const uint64_t CompositingReasonLayerForForeground = UINT6 4_C(1) << 54; 82 const uint64_t CompositingReasonLayerForForeground = UINT6 4_C(1) << 55;
82 const uint64_t CompositingReasonLayerForBackground = UINT6 4_C(1) << 55; 83 const uint64_t CompositingReasonLayerForBackground = UINT6 4_C(1) << 56;
83 const uint64_t CompositingReasonLayerForMask = UINT6 4_C(1) << 56; 84 const uint64_t CompositingReasonLayerForMask = UINT6 4_C(1) << 57;
84 const uint64_t CompositingReasonLayerForClippingMask = UINT6 4_C(1) << 57; 85 const uint64_t CompositingReasonLayerForClippingMask = UINT6 4_C(1) << 58;
85 const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT6 4_C(1) << 58; 86 const uint64_t CompositingReasonLayerForScrollingBlockSelection = UINT6 4_C(1) << 59;
86 87
87 // Composited elements with inline transforms trigger assumed overlap so that 88 // Composited elements with inline transforms trigger assumed overlap so that
88 // we can update their transforms quickly. 89 // we can update their transforms quickly.
89 const uint64_t CompositingReasonInlineTransform = UINT6 4_C(1) << 59; 90 const uint64_t CompositingReasonInlineTransform = UINT6 4_C(1) << 60;
90 91
91 const uint64_t CompositingReasonCompositorProxy = UINT6 4_C(1) << 60; 92 const uint64_t CompositingReasonCompositorProxy = UINT6 4_C(1) << 61;
92 93
93 // Various combinations of compositing reasons are defined here also, for more i ntutive and faster bitwise logic. 94 // Various combinations of compositing reasons are defined here also, for more i ntutive and faster bitwise logic.
94 const uint64_t CompositingReasonComboAllDirectReasons = 95 const uint64_t CompositingReasonComboAllDirectReasons =
95 CompositingReason3DTransform 96 CompositingReason3DTransform
96 | CompositingReasonVideo 97 | CompositingReasonVideo
97 | CompositingReasonCanvas 98 | CompositingReasonCanvas
98 | CompositingReasonPlugin 99 | CompositingReasonPlugin
99 | CompositingReasonIFrame 100 | CompositingReasonIFrame
100 | CompositingReasonBackfaceVisibilityHidden 101 | CompositingReasonBackfaceVisibilityHidden
101 | CompositingReasonActiveAnimation 102 | CompositingReasonActiveAnimation
102 | CompositingReasonTransitionProperty 103 | CompositingReasonTransitionProperty
103 | CompositingReasonPositionFixed 104 | CompositingReasonPositionFixed
104 | CompositingReasonOverflowScrollingTouch 105 | CompositingReasonOverflowScrollingTouch
105 | CompositingReasonOverflowScrollingParent 106 | CompositingReasonOverflowScrollingParent
106 | CompositingReasonOutOfFlowClipping 107 | CompositingReasonOutOfFlowClipping
107 | CompositingReasonVideoOverlay 108 | CompositingReasonVideoOverlay
108 | CompositingReasonWillChangeCompositingHint 109 | CompositingReasonWillChangeCompositingHint
109 | CompositingReasonCompositorProxy; 110 | CompositingReasonCompositorProxy
111 | CompositingReasonBackdropFilter;
110 112
111 const uint64_t CompositingReasonComboAllDirectStyleDeterminedReasons = 113 const uint64_t CompositingReasonComboAllDirectStyleDeterminedReasons =
112 CompositingReason3DTransform 114 CompositingReason3DTransform
113 | CompositingReasonBackfaceVisibilityHidden 115 | CompositingReasonBackfaceVisibilityHidden
114 | CompositingReasonActiveAnimation 116 | CompositingReasonActiveAnimation
115 | CompositingReasonTransitionProperty 117 | CompositingReasonTransitionProperty
116 | CompositingReasonWillChangeCompositingHint 118 | CompositingReasonWillChangeCompositingHint
117 | CompositingReasonCompositorProxy; 119 | CompositingReasonCompositorProxy
120 | CompositingReasonBackdropFilter;
118 121
119 const uint64_t CompositingReasonComboCompositedDescendants = 122 const uint64_t CompositingReasonComboCompositedDescendants =
120 CompositingReasonTransformWithCompositedDescendants 123 CompositingReasonTransformWithCompositedDescendants
121 | CompositingReasonIsolateCompositedDescendants 124 | CompositingReasonIsolateCompositedDescendants
122 | CompositingReasonOpacityWithCompositedDescendants 125 | CompositingReasonOpacityWithCompositedDescendants
123 | CompositingReasonMaskWithCompositedDescendants 126 | CompositingReasonMaskWithCompositedDescendants
124 | CompositingReasonFilterWithCompositedDescendants 127 | CompositingReasonFilterWithCompositedDescendants
125 | CompositingReasonBlendingWithCompositedDescendants 128 | CompositingReasonBlendingWithCompositedDescendants
126 | CompositingReasonReflectionWithCompositedDescendants 129 | CompositingReasonReflectionWithCompositedDescendants
127 | CompositingReasonClipsCompositingDescendants; 130 | CompositingReasonClipsCompositingDescendants;
(...skipping 26 matching lines...) Expand all
154 | CompositingReasonSquashingReflectionIsDisallowed 157 | CompositingReasonSquashingReflectionIsDisallowed
155 | CompositingReasonSquashingBlendingIsDisallowed 158 | CompositingReasonSquashingBlendingIsDisallowed
156 | CompositingReasonTransformWithCompositedDescendants 159 | CompositingReasonTransformWithCompositedDescendants
157 | CompositingReasonOpacityWithCompositedDescendants 160 | CompositingReasonOpacityWithCompositedDescendants
158 | CompositingReasonMaskWithCompositedDescendants 161 | CompositingReasonMaskWithCompositedDescendants
159 | CompositingReasonFilterWithCompositedDescendants 162 | CompositingReasonFilterWithCompositedDescendants
160 | CompositingReasonBlendingWithCompositedDescendants 163 | CompositingReasonBlendingWithCompositedDescendants
161 | CompositingReasonIsolateCompositedDescendants 164 | CompositingReasonIsolateCompositedDescendants
162 | CompositingReasonPreserve3DWith3DDescendants // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect. 165 | CompositingReasonPreserve3DWith3DDescendants // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect.
163 | CompositingReasonSquashingNearestFixedPositionMismatch 166 | CompositingReasonSquashingNearestFixedPositionMismatch
164 | CompositingReasonScrollChildWithCompositedDescendants; 167 | CompositingReasonScrollChildWithCompositedDescendants
168 | CompositingReasonBackdropFilter;
165 169
166 const uint64_t CompositingReasonComboSquashableReasons = 170 const uint64_t CompositingReasonComboSquashableReasons =
167 CompositingReasonOverlap 171 CompositingReasonOverlap
168 | CompositingReasonAssumedOverlap 172 | CompositingReasonAssumedOverlap
169 | CompositingReasonOverflowScrollingParent; 173 | CompositingReasonOverflowScrollingParent;
170 174
171 typedef uint64_t CompositingReasons; 175 typedef uint64_t CompositingReasons;
172 176
173 // Any reasons other than overlap or assumed overlap will require the layer to b e separately compositing. 177 // Any reasons other than overlap or assumed overlap will require the layer to b e separately compositing.
174 inline bool requiresCompositing(CompositingReasons reasons) 178 inline bool requiresCompositing(CompositingReasons reasons)
(...skipping 12 matching lines...) Expand all
187 const char* shortName; 191 const char* shortName;
188 const char* description; 192 const char* description;
189 }; 193 };
190 194
191 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString Map[]; 195 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString Map[];
192 PLATFORM_EXPORT extern size_t kNumberOfCompositingReasons; 196 PLATFORM_EXPORT extern size_t kNumberOfCompositingReasons;
193 197
194 } // namespace blink 198 } // namespace blink
195 199
196 #endif // CompositingReasons_h 200 #endif // CompositingReasons_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698