summaryrefslogtreecommitdiffstats
path: root/WebCore/svg/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/svg/graphics')
-rw-r--r--WebCore/svg/graphics/SVGImage.cpp2
-rw-r--r--WebCore/svg/graphics/SVGResource.h4
-rw-r--r--WebCore/svg/graphics/SVGResourceMasker.cpp99
-rw-r--r--WebCore/svg/graphics/SVGResourceMasker.h76
4 files changed, 2 insertions, 179 deletions
diff --git a/WebCore/svg/graphics/SVGImage.cpp b/WebCore/svg/graphics/SVGImage.cpp
index 348df4f..febfce8 100644
--- a/WebCore/svg/graphics/SVGImage.cpp
+++ b/WebCore/svg/graphics/SVGImage.cpp
@@ -215,7 +215,7 @@ NativeImagePtr SVGImage::nativeImageForCurrentFrame()
m_frameCache = ImageBuffer::create(size());
if (!m_frameCache) // failed to allocate image
return 0;
- renderSubtreeToImage(m_frameCache.get(), m_page->mainFrame()->contentRenderer());
+ draw(m_frameCache->context(), rect(), rect(), DeviceColorSpace, CompositeSourceOver);
}
return m_frameCache->image()->nativeImageForCurrentFrame();
}
diff --git a/WebCore/svg/graphics/SVGResource.h b/WebCore/svg/graphics/SVGResource.h
index 8f303b5..b231b89 100644
--- a/WebCore/svg/graphics/SVGResource.h
+++ b/WebCore/svg/graphics/SVGResource.h
@@ -45,10 +45,9 @@ namespace WebCore {
enum SVGResourceType {
// Painting mode
ClipperResourceType = 0,
- MarkerResourceType,
ImageResourceType,
FilterResourceType,
- MaskerResourceType,
+ MarkerResourceType,
PaintServerResourceType,
// For resource tracking we need to know how many types of resource there are
@@ -78,7 +77,6 @@ namespace WebCore {
bool isFilter() const { return resourceType() == FilterResourceType; }
bool isClipper() const { return resourceType() == ClipperResourceType; }
bool isMarker() const { return resourceType() == MarkerResourceType; }
- bool isMasker() const { return resourceType() == MaskerResourceType; }
virtual TextStream& externalRepresentation(TextStream&) const;
diff --git a/WebCore/svg/graphics/SVGResourceMasker.cpp b/WebCore/svg/graphics/SVGResourceMasker.cpp
deleted file mode 100644
index 18bc71a..0000000
--- a/WebCore/svg/graphics/SVGResourceMasker.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- * 2009 Dirk Schulze <krit@webkit.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(SVG)
-#include "SVGResourceMasker.h"
-
-#include "CanvasPixelArray.h"
-#include "Image.h"
-#include "ImageBuffer.h"
-#include "ImageData.h"
-#include "GraphicsContext.h"
-#include "RenderObject.h"
-#include "SVGMaskElement.h"
-#include "SVGRenderSupport.h"
-#include "SVGRenderStyle.h"
-#include "TextStream.h"
-
-using namespace std;
-
-namespace WebCore {
-
-SVGResourceMasker::SVGResourceMasker(const SVGMaskElement* ownerElement)
- : SVGResource()
- , m_ownerElement(ownerElement)
- , m_emptyMask(false)
-{
-}
-
-SVGResourceMasker::~SVGResourceMasker()
-{
-}
-
-void SVGResourceMasker::invalidate()
-{
- SVGResource::invalidate();
- m_mask.clear();
- m_emptyMask = false;
-}
-
-FloatRect SVGResourceMasker::maskerBoundingBox(const FloatRect& objectBoundingBox) const
-{
- return m_ownerElement->maskBoundingBox(objectBoundingBox);
-}
-
-bool SVGResourceMasker::applyMask(GraphicsContext* context, const RenderObject* object)
-{
- if (!m_mask && !m_emptyMask)
- m_mask = m_ownerElement->drawMaskerContent(object, m_maskRect, m_emptyMask);
-
- if (!m_mask)
- return false;
-
- context->clipToImageBuffer(m_maskRect, m_mask.get());
- return true;
-}
-
-TextStream& SVGResourceMasker::externalRepresentation(TextStream& ts) const
-{
- ts << "[type=MASKER]";
- return ts;
-}
-
-SVGResourceMasker* getMaskerById(Document* document, const AtomicString& id, const RenderObject* object)
-{
- SVGResource* resource = getResourceById(document, id, object);
- if (resource && resource->isMasker())
- return static_cast<SVGResourceMasker*>(resource);
-
- return 0;
-}
-
-} // namespace WebCore
-
-#endif
diff --git a/WebCore/svg/graphics/SVGResourceMasker.h b/WebCore/svg/graphics/SVGResourceMasker.h
deleted file mode 100644
index 27364c2..0000000
--- a/WebCore/svg/graphics/SVGResourceMasker.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef SVGResourceMasker_h
-#define SVGResourceMasker_h
-
-#if ENABLE(SVG)
-
-#include "GraphicsContext.h"
-#include "RenderObject.h"
-#include "SVGMaskElement.h"
-#include "SVGResource.h"
-
-#include <memory>
-
-#include <wtf/OwnPtr.h>
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
- class FloatRect;
- class ImageBuffer;
- class SVGMaskElement;
-
- class SVGResourceMasker : public SVGResource {
- public:
- static PassRefPtr<SVGResourceMasker> create(const SVGMaskElement* ownerElement) { return adoptRef(new SVGResourceMasker(ownerElement)); }
- virtual ~SVGResourceMasker();
-
- virtual void invalidate();
-
- virtual SVGResourceType resourceType() const { return MaskerResourceType; }
- virtual TextStream& externalRepresentation(TextStream&) const;
-
- FloatRect maskerBoundingBox(const FloatRect&) const;
- bool applyMask(GraphicsContext*, const RenderObject*);
-
- private:
- SVGResourceMasker(const SVGMaskElement*);
-
- const SVGMaskElement* m_ownerElement;
-
- OwnPtr<ImageBuffer> m_mask;
- FloatRect m_maskRect;
- bool m_emptyMask;
- };
-
- SVGResourceMasker* getMaskerById(Document*, const AtomicString&, const RenderObject* object);
-
-} // namespace WebCore
-
-#endif
-
-#endif // SVGResourceMasker_h