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

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

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 29 matching lines...) Expand all
40 // but not all. (e.g. LayoutSVGForeignObject, LayoutSVGBlock) thus methods 40 // but not all. (e.g. LayoutSVGForeignObject, LayoutSVGBlock) thus methods
41 // required by SVG layoutObjects need to be declared on LayoutObject, but shared 41 // required by SVG layoutObjects need to be declared on LayoutObject, but shared
42 // logic can go in this class or in SVGLayoutSupport. 42 // logic can go in this class or in SVGLayoutSupport.
43 43
44 class LayoutSVGModelObject : public LayoutObject { 44 class LayoutSVGModelObject : public LayoutObject {
45 public: 45 public:
46 explicit LayoutSVGModelObject(SVGElement*); 46 explicit LayoutSVGModelObject(SVGElement*);
47 47
48 bool isChildAllowed(LayoutObject*, const ComputedStyle&) const override; 48 bool isChildAllowed(LayoutObject*, const ComputedStyle&) const override;
49 49
50 LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxModelObjec t* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const ov erride; 50 LayoutRect absoluteClippedOverflowRect() const override;
51 51 FloatRect paintInvalidationRectInLocalSVGCoordinates() const override { retu rn m_paintInvalidationBoundingBox; }
52 FloatRect paintInvalidationRectInLocalSVGCoordinates() const final { return m_paintInvalidationBoundingBox; }
53 52
54 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c onst final; 53 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c onst final;
55 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override; 54 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
56 55
57 void mapLocalToAncestor(const LayoutBoxModelObject* ancestor, TransformState &, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr, const Pai ntInvalidationState* = nullptr) const final; 56 void mapLocalToAncestor(const LayoutBoxModelObject* ancestor, TransformState &, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr) const fin al;
58 void mapAncestorToLocal(const LayoutBoxModelObject* ancestor, TransformState &, MapCoordinatesFlags = ApplyContainerFlip) const final; 57 void mapAncestorToLocal(const LayoutBoxModelObject* ancestor, TransformState &, MapCoordinatesFlags = ApplyContainerFlip) const final;
59 const LayoutObject* pushMappingToContainer(const LayoutBoxModelObject* ances torToStopAt, LayoutGeometryMap&) const final; 58 const LayoutObject* pushMappingToContainer(const LayoutBoxModelObject* ances torToStopAt, LayoutGeometryMap&) const final;
60 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override ; 59 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override ;
61 60
62 void computeLayerHitTestRects(LayerHitTestRects&) const final; 61 void computeLayerHitTestRects(LayerHitTestRects&) const final;
63 62
64 SVGElement* element() const { return toSVGElement(LayoutObject::node()); } 63 SVGElement* element() const { return toSVGElement(LayoutObject::node()); }
65 64
66 bool isOfType(LayoutObjectType type) const override { return type == LayoutO bjectSVG || LayoutObject::isOfType(type); } 65 bool isOfType(LayoutObjectType type) const override { return type == LayoutO bjectSVG || LayoutObject::isOfType(type); }
67 66
(...skipping 11 matching lines...) Expand all
79 78
80 void invalidateTreeIfNeeded(const PaintInvalidationState&) final; 79 void invalidateTreeIfNeeded(const PaintInvalidationState&) final;
81 80
82 protected: 81 protected:
83 FloatRect m_paintInvalidationBoundingBox; 82 FloatRect m_paintInvalidationBoundingBox;
84 }; 83 };
85 84
86 } // namespace blink 85 } // namespace blink
87 86
88 #endif 87 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698