Index: Source/core/rendering/PaintInvalidationState.h |
diff --git a/Source/core/rendering/PaintInvalidationState.h b/Source/core/rendering/PaintInvalidationState.h |
index dcca3932f86641d1850efd77b6424936e3a584f3..7eb8f4c8f6134327bd7b754f61b9c502ffbd5462 100644 |
--- a/Source/core/rendering/PaintInvalidationState.h |
+++ b/Source/core/rendering/PaintInvalidationState.h |
@@ -6,23 +6,27 @@ |
#define PaintInvalidationState_h |
#include "platform/geometry/LayoutRect.h" |
+#include "platform/transforms/AffineTransform.h" |
#include "wtf/Noncopyable.h" |
namespace blink { |
class RenderLayerModelObject; |
class RenderObject; |
+class RenderSVGModelObject; |
class RenderView; |
class PaintInvalidationState { |
WTF_MAKE_NONCOPYABLE(PaintInvalidationState); |
public: |
PaintInvalidationState(const PaintInvalidationState& next, RenderLayerModelObject& renderer, const RenderLayerModelObject& paintInvalidationContainer); |
+ PaintInvalidationState(const PaintInvalidationState& next, const RenderSVGModelObject& renderer); |
explicit PaintInvalidationState(const RenderView&); |
const LayoutRect& clipRect() const { return m_clipRect; } |
const LayoutSize& paintOffset() const { return m_paintOffset; } |
+ const AffineTransform& svgTransform() const { return m_svgTransform; } |
bool cachedOffsetsEnabled() const { return m_cachedOffsetsEnabled; } |
bool isClipped() const { return m_clipped; } |
@@ -38,6 +42,7 @@ public: |
} |
private: |
void applyClipIfNeeded(const RenderObject&); |
+ void addClipRectRelativeToPaintOffset(const LayoutSize& clipSize); |
friend class ForceHorriblySlowRectMapping; |
@@ -51,6 +56,11 @@ private: |
LayoutSize m_paintOffset; |
const RenderLayerModelObject& m_paintInvalidationContainer; |
+ |
+ // Transform from the initial viewport coordinate system of an outermost |
+ // SVG root to the userspace _before_ the relevant element. Combining this |
+ // with |m_paintOffset| yields the "final" offset. |
+ AffineTransform m_svgTransform; |
pdr.
2014/09/25 05:38:59
Could we use an OwnPtr here to lazily allocate thi
fs
2014/09/25 12:17:53
Yes, I suppose that could be a reasonable compromi
|
}; |
} // namespace blink |