diff options
author | Ben Murdoch <benm@google.com> | 2011-05-13 16:23:25 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-16 11:35:02 +0100 |
commit | 65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch) | |
tree | f478babb801e720de7bfaee23443ffe029f58731 /Source/WebCore/rendering/RenderSVGResourceClipper.h | |
parent | 47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff) | |
download | external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2 |
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Source/WebCore/rendering/RenderSVGResourceClipper.h')
-rw-r--r-- | Source/WebCore/rendering/RenderSVGResourceClipper.h | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/Source/WebCore/rendering/RenderSVGResourceClipper.h b/Source/WebCore/rendering/RenderSVGResourceClipper.h deleted file mode 100644 index 20153e9..0000000 --- a/Source/WebCore/rendering/RenderSVGResourceClipper.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef RenderSVGResourceClipper_h -#define RenderSVGResourceClipper_h - -#if ENABLE(SVG) -#include "FloatRect.h" -#include "GraphicsContext.h" -#include "ImageBuffer.h" -#include "IntSize.h" -#include "Path.h" -#include "RenderSVGResourceContainer.h" -#include "SVGClipPathElement.h" -#include "SVGUnitTypes.h" - -#include <wtf/HashMap.h> -#include <wtf/OwnPtr.h> - -namespace WebCore { - -struct ClipperData : FastAllocBase { - OwnPtr<ImageBuffer> clipMaskImage; -}; - -class RenderSVGResourceClipper : public RenderSVGResourceContainer { -public: - RenderSVGResourceClipper(SVGClipPathElement*); - virtual ~RenderSVGResourceClipper(); - - virtual const char* renderName() const { return "RenderSVGResourceClipper"; } - - virtual void removeAllClientsFromCache(bool markForInvalidation = true); - virtual void removeClientFromCache(RenderObject*, bool markForInvalidation = true); - - virtual bool applyResource(RenderObject*, RenderStyle*, GraphicsContext*&, unsigned short resourceMode); - virtual FloatRect resourceBoundingBox(RenderObject*); - - virtual RenderSVGResourceType resourceType() const { return ClipperResourceType; } - - bool hitTestClipContent(const FloatRect&, const FloatPoint&); - - SVGUnitTypes::SVGUnitType clipPathUnits() const { return toUnitType(static_cast<SVGClipPathElement*>(node())->clipPathUnits()); } - - static RenderSVGResourceType s_resourceType; -private: - // clipPath can be clipped too, but don't have a boundingBox or repaintRect. So we can't call - // applyResource directly and use the rects from the object, since they are empty for RenderSVGResources - bool applyClippingToContext(RenderObject*, const FloatRect&, const FloatRect&, GraphicsContext*); - bool pathOnlyClipping(GraphicsContext*, const FloatRect&); - bool drawContentIntoMaskImage(ClipperData*, const FloatRect& objectBoundingBox); - void calculateClipContentRepaintRect(); - - bool m_invalidationBlocked; - FloatRect m_clipBoundaries; - HashMap<RenderObject*, ClipperData*> m_clipper; -}; - -} - -#endif -#endif |