diff options
Diffstat (limited to 'WebCore/svg/SVGFilterElement.h')
-rw-r--r-- | WebCore/svg/SVGFilterElement.h | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/WebCore/svg/SVGFilterElement.h b/WebCore/svg/SVGFilterElement.h index 836c689..c89352b 100644 --- a/WebCore/svg/SVGFilterElement.h +++ b/WebCore/svg/SVGFilterElement.h @@ -23,6 +23,7 @@ #define SVGFilterElement_h #if ENABLE(SVG) && ENABLE(FILTERS) +#include "RenderObject.h" #include "SVGResourceFilter.h" #include "SVGExternalResourcesRequired.h" #include "SVGLangSpace.h" @@ -34,6 +35,8 @@ namespace WebCore { extern char SVGFilterResXIdentifier[]; extern char SVGFilterResYIdentifier[]; + class SVGResourceFilter; + class SVGFilterElement : public SVGStyledElement, public SVGURIReference, public SVGLangSpace, @@ -42,35 +45,35 @@ namespace WebCore { SVGFilterElement(const QualifiedName&, Document*); virtual ~SVGFilterElement(); - virtual SVGResource* canvasResource(); + virtual SVGResource* canvasResource(const RenderObject*); void setFilterRes(unsigned long filterResX, unsigned long filterResY) const; virtual void parseMappedAttribute(MappedAttribute*); + virtual void synchronizeProperty(const QualifiedName&); virtual bool rendererIsNeeded(RenderStyle*) { return false; } private: - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::filterUnitsAttrString, int, FilterUnits, filterUnits) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::primitiveUnitsAttrString, int, PrimitiveUnits, primitiveUnits) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::xAttrString, SVGLength, X, x) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::yAttrString, SVGLength, Y, y) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::widthAttrString, SVGLength, Width, width) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::heightAttrString, SVGLength, Height, height) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGFilterResXIdentifier, long, FilterResX, filterResX) - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGFilterResYIdentifier, long, FilterResY, filterResY) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::filterUnitsAttr, int, FilterUnits, filterUnits) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::primitiveUnitsAttr, int, PrimitiveUnits, primitiveUnits) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::xAttr, SVGLength, X, x) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::yAttr, SVGLength, Y, y) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::widthAttr, SVGLength, Width, width) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::heightAttr, SVGLength, Height, height) + DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, SVGFilterResXIdentifier, long, FilterResX, filterResX) + DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, SVGFilterResYIdentifier, long, FilterResY, filterResY) // SVGURIReference - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGURIReferenceIdentifier, XLinkNames::hrefAttrString, String, Href, href) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, XLinkNames::hrefAttr, String, Href, href) // SVGExternalResourcesRequired - ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGExternalResourcesRequiredIdentifier, - SVGNames::externalResourcesRequiredAttrString, bool, - ExternalResourcesRequired, externalResourcesRequired) + DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired) mutable RefPtr<SVGResourceFilter> m_filter; private: friend class SVGResourceFilter; + FloatRect filterBoundingBox(const FloatRect&) const; void buildFilter(const FloatRect& targetRect) const; }; |