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

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

Issue 1308273010: Adapt and reland old position sticky implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix style errors and remaining layout tests. 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>
11 11
12 namespace blink { 12 namespace blink {
13 13
14 const uint64_t CompositingReasonNone = 0; 14 const uint64_t CompositingReasonNone = 0;
15 const uint64_t CompositingReasonAll = ~stat ic_cast<uint64_t>(0); 15 const uint64_t CompositingReasonAll = ~stat ic_cast<uint64_t>(0);
16 16
17 // Intrinsic reasons that can be known right away by the layer 17 // Intrinsic reasons that can be known right away by the layer
18 const uint64_t CompositingReason3DTransform = UINT6 4_C(1) << 0; 18 const uint64_t CompositingReason3DTransform = UINT6 4_C(1) << 0;
19 const uint64_t CompositingReasonVideo = UINT6 4_C(1) << 1; 19 const uint64_t CompositingReasonVideo = UINT6 4_C(1) << 1;
20 const uint64_t CompositingReasonCanvas = UINT6 4_C(1) << 2; 20 const uint64_t CompositingReasonCanvas = UINT6 4_C(1) << 2;
21 const uint64_t CompositingReasonPlugin = UINT6 4_C(1) << 3; 21 const uint64_t CompositingReasonPlugin = UINT6 4_C(1) << 3;
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 CompositingReasonPositionSticky = UINT6 4_C(1) << 9;
28 const uint64_t CompositingReasonOverflowScrollingParent = UINT6 4_C(1) << 10; 28 const uint64_t CompositingReasonOverflowScrollingTouch = UINT6 4_C(1) << 10;
29 const uint64_t CompositingReasonOutOfFlowClipping = UINT6 4_C(1) << 11; 29 const uint64_t CompositingReasonOverflowScrollingParent = UINT6 4_C(1) << 11;
30 const uint64_t CompositingReasonVideoOverlay = UINT6 4_C(1) << 12; 30 const uint64_t CompositingReasonOutOfFlowClipping = UINT6 4_C(1) << 12;
31 const uint64_t CompositingReasonWillChangeCompositingHint = UINT6 4_C(1) << 13; 31 const uint64_t CompositingReasonVideoOverlay = UINT6 4_C(1) << 13;
32 const uint64_t CompositingReasonBackdropFilter = UINT6 4_C(1) << 14; 32 const uint64_t CompositingReasonWillChangeCompositingHint = UINT6 4_C(1) << 14;
33 const uint64_t CompositingReasonBackdropFilter = UINT6 4_C(1) << 15;
33 34
34 // 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
35 const uint64_t CompositingReasonAssumedOverlap = UINT6 4_C(1) << 15; 36 const uint64_t CompositingReasonAssumedOverlap = UINT6 4_C(1) << 16;
36 const uint64_t CompositingReasonOverlap = UINT6 4_C(1) << 16; 37 const uint64_t CompositingReasonOverlap = UINT6 4_C(1) << 17;
37 const uint64_t CompositingReasonNegativeZIndexChildren = UINT6 4_C(1) << 17; 38 const uint64_t CompositingReasonNegativeZIndexChildren = UINT6 4_C(1) << 18;
38 const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT6 4_C(1) << 18; 39 const uint64_t CompositingReasonScrollsWithRespectToSquashingLayer = UINT6 4_C(1) << 19;
39 const uint64_t CompositingReasonSquashingSparsityExceeded = UINT6 4_C(1) << 19; 40 const uint64_t CompositingReasonSquashingSparsityExceeded = UINT6 4_C(1) << 20;
40 const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT6 4_C(1) << 20; 41 const uint64_t CompositingReasonSquashingClippingContainerMismatch = UINT6 4_C(1) << 21;
41 const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT6 4_C(1) << 21; 42 const uint64_t CompositingReasonSquashingOpacityAncestorMismatch = UINT6 4_C(1) << 22;
42 const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT6 4_C(1) << 22; 43 const uint64_t CompositingReasonSquashingTransformAncestorMismatch = UINT6 4_C(1) << 23;
43 const uint64_t CompositingReasonSquashingFilterMismatch = UINT6 4_C(1) << 23; 44 const uint64_t CompositingReasonSquashingFilterMismatch = UINT6 4_C(1) << 24;
44 const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT6 4_C(1) << 24; 45 const uint64_t CompositingReasonSquashingWouldBreakPaintOrder = UINT6 4_C(1) << 25;
45 const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT6 4_C(1) << 25; 46 const uint64_t CompositingReasonSquashingVideoIsDisallowed = UINT6 4_C(1) << 26;
46 const uint64_t CompositingReasonSquashedLayerClipsCompositingDescendants = UINT6 4_C(1) << 26; 47 const uint64_t CompositingReasonSquashedLayerClipsCompositingDescendants = UINT6 4_C(1) << 27;
47 const uint64_t CompositingReasonSquashingLayoutPartIsDisallowed = UINT6 4_C(1) << 27; 48 const uint64_t CompositingReasonSquashingLayoutPartIsDisallowed = UINT6 4_C(1) << 28;
48 const uint64_t CompositingReasonSquashingReflectionIsDisallowed = UINT6 4_C(1) << 28; 49 const uint64_t CompositingReasonSquashingReflectionIsDisallowed = UINT6 4_C(1) << 29;
49 const uint64_t CompositingReasonSquashingBlendingIsDisallowed = UINT6 4_C(1) << 29; 50 const uint64_t CompositingReasonSquashingBlendingIsDisallowed = UINT6 4_C(1) << 30;
50 const uint64_t CompositingReasonSquashingNearestFixedPositionMismatch = UINT6 4_C(1) << 30; 51 const uint64_t CompositingReasonSquashingNearestFixedPositionMismatch = UINT6 4_C(1) << 31;
51 const uint64_t CompositingReasonScrollChildWithCompositedDescendants = UINT6 4_C(1) << 31; 52 const uint64_t CompositingReasonScrollChildWithCompositedDescendants = UINT6 4_C(1) << 32;
52 53
53 // Subtree reasons that require knowing what the status of your subtree is befor e knowing the answer 54 // Subtree reasons that require knowing what the status of your subtree is befor e knowing the answer
54 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT6 4_C(1) << 32; 55 const uint64_t CompositingReasonTransformWithCompositedDescendants = UINT6 4_C(1) << 33;
55 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6 4_C(1) << 33; 56 const uint64_t CompositingReasonOpacityWithCompositedDescendants = UINT6 4_C(1) << 34;
56 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6 4_C(1) << 34; 57 const uint64_t CompositingReasonMaskWithCompositedDescendants = UINT6 4_C(1) << 35;
57 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6 4_C(1) << 35; 58 const uint64_t CompositingReasonReflectionWithCompositedDescendants = UINT6 4_C(1) << 36;
58 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6 4_C(1) << 36; 59 const uint64_t CompositingReasonFilterWithCompositedDescendants = UINT6 4_C(1) << 37;
59 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6 4_C(1) << 37; 60 const uint64_t CompositingReasonBlendingWithCompositedDescendants = UINT6 4_C(1) << 38;
60 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6 4_C(1) << 38; 61 const uint64_t CompositingReasonClipsCompositingDescendants = UINT6 4_C(1) << 39;
61 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6 4_C(1) << 39; 62 const uint64_t CompositingReasonPerspectiveWith3DDescendants = UINT6 4_C(1) << 40;
62 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6 4_C(1) << 40; 63 const uint64_t CompositingReasonPreserve3DWith3DDescendants = UINT6 4_C(1) << 41;
63 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6 4_C(1) << 41; 64 const uint64_t CompositingReasonReflectionOfCompositedParent = UINT6 4_C(1) << 42;
64 const uint64_t CompositingReasonIsolateCompositedDescendants = UINT6 4_C(1) << 42; 65 const uint64_t CompositingReasonIsolateCompositedDescendants = 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
103 | CompositingReasonTransitionProperty 104 | CompositingReasonTransitionProperty
104 | CompositingReasonPositionFixed 105 | CompositingReasonPositionFixed
106 | CompositingReasonPositionSticky
105 | CompositingReasonOverflowScrollingTouch 107 | CompositingReasonOverflowScrollingTouch
106 | CompositingReasonOverflowScrollingParent 108 | CompositingReasonOverflowScrollingParent
107 | CompositingReasonOutOfFlowClipping 109 | CompositingReasonOutOfFlowClipping
108 | CompositingReasonVideoOverlay 110 | CompositingReasonVideoOverlay
109 | CompositingReasonWillChangeCompositingHint 111 | CompositingReasonWillChangeCompositingHint
110 | CompositingReasonCompositorProxy 112 | CompositingReasonCompositorProxy
111 | CompositingReasonBackdropFilter; 113 | CompositingReasonBackdropFilter;
112 114
113 const uint64_t CompositingReasonComboAllDirectStyleDeterminedReasons = 115 const uint64_t CompositingReasonComboAllDirectStyleDeterminedReasons =
114 CompositingReason3DTransform 116 CompositingReason3DTransform
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 const char* shortName; 193 const char* shortName;
192 const char* description; 194 const char* description;
193 }; 195 };
194 196
195 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString Map[]; 197 PLATFORM_EXPORT extern const CompositingReasonStringMap kCompositingReasonString Map[];
196 PLATFORM_EXPORT extern size_t kNumberOfCompositingReasons; 198 PLATFORM_EXPORT extern size_t kNumberOfCompositingReasons;
197 199
198 } // namespace blink 200 } // namespace blink
199 201
200 #endif // CompositingReasons_h 202 #endif // CompositingReasons_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698