diff options
Diffstat (limited to 'Source/WebCore/html/canvas/DOMPath.h')
-rw-r--r-- | Source/WebCore/html/canvas/DOMPath.h | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/Source/WebCore/html/canvas/DOMPath.h b/Source/WebCore/html/canvas/DOMPath.h index 6358e4602..0bbff134f 100644 --- a/Source/WebCore/html/canvas/DOMPath.h +++ b/Source/WebCore/html/canvas/DOMPath.h @@ -25,46 +25,49 @@ * SUCH DAMAGE. */ -#ifndef DOMPath_h -#define DOMPath_h +#pragma once -#if ENABLE(CANVAS_PATH) - -#include "CanvasPathMethods.h" -#include <wtf/PassRefPtr.h> -#include <wtf/RefCounted.h> - -#if ENABLE(SVG) +#include "CanvasPath.h" +#include "SVGMatrix.h" #include "SVGPathUtilities.h" -#endif +#include <wtf/RefCounted.h> namespace WebCore { -class DOMPath : public RefCounted<DOMPath>, public CanvasPathMethods { +class WEBCORE_EXPORT DOMPath final : public RefCounted<DOMPath>, public CanvasPath { WTF_MAKE_FAST_ALLOCATED; public: - static PassRefPtr<DOMPath> create() { return adoptRef(new DOMPath); } - static PassRefPtr<DOMPath> create(const Path& path) { return adoptRef(new DOMPath(path)); } - static PassRefPtr<DOMPath> create(const DOMPath* path) { return create(path->path()); } + virtual ~DOMPath(); -#if ENABLE(SVG) - static PassRefPtr<DOMPath> create(const String& pathData) + static Ref<DOMPath> create() { return adoptRef(*new DOMPath); } + static Ref<DOMPath> create(const Path& path) { return adoptRef(*new DOMPath(path)); } + static Ref<DOMPath> create(const DOMPath& path) { return create(path.path()); } + + static Ref<DOMPath> create(const String& pathData) { Path path; buildPathFromString(pathData, path); return create(path); } + +#if ENABLE(CANVAS_PATH) + void addPath(const DOMPath* path) { addPath(path, AffineTransform()); } + void addPath(const DOMPath* path, SVGMatrix& matrix) { addPath(path, matrix.propertyReference()); } + void addPath(const DOMPath* path, const AffineTransform& transform) + { + if (!path || !transform.isInvertible()) + return; + m_path.addPath(path->path(), transform); + } #endif const Path& path() const { return m_path; } private: DOMPath() { } - DOMPath(const Path& path) : CanvasPathMethods(path) { } + DOMPath(const Path& path) + : CanvasPath(path) + { } }; -} - -#endif - -#endif +} // namespace WebCore |