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

Side by Side Diff: Source/core/rendering/svg/RenderSVGRoot.h

Issue 598623002: Initial PaintInvalidationState support for SVG (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Move code to clippedOverflow... Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
4 * Copyright (C) 2009 Google, Inc. All rights reserved. 4 * Copyright (C) 2009 Google, Inc. All rights reserved.
5 * Copyright (C) 2009 Apple Inc. All rights reserved. 5 * Copyright (C) 2009 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 // SVGImage::draw() does a view layout prior to painting, 61 // SVGImage::draw() does a view layout prior to painting,
62 // and we need that layout to know of the new size otherwise 62 // and we need that layout to know of the new size otherwise
63 // the rendering may be incorrectly using the old size. 63 // the rendering may be incorrectly using the old size.
64 if (m_containerSize != containerSize) 64 if (m_containerSize != containerSize)
65 setNeedsLayoutAndFullPaintInvalidation(); 65 setNeedsLayoutAndFullPaintInvalidation();
66 m_containerSize = containerSize; 66 m_containerSize = containerSize;
67 } 67 }
68 68
69 // localToBorderBoxTransform maps local SVG viewport coordinates to local CS S box coordinates. 69 // localToBorderBoxTransform maps local SVG viewport coordinates to local CS S box coordinates.
70 const AffineTransform& localToBorderBoxTransform() const { return m_localToB orderBoxTransform; } 70 const AffineTransform& localToBorderBoxTransform() const { return m_localToB orderBoxTransform; }
71 bool shouldApplyViewportClip() const;
71 72
72 private: 73 private:
73 virtual RenderObjectChildList* virtualChildren() OVERRIDE { return children( ); } 74 virtual RenderObjectChildList* virtualChildren() OVERRIDE { return children( ); }
74 virtual const RenderObjectChildList* virtualChildren() const OVERRIDE { retu rn children(); } 75 virtual const RenderObjectChildList* virtualChildren() const OVERRIDE { retu rn children(); }
75 76
76 virtual const char* renderName() const OVERRIDE { return "RenderSVGRoot"; } 77 virtual const char* renderName() const OVERRIDE { return "RenderSVGRoot"; }
77 virtual bool isSVGRoot() const OVERRIDE { return true; } 78 virtual bool isSVGRoot() const OVERRIDE { return true; }
78 virtual bool isSVG() const OVERRIDE { return true; } 79 virtual bool isSVG() const OVERRIDE { return true; }
79 80
80 virtual LayoutUnit computeReplacedLogicalWidth(ShouldComputePreferred = Com puteActual) const OVERRIDE; 81 virtual LayoutUnit computeReplacedLogicalWidth(ShouldComputePreferred = Com puteActual) const OVERRIDE;
(...skipping 21 matching lines...) Expand all
102 103
103 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const RenderLayer ModelObject* paintInvalidationContainer, const PaintInvalidationState* = 0) cons t OVERRIDE; 104 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const RenderLayer ModelObject* paintInvalidationContainer, const PaintInvalidationState* = 0) cons t OVERRIDE;
104 virtual void computeFloatRectForPaintInvalidation(const RenderLayerModelObje ct* paintInvalidationContainer, FloatRect& paintInvalidationRect, const PaintInv alidationState* = 0) const OVERRIDE; 105 virtual void computeFloatRectForPaintInvalidation(const RenderLayerModelObje ct* paintInvalidationContainer, FloatRect& paintInvalidationRect, const PaintInv alidationState* = 0) const OVERRIDE;
105 106
106 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const OVERRIDE; 107 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const OVERRIDE;
107 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE; 108 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE;
108 109
109 virtual bool canBeSelectionLeaf() const OVERRIDE { return false; } 110 virtual bool canBeSelectionLeaf() const OVERRIDE { return false; }
110 virtual bool canHaveChildren() const OVERRIDE { return true; } 111 virtual bool canHaveChildren() const OVERRIDE { return true; }
111 112
112 bool shouldApplyViewportClip() const;
113 void updateCachedBoundaries(); 113 void updateCachedBoundaries();
114 void buildLocalToBorderBoxTransform(); 114 void buildLocalToBorderBoxTransform();
115 115
116 RenderObjectChildList m_children; 116 RenderObjectChildList m_children;
117 IntSize m_containerSize; 117 IntSize m_containerSize;
118 FloatRect m_objectBoundingBox; 118 FloatRect m_objectBoundingBox;
119 bool m_objectBoundingBoxValid; 119 bool m_objectBoundingBoxValid;
120 FloatRect m_strokeBoundingBox; 120 FloatRect m_strokeBoundingBox;
121 FloatRect m_paintInvalidationBoundingBox; 121 FloatRect m_paintInvalidationBoundingBox;
122 mutable AffineTransform m_localToParentTransform; 122 mutable AffineTransform m_localToParentTransform;
123 AffineTransform m_localToBorderBoxTransform; 123 AffineTransform m_localToBorderBoxTransform;
124 bool m_isLayoutSizeChanged : 1; 124 bool m_isLayoutSizeChanged : 1;
125 bool m_needsBoundariesOrTransformUpdate : 1; 125 bool m_needsBoundariesOrTransformUpdate : 1;
126 bool m_hasBoxDecorationBackground : 1; 126 bool m_hasBoxDecorationBackground : 1;
127 }; 127 };
128 128
129 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderSVGRoot, isSVGRoot()); 129 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderSVGRoot, isSVGRoot());
130 130
131 } // namespace blink 131 } // namespace blink
132 132
133 #endif // RenderSVGRoot_h 133 #endif // RenderSVGRoot_h
OLDNEW
« no previous file with comments | « Source/core/rendering/svg/RenderSVGModelObject.cpp ('k') | Source/core/rendering/svg/SVGRenderSupport.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698