2010-04-20 Dirk Schulze <krit@webkit.org>
[WebKit-https.git] / WebCore / svg / SVGFEDiffuseLightingElement.h
index 4d038b3..f12dfad 100644 (file)
 #ifndef SVGFEDiffuseLightingElement_h
 #define SVGFEDiffuseLightingElement_h
 
-#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
+#if ENABLE(SVG) && ENABLE(FILTERS)
+#include "SVGFELightElement.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore {
-    class SVGFEDiffuseLighting;
-    class SVGColor;
-
-    class SVGFEDiffuseLightingElement : public SVGFilterPrimitiveStandardAttributes
-    {
-    public:
-        SVGFEDiffuseLightingElement(const QualifiedName&, Document*);
-        virtual ~SVGFEDiffuseLightingElement();
-
-        virtual void parseMappedAttribute(MappedAttribute*);
-        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
-
-    protected:
-        virtual const SVGElement* contextElement() const { return this; }
-
-    private:
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, String, String, In1, in1)
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, float, DiffuseConstant, diffuseConstant)
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, float, SurfaceScale, surfaceScale)
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, float, KernelUnitLengthX, kernelUnitLengthX)
-        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, float, KernelUnitLengthY, kernelUnitLengthY)
-
-        mutable SVGFEDiffuseLighting* m_filterEffect;
-        
-        void updateLights() const;
-    };
+
+extern char SVGKernelUnitLengthXIdentifier[];
+extern char SVGKernelUnitLengthYIdentifier[];
+
+class FEDiffuseLighting;
+class SVGColor;
+
+class SVGFEDiffuseLightingElement : public SVGFilterPrimitiveStandardAttributes {
+public:
+    SVGFEDiffuseLightingElement(const QualifiedName&, Document*);
+    virtual ~SVGFEDiffuseLightingElement();
+
+    virtual void parseMappedAttribute(MappedAttribute*);
+    virtual void synchronizeProperty(const QualifiedName&);
+    virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*);
+
+private:
+    DECLARE_ANIMATED_PROPERTY(SVGFEDiffuseLightingElement, SVGNames::inAttr, String, In1, in1)
+    DECLARE_ANIMATED_PROPERTY(SVGFEDiffuseLightingElement, SVGNames::diffuseConstantAttr, float, DiffuseConstant, diffuseConstant)
+    DECLARE_ANIMATED_PROPERTY(SVGFEDiffuseLightingElement, SVGNames::surfaceScaleAttr, float, SurfaceScale, surfaceScale)
+    DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFEDiffuseLightingElement, SVGNames::kernelUnitLengthAttr, SVGKernelUnitLengthXIdentifier, float, KernelUnitLengthX, kernelUnitLengthX)
+    DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFEDiffuseLightingElement, SVGNames::kernelUnitLengthAttr, SVGKernelUnitLengthYIdentifier, float, KernelUnitLengthY, kernelUnitLengthY)
+
+    PassRefPtr<LightSource> findLights() const;
+};
 
 } // namespace WebCore