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

Side by Side Diff: third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp

Issue 1813383002: Move all fast-path paint invalidation mapping into PaintInvalidationState (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disable fast-path/slow-path comparison because of saturated operations of LayoutUnit Created 4 years, 8 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 /* 1 /*
2 * Copyright (c) 2009, Google Inc. All rights reserved. 2 * Copyright (c) 2009, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 LayoutSVGModelObject::LayoutSVGModelObject(SVGElement* node) 43 LayoutSVGModelObject::LayoutSVGModelObject(SVGElement* node)
44 : LayoutObject(node) 44 : LayoutObject(node)
45 { 45 {
46 } 46 }
47 47
48 bool LayoutSVGModelObject::isChildAllowed(LayoutObject* child, const ComputedSty le&) const 48 bool LayoutSVGModelObject::isChildAllowed(LayoutObject* child, const ComputedSty le&) const
49 { 49 {
50 return child->isSVG() && !(child->isSVGInline() || child->isSVGInlineText() || child->isSVGGradientStop()); 50 return child->isSVG() && !(child->isSVGInline() || child->isSVGInlineText() || child->isSVGGradientStop());
51 } 51 }
52 52
53 LayoutRect LayoutSVGModelObject::clippedOverflowRectForPaintInvalidation(const L ayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidationState* p aintInvalidationState) const 53 void LayoutSVGModelObject::mapLocalToAncestor(const LayoutBoxModelObject* ancest or, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
54 { 54 {
55 return SVGLayoutSupport::clippedOverflowRectForPaintInvalidation(*this, pain tInvalidationContainer, paintInvalidationState); 55 SVGLayoutSupport::mapLocalToAncestor(this, ancestor, transformState, wasFixe d);
56 } 56 }
57 57
58 void LayoutSVGModelObject::mapLocalToAncestor(const LayoutBoxModelObject* ancest or, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed, const P aintInvalidationState* paintInvalidationState) const 58 LayoutRect LayoutSVGModelObject::absoluteClippedOverflowRect() const
59 { 59 {
60 SVGLayoutSupport::mapLocalToAncestor(this, ancestor, transformState, wasFixe d, paintInvalidationState); 60 return SVGLayoutSupport::clippedOverflowRectForPaintInvalidation(*this, *vie w());
61 } 61 }
62 62
63 void LayoutSVGModelObject::mapAncestorToLocal(const LayoutBoxModelObject* ancest or, TransformState& transformState, MapCoordinatesFlags) const 63 void LayoutSVGModelObject::mapAncestorToLocal(const LayoutBoxModelObject* ancest or, TransformState& transformState, MapCoordinatesFlags) const
64 { 64 {
65 SVGLayoutSupport::mapAncestorToLocal(*this, ancestor, transformState); 65 SVGLayoutSupport::mapAncestorToLocal(*this, ancestor, transformState);
66 } 66 }
67 67
68 const LayoutObject* LayoutSVGModelObject::pushMappingToContainer(const LayoutBox ModelObject* ancestorToStopAt, LayoutGeometryMap& geometryMap) const 68 const LayoutObject* LayoutSVGModelObject::pushMappingToContainer(const LayoutBox ModelObject* ancestorToStopAt, LayoutGeometryMap& geometryMap) const
69 { 69 {
70 return SVGLayoutSupport::pushMappingToContainer(this, ancestorToStopAt, geom etryMap); 70 return SVGLayoutSupport::pushMappingToContainer(this, ancestorToStopAt, geom etryMap);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 136
137 // If we didn't need paint invalidation then our children don't need as well . 137 // If we didn't need paint invalidation then our children don't need as well .
138 // Skip walking down the tree as everything should be fine below us. 138 // Skip walking down the tree as everything should be fine below us.
139 if (!shouldCheckForPaintInvalidation(paintInvalidationState)) 139 if (!shouldCheckForPaintInvalidation(paintInvalidationState))
140 return; 140 return;
141 141
142 PaintInvalidationState newPaintInvalidationState(paintInvalidationState, *th is); 142 PaintInvalidationState newPaintInvalidationState(paintInvalidationState, *th is);
143 invalidatePaintIfNeeded(newPaintInvalidationState); 143 invalidatePaintIfNeeded(newPaintInvalidationState);
144 clearPaintInvalidationFlags(newPaintInvalidationState); 144 clearPaintInvalidationFlags(newPaintInvalidationState);
145 145
146 newPaintInvalidationState.updatePaintOffsetAndClipForChildren(); 146 newPaintInvalidationState.updateForChildren();
147 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState); 147 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState);
148 } 148 }
149 149
150 } // namespace blink 150 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698