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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h

Issue 2539693002: Early-out from the prepaint tree walk (Closed)
Patch Set: Address chrishtrs comments Created 4 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 PaintPropertyTreeBuilder_h 5 #ifndef PaintPropertyTreeBuilder_h
6 #define PaintPropertyTreeBuilder_h 6 #define PaintPropertyTreeBuilder_h
7 7
8 #include "platform/geometry/LayoutPoint.h" 8 #include "platform/geometry/LayoutPoint.h"
9 #include "platform/graphics/paint/ClipPaintPropertyNode.h" 9 #include "platform/graphics/paint/ClipPaintPropertyNode.h"
10 #include "platform/graphics/paint/EffectPaintPropertyNode.h" 10 #include "platform/graphics/paint/EffectPaintPropertyNode.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 // Therefore, we don't need extra bookkeeping for effect nodes and can 70 // Therefore, we don't need extra bookkeeping for effect nodes and can
71 // generate the effect tree from a DOM-order traversal. 71 // generate the effect tree from a DOM-order traversal.
72 const EffectPaintPropertyNode* currentEffect = nullptr; 72 const EffectPaintPropertyNode* currentEffect = nullptr;
73 // Some effects are spatial, i.e. may refer to input pixels outside of output 73 // Some effects are spatial, i.e. may refer to input pixels outside of output
74 // clip. The cull rect for its input shall be derived from its output clip. 74 // clip. The cull rect for its input shall be derived from its output clip.
75 // This variable represents the input cull of current effect, also serves as 75 // This variable represents the input cull of current effect, also serves as
76 // output clip of child effects that don't have a hard clip. 76 // output clip of child effects that don't have a hard clip.
77 const ClipPaintPropertyNode* inputClipOfCurrentEffect = nullptr; 77 const ClipPaintPropertyNode* inputClipOfCurrentEffect = nullptr;
78 78
79 bool isUnderMultiColumnSpanner = false; 79 bool isUnderMultiColumnSpanner = false;
80
81 // True if a change has forced all properties in a subtree to be updated. This
82 // can be set due to paint offset changes or when the structure of the
83 // property tree changes (i.e., a node is added or removed).
84 bool forceSubtreeUpdate = false;
80 }; 85 };
81 86
82 // Creates paint property tree nodes for special things in the layout tree. 87 // Creates paint property tree nodes for special things in the layout tree.
83 // Special things include but not limit to: overflow clip, transform, fixed-pos, 88 // Special things include but not limit to: overflow clip, transform, fixed-pos,
84 // animation, mask, filter, ... etc. 89 // animation, mask, filter, ... etc.
85 // It expects to be invoked for each layout tree node in DOM order during 90 // It expects to be invoked for each layout tree node in DOM order during
86 // InPrePaint phase. 91 // InPrePaint phase.
87 class PaintPropertyTreeBuilder { 92 class PaintPropertyTreeBuilder {
88 public: 93 public:
89 PaintPropertyTreeBuilderContext setupInitialContext(); 94 PaintPropertyTreeBuilderContext setupInitialContext();
(...skipping 16 matching lines...) Expand all
106 static void updateTransform(const LayoutObject&, 111 static void updateTransform(const LayoutObject&,
107 PaintPropertyTreeBuilderContext&); 112 PaintPropertyTreeBuilderContext&);
108 static void updateTransformForNonRootSVG(const LayoutObject&, 113 static void updateTransformForNonRootSVG(const LayoutObject&,
109 PaintPropertyTreeBuilderContext&); 114 PaintPropertyTreeBuilderContext&);
110 static void updateEffect(const LayoutObject&, 115 static void updateEffect(const LayoutObject&,
111 PaintPropertyTreeBuilderContext&); 116 PaintPropertyTreeBuilderContext&);
112 static void updateCssClip(const LayoutObject&, 117 static void updateCssClip(const LayoutObject&,
113 PaintPropertyTreeBuilderContext&); 118 PaintPropertyTreeBuilderContext&);
114 static void updateLocalBorderBoxContext(const LayoutObject&, 119 static void updateLocalBorderBoxContext(const LayoutObject&,
115 PaintPropertyTreeBuilderContext&); 120 PaintPropertyTreeBuilderContext&);
116 static void updateScrollbarPaintOffset( 121 static void updateScrollbarPaintOffset(const LayoutObject&,
117 const LayoutObject&, 122 PaintPropertyTreeBuilderContext&);
118 const PaintPropertyTreeBuilderContext&);
119 static void updateOverflowClip(const LayoutObject&, 123 static void updateOverflowClip(const LayoutObject&,
120 PaintPropertyTreeBuilderContext&); 124 PaintPropertyTreeBuilderContext&);
121 static void updatePerspective(const LayoutObject&, 125 static void updatePerspective(const LayoutObject&,
122 PaintPropertyTreeBuilderContext&); 126 PaintPropertyTreeBuilderContext&);
123 static void updateSvgLocalToBorderBoxTransform( 127 static void updateSvgLocalToBorderBoxTransform(
124 const LayoutObject&, 128 const LayoutObject&,
125 PaintPropertyTreeBuilderContext&); 129 PaintPropertyTreeBuilderContext&);
126 static void updateScrollAndScrollTranslation( 130 static void updateScrollAndScrollTranslation(
127 const LayoutObject&, 131 const LayoutObject&,
128 PaintPropertyTreeBuilderContext&); 132 PaintPropertyTreeBuilderContext&);
129 static void updateOutOfFlowContext(const LayoutObject&, 133 static void updateOutOfFlowContext(const LayoutObject&,
130 PaintPropertyTreeBuilderContext&); 134 PaintPropertyTreeBuilderContext&);
131 }; 135 };
132 136
133 } // namespace blink 137 } // namespace blink
134 138
135 #endif // PaintPropertyTreeBuilder_h 139 #endif // PaintPropertyTreeBuilder_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698