| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |