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

Unified Diff: Source/core/rendering/svg/SVGRenderingContext.h

Issue 23643003: ImageBuffer-less SVG masking and clipping. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix the Win build. Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/svg/SVGRenderingContext.h
diff --git a/Source/core/rendering/svg/SVGRenderingContext.h b/Source/core/rendering/svg/SVGRenderingContext.h
index 830f0de19ac506ba6b1c55716d824fba6a2df093..3bc88c1e0eb16a3fd242643ba7c9af03efc7ddb4 100644
--- a/Source/core/rendering/svg/SVGRenderingContext.h
+++ b/Source/core/rendering/svg/SVGRenderingContext.h
@@ -33,7 +33,9 @@ namespace WebCore {
class AffineTransform;
class RenderObject;
class FloatRect;
+class RenderSVGResourceClipper;
class RenderSVGResourceFilter;
+class RenderSVGResourceMasker;
// SVGRenderingContext
class SVGRenderingContext {
@@ -50,6 +52,8 @@ public:
, m_paintInfo(0)
, m_savedContext(0)
, m_filter(0)
+ , m_clipper(0)
+ , m_masker(0)
{
}
@@ -59,6 +63,8 @@ public:
, m_paintInfo(0)
, m_savedContext(0)
, m_filter(0)
+ , m_clipper(0)
+ , m_masker(0)
{
prepareToRenderSVGContent(object, paintinfo, needsGraphicsContextSave);
}
@@ -74,8 +80,7 @@ public:
// Patterns need a different float-to-integer coordinate mapping.
static bool createImageBufferForPattern(const FloatRect& absoluteTargetRect, const FloatRect& clampedAbsoluteTargetRect, OwnPtr<ImageBuffer>&, RenderingMode);
- static void renderSubtreeToImageBuffer(ImageBuffer*, RenderObject*, const AffineTransform&);
- static void clipToImageBuffer(GraphicsContext*, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>&, bool safeToClear);
+ static void renderSubtree(GraphicsContext*, RenderObject*, const AffineTransform&);
static float calculateScreenFontSizeScalingFactor(const RenderObject*);
static void calculateTransformationToOutermostCoordinateSystem(const RenderObject*, AffineTransform& absoluteTransform);
@@ -97,12 +102,12 @@ private:
RenderingPrepared = 1,
RestoreGraphicsContext = 1 << 1,
EndOpacityLayer = 1 << 2,
- EndFilterLayer = 1 << 3,
+ PostApplyResources = 1 << 3,
PrepareToRenderSVGContentWasCalled = 1 << 4
};
// List of those flags which require actions during the destructor.
- const static int ActionsNeeded = RestoreGraphicsContext | EndOpacityLayer | EndFilterLayer;
+ const static int ActionsNeeded = RestoreGraphicsContext | EndOpacityLayer | PostApplyResources;
int m_renderingFlags;
RenderObject* m_object;
@@ -110,6 +115,8 @@ private:
GraphicsContext* m_savedContext;
IntRect m_savedPaintRect;
RenderSVGResourceFilter* m_filter;
+ RenderSVGResourceClipper* m_clipper;
+ RenderSVGResourceMasker* m_masker;
};
} // namespace WebCore
« no previous file with comments | « Source/core/rendering/svg/RenderSVGResourcePattern.cpp ('k') | Source/core/rendering/svg/SVGRenderingContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698