diff options
Diffstat (limited to 'WebCore/svg/graphics')
-rw-r--r-- | WebCore/svg/graphics/SVGImage.cpp | 2 | ||||
-rw-r--r-- | WebCore/svg/graphics/SVGResource.h | 4 | ||||
-rw-r--r-- | WebCore/svg/graphics/SVGResourceMasker.cpp | 99 | ||||
-rw-r--r-- | WebCore/svg/graphics/SVGResourceMasker.h | 76 |
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 |