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

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

Issue 2565073002: Implement the algorithm to test merging and overlap in PaintArtifactCompositor. (Closed)
Patch Set: none 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"
11 #include "platform/graphics/paint/ScrollPaintPropertyNode.h" 11 #include "platform/graphics/paint/ScrollPaintPropertyNode.h"
12 #include "platform/graphics/paint/TransformPaintPropertyNode.h" 12 #include "platform/graphics/paint/TransformPaintPropertyNode.h"
13 #include "wtf/RefPtr.h" 13 #include "wtf/RefPtr.h"
14 14
15 namespace blink { 15 namespace blink {
16 16
17 class CompositingReasonFinder;
17 class FrameView; 18 class FrameView;
18 class LayoutObject; 19 class LayoutObject;
19 20
20 // The context for PaintPropertyTreeBuilder. 21 // The context for PaintPropertyTreeBuilder.
21 // It's responsible for bookkeeping tree state in other order, for example, the 22 // It's responsible for bookkeeping tree state in other order, for example, the
22 // most recent position container seen. 23 // most recent position container seen.
23 struct PaintPropertyTreeBuilderContext { 24 struct PaintPropertyTreeBuilderContext {
24 // State that propagates on the containing block chain (and so is adjusted 25 // State that propagates on the containing block chain (and so is adjusted
25 // when an absolute or fixed position object is encountered). 26 // when an absolute or fixed position object is encountered).
26 struct ContainingBlockContext { 27 struct ContainingBlockContext {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 void updatePropertiesForSelf(const LayoutObject&, 107 void updatePropertiesForSelf(const LayoutObject&,
107 PaintPropertyTreeBuilderContext&); 108 PaintPropertyTreeBuilderContext&);
108 // Update the paint properties that affect children of this object (e.g., 109 // Update the paint properties that affect children of this object (e.g.,
109 // scroll offset transform) and ensure the context is up to date. 110 // scroll offset transform) and ensure the context is up to date.
110 void updatePropertiesForChildren(const LayoutObject&, 111 void updatePropertiesForChildren(const LayoutObject&,
111 PaintPropertyTreeBuilderContext&); 112 PaintPropertyTreeBuilderContext&);
112 113
113 private: 114 private:
114 static void updatePaintOffsetTranslation(const LayoutObject&, 115 static void updatePaintOffsetTranslation(const LayoutObject&,
115 PaintPropertyTreeBuilderContext&); 116 PaintPropertyTreeBuilderContext&);
116 static void updateTransform(const LayoutObject&, 117 void updateTransform(const LayoutObject&, PaintPropertyTreeBuilderContext&);
117 PaintPropertyTreeBuilderContext&);
118 static void updateTransformForNonRootSVG(const LayoutObject&, 118 static void updateTransformForNonRootSVG(const LayoutObject&,
119 PaintPropertyTreeBuilderContext&); 119 PaintPropertyTreeBuilderContext&);
120 static void updateEffect(const LayoutObject&, 120 static void updateEffect(const LayoutObject&,
121 PaintPropertyTreeBuilderContext&); 121 PaintPropertyTreeBuilderContext&);
122 static void updateCssClip(const LayoutObject&, 122 static void updateCssClip(const LayoutObject&,
123 PaintPropertyTreeBuilderContext&); 123 PaintPropertyTreeBuilderContext&);
124 static void updateLocalBorderBoxContext(const LayoutObject&, 124 static void updateLocalBorderBoxContext(const LayoutObject&,
125 PaintPropertyTreeBuilderContext&); 125 PaintPropertyTreeBuilderContext&);
126 static void updateScrollbarPaintOffset(const LayoutObject&, 126 static void updateScrollbarPaintOffset(const LayoutObject&,
127 PaintPropertyTreeBuilderContext&); 127 PaintPropertyTreeBuilderContext&);
128 static void updateOverflowClip(const LayoutObject&, 128 static void updateOverflowClip(const LayoutObject&,
129 PaintPropertyTreeBuilderContext&); 129 PaintPropertyTreeBuilderContext&);
130 static void updatePerspective(const LayoutObject&, 130 static void updatePerspective(const LayoutObject&,
131 PaintPropertyTreeBuilderContext&); 131 PaintPropertyTreeBuilderContext&);
132 static void updateSvgLocalToBorderBoxTransform( 132 static void updateSvgLocalToBorderBoxTransform(
133 const LayoutObject&, 133 const LayoutObject&,
134 PaintPropertyTreeBuilderContext&); 134 PaintPropertyTreeBuilderContext&);
135 static void updateScrollAndScrollTranslation( 135 static void updateScrollAndScrollTranslation(
136 const LayoutObject&, 136 const LayoutObject&,
137 PaintPropertyTreeBuilderContext&); 137 PaintPropertyTreeBuilderContext&);
138 static void updateOutOfFlowContext(const LayoutObject&, 138 static void updateOutOfFlowContext(const LayoutObject&,
139 PaintPropertyTreeBuilderContext&); 139 PaintPropertyTreeBuilderContext&);
140
141 std::unique_ptr<CompositingReasonFinder> m_compositingReasonFinder;
140 }; 142 };
141 143
142 } // namespace blink 144 } // namespace blink
143 145
144 #endif // PaintPropertyTreeBuilder_h 146 #endif // PaintPropertyTreeBuilder_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698