Changeset 35094 in webkit


Ignore:
Timestamp:
Jul 10, 2008 12:12:23 AM (16 years ago)
Author:
oliver@apple.com
Message:

2008-07-09 Alex Mathews <possessedpenguinbob@gmail.com>

Reviewed by Oliver Hunt.

bug 19835: WebKit needs cross-platform filter system
<https://bugs.webkit.org/show_bug.cgi?id=19835>

More class refactoring in preparation for cross-platform filter
implementation.

Location:
trunk/WebCore
Files:
9 deleted
60 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r35089 r35094  
     12008-07-09  Alex Mathews  <possessedpenguinbob@gmail.com>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        bug 19835: WebKit needs cross-platform filter system
     6        <https://bugs.webkit.org/show_bug.cgi?id=19835>
     7
     8        More class refactoring in preparation for cross-platform filter
     9        implementation.
     10
     11        * WebCore.xcodeproj/project.pbxproj:
     12        * rendering/SVGRenderTreeAsText.h:
     13        (WebCore::operator<<):
     14        * svg/FilterEffect.cpp:
     15        (WebCore::FilterEffect::externalRepresentation):
     16        * svg/FilterEffect.h:
     17        * svg/SVGFEBlendElement.cpp:
     18        (WebCore::SVGFEBlendElement::build):
     19        * svg/SVGFEBlendElement.h:
     20        * svg/SVGFEColorMatrixElement.cpp:
     21        (WebCore::SVGFEColorMatrixElement::build):
     22        * svg/SVGFEColorMatrixElement.h:
     23        * svg/SVGFEComponentTransferElement.cpp:
     24        (WebCore::SVGFEComponentTransferElement::build):
     25        * svg/SVGFEComponentTransferElement.h:
     26        * svg/SVGFECompositeElement.cpp:
     27        (WebCore::SVGFECompositeElement::build):
     28        * svg/SVGFECompositeElement.h:
     29        * svg/SVGFEDiffuseLightingElement.cpp:
     30        (WebCore::SVGFEDiffuseLightingElement::filterEffect):
     31        (WebCore::SVGFEDiffuseLightingElement::build):
     32        (WebCore::SVGFEDiffuseLightingElement::findLights):
     33        * svg/SVGFEDiffuseLightingElement.h:
     34        * svg/SVGFEDisplacementMapElement.cpp:
     35        (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
     36        (WebCore::SVGFEDisplacementMapElement::stringToChannel):
     37        (WebCore::SVGFEDisplacementMapElement::filterEffect):
     38        (WebCore::SVGFEDisplacementMapElement::build):
     39        * svg/SVGFEDisplacementMapElement.h:
     40        * svg/SVGFEFloodElement.cpp:
     41        (WebCore::SVGFEFloodElement::filterEffect):
     42        (WebCore::SVGFEFloodElement::build):
     43        * svg/SVGFEFloodElement.h:
     44        (WebCore::SVGFEFloodElement::contextElement):
     45        * svg/SVGFEGaussianBlurElement.cpp:
     46        (WebCore::SVGFEGaussianBlurElement::filterEffect):
     47        (WebCore::SVGFEGaussianBlurElement::build):
     48        * svg/SVGFEGaussianBlurElement.h:
     49        * svg/SVGFEImageElement.cpp:
     50        (WebCore::SVGFEImageElement::filterEffect):
     51        (WebCore::SVGFEImageElement::build):
     52        * svg/SVGFEImageElement.h:
     53        * svg/SVGFEMergeElement.cpp:
     54        (WebCore::SVGFEMergeElement::filterEffect):
     55        (WebCore::SVGFEMergeElement::build):
     56        * svg/SVGFEMergeElement.h:
     57        (WebCore::SVGFEMergeElement::contextElement):
     58        * svg/SVGFEOffsetElement.cpp:
     59        (WebCore::SVGFEOffsetElement::filterEffect):
     60        (WebCore::SVGFEOffsetElement::build):
     61        * svg/SVGFEOffsetElement.h:
     62        * svg/SVGFESpecularLightingElement.cpp:
     63        (WebCore::SVGFESpecularLightingElement::filterEffect):
     64        (WebCore::SVGFESpecularLightingElement::findLights):
     65        (WebCore::SVGFESpecularLightingElement::build):
     66        * svg/SVGFESpecularLightingElement.h:
     67        * svg/SVGFETileElement.cpp:
     68        (WebCore::SVGFETileElement::filterEffect):
     69        (WebCore::SVGFETileElement::build):
     70        * svg/SVGFETileElement.h:
     71        * svg/SVGFETurbulenceElement.cpp:
     72        (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
     73        (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
     74        (WebCore::SVGFETurbulenceElement::filterEffect):
     75        (WebCore::SVGFETurbulenceElement::build):
     76        * svg/SVGFETurbulenceElement.h:
     77        * svg/SVGFilterPrimitiveStandardAttributes.h:
     78        * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
     79        (WebCore::FEConvolveMatrix::FEConvolveMatrix):
     80        (WebCore::FEConvolveMatrix::create):
     81        (WebCore::FEConvolveMatrix::kernelSize):
     82        (WebCore::FEConvolveMatrix::setKernelSize):
     83        (WebCore::FEConvolveMatrix::kernel):
     84        (WebCore::FEConvolveMatrix::setKernel):
     85        (WebCore::FEConvolveMatrix::divisor):
     86        (WebCore::FEConvolveMatrix::setDivisor):
     87        (WebCore::FEConvolveMatrix::bias):
     88        (WebCore::FEConvolveMatrix::setBias):
     89        (WebCore::FEConvolveMatrix::targetOffset):
     90        (WebCore::FEConvolveMatrix::setTargetOffset):
     91        (WebCore::FEConvolveMatrix::edgeMode):
     92        (WebCore::FEConvolveMatrix::setEdgeMode):
     93        (WebCore::FEConvolveMatrix::kernelUnitLength):
     94        (WebCore::FEConvolveMatrix::setKernelUnitLength):
     95        (WebCore::FEConvolveMatrix::preserveAlpha):
     96        (WebCore::FEConvolveMatrix::setPreserveAlpha):
     97        (WebCore::FEConvolveMatrix::apply):
     98        (WebCore::FEConvolveMatrix::dump):
     99        (WebCore::operator<<):
     100        (WebCore::FEConvolveMatrix::externalRepresentation):
     101        * svg/graphics/filters/SVGFEConvolveMatrix.h:
     102        (WebCore::):
     103        * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
     104        (WebCore::FEDiffuseLighting::FEDiffuseLighting):
     105        (WebCore::FEDiffuseLighting::create):
     106        (WebCore::FEDiffuseLighting::~FEDiffuseLighting):
     107        (WebCore::FEDiffuseLighting::lightingColor):
     108        (WebCore::FEDiffuseLighting::setLightingColor):
     109        (WebCore::FEDiffuseLighting::surfaceScale):
     110        (WebCore::FEDiffuseLighting::setSurfaceScale):
     111        (WebCore::FEDiffuseLighting::diffuseConstant):
     112        (WebCore::FEDiffuseLighting::setDiffuseConstant):
     113        (WebCore::FEDiffuseLighting::kernelUnitLengthX):
     114        (WebCore::FEDiffuseLighting::setKernelUnitLengthX):
     115        (WebCore::FEDiffuseLighting::kernelUnitLengthY):
     116        (WebCore::FEDiffuseLighting::setKernelUnitLengthY):
     117        (WebCore::FEDiffuseLighting::lightSource):
     118        (WebCore::FEDiffuseLighting::setLightSource):
     119        (WebCore::FEDiffuseLighting::apply):
     120        (WebCore::FEDiffuseLighting::dump):
     121        (WebCore::FEDiffuseLighting::externalRepresentation):
     122        * svg/graphics/filters/SVGFEDiffuseLighting.h:
     123        * svg/graphics/filters/SVGFEDisplacementMap.cpp:
     124        (WebCore::FEDisplacementMap::FEDisplacementMap):
     125        (WebCore::FEDisplacementMap::create):
     126        (WebCore::FEDisplacementMap::xChannelSelector):
     127        (WebCore::FEDisplacementMap::setXChannelSelector):
     128        (WebCore::FEDisplacementMap::yChannelSelector):
     129        (WebCore::FEDisplacementMap::setYChannelSelector):
     130        (WebCore::FEDisplacementMap::scale):
     131        (WebCore::FEDisplacementMap::setScale):
     132        (WebCore::FEDisplacementMap::apply):
     133        (WebCore::FEDisplacementMap::dump):
     134        (WebCore::operator<<):
     135        (WebCore::FEDisplacementMap::externalRepresentation):
     136        * svg/graphics/filters/SVGFEDisplacementMap.h:
     137        (WebCore::):
     138        * svg/graphics/filters/SVGFEFlood.cpp:
     139        (WebCore::FEFlood::FEFlood):
     140        (WebCore::FEFlood::create):
     141        (WebCore::FEFlood::floodColor):
     142        (WebCore::FEFlood::setFloodColor):
     143        (WebCore::FEFlood::floodOpacity):
     144        (WebCore::FEFlood::setFloodOpacity):
     145        (WebCore::FEFlood::apply):
     146        (WebCore::FEFlood::dump):
     147        (WebCore::FEFlood::externalRepresentation):
     148        * svg/graphics/filters/SVGFEFlood.h:
     149        * svg/graphics/filters/SVGFEGaussianBlur.cpp:
     150        (WebCore::FEGaussianBlur::FEGaussianBlur):
     151        (WebCore::FEGaussianBlur::create):
     152        (WebCore::FEGaussianBlur::stdDeviationX):
     153        (WebCore::FEGaussianBlur::setStdDeviationX):
     154        (WebCore::FEGaussianBlur::stdDeviationY):
     155        (WebCore::FEGaussianBlur::setStdDeviationY):
     156        (WebCore::FEGaussianBlur::apply):
     157        (WebCore::FEGaussianBlur::dump):
     158        (WebCore::FEGaussianBlur::externalRepresentation):
     159        * svg/graphics/filters/SVGFEGaussianBlur.h:
     160        * svg/graphics/filters/SVGFEImage.cpp:
     161        (WebCore::FEImage::FEImage):
     162        (WebCore::FEImage::create):
     163        (WebCore::FEImage::~FEImage):
     164        (WebCore::FEImage::cachedImage):
     165        (WebCore::FEImage::apply):
     166        (WebCore::FEImage::dump):
     167        (WebCore::FEImage::externalRepresentation):
     168        * svg/graphics/filters/SVGFEImage.h:
     169        * svg/graphics/filters/SVGFEMerge.cpp:
     170        (WebCore::FEMerge::FEMerge):
     171        (WebCore::FEMerge::create):
     172        (WebCore::FEMerge::mergeInputs):
     173        (WebCore::FEMerge::setMergeInputs):
     174        (WebCore::FEMerge::apply):
     175        (WebCore::FEMerge::dump):
     176        (WebCore::FEMerge::externalRepresentation):
     177        * svg/graphics/filters/SVGFEMerge.h:
     178        * svg/graphics/filters/SVGFEMorphology.cpp:
     179        (WebCore::FEMorphology::FEMorphology):
     180        (WebCore::FEMorphology::create):
     181        (WebCore::FEMorphology::morphologyOperator):
     182        (WebCore::FEMorphology::setMorphologyOperator):
     183        (WebCore::FEMorphology::radiusX):
     184        (WebCore::FEMorphology::setRadiusX):
     185        (WebCore::FEMorphology::radiusY):
     186        (WebCore::FEMorphology::setRadiusY):
     187        (WebCore::FEMorphology::apply):
     188        (WebCore::FEMorphology::dump):
     189        (WebCore::operator<<):
     190        (WebCore::FEMorphology::externalRepresentation):
     191        * svg/graphics/filters/SVGFEMorphology.h:
     192        (WebCore::):
     193        * svg/graphics/filters/SVGFEOffset.cpp:
     194        (WebCore::FEOffset::FEOffset):
     195        (WebCore::FEOffset::create):
     196        (WebCore::FEOffset::dx):
     197        (WebCore::FEOffset::setDx):
     198        (WebCore::FEOffset::dy):
     199        (WebCore::FEOffset::setDy):
     200        (WebCore::FEOffset::apply):
     201        (WebCore::FEOffset::dump):
     202        (WebCore::FEOffset::externalRepresentation):
     203        * svg/graphics/filters/SVGFEOffset.h:
     204        * svg/graphics/filters/SVGFESpecularLighting.cpp:
     205        (WebCore::FESpecularLighting::FESpecularLighting):
     206        (WebCore::FESpecularLighting::create):
     207        (WebCore::FESpecularLighting::~FESpecularLighting):
     208        (WebCore::FESpecularLighting::lightingColor):
     209        (WebCore::FESpecularLighting::setLightingColor):
     210        (WebCore::FESpecularLighting::surfaceScale):
     211        (WebCore::FESpecularLighting::setSurfaceScale):
     212        (WebCore::FESpecularLighting::specularConstant):
     213        (WebCore::FESpecularLighting::setSpecularConstant):
     214        (WebCore::FESpecularLighting::specularExponent):
     215        (WebCore::FESpecularLighting::setSpecularExponent):
     216        (WebCore::FESpecularLighting::kernelUnitLengthX):
     217        (WebCore::FESpecularLighting::setKernelUnitLengthX):
     218        (WebCore::FESpecularLighting::kernelUnitLengthY):
     219        (WebCore::FESpecularLighting::setKernelUnitLengthY):
     220        (WebCore::FESpecularLighting::lightSource):
     221        (WebCore::FESpecularLighting::setLightSource):
     222        (WebCore::FESpecularLighting::apply):
     223        (WebCore::FESpecularLighting::dump):
     224        (WebCore::FESpecularLighting::externalRepresentation):
     225        * svg/graphics/filters/SVGFESpecularLighting.h:
     226        * svg/graphics/filters/SVGFETile.cpp:
     227        (WebCore::FETile::FETile):
     228        (WebCore::FETile::create):
     229        (WebCore::FETile::apply):
     230        (WebCore::FETile::dump):
     231        (WebCore::FETile::externalRepresentation):
     232        * svg/graphics/filters/SVGFETile.h:
     233        * svg/graphics/filters/SVGFETurbulence.cpp:
     234        (WebCore::FETurbulence::FETurbulence):
     235        (WebCore::FETurbulence::create):
     236        (WebCore::FETurbulence::type):
     237        (WebCore::FETurbulence::setType):
     238        (WebCore::FETurbulence::baseFrequencyY):
     239        (WebCore::FETurbulence::setBaseFrequencyY):
     240        (WebCore::FETurbulence::baseFrequencyX):
     241        (WebCore::FETurbulence::setBaseFrequencyX):
     242        (WebCore::FETurbulence::seed):
     243        (WebCore::FETurbulence::setSeed):
     244        (WebCore::FETurbulence::numOctaves):
     245        (WebCore::FETurbulence::setNumOctaves):
     246        (WebCore::FETurbulence::stitchTiles):
     247        (WebCore::FETurbulence::setStitchTiles):
     248        (WebCore::FETurbulence::apply):
     249        (WebCore::FETurbulence::dump):
     250        (WebCore::operator<<):
     251        (WebCore::FETurbulence::externalRepresentation):
     252        * svg/graphics/filters/SVGFETurbulence.h:
     253        (WebCore::):
     254        * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
     255        * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
     256        * svg/graphics/filters/cg/SVGFEFloodCg.mm:
     257        * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
     258        * svg/graphics/filters/cg/SVGFEHelpersCg.h:
     259        * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
     260        (WebCore::getVectorForChannel):
     261        * svg/graphics/filters/cg/SVGFEImageCg.mm:
     262        * svg/graphics/filters/cg/SVGFEMergeCg.mm:
     263        * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
     264        * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
     265        * svg/graphics/filters/cg/SVGFETileCg.mm:
     266
    12672008-07-09  Mark Rowe  <mrowe@apple.com>
    2268
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r35084 r35094  
    30163016                B25599350D00D8BA00BB825C /* SVGResourceFilterCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598990D00D8B800BB825C /* SVGResourceFilterCg.mm */; };
    30173017                B25599370D00D8BA00BB825C /* SVGResourceMaskerCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B255989B0D00D8B800BB825C /* SVGResourceMaskerCg.mm */; };
    3018                 B255993C0D00D8BA00BB825C /* SVGFEDiffuseLightingCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A20D00D8B800BB825C /* SVGFEDiffuseLightingCg.mm */; };
    3019                 B255993D0D00D8BA00BB825C /* SVGFEDisplacementMapCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A30D00D8B800BB825C /* SVGFEDisplacementMapCg.mm */; };
    3020                 B255993E0D00D8BA00BB825C /* SVGFEFloodCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A40D00D8B800BB825C /* SVGFEFloodCg.mm */; };
    3021                 B255993F0D00D8BA00BB825C /* SVGFEGaussianBlurCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A50D00D8B800BB825C /* SVGFEGaussianBlurCg.mm */; };
    30223018                B25599400D00D8BA00BB825C /* SVGFEHelpersCg.h in Headers */ = {isa = PBXBuildFile; fileRef = B25598A60D00D8B800BB825C /* SVGFEHelpersCg.h */; };
    30233019                B25599410D00D8BA00BB825C /* SVGFEHelpersCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A70D00D8B800BB825C /* SVGFEHelpersCg.mm */; };
    3024                 B25599420D00D8BA00BB825C /* SVGFEImageCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A80D00D8B800BB825C /* SVGFEImageCg.mm */; };
    3025                 B25599430D00D8BA00BB825C /* SVGFEMergeCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A90D00D8B800BB825C /* SVGFEMergeCg.mm */; };
    3026                 B25599440D00D8BA00BB825C /* SVGFEOffsetCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598AA0D00D8B800BB825C /* SVGFEOffsetCg.mm */; };
    3027                 B25599450D00D8BA00BB825C /* SVGFESpecularLightingCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598AB0D00D8B800BB825C /* SVGFESpecularLightingCg.mm */; };
    3028                 B25599460D00D8BA00BB825C /* SVGFETileCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598AC0D00D8B800BB825C /* SVGFETileCg.mm */; };
    30293020                B25599470D00D8BA00BB825C /* SVGFilterEffectCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598AD0D00D8B800BB825C /* SVGFilterEffectCg.mm */; };
    30303021                B25599480D00D8BA00BB825C /* WKArithmeticFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B25598AE0D00D8B900BB825C /* WKArithmeticFilter.cikernel */; };
     
    73707361                B25598990D00D8B800BB825C /* SVGResourceFilterCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGResourceFilterCg.mm; sourceTree = "<group>"; };
    73717362                B255989B0D00D8B800BB825C /* SVGResourceMaskerCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGResourceMaskerCg.mm; sourceTree = "<group>"; };
    7372                 B25598A20D00D8B800BB825C /* SVGFEDiffuseLightingCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEDiffuseLightingCg.mm; sourceTree = "<group>"; };
    7373                 B25598A30D00D8B800BB825C /* SVGFEDisplacementMapCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEDisplacementMapCg.mm; sourceTree = "<group>"; };
    7374                 B25598A40D00D8B800BB825C /* SVGFEFloodCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEFloodCg.mm; sourceTree = "<group>"; };
    7375                 B25598A50D00D8B800BB825C /* SVGFEGaussianBlurCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEGaussianBlurCg.mm; sourceTree = "<group>"; };
    73767363                B25598A60D00D8B800BB825C /* SVGFEHelpersCg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEHelpersCg.h; sourceTree = "<group>"; };
    73777364                B25598A70D00D8B800BB825C /* SVGFEHelpersCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEHelpersCg.mm; sourceTree = "<group>"; };
    7378                 B25598A80D00D8B800BB825C /* SVGFEImageCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEImageCg.mm; sourceTree = "<group>"; };
    7379                 B25598A90D00D8B800BB825C /* SVGFEMergeCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEMergeCg.mm; sourceTree = "<group>"; };
    7380                 B25598AA0D00D8B800BB825C /* SVGFEOffsetCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEOffsetCg.mm; sourceTree = "<group>"; };
    7381                 B25598AB0D00D8B800BB825C /* SVGFESpecularLightingCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFESpecularLightingCg.mm; sourceTree = "<group>"; };
    7382                 B25598AC0D00D8B800BB825C /* SVGFETileCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFETileCg.mm; sourceTree = "<group>"; };
    73837365                B25598AD0D00D8B800BB825C /* SVGFilterEffectCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFilterEffectCg.mm; sourceTree = "<group>"; };
    73847366                B25598AE0D00D8B900BB825C /* WKArithmeticFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKArithmeticFilter.cikernel; sourceTree = "<group>"; };
     
    1196311945                        isa = PBXGroup;
    1196411946                        children = (
    11965                                 B25598A20D00D8B800BB825C /* SVGFEDiffuseLightingCg.mm */,
    11966                                 B25598A30D00D8B800BB825C /* SVGFEDisplacementMapCg.mm */,
    11967                                 B25598A40D00D8B800BB825C /* SVGFEFloodCg.mm */,
    11968                                 B25598A50D00D8B800BB825C /* SVGFEGaussianBlurCg.mm */,
    1196911947                                B25598A60D00D8B800BB825C /* SVGFEHelpersCg.h */,
    1197011948                                B25598A70D00D8B800BB825C /* SVGFEHelpersCg.mm */,
    11971                                 B25598A80D00D8B800BB825C /* SVGFEImageCg.mm */,
    11972                                 B25598A90D00D8B800BB825C /* SVGFEMergeCg.mm */,
    11973                                 B25598AA0D00D8B800BB825C /* SVGFEOffsetCg.mm */,
    11974                                 B25598AB0D00D8B800BB825C /* SVGFESpecularLightingCg.mm */,
    11975                                 B25598AC0D00D8B800BB825C /* SVGFETileCg.mm */,
    1197611949                                B25598AD0D00D8B800BB825C /* SVGFilterEffectCg.mm */,
    1197711950                                B25598AE0D00D8B900BB825C /* WKArithmeticFilter.cikernel */,
     
    1659216565                                B255997A0D00D8BA00BB825C /* SVGFEConvolveMatrix.cpp in Sources */,
    1659316566                                B255997C0D00D8BA00BB825C /* SVGFEDiffuseLighting.cpp in Sources */,
    16594                                 B255993C0D00D8BA00BB825C /* SVGFEDiffuseLightingCg.mm in Sources */,
    1659516567                                B22279D30D00BF220071B782 /* SVGFEDiffuseLightingElement.cpp in Sources */,
    1659616568                                B255997E0D00D8BA00BB825C /* SVGFEDisplacementMap.cpp in Sources */,
    16597                                 B255993D0D00D8BA00BB825C /* SVGFEDisplacementMapCg.mm in Sources */,
    1659816569                                B22279D60D00BF220071B782 /* SVGFEDisplacementMapElement.cpp in Sources */,
    1659916570                                B22279D90D00BF220071B782 /* SVGFEDistantLightElement.cpp in Sources */,
    1660016571                                B25599800D00D8BA00BB825C /* SVGFEFlood.cpp in Sources */,
    16601                                 B255993E0D00D8BA00BB825C /* SVGFEFloodCg.mm in Sources */,
    1660216572                                B22279DC0D00BF220071B782 /* SVGFEFloodElement.cpp in Sources */,
    1660316573                                B22279DF0D00BF220071B782 /* SVGFEFuncAElement.cpp in Sources */,
     
    1660616576                                B22279E80D00BF220071B782 /* SVGFEFuncRElement.cpp in Sources */,
    1660716577                                B25599820D00D8BA00BB825C /* SVGFEGaussianBlur.cpp in Sources */,
    16608                                 B255993F0D00D8BA00BB825C /* SVGFEGaussianBlurCg.mm in Sources */,
    1660916578                                B22279EB0D00BF220071B782 /* SVGFEGaussianBlurElement.cpp in Sources */,
    1661016579                                B25599410D00D8BA00BB825C /* SVGFEHelpersCg.mm in Sources */,
    1661116580                                B25599840D00D8BA00BB825C /* SVGFEImage.cpp in Sources */,
    16612                                 B25599420D00D8BA00BB825C /* SVGFEImageCg.mm in Sources */,
    1661316581                                B22279EE0D00BF220071B782 /* SVGFEImageElement.cpp in Sources */,
    1661416582                                B22279F10D00BF220071B782 /* SVGFELightElement.cpp in Sources */,
    1661516583                                B25599860D00D8BA00BB825C /* SVGFEMerge.cpp in Sources */,
    16616                                 B25599430D00D8BA00BB825C /* SVGFEMergeCg.mm in Sources */,
    1661716584                                B22279F30D00BF220071B782 /* SVGFEMergeElement.cpp in Sources */,
    1661816585                                B22279F60D00BF220071B782 /* SVGFEMergeNodeElement.cpp in Sources */,
    1661916586                                B25599880D00D8BA00BB825C /* SVGFEMorphology.cpp in Sources */,
    1662016587                                B255998A0D00D8BA00BB825C /* SVGFEOffset.cpp in Sources */,
    16621                                 B25599440D00D8BA00BB825C /* SVGFEOffsetCg.mm in Sources */,
    1662216588                                B22279F90D00BF220071B782 /* SVGFEOffsetElement.cpp in Sources */,
    1662316589                                B22279FC0D00BF220071B782 /* SVGFEPointLightElement.cpp in Sources */,
    1662416590                                B255998C0D00D8BA00BB825C /* SVGFESpecularLighting.cpp in Sources */,
    16625                                 B25599450D00D8BA00BB825C /* SVGFESpecularLightingCg.mm in Sources */,
    1662616591                                B22279FF0D00BF220071B782 /* SVGFESpecularLightingElement.cpp in Sources */,
    1662716592                                B2227A020D00BF220071B782 /* SVGFESpotLightElement.cpp in Sources */,
    16628                                 B25599460D00D8BA00BB825C /* SVGFETileCg.mm in Sources */,
    1662916593                                B2227A050D00BF220071B782 /* SVGFETileElement.cpp in Sources */,
    1663016594                                B255998F0D00D8BA00BB825C /* SVGFETurbulence.cpp in Sources */,
  • trunk/WebCore/rendering/SVGRenderTreeAsText.h

    r30243 r35094  
    9898}
    9999
     100template<typename Pointer>
     101TextStream& operator<<(TextStream& ts, Pointer* t)
     102{
     103    ts << reinterpret_cast<intptr_t>(t);
     104    return ts;
     105}
     106
    100107} // namespace WebCore
    101108
  • trunk/WebCore/svg/FilterEffect.cpp

    r34942 r35094  
    3333}
    3434
     35TextStream& FilterEffect::externalRepresentation(TextStream& ts) const
     36{
     37    return ts;
     38}
     39
    3540} // namespace WebCore
    3641
  • trunk/WebCore/svg/FilterEffect.h

    r34992 r35094  
    2222
    2323#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     24#include "TextStream.h"
     25
    2426#include <wtf/PassRefPtr.h>
    2527#include <wtf/RefCounted.h>
     
    3537        virtual void dump() = 0;
    3638       
     39        virtual TextStream& externalRepresentation(TextStream&) const;
    3740    protected:
    3841        FilterEffect();
  • trunk/WebCore/svg/SVGFEBlendElement.cpp

    r35035 r35094  
    7777    FilterEffect* input1 = builder->getEffectById(in1());
    7878    FilterEffect* input2 = builder->getEffectById(in2());
    79    
     79
    8080    if(!input1 || !input2)
    8181        return false;
    8282
    83     RefPtr<FilterEffect> addedEffect = FEBlend::create(input1, input2, static_cast<BlendModeType> (mode()));
    84     builder->add(result(), addedEffect.release());
    85    
     83    builder->add(result(), FEBlend::create(input1, input2, static_cast<BlendModeType> (mode())));
     84
    8685    return true;
    8786}
  • trunk/WebCore/svg/SVGFEBlendElement.h

    r35035 r35094  
    2525
    2626#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    27 #include "FilterBuilder.h"
    2827#include "FEBlend.h"
    2928#include "SVGFilterPrimitiveStandardAttributes.h"
  • trunk/WebCore/svg/SVGFEColorMatrixElement.cpp

    r35038 r35094  
    7878{
    7979    FilterEffect* input1 = builder->getEffectById(in1());
    80    
     80
    8181    if(!input1)
    8282        return false;
    83    
     83
    8484    Vector<float> _values;
    8585    SVGNumberList* numbers = values();
     
    9090        _values.append(numbers->getItem(i, ec));
    9191
    92     RefPtr<FilterEffect> addedEffect = FEColorMatrix::create(input1, static_cast<ColorMatrixType> (type()), _values);
    93     builder->add(result(), addedEffect.release());
     92    builder->add(result(), FEColorMatrix::create(input1, static_cast<ColorMatrixType> (type()), _values));
    9493   
    9594    return true;
  • trunk/WebCore/svg/SVGFEColorMatrixElement.h

    r35035 r35094  
    2525
    2626#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    27 #include "FilterBuilder.h"
    2827#include "FEColorMatrix.h"
    2928#include "SVGFilterPrimitiveStandardAttributes.h"
  • trunk/WebCore/svg/SVGFEComponentTransferElement.cpp

    r35035 r35094  
    8787    }
    8888   
    89     RefPtr<FilterEffect> addedEffect = FEComponentTransfer::create(input1, red, green, blue, alpha);
    90     builder->add(result(), addedEffect.release());
     89    builder->add(result(), FEComponentTransfer::create(input1, red, green, blue, alpha));
    9190   
    9291    return true;
  • trunk/WebCore/svg/SVGFEComponentTransferElement.h

    r35035 r35094  
    2525
    2626#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    27 #include "FilterBuilder.h"
    2827#include "SVGFilterPrimitiveStandardAttributes.h"
    2928#include "FEComponentTransfer.h"
  • trunk/WebCore/svg/SVGFECompositeElement.cpp

    r35035 r35094  
    102102   
    103103    RefPtr<FilterEffect> addedEffect = FEComposite::create(input1, input2, static_cast<CompositeOperationType> (_operator()),
    104         k1(), k2(), k3(), k4());
     104                                        k1(), k2(), k3(), k4());
    105105    builder->add(result(), addedEffect.release());
    106106
  • trunk/WebCore/svg/SVGFECompositeElement.h

    r35035 r35094  
    2525
    2626#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    27 #include "FilterBuilder.h"
    2827#include "FEComposite.h"
    2928#include "SVGFilterPrimitiveStandardAttributes.h"
  • trunk/WebCore/svg/SVGFEDiffuseLightingElement.cpp

    r35038 r35094  
    7676SVGFilterEffect* SVGFEDiffuseLightingElement::filterEffect(SVGResourceFilter* filter) const
    7777{
    78     if (!m_filterEffect)
    79         m_filterEffect = SVGFEDiffuseLighting::create(filter);
     78    ASSERT_NOT_REACHED();
     79    return 0;
     80}
    8081
    81     m_filterEffect->setIn(in1());
    82     m_filterEffect->setDiffuseConstant(diffuseConstant());
    83     m_filterEffect->setSurfaceScale(surfaceScale());
    84     m_filterEffect->setKernelUnitLengthX(kernelUnitLengthX());
    85     m_filterEffect->setKernelUnitLengthY(kernelUnitLengthY());
    86 
    87     SVGFEDiffuseLightingElement* nonConstThis = const_cast<SVGFEDiffuseLightingElement*>(this);
    88 
    89     RenderStyle* parentStyle = nonConstThis->styleForRenderer(parent()->renderer());
    90     RenderStyle* filterStyle = nonConstThis->resolveStyle(parentStyle);
     82bool SVGFEDiffuseLightingElement::build(FilterBuilder* builder)
     83{
     84    FilterEffect* input1 = builder->getEffectById(in1());
    9185   
    92     m_filterEffect->setLightingColor(filterStyle->svgStyle()->lightingColor());
    93     setStandardAttributes(m_filterEffect.get());
    94  
     86    if(!input1)
     87        return false;
     88   
     89    RenderStyle* parentStyle = this->styleForRenderer(parent()->renderer());
     90    RenderStyle* filterStyle = this->resolveStyle(parentStyle);
     91    Color color = filterStyle->svgStyle()->lightingColor();
     92   
    9593    parentStyle->deref(document()->renderArena());
    9694    filterStyle->deref(document()->renderArena());
    9795   
    98     updateLights();
    99     return m_filterEffect.get();
     96    RefPtr<FilterEffect> addedEffect = FEDiffuseLighting::create(input1, color, surfaceScale(), diffuseConstant(),
     97                                            kernelUnitLengthX(), kernelUnitLengthY(), findLights());
     98    builder->add(result(), addedEffect.release());
     99   
     100    return true;
    100101}
    101102
    102 void SVGFEDiffuseLightingElement::updateLights() const
     103LightSource* SVGFEDiffuseLightingElement::findLights() const
    103104{
    104     if (!m_filterEffect)
    105         return;
    106    
    107105    LightSource* light = 0;
    108106    for (Node* n = firstChild(); n; n = n->nextSibling()) {
     
    116114    }
    117115
    118     m_filterEffect->setLightSource(light);
     116    return light;
    119117}
    120118
  • trunk/WebCore/svg/SVGFEDiffuseLightingElement.h

    r35035 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     26#include "SVGFELightElement.h"
    2627#include "SVGFilterPrimitiveStandardAttributes.h"
    2728
    2829namespace WebCore {
    29     class SVGFEDiffuseLighting;
     30    class FEDiffuseLighting;
    3031    class SVGColor;
    3132
     
    3839        virtual void parseMappedAttribute(MappedAttribute*);
    3940        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     41        bool build(FilterBuilder*);
    4042
    4143    protected:
     
    4951        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, KernelUnitLengthY, kernelUnitLengthY)
    5052
    51         mutable RefPtr<SVGFEDiffuseLighting> m_filterEffect;
     53        LightSource* findLights() const;
    5254       
    53         void updateLights() const;
     55        mutable RefPtr<FEDiffuseLighting> m_filterEffect;
    5456    };
    5557
  • trunk/WebCore/svg/SVGFEDisplacementMapElement.cpp

    r35035 r35094  
    3030SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(const QualifiedName& tagName, Document* doc)
    3131    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    32     , m_xChannelSelector(SVG_CHANNEL_A)
    33     , m_yChannelSelector(SVG_CHANNEL_A)
     32    , m_xChannelSelector(CHANNEL_A)
     33    , m_yChannelSelector(CHANNEL_A)
    3434    , m_scale(0.0f)
    3535    , m_filterEffect(0)
     
    4747ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, float, Scale, scale, SVGNames::scaleAttr)
    4848
    49 SVGChannelSelectorType SVGFEDisplacementMapElement::stringToChannel(const String& key)
     49ChannelSelectorType SVGFEDisplacementMapElement::stringToChannel(const String& key)
    5050{
    5151    if (key == "R")
    52         return SVG_CHANNEL_R;
     52        return CHANNEL_R;
    5353    else if (key == "G")
    54         return SVG_CHANNEL_G;
     54        return CHANNEL_G;
    5555    else if (key == "B")
    56         return SVG_CHANNEL_B;
     56        return CHANNEL_B;
    5757    else if (key == "A")
    58         return SVG_CHANNEL_A;
     58        return CHANNEL_A;
    5959
    60     return SVG_CHANNEL_UNKNOWN;
     60    return CHANNEL_UNKNOWN;
    6161}
    6262
     
    7878}
    7979
    80 SVGFEDisplacementMap* SVGFEDisplacementMapElement::filterEffect(SVGResourceFilter* filter) const
     80SVGFilterEffect* SVGFEDisplacementMapElement::filterEffect(SVGResourceFilter* filter) const
    8181{
    82     if (!m_filterEffect)
    83         m_filterEffect = SVGFEDisplacementMap::create(filter);
     82    ASSERT_NOT_REACHED();
     83    return 0;
     84}
    8485
    85     m_filterEffect->setXChannelSelector((SVGChannelSelectorType) xChannelSelector());
    86     m_filterEffect->setYChannelSelector((SVGChannelSelectorType) yChannelSelector());
    87     m_filterEffect->setIn(in1());
    88     m_filterEffect->setIn2(in2());
    89     m_filterEffect->setScale(scale());
    90 
    91     setStandardAttributes(m_filterEffect.get());
    92     return m_filterEffect.get();
     86bool SVGFEDisplacementMapElement::build(FilterBuilder* builder)
     87{
     88    FilterEffect* input1 = builder->getEffectById(in1());
     89    FilterEffect* input2 = builder->getEffectById(in2());
     90   
     91    if(!input1 || !input2)
     92        return false;
     93       
     94   
     95    RefPtr<FilterEffect> addedEffect = FEDisplacementMap::create(input1, input2, static_cast<ChannelSelectorType> (xChannelSelector()),
     96                                        static_cast<ChannelSelectorType> (yChannelSelector()), scale());
     97    builder->add(result(), addedEffect.release());
     98   
     99    return true;
    93100}
    94101
  • trunk/WebCore/svg/SVGFEDisplacementMapElement.h

    r35035 r35094  
    3232        virtual ~SVGFEDisplacementMapElement();
    3333       
    34         static SVGChannelSelectorType stringToChannel(const String&);
     34        static ChannelSelectorType stringToChannel(const String&);
    3535       
    3636        virtual void parseMappedAttribute(MappedAttribute*);
    37         virtual SVGFEDisplacementMap* filterEffect(SVGResourceFilter*) const;
     37        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     38        bool build(FilterBuilder*);
    3839       
    3940    protected:
     
    4748        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, float, Scale, scale)
    4849
    49         mutable RefPtr<SVGFEDisplacementMap> m_filterEffect;
     50        mutable RefPtr<FEDisplacementMap> m_filterEffect;
    5051    };
    5152
  • trunk/WebCore/svg/SVGFEFloodElement.cpp

    r34656 r35094  
    4949}
    5050
    51 SVGFEFlood* SVGFEFloodElement::filterEffect(SVGResourceFilter* filter) const
     51SVGFilterEffect* SVGFEFloodElement::filterEffect(SVGResourceFilter* filter) const
    5252{
    53     if (!m_filterEffect)
    54         m_filterEffect = SVGFEFlood::create(filter);
    55    
    56     setStandardAttributes(m_filterEffect.get());
     53    ASSERT_NOT_REACHED();
     54    return 0;
     55}
    5756
    58     SVGFEFloodElement* nonConstThis = const_cast<SVGFEFloodElement*>(this);
     57bool SVGFEFloodElement::build(FilterBuilder* builder)
     58{
     59    RenderStyle* parentStyle = this->styleForRenderer(parent()->renderer());
     60    RenderStyle* filterStyle = this->resolveStyle(parentStyle);
    5961
    60     RenderStyle* parentStyle = nonConstThis->styleForRenderer(parent()->renderer());
    61     RenderStyle* filterStyle = nonConstThis->resolveStyle(parentStyle);
    62    
    63     m_filterEffect->setFloodColor(filterStyle->svgStyle()->floodColor());
    64     m_filterEffect->setFloodOpacity(filterStyle->svgStyle()->floodOpacity());
    65    
     62    Color color = filterStyle->svgStyle()->floodColor();
     63    float opacity = filterStyle->svgStyle()->floodOpacity();
     64
    6665    parentStyle->deref(document()->renderArena());
    6766    filterStyle->deref(document()->renderArena());
     67
     68    builder->add(result(), FEFlood::create(color, opacity));
    6869   
    69     return m_filterEffect.get();
     70    return true;
    7071}
    7172
  • trunk/WebCore/svg/SVGFEFloodElement.h

    r34925 r35094  
    3737
    3838        virtual void parseMappedAttribute(MappedAttribute*);
    39         virtual SVGFEFlood* filterEffect(SVGResourceFilter*) const;
     39        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     40        bool build(FilterBuilder*);
    4041
    4142    protected:
     
    4344
    4445    private:
    45         mutable RefPtr<SVGFEFlood> m_filterEffect;
     46        mutable RefPtr<FEFlood> m_filterEffect;
    4647    };
    4748
  • trunk/WebCore/svg/SVGFEGaussianBlurElement.cpp

    r35035 r35094  
    6767}
    6868
    69 SVGFEGaussianBlur* SVGFEGaussianBlurElement::filterEffect(SVGResourceFilter* filter) const
     69SVGFilterEffect* SVGFEGaussianBlurElement::filterEffect(SVGResourceFilter* filter) const
    7070{
    71     if (!m_filterEffect)
    72         m_filterEffect = SVGFEGaussianBlur::create(filter);
    73    
    74     m_filterEffect->setIn(in1());
    75     m_filterEffect->setStdDeviationX(stdDeviationX());
    76     m_filterEffect->setStdDeviationY(stdDeviationY());
     71    ASSERT_NOT_REACHED();
     72    return 0;
     73}
    7774
    78     setStandardAttributes(m_filterEffect.get());
    79     return m_filterEffect.get();
     75bool SVGFEGaussianBlurElement::build(FilterBuilder* builder)
     76{
     77    FilterEffect* input1 = builder->getEffectById(in1());
     78
     79    if(!input1)
     80        return false;
     81
     82    builder->add(result(), FEGaussianBlur::create(input1, stdDeviationX(), stdDeviationY()));
     83
     84    return true;
    8085}
    8186
  • trunk/WebCore/svg/SVGFEGaussianBlurElement.h

    r35035 r35094  
    4040
    4141        virtual void parseMappedAttribute(MappedAttribute*);
    42         virtual SVGFEGaussianBlur* filterEffect(SVGResourceFilter*) const;
     42        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     43        bool build(FilterBuilder*);
    4344
    4445    protected:
     
    5051        ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, float, StdDeviationY, stdDeviationY)
    5152
    52         mutable RefPtr<SVGFEGaussianBlur> m_filterEffect;
     53        mutable RefPtr<FEGaussianBlur> m_filterEffect;
    5354    };
    5455
  • trunk/WebCore/svg/SVGFEImageElement.cpp

    r35038 r35094  
    9090}
    9191
    92 SVGFEImage* SVGFEImageElement::filterEffect(SVGResourceFilter* filter) const
     92SVGFilterEffect* SVGFEImageElement::filterEffect(SVGResourceFilter* filter) const
    9393{
    94     if (!m_filterEffect)
    95         m_filterEffect = SVGFEImage::create(filter);
    96    
    97     // The resource may already be loaded!
    98     if (m_cachedImage)
    99         m_filterEffect->setCachedImage(m_cachedImage);
     94    ASSERT_NOT_REACHED();
     95    return 0;
     96}
    10097
    101     setStandardAttributes(m_filterEffect.get());
    102     return m_filterEffect.get();
     98bool SVGFEImageElement::build(FilterBuilder* builder)
     99{
     100    if(!m_cachedImage)
     101        return false;
     102
     103    builder->add(result(), FEImage::create(m_cachedImage));
     104
     105    return true;
    103106}
    104107
  • trunk/WebCore/svg/SVGFEImageElement.h

    r35035 r35094  
    4848
    4949        virtual void getSubresourceAttributeStrings(Vector<String>&) const;
     50        bool build(FilterBuilder*);
    5051
    5152    protected:
    52         virtual SVGFEImage* filterEffect(SVGResourceFilter*) const;
     53        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
    5354
    5455    protected:
     
    6263
    6364        CachedImage* m_cachedImage;
    64         mutable RefPtr<SVGFEImage> m_filterEffect;
     65        mutable RefPtr<FEImage> m_filterEffect;
    6566    };
    6667
  • trunk/WebCore/svg/SVGFEMergeElement.cpp

    r34656 r35094  
    4141}
    4242
    43 SVGFEMerge* SVGFEMergeElement::filterEffect(SVGResourceFilter* filter) const
     43SVGFilterEffect* SVGFEMergeElement::filterEffect(SVGResourceFilter* filter) const
    4444{
    45     if (!m_filterEffect)
    46         m_filterEffect = SVGFEMerge::create(filter);
    47        
    48     setStandardAttributes(m_filterEffect.get());
     45    ASSERT_NOT_REACHED();
     46    return 0;
     47}
    4948
    50     Vector<String> mergeInputs;
     49bool SVGFEMergeElement::build(FilterBuilder* builder)
     50{
     51    Vector<FilterEffect*> mergeInputs;
    5152    for (Node* n = firstChild(); n != 0; n = n->nextSibling()) {
    52         if (n->hasTagName(SVGNames::feMergeNodeTag))
    53             mergeInputs.append(static_cast<SVGFEMergeNodeElement*>(n)->in1());
     53        if (n->hasTagName(SVGNames::feMergeNodeTag)) {
     54            FilterEffect* mergeEffect = builder->getEffectById(static_cast<SVGFEMergeNodeElement*>(n)->in1());
     55            mergeInputs.append(mergeEffect);
     56        }
    5457    }
    5558
    56     m_filterEffect->setMergeInputs(mergeInputs);
    57     return m_filterEffect.get();
     59    if(mergeInputs.isEmpty())
     60        return false;
     61
     62    builder->add(result(), FEMerge::create(mergeInputs));
     63
     64    return true;
    5865}
    5966
  • trunk/WebCore/svg/SVGFEMergeElement.h

    r34925 r35094  
    3636        virtual ~SVGFEMergeElement();
    3737
    38         virtual SVGFEMerge* filterEffect(SVGResourceFilter*) const;
     38        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     39        bool build(FilterBuilder*);
    3940
    4041    protected:
     
    4243
    4344    private:
    44         mutable RefPtr<SVGFEMerge> m_filterEffect;
     45        mutable RefPtr<FEMerge> m_filterEffect;
    4546    };
    4647
  • trunk/WebCore/svg/SVGFEOffsetElement.cpp

    r35035 r35094  
    6060}
    6161
    62 SVGFEOffset* SVGFEOffsetElement::filterEffect(SVGResourceFilter* filter) const
     62SVGFilterEffect* SVGFEOffsetElement::filterEffect(SVGResourceFilter* filter) const
    6363{
    64     if (!m_filterEffect)
    65         m_filterEffect = SVGFEOffset::create(filter);
    66    
    67     m_filterEffect->setIn(in1());
    68     m_filterEffect->setDx(dx());
    69     m_filterEffect->setDy(dy());
     64    ASSERT_NOT_REACHED();
     65    return 0;
     66}
    7067
    71     setStandardAttributes(m_filterEffect.get());
    72     return m_filterEffect.get();
     68bool SVGFEOffsetElement::build(FilterBuilder* builder)
     69{
     70    FilterEffect* input1 = builder->getEffectById(in1());
     71
     72    if(!input1)
     73        return false;
     74
     75    builder->add(result(), FEOffset::create(input1, dx(), dy()));
     76
     77    return true;
    7378}
    7479
  • trunk/WebCore/svg/SVGFEOffsetElement.h

    r35035 r35094  
    3838
    3939        virtual void parseMappedAttribute(MappedAttribute*);
    40         virtual SVGFEOffset* filterEffect(SVGResourceFilter*) const;
     40        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     41        bool build(FilterBuilder*);
    4142
    4243    protected:
     
    4849        ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, float, Dy, dy)
    4950
    50         mutable RefPtr<SVGFEOffset> m_filterEffect;
     51        mutable RefPtr<FEOffset> m_filterEffect;
    5152    };
    5253
  • trunk/WebCore/svg/SVGFESpecularLightingElement.cpp

    r35058 r35094  
    7777}
    7878
    79 SVGFESpecularLighting* SVGFESpecularLightingElement::filterEffect(SVGResourceFilter* filter) const
     79SVGFilterEffect* SVGFESpecularLightingElement::filterEffect(SVGResourceFilter* filter) const
    8080{
    81     if (!m_filterEffect)
    82         m_filterEffect = SVGFESpecularLighting::create(filter);
    83 
    84     m_filterEffect->setIn(in1());
    85     m_filterEffect->setSpecularConstant((specularConstant()));
    86     m_filterEffect->setSpecularExponent((specularExponent()));
    87     m_filterEffect->setSurfaceScale((surfaceScale()));
    88     m_filterEffect->setKernelUnitLengthX((kernelUnitLengthX()));
    89     m_filterEffect->setKernelUnitLengthY((kernelUnitLengthY()));
    90 
    91     SVGFESpecularLightingElement* nonConstThis = const_cast<SVGFESpecularLightingElement*>(this);
    92 
    93     RenderStyle* parentStyle = nonConstThis->styleForRenderer(parent()->renderer());   
    94     RenderStyle* filterStyle = nonConstThis->resolveStyle(parentStyle);
    95    
    96     m_filterEffect->setLightingColor(filterStyle->svgStyle()->lightingColor());
    97    
    98     parentStyle->deref(document()->renderArena());
    99     filterStyle->deref(document()->renderArena());
    100 
    101     setStandardAttributes(m_filterEffect.get());
    102 
    103     updateLights();
    104     return m_filterEffect.get();
     81    ASSERT_NOT_REACHED();
     82    return 0;
    10583}
    10684
    107 void SVGFESpecularLightingElement::updateLights() const
     85LightSource* SVGFESpecularLightingElement::findLights() const
    10886{
    109     if (!m_filterEffect)
    110         return;
    111 
    112     LightSource* light = 0;   
     87    LightSource* light = 0;
    11388    for (Node* n = firstChild(); n; n = n->nextSibling()) {
    114         if (n->hasTagName(SVGNames::feDistantLightTag) || 
     89        if (n->hasTagName(SVGNames::feDistantLightTag) ||
    11590            n->hasTagName(SVGNames::fePointLightTag) ||
    11691            n->hasTagName(SVGNames::feSpotLightTag)) {
     
    12196    }
    12297
    123     m_filterEffect->setLightSource(light);
     98    return light;
     99}
     100
     101bool SVGFESpecularLightingElement::build(FilterBuilder* builder)
     102{
     103    FilterEffect* input1 = builder->getEffectById(in1());
     104   
     105    if(!input1)
     106        return false;
     107       
     108    RenderStyle* parentStyle = this->styleForRenderer(parent()->renderer());   
     109    RenderStyle* filterStyle = this->resolveStyle(parentStyle);
     110   
     111    Color color = filterStyle->svgStyle()->lightingColor();
     112   
     113    parentStyle->deref(document()->renderArena());
     114    filterStyle->deref(document()->renderArena());
     115   
     116    RefPtr<FilterEffect> addedEffect = FESpecularLighting::create(input1, color, surfaceScale(), specularConstant(),
     117                                        specularExponent(), kernelUnitLengthX(), kernelUnitLengthY(), findLights());
     118    builder->add(result(), addedEffect.release());
     119
     120    return true;
    124121}
    125122
  • trunk/WebCore/svg/SVGFESpecularLightingElement.h

    r35035 r35094  
    3838       
    3939        virtual void parseMappedAttribute(MappedAttribute*);
    40         virtual SVGFESpecularLighting* filterEffect(SVGResourceFilter*) const;
     40        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     41        bool build(FilterBuilder*);
    4142
    4243    protected:
     
    5152        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, float, KernelUnitLengthY, kernelUnitLengthY)
    5253
    53         mutable RefPtr<SVGFESpecularLighting> m_filterEffect;
     54        mutable RefPtr<FESpecularLighting> m_filterEffect;
    5455       
    55         void updateLights() const;
     56        LightSource* findLights() const;
    5657    };
    5758
  • trunk/WebCore/svg/SVGFETileElement.cpp

    r35035 r35094  
    5353}
    5454
    55 SVGFETile* SVGFETileElement::filterEffect(SVGResourceFilter* filter) const
     55SVGFilterEffect* SVGFETileElement::filterEffect(SVGResourceFilter* filter) const
    5656{
    57     if (!m_filterEffect)
    58         m_filterEffect = SVGFETile::create(filter);
     57   ASSERT_NOT_REACHED();
     58   return 0;
     59}
    5960
    60     m_filterEffect->setIn(in1());
     61bool SVGFETileElement::build(FilterBuilder* builder)
     62{
     63    FilterEffect* input1 = builder->getEffectById(in1());
    6164
    62     setStandardAttributes(m_filterEffect.get());
    63     return m_filterEffect.get();
     65    if(!input1)
     66        return false;
     67
     68    builder->add(result(), FETile::create(input1));
     69   
     70    return true;
    6471}
    6572
  • trunk/WebCore/svg/SVGFETileElement.h

    r35035 r35094  
    3737
    3838        virtual void parseMappedAttribute(MappedAttribute*);
    39         virtual SVGFETile* filterEffect(SVGResourceFilter*) const;
     39        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     40        bool build(FilterBuilder*);
    4041
    4142    protected:
     
    4546        ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, String, In1, in1)
    4647
    47         mutable RefPtr<SVGFETile> m_filterEffect;
     48        mutable RefPtr<FETile> m_filterEffect;
    4849    };
    4950
  • trunk/WebCore/svg/SVGFETurbulenceElement.cpp

    r35035 r35094  
    3838    , m_seed(0.0f)
    3939    , m_stitchTiles(SVG_STITCHTYPE_NOSTITCH)
    40     , m_type(SVG_TURBULENCE_TYPE_TURBULENCE)
     40    , m_type(FETURBULENCE_TYPE_TURBULENCE)
    4141    , m_filterEffect(0)
    4242{
     
    5959    if (attr->name() == SVGNames::typeAttr) {
    6060        if (value == "fractalNoise")
    61             setTypeBaseValue(SVG_TURBULENCE_TYPE_FRACTALNOISE);
     61            setTypeBaseValue(FETURBULENCE_TYPE_FRACTALNOISE);
    6262        else if (value == "turbulence")
    63             setTypeBaseValue(SVG_TURBULENCE_TYPE_TURBULENCE);
     63            setTypeBaseValue(FETURBULENCE_TYPE_TURBULENCE);
    6464    } else if (attr->name() == SVGNames::stitchTilesAttr) {
    6565        if (value == "stitch")
     
    8181}
    8282
    83 SVGFETurbulence* SVGFETurbulenceElement::filterEffect(SVGResourceFilter* filter) const
     83SVGFilterEffect* SVGFETurbulenceElement::filterEffect(SVGResourceFilter* filter) const
    8484{
    85    
    86     if (!m_filterEffect)
    87         m_filterEffect = SVGFETurbulence::create(filter);
    88    
    89     m_filterEffect->setType((SVGTurbulanceType) type());
    90     m_filterEffect->setBaseFrequencyX(baseFrequencyX());
    91     m_filterEffect->setBaseFrequencyY(baseFrequencyY());
    92     m_filterEffect->setNumOctaves(numOctaves());
    93     m_filterEffect->setSeed(seed());
    94     m_filterEffect->setStitchTiles(stitchTiles() == SVG_STITCHTYPE_STITCH);
     85    ASSERT_NOT_REACHED();
     86    return 0;
     87}
    9588
    96     setStandardAttributes(m_filterEffect.get());
    97     return m_filterEffect.get();
     89bool SVGFETurbulenceElement::build(FilterBuilder* builder)
     90{
     91    RefPtr<FilterEffect> addedEffect = FETurbulence::create(static_cast<TurbulanceType> (type()), baseFrequencyX(),
     92                                        baseFrequencyY(), numOctaves(), seed(), stitchTiles() == SVG_STITCHTYPE_STITCH);
     93    builder->add(result(), addedEffect.release());
     94
     95    return true;
    9896}
    9997
  • trunk/WebCore/svg/SVGFETurbulenceElement.h

    r35035 r35094  
    4343
    4444        virtual void parseMappedAttribute(MappedAttribute*);
    45         virtual SVGFETurbulence* filterEffect(SVGResourceFilter*) const;
     45        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     46        bool build(FilterBuilder*);
    4647
    4748    protected:
     
    5657        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, int, Type, type)
    5758
    58         mutable RefPtr<SVGFETurbulence> m_filterEffect;
     59        mutable RefPtr<FETurbulence> m_filterEffect;
    5960    };
    6061
  • trunk/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h

    r35035 r35094  
    2525
    2626#if ENABLE(SVG)
     27#include "FilterBuilder.h"
    2728#include "SVGStyledElement.h"
    2829
  • trunk/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.cpp

    r34656 r35094  
    2323
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     25#include "SVGFEConvolveMatrix.h"
    2526#include "SVGRenderTreeAsText.h"
    26 #include "SVGFEConvolveMatrix.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEConvolveMatrix::SVGFEConvolveMatrix(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_kernelSize()
    33     , m_divisor(0.0f)
    34     , m_bias(0.0f)
    35     , m_targetOffset()
    36     , m_edgeMode(SVG_EDGEMODE_UNKNOWN)
    37     , m_kernelUnitLength()
    38     , m_preserveAlpha(false)
     30FEConvolveMatrix::FEConvolveMatrix(FilterEffect* in, FilterEffect* in2, const FloatSize& kernelSize,
     31    const float& divisor, const float& bias, const FloatSize& targetOffset, EdgeModeType edgeMode,
     32    const FloatPoint& kernelUnitLength, bool preserveAlpha, const Vector<float>& kernelMatrix)
     33    : FilterEffect()
     34    , m_in(in)
     35    , m_in2(in2)
     36    , m_kernelSize(kernelSize)
     37    , m_divisor(divisor)
     38    , m_bias(bias)
     39    , m_targetOffset(targetOffset)
     40    , m_edgeMode(edgeMode)
     41    , m_kernelUnitLength(kernelUnitLength)
     42    , m_preserveAlpha(preserveAlpha)
     43    , m_kernelMatrix(kernelMatrix)
    3944{
    4045}
    4146
    42 PassRefPtr<SVGFEConvolveMatrix> SVGFEConvolveMatrix::create(SVGResourceFilter* filter)
     47PassRefPtr<FEConvolveMatrix> FEConvolveMatrix::create(FilterEffect* in, FilterEffect* in2, const FloatSize& kernelSize,
     48    const float& divisor, const float& bias, const FloatSize& targetOffset, EdgeModeType edgeMode,
     49    const FloatPoint& kernelUnitLength, bool preserveAlpha, const Vector<float>& kernelMatrix)
    4350{
    44     return adoptRef(new SVGFEConvolveMatrix(filter));
     51    return adoptRef(new FEConvolveMatrix(in, in2, kernelSize, divisor, bias, targetOffset, edgeMode, kernelUnitLength,
     52        preserveAlpha, kernelMatrix));
    4553}
    4654
    47 FloatSize SVGFEConvolveMatrix::kernelSize() const
     55
     56FloatSize FEConvolveMatrix::kernelSize() const
    4857{
    4958    return m_kernelSize;
    5059}
    5160
    52 void SVGFEConvolveMatrix::setKernelSize(FloatSize kernelSize)
     61void FEConvolveMatrix::setKernelSize(FloatSize kernelSize)
    5362{
    5463    m_kernelSize = kernelSize;
    5564}
    5665
    57 const Vector<float>& SVGFEConvolveMatrix::kernel() const
     66const Vector<float>& FEConvolveMatrix::kernel() const
    5867{
    5968    return m_kernelMatrix;
    6069}
    6170
    62 void SVGFEConvolveMatrix::setKernel(const Vector<float>& kernel)
     71void FEConvolveMatrix::setKernel(const Vector<float>& kernel)
    6372{
    6473    m_kernelMatrix = kernel;
    6574}
    6675
    67 float SVGFEConvolveMatrix::divisor() const
     76float FEConvolveMatrix::divisor() const
    6877{
    6978    return m_divisor;
    7079}
    7180
    72 void SVGFEConvolveMatrix::setDivisor(float divisor)
     81void FEConvolveMatrix::setDivisor(float divisor)
    7382{
    7483    m_divisor = divisor;
    7584}
    7685
    77 float SVGFEConvolveMatrix::bias() const
     86float FEConvolveMatrix::bias() const
    7887{
    7988    return m_bias;
    8089}
    8190
    82 void SVGFEConvolveMatrix::setBias(float bias)
     91void FEConvolveMatrix::setBias(float bias)
    8392{
    8493    m_bias = bias;
    8594}
    8695
    87 FloatSize SVGFEConvolveMatrix::targetOffset() const
     96FloatSize FEConvolveMatrix::targetOffset() const
    8897{
    8998    return m_targetOffset;
    9099}
    91100
    92 void SVGFEConvolveMatrix::setTargetOffset(FloatSize targetOffset)
     101void FEConvolveMatrix::setTargetOffset(FloatSize targetOffset)
    93102{
    94103    m_targetOffset = targetOffset;
    95104}
    96105
    97 SVGEdgeModeType SVGFEConvolveMatrix::edgeMode() const
     106EdgeModeType FEConvolveMatrix::edgeMode() const
    98107{
    99108    return m_edgeMode;
    100109}
    101110
    102 void SVGFEConvolveMatrix::setEdgeMode(SVGEdgeModeType edgeMode)
     111void FEConvolveMatrix::setEdgeMode(EdgeModeType edgeMode)
    103112{
    104113    m_edgeMode = edgeMode;
    105114}
    106115
    107 FloatPoint SVGFEConvolveMatrix::kernelUnitLength() const
     116FloatPoint FEConvolveMatrix::kernelUnitLength() const
    108117{
    109118    return m_kernelUnitLength;
    110119}
    111120
    112 void SVGFEConvolveMatrix::setKernelUnitLength(FloatPoint kernelUnitLength)
     121void FEConvolveMatrix::setKernelUnitLength(FloatPoint kernelUnitLength)
    113122{
    114123    m_kernelUnitLength = kernelUnitLength;
    115124}
    116125
    117 bool SVGFEConvolveMatrix::preserveAlpha() const
     126bool FEConvolveMatrix::preserveAlpha() const
    118127{
    119128    return m_preserveAlpha;
    120129}
    121130
    122 void SVGFEConvolveMatrix::setPreserveAlpha(bool preserveAlpha)
     131void FEConvolveMatrix::setPreserveAlpha(bool preserveAlpha)
    123132{
    124133    m_preserveAlpha = preserveAlpha;
    125134}
    126135
    127 static TextStream& operator<<(TextStream& ts, SVGEdgeModeType t)
     136void FEConvolveMatrix::apply()
     137{
     138}
     139
     140void FEConvolveMatrix::dump()
     141{
     142}
     143
     144static TextStream& operator<<(TextStream& ts, EdgeModeType t)
    128145{
    129146    switch (t)
    130147    {
    131         case SVG_EDGEMODE_UNKNOWN:
     148        case EDGEMODE_UNKNOWN:
    132149            ts << "UNKNOWN";break;
    133         case SVG_EDGEMODE_DUPLICATE:
     150        case EDGEMODE_DUPLICATE:
    134151            ts << "DUPLICATE";break;
    135         case SVG_EDGEMODE_WRAP:
     152        case EDGEMODE_WRAP:
    136153            ts << "WRAP"; break;
    137         case SVG_EDGEMODE_NONE:
     154        case EDGEMODE_NONE:
    138155            ts << "NONE"; break;
    139156    }
     
    141158}
    142159
    143 TextStream& SVGFEConvolveMatrix::externalRepresentation(TextStream& ts) const
     160TextStream& FEConvolveMatrix::externalRepresentation(TextStream& ts) const
    144161{
    145162    ts << "[type=CONVOLVE-MATRIX] ";
    146     SVGFilterEffect::externalRepresentation(ts);
     163    FilterEffect::externalRepresentation(ts);
    147164    ts << " [order " << m_kernelSize << "]"
    148         << " [kernel matrix=" << m_kernelMatrix  << "]"
    149         << " [divisor=" << m_divisor << "]"
    150         << " [bias=" << m_bias << "]"
    151         << " [target " << m_targetOffset << "]"
    152         << " [edge mode=" << m_edgeMode << "]"
    153         << " [kernel unit length " << m_kernelUnitLength << "]"
    154         << " [preserve alpha=" << m_preserveAlpha << "]";
     165       << " [kernel matrix=" << m_kernelMatrix  << "]"
     166       << " [divisor=" << m_divisor << "]"
     167       << " [bias=" << m_bias << "]"
     168       << " [target " << m_targetOffset << "]"
     169       << " [edge mode=" << m_edgeMode << "]"
     170       << " [kernel unit length " << m_kernelUnitLength << "]"
     171       << " [preserve alpha=" << m_preserveAlpha << "]";
    155172    return ts;
    156173}
  • trunk/WebCore/svg/graphics/filters/SVGFEConvolveMatrix.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
     27#include "FloatPoint.h"
     28#include "FloatSize.h"
     29
     30#include <wtf/Vector.h>
    2731
    2832namespace WebCore {
    2933
    30 enum SVGEdgeModeType {
    31     SVG_EDGEMODE_UNKNOWN   = 0,
    32     SVG_EDGEMODE_DUPLICATE = 1,
    33     SVG_EDGEMODE_WRAP      = 2,
    34     SVG_EDGEMODE_NONE      = 3
    35 };
     34    enum EdgeModeType {
     35        EDGEMODE_UNKNOWN   = 0,
     36        EDGEMODE_DUPLICATE = 1,
     37        EDGEMODE_WRAP      = 2,
     38        EDGEMODE_NONE      = 3
     39    };
    3640
    37 class SVGFEConvolveMatrix : public SVGFilterEffect {
    38 public:
    39     static PassRefPtr<SVGFEConvolveMatrix> create(SVGResourceFilter*);
     41    class FEConvolveMatrix : public FilterEffect {
     42    public:
     43        static PassRefPtr<FEConvolveMatrix> create(FilterEffect*, FilterEffect*, const FloatSize&,
     44                const float&, const float&, const FloatSize&, EdgeModeType, const FloatPoint&,
     45                bool, const Vector<float>&);
    4046
    41     FloatSize kernelSize() const;
    42     void setKernelSize(FloatSize);
     47        FloatSize kernelSize() const;
     48        void setKernelSize(FloatSize);
    4349
    44     const Vector<float>& kernel() const;
    45     void setKernel(const Vector<float>&);
     50        const Vector<float>& kernel() const;
     51        void setKernel(const Vector<float>&);
    4652
    47     float divisor() const;
    48     void setDivisor(float);
     53        float divisor() const;
     54        void setDivisor(float);
    4955
    50     float bias() const;
    51     void setBias(float);
     56        float bias() const;
     57        void setBias(float);
    5258
    53     FloatSize targetOffset() const;
    54     void setTargetOffset(FloatSize);
     59        FloatSize targetOffset() const;
     60        void setTargetOffset(FloatSize);
    5561
    56     SVGEdgeModeType edgeMode() const;
    57     void setEdgeMode(SVGEdgeModeType);
     62        EdgeModeType edgeMode() const;
     63        void setEdgeMode(EdgeModeType);
    5864
    59     FloatPoint kernelUnitLength() const;
    60     void setKernelUnitLength(FloatPoint);
     65        FloatPoint kernelUnitLength() const;
     66        void setKernelUnitLength(FloatPoint);
    6167
    62     bool preserveAlpha() const;
    63     void setPreserveAlpha(bool);
     68        bool preserveAlpha() const;
     69        void setPreserveAlpha(bool);
    6470
    65     virtual TextStream& externalRepresentation(TextStream&) const;
     71        virtual void apply();
     72        virtual void dump();
     73        TextStream& externalRepresentation(TextStream& ts) const;
    6674
    67 private:
    68     SVGFEConvolveMatrix(SVGResourceFilter*);
     75    private:
     76        FEConvolveMatrix(FilterEffect*, FilterEffect*, const FloatSize&, const float&, const float&,
     77                const FloatSize&, EdgeModeType, const FloatPoint&, bool, const Vector<float>&);
    6978
    70     FloatSize m_kernelSize;
    71     float m_divisor;
    72     float m_bias;
    73     FloatSize m_targetOffset;
    74     SVGEdgeModeType m_edgeMode;
    75     FloatPoint m_kernelUnitLength;
    76     bool m_preserveAlpha;
    77     Vector<float> m_kernelMatrix; // maybe should be a real matrix?
    78 };
     79        RefPtr<FilterEffect> m_in;
     80        RefPtr<FilterEffect> m_in2;
     81        FloatSize m_kernelSize;
     82        float m_divisor;
     83        float m_bias;
     84        FloatSize m_targetOffset;
     85        EdgeModeType m_edgeMode;
     86        FloatPoint m_kernelUnitLength;
     87        bool m_preserveAlpha;
     88        Vector<float> m_kernelMatrix;
     89    };
    7990
    8091} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.cpp

    r34912 r35094  
    2525#include "SVGLightSource.h"
    2626#include "SVGFEDiffuseLighting.h"
    27 #include "TextStream.h"
     27#include "SVGRenderTreeAsText.h"
    2828
    2929namespace WebCore {
    3030
    31 SVGFEDiffuseLighting::SVGFEDiffuseLighting(SVGResourceFilter* filter)
    32     : SVGFilterEffect(filter)
    33     , m_lightingColor()
    34     , m_surfaceScale(0.0f)
    35     , m_diffuseConstant(0.0f)
    36     , m_kernelUnitLengthX(0.0f)
    37     , m_kernelUnitLengthY(0.0f)
    38     , m_lightSource(0)
     31FEDiffuseLighting::FEDiffuseLighting(FilterEffect* in , const Color& lightingColor, const float& surfaceScale,
     32    const float& diffuseConstant, const float& kernelUnitLengthX, const float& kernelUnitLengthY, LightSource* lightSource)
     33    : FilterEffect()
     34    , m_in(in)
     35    , m_lightingColor(lightingColor)
     36    , m_surfaceScale(surfaceScale)
     37    , m_diffuseConstant(diffuseConstant)
     38    , m_kernelUnitLengthX(kernelUnitLengthX)
     39    , m_kernelUnitLengthY(kernelUnitLengthY)
     40    , m_lightSource(lightSource)
    3941{
    4042}
    4143
    42 PassRefPtr<SVGFEDiffuseLighting> SVGFEDiffuseLighting::create(SVGResourceFilter* filter)
     44PassRefPtr<FEDiffuseLighting> FEDiffuseLighting::create(FilterEffect* in , const Color& lightingColor,
     45    const float& surfaceScale, const float& diffuseConstant, const float& kernelUnitLengthX,
     46    const float& kernelUnitLengthY, LightSource* lightSource)
    4347{
    44     return adoptRef(new SVGFEDiffuseLighting(filter));
     48    return adoptRef(new FEDiffuseLighting(in, lightingColor, surfaceScale, diffuseConstant, kernelUnitLengthX, kernelUnitLengthY, lightSource));
    4549}
    4650
    47 SVGFEDiffuseLighting::~SVGFEDiffuseLighting()
     51FEDiffuseLighting::~FEDiffuseLighting()
    4852{
    4953}
    5054
    51 Color SVGFEDiffuseLighting::lightingColor() const
     55Color FEDiffuseLighting::lightingColor() const
    5256{
    5357    return m_lightingColor;
    5458}
    5559
    56 void SVGFEDiffuseLighting::setLightingColor(const Color& lightingColor)
     60void FEDiffuseLighting::setLightingColor(const Color& lightingColor)
    5761{
    5862    m_lightingColor = lightingColor;
    5963}
    6064
    61 float SVGFEDiffuseLighting::surfaceScale() const
     65float FEDiffuseLighting::surfaceScale() const
    6266{
    6367    return m_surfaceScale;
    6468}
    6569
    66 void SVGFEDiffuseLighting::setSurfaceScale(float surfaceScale)
     70void FEDiffuseLighting::setSurfaceScale(float surfaceScale)
    6771{
    6872    m_surfaceScale = surfaceScale;
    6973}
    7074
    71 float SVGFEDiffuseLighting::diffuseConstant() const
     75float FEDiffuseLighting::diffuseConstant() const
    7276{
    7377    return m_diffuseConstant;
    7478}
    7579
    76 void SVGFEDiffuseLighting::setDiffuseConstant(float diffuseConstant)
     80void FEDiffuseLighting::setDiffuseConstant(float diffuseConstant)
    7781{
    7882    m_diffuseConstant = diffuseConstant;
    7983}
    8084
    81 float SVGFEDiffuseLighting::kernelUnitLengthX() const
     85float FEDiffuseLighting::kernelUnitLengthX() const
    8286{
    8387    return m_kernelUnitLengthX;
    8488}
    8589
    86 void SVGFEDiffuseLighting::setKernelUnitLengthX(float kernelUnitLengthX)
     90void FEDiffuseLighting::setKernelUnitLengthX(float kernelUnitLengthX)
    8791{
    8892    m_kernelUnitLengthX = kernelUnitLengthX;
    8993}
    9094
    91 float SVGFEDiffuseLighting::kernelUnitLengthY() const
     95float FEDiffuseLighting::kernelUnitLengthY() const
    9296{
    9397    return m_kernelUnitLengthY;
    9498}
    9599
    96 void SVGFEDiffuseLighting::setKernelUnitLengthY(float kernelUnitLengthY)
     100void FEDiffuseLighting::setKernelUnitLengthY(float kernelUnitLengthY)
    97101{
    98102    m_kernelUnitLengthY = kernelUnitLengthY;
    99103}
    100104
    101 const LightSource* SVGFEDiffuseLighting::lightSource() const
     105const LightSource* FEDiffuseLighting::lightSource() const
    102106{
    103107    return m_lightSource.get();
    104108}
    105109
    106 void SVGFEDiffuseLighting::setLightSource(LightSource* lightSource)
     110void FEDiffuseLighting::setLightSource(LightSource* lightSource)
    107111{   
    108112    m_lightSource = lightSource;
    109113}
    110114
    111 TextStream& SVGFEDiffuseLighting::externalRepresentation(TextStream& ts) const
     115void FEDiffuseLighting::apply()
     116{
     117}
     118
     119void FEDiffuseLighting::dump()
     120{
     121}
     122
     123TextStream& FEDiffuseLighting::externalRepresentation(TextStream& ts) const
    112124{
    113125    ts << "[type=DIFFUSE-LIGHTING] ";
    114     SVGFilterEffect::externalRepresentation(ts);
     126    FilterEffect::externalRepresentation(ts);
    115127    ts << " [surface scale=" << m_surfaceScale << "]"
    116128        << " [diffuse constant=" << m_diffuseConstant << "]"
  • trunk/WebCore/svg/graphics/filters/SVGFEDiffuseLighting.h

    r34912 r35094  
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2626#include "Color.h"
    27 #include "SVGFilterEffect.h"
     27#include "FilterEffect.h"
    2828
    2929namespace WebCore {
    3030
    31 class LightSource;
     31    class LightSource;
    3232
    33 class SVGFEDiffuseLighting : public SVGFilterEffect {
    34 public:
    35     static PassRefPtr<SVGFEDiffuseLighting> create(SVGResourceFilter*);
    36     virtual ~SVGFEDiffuseLighting();
     33    class FEDiffuseLighting : public FilterEffect {
     34    public:
     35        static PassRefPtr<FEDiffuseLighting> create(FilterEffect*, const Color&, const float&, const float&,
     36                const float&, const float&, LightSource*);
     37        virtual ~FEDiffuseLighting();
    3738
    38     Color lightingColor() const;
    39     void setLightingColor(const Color&);
     39        Color lightingColor() const;
     40        void setLightingColor(const Color&);
    4041
    41     float surfaceScale() const;
    42     void setSurfaceScale(float);
     42        float surfaceScale() const;
     43        void setSurfaceScale(float);
    4344
    44     float diffuseConstant() const;
    45     void setDiffuseConstant(float);
     45        float diffuseConstant() const;
     46        void setDiffuseConstant(float);
    4647
    47     float kernelUnitLengthX() const;
    48     void setKernelUnitLengthX(float);
     48        float kernelUnitLengthX() const;
     49        void setKernelUnitLengthX(float);
    4950
    50     float kernelUnitLengthY() const;
    51     void setKernelUnitLengthY(float);
     51        float kernelUnitLengthY() const;
     52        void setKernelUnitLengthY(float);
    5253
    53     const LightSource* lightSource() const;
    54     void setLightSource(LightSource*);
     54        const LightSource* lightSource() const;
     55        void setLightSource(LightSource*);
    5556
    56     virtual TextStream& externalRepresentation(TextStream&) const;
     57        virtual void apply();
     58        virtual void dump();
     59        TextStream& externalRepresentation(TextStream& ts) const;
     60       
     61    private:
     62        FEDiffuseLighting(FilterEffect*, const Color&, const float&, const float&,
     63                const float&, const float&, LightSource*);
    5764
    58 #if PLATFORM(CI)
    59     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    60 #endif
    61 
    62 private:
    63     SVGFEDiffuseLighting(SVGResourceFilter*);
    64    
    65     Color m_lightingColor;
    66     float m_surfaceScale;
    67     float m_diffuseConstant;
    68     float m_kernelUnitLengthX;
    69     float m_kernelUnitLengthY;
    70     RefPtr<LightSource> m_lightSource;
    71 };
     65        RefPtr<FilterEffect> m_in;
     66        Color m_lightingColor;
     67        float m_surfaceScale;
     68        float m_diffuseConstant;
     69        float m_kernelUnitLengthX;
     70        float m_kernelUnitLengthY;
     71        RefPtr<LightSource> m_lightSource;
     72    };
    7273
    7374} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEDisplacementMap.cpp

    r34656 r35094  
    2323
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     25#include "SVGFEDisplacementMap.h"
    2526#include "SVGRenderTreeAsText.h"
    26 #include "SVGFEDisplacementMap.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEDisplacementMap::SVGFEDisplacementMap(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_xChannelSelector(SVG_CHANNEL_UNKNOWN)
    33     , m_yChannelSelector(SVG_CHANNEL_UNKNOWN)
    34     , m_scale(0)
     30FEDisplacementMap::FEDisplacementMap(FilterEffect* in, FilterEffect* in2, ChannelSelectorType xChannelSelector,
     31    ChannelSelectorType yChannelSelector, const float& scale)
     32    : FilterEffect()
     33    , m_in(in)
     34    , m_in2(in2)
     35    , m_xChannelSelector(xChannelSelector)
     36    , m_yChannelSelector(yChannelSelector)
     37    , m_scale(scale)
    3538{
    3639}
    3740
    38 PassRefPtr<SVGFEDisplacementMap> SVGFEDisplacementMap::create(SVGResourceFilter* filter)
     41PassRefPtr<FEDisplacementMap> FEDisplacementMap::create(FilterEffect* in, FilterEffect* in2,
     42    ChannelSelectorType xChannelSelector, ChannelSelectorType yChannelSelector, const float& scale)
    3943{
    40     return adoptRef(new SVGFEDisplacementMap(filter));
     44    return adoptRef(new FEDisplacementMap(in, in2, xChannelSelector, yChannelSelector, scale));
    4145}
    4246
    43 String SVGFEDisplacementMap::in2() const
    44 {
    45     return m_in2;
    46 }
    47 
    48 void SVGFEDisplacementMap::setIn2(const String &in2)
    49 {
    50     m_in2 = in2;
    51 }
    52 
    53 SVGChannelSelectorType SVGFEDisplacementMap::xChannelSelector() const
     47ChannelSelectorType FEDisplacementMap::xChannelSelector() const
    5448{
    5549    return m_xChannelSelector;
    5650}
    5751
    58 void SVGFEDisplacementMap::setXChannelSelector(const SVGChannelSelectorType xChannelSelector)
     52void FEDisplacementMap::setXChannelSelector(const ChannelSelectorType xChannelSelector)
    5953{
    6054    m_xChannelSelector = xChannelSelector;
    6155}
    6256
    63 SVGChannelSelectorType SVGFEDisplacementMap::yChannelSelector() const
     57ChannelSelectorType FEDisplacementMap::yChannelSelector() const
    6458{
    6559    return m_yChannelSelector;
    6660}
    6761
    68 void SVGFEDisplacementMap::setYChannelSelector(const SVGChannelSelectorType yChannelSelector)
     62void FEDisplacementMap::setYChannelSelector(const ChannelSelectorType yChannelSelector)
    6963{
    7064    m_yChannelSelector = yChannelSelector;
    7165}
    7266
    73 float SVGFEDisplacementMap::scale() const
     67float FEDisplacementMap::scale() const
    7468{
    7569    return m_scale;
    7670}
    7771
    78 void SVGFEDisplacementMap::setScale(float scale)
     72void FEDisplacementMap::setScale(float scale)
    7973{
    8074    m_scale = scale;
    8175}
    8276
    83 static TextStream& operator<<(TextStream& ts, SVGChannelSelectorType t)
     77void FEDisplacementMap::apply()
     78{
     79}
     80
     81void FEDisplacementMap::dump()
     82{
     83}
     84
     85static TextStream& operator<<(TextStream& ts, ChannelSelectorType t)
    8486{
    8587    switch (t)
    8688    {
    87         case SVG_CHANNEL_UNKNOWN:
     89        case CHANNEL_UNKNOWN:
    8890            ts << "UNKNOWN"; break;
    89         case SVG_CHANNEL_R:
     91        case CHANNEL_R:
    9092            ts << "RED"; break;
    91         case SVG_CHANNEL_G:
     93        case CHANNEL_G:
    9294            ts << "GREEN"; break;
    93         case SVG_CHANNEL_B:
     95        case CHANNEL_B:
    9496            ts << "BLUE"; break;
    95         case SVG_CHANNEL_A:
     97        case CHANNEL_A:
    9698            ts << "ALPHA"; break;
    9799    }
     
    99101}
    100102
    101 TextStream& SVGFEDisplacementMap::externalRepresentation(TextStream& ts) const
     103TextStream& FEDisplacementMap::externalRepresentation(TextStream& ts) const
    102104{
    103105    ts << "[type=DISPLACEMENT-MAP] ";
    104     SVGFilterEffect::externalRepresentation(ts);
    105     if (!in2().isEmpty())
    106         ts << " [in2=" << in2() << "]";
    107     ts << " [scale=" << m_scale << "]"
     106    FilterEffect::externalRepresentation(ts);
     107    ts << " [in2=" << m_in2.get() << "]"
     108        << " [scale=" << m_scale << "]"
    108109        << " [x channel selector=" << m_xChannelSelector << "]"
    109110        << " [y channel selector=" << m_yChannelSelector << "]";
  • trunk/WebCore/svg/graphics/filters/SVGFEDisplacementMap.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "PlatformString.h"
     27#include "FilterEffect.h"
    2728
    2829namespace WebCore {
    2930
    30 enum SVGChannelSelectorType {
    31     SVG_CHANNEL_UNKNOWN = 0,
    32     SVG_CHANNEL_R       = 1,
    33     SVG_CHANNEL_G       = 2,
    34     SVG_CHANNEL_B       = 3,
    35     SVG_CHANNEL_A       = 4
    36 };
     31    enum ChannelSelectorType {
     32        CHANNEL_UNKNOWN = 0,
     33        CHANNEL_R       = 1,
     34        CHANNEL_G       = 2,
     35        CHANNEL_B       = 3,
     36        CHANNEL_A       = 4
     37    };
     38   
     39    class FEDisplacementMap : public FilterEffect {
     40    public:
     41        static PassRefPtr<FEDisplacementMap> create(FilterEffect*, FilterEffect*, ChannelSelectorType,
     42                ChannelSelectorType, const float&);
    3743
    38 class SVGFEDisplacementMap : public SVGFilterEffect {
    39 public:
    40     static PassRefPtr<SVGFEDisplacementMap> create(SVGResourceFilter*);
     44        ChannelSelectorType xChannelSelector() const;
     45        void setXChannelSelector(const ChannelSelectorType);
    4146
    42     String in2() const;
    43     void setIn2(const String&);
     47        ChannelSelectorType yChannelSelector() const;
     48        void setYChannelSelector(const ChannelSelectorType);
    4449
    45     SVGChannelSelectorType xChannelSelector() const;
    46     void setXChannelSelector(const SVGChannelSelectorType);
     50        float scale() const;
     51        void setScale(float scale);
    4752
    48     SVGChannelSelectorType yChannelSelector() const;
    49     void setYChannelSelector(const SVGChannelSelectorType);
     53        virtual void apply();
     54        virtual void dump();
     55        TextStream& externalRepresentation(TextStream& ts) const;
    5056
    51     float scale() const;
    52     void setScale(float scale);
     57    private:
     58        FEDisplacementMap(FilterEffect*, FilterEffect*, ChannelSelectorType,
     59            ChannelSelectorType, const float&);
    5360
    54     virtual TextStream& externalRepresentation(TextStream&) const;
    55 
    56 #if PLATFORM(CI)
    57     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    58 #endif
    59 
    60 private:
    61     SVGFEDisplacementMap(SVGResourceFilter*);
    62 
    63     SVGChannelSelectorType m_xChannelSelector;
    64     SVGChannelSelectorType m_yChannelSelector;
    65     float m_scale;
    66     String m_in2;
    67 };
     61        RefPtr<FilterEffect> m_in;
     62        RefPtr<FilterEffect> m_in2;
     63        ChannelSelectorType m_xChannelSelector;
     64        ChannelSelectorType m_yChannelSelector;
     65        float m_scale;
     66    };
    6867
    6968} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEFlood.cpp

    r34656 r35094  
    2323
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     25#include "SVGFEFlood.h"
    2526#include "SVGRenderTreeAsText.h"
    26 #include "SVGFEFlood.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEFlood::SVGFEFlood(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_floodColor()
    33     , m_floodOpacity(0.0f)
     30FEFlood::FEFlood(const Color& floodColor, const float& floodOpacity)
     31    : FilterEffect()
     32    , m_floodColor(floodColor)
     33    , m_floodOpacity(floodOpacity)
    3434{
    3535}
    3636
    37 PassRefPtr<SVGFEFlood> SVGFEFlood::create(SVGResourceFilter* filter)
     37PassRefPtr<FEFlood> FEFlood::create(const Color& floodColor, const float& floodOpacity)
    3838{
    39     return adoptRef(new SVGFEFlood(filter));
     39    return adoptRef(new FEFlood(floodColor, floodOpacity));
    4040}
    4141
    42 Color SVGFEFlood::floodColor() const
     42Color FEFlood::floodColor() const
    4343{
    4444    return m_floodColor;
    4545}
    4646
    47 void SVGFEFlood::setFloodColor(const Color& color)
     47void FEFlood::setFloodColor(const Color& color)
    4848{
    4949    m_floodColor = color;
    5050}
    5151
    52 float SVGFEFlood::floodOpacity() const
     52float FEFlood::floodOpacity() const
    5353{
    5454    return m_floodOpacity;
    5555}
    5656
    57 void SVGFEFlood::setFloodOpacity(float floodOpacity)
     57void FEFlood::setFloodOpacity(float floodOpacity)
    5858{
    5959    m_floodOpacity = floodOpacity;
    6060}
    6161
    62 TextStream& SVGFEFlood::externalRepresentation(TextStream& ts) const
     62void FEFlood::apply()
     63{
     64}
     65
     66void FEFlood::dump()
     67{
     68}
     69
     70TextStream& FEFlood::externalRepresentation(TextStream& ts) const
    6371{
    6472    ts << "[type=FLOOD] ";
    65     SVGFilterEffect::externalRepresentation(ts);
     73    FilterEffect::externalRepresentation(ts);
    6674    ts << " [color=" << floodColor() << "]"
    6775        << " [opacity=" << floodOpacity() << "]";
  • trunk/WebCore/svg/graphics/filters/SVGFEFlood.h

    r34656 r35094  
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2626#include "Color.h"
    27 #include "SVGFilterEffect.h"
     27#include "FilterEffect.h"
    2828
    2929namespace WebCore {
    3030
    31 class SVGFEFlood : public SVGFilterEffect {
    32 public:
    33     static PassRefPtr<SVGFEFlood> create(SVGResourceFilter*);
     31    class FEFlood : public FilterEffect {
     32    public:
     33        static PassRefPtr<FEFlood> create(const Color&, const float&);
    3434
    35     Color floodColor() const;
    36     void setFloodColor(const Color &);
     35        Color floodColor() const;
     36        void setFloodColor(const Color &);
    3737
    38     float floodOpacity() const;
    39     void setFloodOpacity(float);
     38        float floodOpacity() const;
     39        void setFloodOpacity(float);
    4040
    41     virtual TextStream& externalRepresentation(TextStream&) const;
     41        virtual void apply();
     42        virtual void dump();
     43        TextStream& externalRepresentation(TextStream& ts) const;
    4244
    43 #if PLATFORM(CI)
    44     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    45 #endif
     45    private:
     46        FEFlood(const Color&, const float&);
    4647
    47 private:
    48     SVGFEFlood(SVGResourceFilter*);
    49 
    50     Color m_floodColor;
    51     float m_floodOpacity;
    52 };
     48        Color m_floodColor;
     49        float m_floodOpacity;
     50    };
    5351
    5452} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEGaussianBlur.cpp

    r34656 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFEGaussianBlur.h"
    26 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEGaussianBlur::SVGFEGaussianBlur(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_x(0.0f)
    33     , m_y(0.0f)
     30FEGaussianBlur::FEGaussianBlur(FilterEffect* in, const float& x, const float& y)
     31    : FilterEffect()
     32    , m_in(in)
     33    , m_x(x)
     34    , m_y(y)
    3435{
    3536}
    3637
    37 PassRefPtr<SVGFEGaussianBlur> SVGFEGaussianBlur::create(SVGResourceFilter* filter)
     38PassRefPtr<FEGaussianBlur> FEGaussianBlur::create(FilterEffect* in, const float& x, const float& y)
    3839{
    39     return adoptRef(new SVGFEGaussianBlur(filter));
     40    return adoptRef(new FEGaussianBlur(in, x, y));
    4041}
    4142
    42 float SVGFEGaussianBlur::stdDeviationX() const
     43float FEGaussianBlur::stdDeviationX() const
    4344{
    4445    return m_x;
    4546}
    4647
    47 void SVGFEGaussianBlur::setStdDeviationX(float x)
     48void FEGaussianBlur::setStdDeviationX(float x)
    4849{
    4950    m_x = x;
    5051}
    5152
    52 float SVGFEGaussianBlur::stdDeviationY() const
     53float FEGaussianBlur::stdDeviationY() const
    5354{
    5455    return m_y;
    5556}
    5657
    57 void SVGFEGaussianBlur::setStdDeviationY(float y)
     58void FEGaussianBlur::setStdDeviationY(float y)
    5859{
    5960    m_y = y;
    6061}
    6162
    62 TextStream& SVGFEGaussianBlur::externalRepresentation(TextStream& ts) const
     63void FEGaussianBlur::apply()
     64{
     65}
     66
     67void FEGaussianBlur::dump()
     68{
     69}
     70
     71TextStream& FEGaussianBlur::externalRepresentation(TextStream& ts) const
    6372{
    6473    ts << "[type=GAUSSIAN-BLUR] ";
    65     SVGFilterEffect::externalRepresentation(ts);
     74    FilterEffect::externalRepresentation(ts);
    6675    ts << " [std dev. x=" << stdDeviationX() << " y=" << stdDeviationY() << "]";
    6776    return ts;
  • trunk/WebCore/svg/graphics/filters/SVGFEGaussianBlur.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
    2727
    2828namespace WebCore {
    2929
    30 class SVGFEGaussianBlur : public SVGFilterEffect {
    31 public:
    32     static PassRefPtr<SVGFEGaussianBlur> create(SVGResourceFilter*);
     30    class FEGaussianBlur : public FilterEffect {
     31    public:
     32        static PassRefPtr<FEGaussianBlur> create(FilterEffect*, const float&, const float&);
    3333
    34     float stdDeviationX() const;
    35     void setStdDeviationX(float);
     34        float stdDeviationX() const;
     35        void setStdDeviationX(float);
    3636
    37     float stdDeviationY() const;
    38     void setStdDeviationY(float);
     37        float stdDeviationY() const;
     38        void setStdDeviationY(float);
    3939
    40     virtual TextStream& externalRepresentation(TextStream&) const;
     40        virtual void apply();
     41        virtual void dump();
     42        TextStream& externalRepresentation(TextStream& ts) const;
    4143
    42 #if PLATFORM(CI)
    43     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    44 #endif
     44    private:
     45        FEGaussianBlur(FilterEffect*, const float&, const float&);
    4546
    46 private:
    47     SVGFEGaussianBlur(SVGResourceFilter*);
    48 
    49     float m_x;
    50     float m_y;
    51 };
     47        RefPtr<FilterEffect> m_in;
     48        float m_x;
     49        float m_y;
     50    };
    5251
    5352} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEImage.cpp

    r34656 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFEImage.h"
    26 
    27 #include "SVGResourceFilter.h"
    28 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2927
    3028namespace WebCore {
    3129
    32 SVGFEImage::SVGFEImage(SVGResourceFilter* filter)
    33     : SVGFilterEffect(filter)
    34     , m_cachedImage(0)
     30FEImage::FEImage(CachedImage* cachedImage)
     31    : FilterEffect()
     32    , m_cachedImage(cachedImage)
    3533{
    3634}
    3735
    38 PassRefPtr<SVGFEImage> SVGFEImage::create(SVGResourceFilter* filter)
     36PassRefPtr<FEImage> FEImage::create(CachedImage* cachedImage)
    3937{
    40     return adoptRef(new SVGFEImage(filter));
     38    return adoptRef(new FEImage(cachedImage));
    4139}
    4240
    43 SVGFEImage::~SVGFEImage()
     41FEImage::~FEImage()
    4442{
    4543    if (m_cachedImage)
     
    4745}
    4846
    49 CachedImage* SVGFEImage::cachedImage() const
     47CachedImage* FEImage::cachedImage() const
    5048{
    5149    return m_cachedImage;
    5250}
    5351
    54 void SVGFEImage::setCachedImage(CachedImage* image)
     52void FEImage::setCachedImage(CachedImage* image)
    5553{
    5654    if (m_cachedImage == image)
     
    6664}
    6765
    68 TextStream& SVGFEImage::externalRepresentation(TextStream& ts) const
     66void FEImage::apply()
     67{
     68}
     69
     70void FEImage::dump()
     71{
     72}
     73
     74TextStream& FEImage::externalRepresentation(TextStream& ts) const
    6975{
    7076    ts << "[type=IMAGE] ";
    71     SVGFilterEffect::externalRepresentation(ts);
     77    FilterEffect::externalRepresentation(ts);
    7278    // FIXME: should this dump also object returned by SVGFEImage::image() ?
    7379    return ts;
    74 
    75 }
    76 
    77 void SVGFEImage::imageChanged(CachedImage*)
    78 {
    79     if (SVGResourceFilter* filterResource = filter())
    80         filterResource->invalidate();
    8180}
    8281
  • trunk/WebCore/svg/graphics/filters/SVGFEImage.h

    r34656 r35094  
    2626#include "CachedImage.h"
    2727#include "CachedResourceClient.h"
    28 #include "SVGFilterEffect.h"
     28#include "FilterEffect.h"
    2929
    3030namespace WebCore {
    3131
    32 class SVGFEImage : public SVGFilterEffect
    33                  , public CachedResourceClient {
    34 public:
    35     static PassRefPtr<SVGFEImage> create(SVGResourceFilter*);
    36     virtual ~SVGFEImage();
     32    class FEImage : public FilterEffect
     33                     , public CachedResourceClient {
     34    public:
     35        static PassRefPtr<FEImage> create(CachedImage*);
     36        virtual ~FEImage();
    3737
    38     // FIXME: We need to support <svg> (RenderObject*) as well as image data.
     38        // FIXME: We need to support <svg> (RenderObject*) as well as image data.
    3939
    40     CachedImage* cachedImage() const;
    41     void setCachedImage(CachedImage*);
     40        CachedImage* cachedImage() const;
     41        void setCachedImage(CachedImage*);
     42       
     43        virtual void apply();
     44        virtual void dump();
     45        TextStream& externalRepresentation(TextStream& ts) const;
     46       
     47    private:
     48        FEImage(CachedImage*);
    4249
    43     virtual TextStream& externalRepresentation(TextStream&) const;
    44 
    45 #if PLATFORM(CI)
    46     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    47 #endif
    48 
    49     virtual void imageChanged(CachedImage*);
    50    
    51 private:
    52     SVGFEImage(SVGResourceFilter*);
    53 
    54     CachedImage* m_cachedImage;
    55 };
     50        CachedImage* m_cachedImage;
     51    };
    5652
    5753} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEMerge.cpp

    r34656 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFEMerge.h"
    26 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEMerge::SVGFEMerge(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
     30FEMerge::FEMerge(const Vector<FilterEffect*>& mergeInputs)
     31    : FilterEffect()
     32    , m_mergeInputs(mergeInputs)
    3233{
    3334}
    3435
    35 PassRefPtr<SVGFEMerge> SVGFEMerge::create(SVGResourceFilter* filter)
     36PassRefPtr<FEMerge> FEMerge::create(const Vector<FilterEffect*>& mergeInputs)
    3637{
    37     return adoptRef(new SVGFEMerge(filter));
     38    return adoptRef(new FEMerge(mergeInputs));
    3839}
    3940
    40 const Vector<String>& SVGFEMerge::mergeInputs() const
     41const Vector<FilterEffect*>& FEMerge::mergeInputs() const
    4142{
    4243    return m_mergeInputs;
    4344}
    4445
    45 void SVGFEMerge::setMergeInputs(const Vector<String>& mergeInputs)
     46void FEMerge::setMergeInputs(const Vector<FilterEffect*>& mergeInputs)
    4647{
    4748    m_mergeInputs = mergeInputs;
    4849}
    4950
    50 TextStream& SVGFEMerge::externalRepresentation(TextStream& ts) const
     51void FEMerge::apply()
     52{
     53}
     54
     55void FEMerge::dump()
     56{
     57}
     58
     59TextStream& FEMerge::externalRepresentation(TextStream& ts) const
    5160{
    5261    ts << "[type=MERGE] ";
    53     SVGFilterEffect::externalRepresentation(ts);
     62    FilterEffect::externalRepresentation(ts);
    5463    ts << "[merge inputs=[";
    5564    unsigned x = 0;
  • trunk/WebCore/svg/graphics/filters/SVGFEMerge.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
     27
     28#include <wtf/Vector.h>
    2729
    2830namespace WebCore {
    2931
    30 class SVGFEMerge : public SVGFilterEffect {
    31 public:
    32     static PassRefPtr<SVGFEMerge> create(SVGResourceFilter*);
     32    class FEMerge : public FilterEffect {
     33    public:
     34        static PassRefPtr<FEMerge> create(const Vector<FilterEffect*>&);
    3335
    34     const Vector<String>& mergeInputs() const;
    35     void setMergeInputs(const Vector<String>& mergeInputs);
     36        const Vector<FilterEffect*>& mergeInputs() const;
     37        void setMergeInputs(const Vector<FilterEffect*>& mergeInputs);
     38       
     39        virtual void apply();
     40        virtual void dump();
     41        TextStream& externalRepresentation(TextStream& ts) const;
    3642
    37     virtual TextStream& externalRepresentation(TextStream&) const;
     43    private:
     44        FEMerge(const Vector<FilterEffect*>&);
    3845
    39 #if PLATFORM(CI)
    40     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    41 #endif
    42 
    43 private:
    44     SVGFEMerge(SVGResourceFilter*);
    45 
    46     Vector<String> m_mergeInputs;
    47 };
     46        Vector<FilterEffect*> m_mergeInputs;
     47    };
    4848
    4949} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEMorphology.cpp

    r31451 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFEMorphology.h"
    26 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEMorphology::SVGFEMorphology(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_operator(SVG_MORPHOLOGY_OPERATOR_UNKNOWN)
    33     , m_radiusX(0.0f)
    34     , m_radiusY(0.0f)
     30FEMorphology::FEMorphology(FilterEffect* in, MorphologyOperatorType type, const float& radiusX, const float& radiusY)
     31    : FilterEffect()
     32    , m_in(in)
     33    , m_type(type)
     34    , m_radiusX(radiusX)
     35    , m_radiusY(radiusY)
    3536{
    3637}
    3738
    38 SVGMorphologyOperatorType SVGFEMorphology::morphologyOperator() const
     39PassRefPtr<FEMorphology> FEMorphology::create(FilterEffect* in, MorphologyOperatorType type, const float& radiusX, const float& radiusY)
    3940{
    40     return m_operator;
     41    return adoptRef(new FEMorphology(in, type, radiusX, radiusY));
    4142}
    4243
    43 void SVGFEMorphology::setMorphologyOperator(SVGMorphologyOperatorType _operator)
     44MorphologyOperatorType FEMorphology::morphologyOperator() const
    4445{
    45     m_operator = _operator;
     46    return m_type;
    4647}
    4748
    48 float SVGFEMorphology::radiusX() const
     49void FEMorphology::setMorphologyOperator(MorphologyOperatorType type)
     50{
     51    m_type = type;
     52}
     53
     54float FEMorphology::radiusX() const
    4955{
    5056    return m_radiusX;
    5157}
    5258
    53 void SVGFEMorphology::setRadiusX(float radiusX)
     59void FEMorphology::setRadiusX(float radiusX)
    5460{
    5561    m_radiusX = radiusX;
    5662}
    5763
    58 float SVGFEMorphology::radiusY() const
     64float FEMorphology::radiusY() const
    5965{
    6066    return m_radiusY;
    6167}
    6268
    63 void SVGFEMorphology::setRadiusY(float radiusY)
     69void FEMorphology::setRadiusY(float radiusY)
    6470{
    6571    m_radiusY = radiusY;
    6672}
    6773
    68 static TextStream& operator<<(TextStream& ts, SVGMorphologyOperatorType t)
     74void FEMorphology::apply()
     75{
     76}
     77
     78void FEMorphology::dump()
     79{
     80}
     81
     82static TextStream& operator<<(TextStream& ts, MorphologyOperatorType t)
    6983{
    7084    switch (t)
    7185    {
    72         case SVG_MORPHOLOGY_OPERATOR_UNKNOWN:
     86        case FEMORPHOLOGY_OPERATOR_UNKNOWN:
    7387            ts << "UNKNOWN"; break;
    74         case SVG_MORPHOLOGY_OPERATOR_ERODE:
     88        case FEMORPHOLOGY_OPERATOR_ERODE:
    7589            ts << "ERODE"; break;
    76         case SVG_MORPHOLOGY_OPERATOR_DIALATE:
     90        case FEMORPHOLOGY_OPERATOR_DIALATE:
    7791            ts << "DIALATE"; break;
    7892    }
     
    8094}
    8195
    82 TextStream& SVGFEMorphology::externalRepresentation(TextStream& ts) const
     96TextStream& FEMorphology::externalRepresentation(TextStream& ts) const
    8397{
    84     ts << "[type=MORPHOLOGY-OPERATOR] ";
    85     SVGFilterEffect::externalRepresentation(ts);
     98    ts << "[type=MORPHOLOGY] ";
     99    FilterEffect::externalRepresentation(ts);
    86100    ts << " [operator type=" << morphologyOperator() << "]"
    87         << " [radius x=" << radiusX() << " y=" << radiusY() << "]";
     101        << " [radius x=" << radiusX() << " y=" << radiusY() << "]";       
    88102    return ts;
    89103}
  • trunk/WebCore/svg/graphics/filters/SVGFEMorphology.h

    r29663 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
    2727
    2828namespace WebCore {
    2929
    30 enum SVGMorphologyOperatorType {
    31     SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
    32     SVG_MORPHOLOGY_OPERATOR_ERODE   = 1,
    33     SVG_MORPHOLOGY_OPERATOR_DIALATE = 2
    34 };
     30    enum MorphologyOperatorType {
     31        FEMORPHOLOGY_OPERATOR_UNKNOWN = 0,
     32        FEMORPHOLOGY_OPERATOR_ERODE   = 1,
     33        FEMORPHOLOGY_OPERATOR_DIALATE = 2
     34    };
    3535
    36 class SVGFEMorphology : public SVGFilterEffect {
    37 public:
    38     SVGFEMorphology(SVGResourceFilter*);
     36    class FEMorphology : public FilterEffect {
     37    public:
     38        PassRefPtr<FEMorphology> create(FilterEffect*, MorphologyOperatorType, const float&, const float&); 
     39        MorphologyOperatorType morphologyOperator() const;
     40        void setMorphologyOperator(MorphologyOperatorType);
    3941
    40     SVGMorphologyOperatorType morphologyOperator() const;
    41     void setMorphologyOperator(SVGMorphologyOperatorType);
     42        float radiusX() const;
     43        void setRadiusX(float);
    4244
    43     float radiusX() const;
    44     void setRadiusX(float);
     45        float radiusY() const;
     46        void setRadiusY(float);
    4547
    46     float radiusY() const;
    47     void setRadiusY(float);
     48        virtual void apply();
     49        virtual void dump();
     50        TextStream& externalRepresentation(TextStream& ts) const;
    4851
    49     virtual TextStream& externalRepresentation(TextStream&) const;
    50 
    51 private:
    52     SVGMorphologyOperatorType m_operator;
    53     float m_radiusX;
    54     float m_radiusY;
    55 };
     52    private:
     53        FEMorphology(FilterEffect*, MorphologyOperatorType, const float&, const float&);
     54       
     55        RefPtr<FilterEffect> m_in;
     56        MorphologyOperatorType m_type;
     57        float m_radiusX;
     58        float m_radiusY;
     59    };
    5660
    5761} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFEOffset.cpp

    r34656 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFEOffset.h"
    26 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFEOffset::SVGFEOffset(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_dx(0.0f)
    33     , m_dy(0.0f)
     30FEOffset::FEOffset(FilterEffect* in, const float& dx, const float& dy)
     31    : FilterEffect()
     32    , m_in(in)
     33    , m_dx(dx)
     34    , m_dy(dy)
    3435{
    3536}
    3637
    37 PassRefPtr<SVGFEOffset> SVGFEOffset::create(SVGResourceFilter* filter)
     38PassRefPtr<FEOffset> FEOffset::create(FilterEffect* in, const float& dx, const float& dy)
    3839{
    39     return adoptRef(new SVGFEOffset(filter));
     40    return adoptRef(new FEOffset(in, dx, dy));
    4041}
    4142
    42 float SVGFEOffset::dx() const
     43float FEOffset::dx() const
    4344{
    4445    return m_dx;
    4546}
    4647
    47 void SVGFEOffset::setDx(float dx)
     48void FEOffset::setDx(float dx)
    4849{
    4950    m_dx = dx;
    5051}
    5152
    52 float SVGFEOffset::dy() const
     53float FEOffset::dy() const
    5354{
    5455    return m_dy;
    5556}
    5657
    57 void SVGFEOffset::setDy(float dy)
     58void FEOffset::setDy(float dy)
    5859{
    5960    m_dy = dy;
    6061}
    6162
    62 TextStream& SVGFEOffset::externalRepresentation(TextStream& ts) const
     63void FEOffset::apply()
    6364{
    64     ts << "[type=OFFSET] "; SVGFilterEffect::externalRepresentation(ts)
    65         << " [dx=" << dx() << " dy=" << dy() << "]";
     65}
     66
     67void FEOffset::dump()
     68{
     69}
     70
     71TextStream& FEOffset::externalRepresentation(TextStream& ts) const
     72{
     73    ts << "[type=OFFSET] ";
     74    FilterEffect::externalRepresentation(ts);
     75    ts << " [dx=" << dx() << " dy=" << dy() << "]";
    6676    return ts;
    6777}
  • trunk/WebCore/svg/graphics/filters/SVGFEOffset.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
    2727
    2828namespace WebCore {
    2929
    30 class SVGFEOffset : public SVGFilterEffect {
    31 public:
    32     static PassRefPtr<SVGFEOffset> create(SVGResourceFilter*);
     30    class FEOffset : public FilterEffect {
     31    public:
     32        static PassRefPtr<FEOffset> create(FilterEffect*, const float&, const float&);
    3333
    34     float dx() const;
    35     void setDx(float);
     34        float dx() const;
     35        void setDx(float);
    3636
    37     float dy() const;
    38     void setDy(float);
     37        float dy() const;
     38        void setDy(float);
    3939
    40     virtual TextStream& externalRepresentation(TextStream&) const;
     40        virtual void apply();
     41        virtual void dump();
     42        TextStream& externalRepresentation(TextStream& ts) const;
    4143
    42 #if PLATFORM(CI)
    43     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    44 #endif
     44    private:
     45        FEOffset(FilterEffect*, const float&, const float&);
    4546
    46 private:
    47     SVGFEOffset(SVGResourceFilter*);
    48 
    49     float m_dx;
    50     float m_dy;
    51 };
     47        RefPtr<FilterEffect> m_in;
     48        float m_dx;
     49        float m_dy;
     50    };
    5251
    5352} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFESpecularLighting.cpp

    r34912 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFESpecularLighting.h"
    26 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFESpecularLighting::SVGFESpecularLighting(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_lightingColor()
    33     , m_surfaceScale(0.0f)
    34     , m_specularConstant(0.0f)
    35     , m_specularExponent(0.0f)
    36     , m_kernelUnitLengthX(0.0f)
    37     , m_kernelUnitLengthY(0.0f)
    38     , m_lightSource(0)
     30FESpecularLighting::FESpecularLighting(FilterEffect* in, const Color& lightingColor, const float& surfaceScale,
     31    const float& specularConstant, const float& specularExponent, const float& kernelUnitLengthX,
     32    const float& kernelUnitLengthY, LightSource* lightSource)
     33    : FilterEffect()
     34    , m_in(in)
     35    , m_lightingColor(lightingColor)
     36    , m_surfaceScale(surfaceScale)
     37    , m_specularConstant(specularConstant)
     38    , m_specularExponent(specularExponent)
     39    , m_kernelUnitLengthX(kernelUnitLengthX)
     40    , m_kernelUnitLengthY(kernelUnitLengthY)
     41    , m_lightSource(lightSource)
    3942{
    4043}
    4144
    42 PassRefPtr<SVGFESpecularLighting> SVGFESpecularLighting::create(SVGResourceFilter* filter)
     45PassRefPtr<FESpecularLighting> FESpecularLighting::create(FilterEffect* in, const Color& lightingColor,
     46    const float& surfaceScale, const float& specularConstant, const float& specularExponent,
     47    const float& kernelUnitLengthX, const float& kernelUnitLengthY, LightSource* lightSource)
    4348{
    44     return adoptRef(new SVGFESpecularLighting(filter));
     49    return adoptRef(new FESpecularLighting(in, lightingColor, surfaceScale, specularConstant, specularExponent,
     50        kernelUnitLengthX, kernelUnitLengthY, lightSource));
    4551}
    4652
    47 SVGFESpecularLighting::~SVGFESpecularLighting()
     53FESpecularLighting::~FESpecularLighting()
    4854{
    4955}
    5056
    51 Color SVGFESpecularLighting::lightingColor() const
     57Color FESpecularLighting::lightingColor() const
    5258{
    5359    return m_lightingColor;
    5460}
    5561
    56 void SVGFESpecularLighting::setLightingColor(const Color& lightingColor)
     62void FESpecularLighting::setLightingColor(const Color& lightingColor)
    5763{
    5864    m_lightingColor = lightingColor;
    5965}
    6066
    61 float SVGFESpecularLighting::surfaceScale() const
     67float FESpecularLighting::surfaceScale() const
    6268{
    6369    return m_surfaceScale;
    6470}
    6571
    66 void SVGFESpecularLighting::setSurfaceScale(float surfaceScale)
     72void FESpecularLighting::setSurfaceScale(float surfaceScale)
    6773{
    6874    m_surfaceScale = surfaceScale;
    6975}
    7076
    71 float SVGFESpecularLighting::specularConstant() const
     77float FESpecularLighting::specularConstant() const
    7278{
    7379    return m_specularConstant;
    7480}
    7581
    76 void SVGFESpecularLighting::setSpecularConstant(float specularConstant)
     82void FESpecularLighting::setSpecularConstant(float specularConstant)
    7783{
    7884    m_specularConstant = specularConstant;
    7985}
    8086
    81 float SVGFESpecularLighting::specularExponent() const
     87float FESpecularLighting::specularExponent() const
    8288{
    8389    return m_specularExponent;
    8490}
    8591
    86 void SVGFESpecularLighting::setSpecularExponent(float specularExponent)
     92void FESpecularLighting::setSpecularExponent(float specularExponent)
    8793{
    8894    m_specularExponent = specularExponent;
    8995}
    9096
    91 float SVGFESpecularLighting::kernelUnitLengthX() const
     97float FESpecularLighting::kernelUnitLengthX() const
    9298{
    9399    return m_kernelUnitLengthX;
    94100}
    95101
    96 void SVGFESpecularLighting::setKernelUnitLengthX(float kernelUnitLengthX)
     102void FESpecularLighting::setKernelUnitLengthX(float kernelUnitLengthX)
    97103{
    98104    m_kernelUnitLengthX = kernelUnitLengthX;
    99105}
    100106
    101 float SVGFESpecularLighting::kernelUnitLengthY() const
     107float FESpecularLighting::kernelUnitLengthY() const
    102108{
    103109    return m_kernelUnitLengthY;
    104110}
    105111
    106 void SVGFESpecularLighting::setKernelUnitLengthY(float kernelUnitLengthY)
     112void FESpecularLighting::setKernelUnitLengthY(float kernelUnitLengthY)
    107113{
    108114    m_kernelUnitLengthY = kernelUnitLengthY;
    109115}
    110116
    111 const LightSource* SVGFESpecularLighting::lightSource() const
     117const LightSource* FESpecularLighting::lightSource() const
    112118{
    113119    return m_lightSource.get();
    114120}
    115121
    116 void SVGFESpecularLighting::setLightSource(LightSource* lightSource)
     122void FESpecularLighting::setLightSource(LightSource* lightSource)
    117123{
    118124    m_lightSource = lightSource;
    119125}
    120126
    121 TextStream& SVGFESpecularLighting::externalRepresentation(TextStream& ts) const
     127void FESpecularLighting::apply()
     128{
     129}
     130
     131void FESpecularLighting::dump()
     132{
     133}
     134
     135TextStream& FESpecularLighting::externalRepresentation(TextStream& ts) const
    122136{
    123137    ts << "[type=SPECULAR-LIGHTING] ";
    124     SVGFilterEffect::externalRepresentation(ts);
     138    FilterEffect::externalRepresentation(ts);
    125139    ts << " [surface scale=" << m_surfaceScale << "]"
    126140        << " [specual constant=" << m_specularConstant << "]"
  • trunk/WebCore/svg/graphics/filters/SVGFESpecularLighting.h

    r34912 r35094  
    2626#include "Color.h"
    2727#include "SVGLightSource.h"
    28 #include "SVGFilterEffect.h"
     28#include "FilterEffect.h"
    2929
    3030namespace WebCore {
    3131
    32 class SVGFESpecularLighting : public SVGFilterEffect {
    33 public:
    34     static PassRefPtr<SVGFESpecularLighting> create(SVGResourceFilter*);
    35     virtual ~SVGFESpecularLighting();
     32    class FESpecularLighting : public FilterEffect {
     33    public:
     34        static PassRefPtr<FESpecularLighting> create(FilterEffect*, const Color&, const float&, const float&,
     35            const float&, const float&, const float&, LightSource*);
     36        virtual ~FESpecularLighting();
    3637
    37     Color lightingColor() const;
    38     void setLightingColor(const Color&);
     38        Color lightingColor() const;
     39        void setLightingColor(const Color&);
    3940
    40     float surfaceScale() const;
    41     void setSurfaceScale(float);
     41        float surfaceScale() const;
     42        void setSurfaceScale(float);
    4243
    43     float specularConstant() const;
    44     void setSpecularConstant(float);
     44        float specularConstant() const;
     45        void setSpecularConstant(float);
    4546
    46     float specularExponent() const;
    47     void setSpecularExponent(float);
     47        float specularExponent() const;
     48        void setSpecularExponent(float);
    4849
    49     float kernelUnitLengthX() const;
    50     void setKernelUnitLengthX(float);
     50        float kernelUnitLengthX() const;
     51        void setKernelUnitLengthX(float);
    5152
    52     float kernelUnitLengthY() const;
    53     void setKernelUnitLengthY(float);
     53        float kernelUnitLengthY() const;
     54        void setKernelUnitLengthY(float);
    5455
    55     const LightSource* lightSource() const;
    56     void setLightSource(LightSource*);
     56        const LightSource* lightSource() const;
     57        void setLightSource(LightSource*);
    5758
    58     virtual TextStream& externalRepresentation(TextStream&) const;
     59        virtual void apply();
     60        virtual void dump();
     61        TextStream& externalRepresentation(TextStream& ts) const;
    5962
    60 #if PLATFORM(CI)
    61     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    62 #endif
     63    private:
     64        FESpecularLighting(FilterEffect*, const Color&, const float&, const float&, const float&,
     65            const float&, const float&, LightSource*);
    6366
    64 private:
    65     SVGFESpecularLighting(SVGResourceFilter*);
    66 
    67     Color m_lightingColor;
    68     float m_surfaceScale;
    69     float m_specularConstant;
    70     float m_specularExponent;
    71     float m_kernelUnitLengthX;
    72     float m_kernelUnitLengthY;
    73     RefPtr<LightSource> m_lightSource;
    74 };
     67        RefPtr<FilterEffect> m_in;
     68        Color m_lightingColor;
     69        float m_surfaceScale;
     70        float m_specularConstant;
     71        float m_specularExponent;
     72        float m_kernelUnitLengthX;
     73        float m_kernelUnitLengthY;
     74        RefPtr<LightSource> m_lightSource;
     75    };
    7576
    7677} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/SVGFETile.cpp

    r34656 r35094  
    2222#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2323#include "SVGFETile.h"
     24#include "SVGRenderTreeAsText.h"
    2425
    2526namespace WebCore {
    2627
    27 SVGFETile::SVGFETile(SVGResourceFilter* filter)
    28     : SVGFilterEffect(filter)
     28FETile::FETile(FilterEffect* in)
     29    : FilterEffect()
     30    , m_in(in)
    2931{
    3032}
    3133
    32 PassRefPtr<SVGFETile> SVGFETile::create(SVGResourceFilter* filter)
     34PassRefPtr<FETile> FETile::create(FilterEffect* in)
    3335{
    34     return adoptRef(new SVGFETile(filter));
     36    return adoptRef(new FETile(in));
     37}
     38
     39void FETile::apply()
     40{
     41}
     42
     43void FETile::dump()
     44{
     45}
     46
     47TextStream& FETile::externalRepresentation(TextStream& ts) const
     48{
     49    ts << "[type=TILE]";
     50    FilterEffect::externalRepresentation(ts);
     51    return ts;
    3552}
    3653
  • trunk/WebCore/svg/graphics/filters/SVGFETile.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
    2727
    2828namespace WebCore {
    2929   
    30     class SVGFETile : public SVGFilterEffect {
     30    class FETile : public FilterEffect {
    3131    public:
    32         static PassRefPtr<SVGFETile> create(SVGResourceFilter*);
     32        static PassRefPtr<FETile> create(FilterEffect*);
    3333
    34     #if PLATFORM(CI)
    35         virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    36     #endif
     34        virtual void apply();
     35        virtual void dump();
     36        TextStream& externalRepresentation(TextStream& ts) const;
     37       
    3738    private:
    38         SVGFETile(SVGResourceFilter*);
    39 
     39        FETile(FilterEffect*);
     40       
     41        RefPtr<FilterEffect> m_in;
    4042    };
    4143
  • trunk/WebCore/svg/graphics/filters/SVGFETurbulence.cpp

    r34656 r35094  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFETurbulence.h"
    26 #include "TextStream.h"
     26#include "SVGRenderTreeAsText.h"
    2727
    2828namespace WebCore {
    2929
    30 SVGFETurbulence::SVGFETurbulence(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_baseFrequencyX(0.0f)
    33     , m_baseFrequencyY(0.0f)
    34     , m_numOctaves(0)
    35     , m_seed(0)
    36     , m_stitchTiles(false)
    37     , m_type(SVG_TURBULENCE_TYPE_UNKNOWN)
     30FETurbulence::FETurbulence(TurbulanceType type, const float& baseFrequencyX, const float& baseFrequencyY,
     31    const int& numOctaves, const float& seed, bool stitchTiles)
     32    : FilterEffect()
     33    , m_type(type)
     34    , m_baseFrequencyX(baseFrequencyX)
     35    , m_baseFrequencyY(baseFrequencyY)
     36    , m_numOctaves(numOctaves)
     37    , m_seed(seed)
     38    , m_stitchTiles(stitchTiles)
    3839{
    3940}
    4041
    41 PassRefPtr<SVGFETurbulence> SVGFETurbulence::create(SVGResourceFilter* filter)
     42PassRefPtr<FETurbulence> FETurbulence::create(TurbulanceType type, const float& baseFrequencyX, const float& baseFrequencyY,
     43    const int& numOctaves, const float& seed, bool stitchTiles)
    4244{
    43     return adoptRef(new SVGFETurbulence(filter));
     45    return adoptRef(new FETurbulence(type, baseFrequencyX, baseFrequencyY, numOctaves, seed, stitchTiles));
    4446}
    4547
    46 SVGTurbulanceType SVGFETurbulence::type() const
     48TurbulanceType FETurbulence::type() const
    4749{
    4850    return m_type;
    4951}
    5052
    51 void SVGFETurbulence::setType(SVGTurbulanceType type)
     53void FETurbulence::setType(TurbulanceType type)
    5254{
    5355    m_type = type;
    5456}
    5557
    56 float SVGFETurbulence::baseFrequencyY() const
     58float FETurbulence::baseFrequencyY() const
    5759{
    5860    return m_baseFrequencyY;
    5961}
    6062
    61 void SVGFETurbulence::setBaseFrequencyY(float baseFrequencyY)
     63void FETurbulence::setBaseFrequencyY(float baseFrequencyY)
    6264{
    6365    m_baseFrequencyY = baseFrequencyY;
    6466}
    6567
    66 float SVGFETurbulence::baseFrequencyX() const
     68float FETurbulence::baseFrequencyX() const
    6769{
    6870    return m_baseFrequencyX;
    6971}
    7072
    71 void SVGFETurbulence::setBaseFrequencyX(float baseFrequencyX)
     73void FETurbulence::setBaseFrequencyX(float baseFrequencyX)
    7274{
    7375       m_baseFrequencyX = baseFrequencyX;
    7476}
    7577
    76 float SVGFETurbulence::seed() const
     78float FETurbulence::seed() const
    7779{
    7880    return m_seed;
    7981}
    8082
    81 void SVGFETurbulence::setSeed(float seed)
     83void FETurbulence::setSeed(float seed)
    8284{
    8385    m_seed = seed;
    8486}
    8587
    86 int SVGFETurbulence::numOctaves() const
     88int FETurbulence::numOctaves() const
    8789{
    8890    return m_numOctaves;
    8991}
    9092
    91 void SVGFETurbulence::setNumOctaves(bool numOctaves)
     93void FETurbulence::setNumOctaves(bool numOctaves)
    9294{
    9395    m_numOctaves = numOctaves;
    9496}
    9597
    96 bool SVGFETurbulence::stitchTiles() const
     98bool FETurbulence::stitchTiles() const
    9799{
    98100    return m_stitchTiles;
    99101}
    100102
    101 void SVGFETurbulence::setStitchTiles(bool stitch)
     103void FETurbulence::setStitchTiles(bool stitch)
    102104{
    103105    m_stitchTiles = stitch;
    104106}
    105107
    106 static TextStream& operator<<(TextStream& ts, SVGTurbulanceType t)
     108void FETurbulence::apply()
     109{
     110}
     111
     112void FETurbulence::dump()
     113{
     114}
     115
     116static TextStream& operator<<(TextStream& ts, TurbulanceType t)
    107117{
    108118    switch (t)
    109119    {
    110         case SVG_TURBULENCE_TYPE_UNKNOWN:
     120        case FETURBULENCE_TYPE_UNKNOWN:
    111121            ts << "UNKNOWN"; break;
    112         case SVG_TURBULENCE_TYPE_TURBULENCE:
     122        case FETURBULENCE_TYPE_TURBULENCE:
    113123            ts << "TURBULANCE"; break;
    114         case SVG_TURBULENCE_TYPE_FRACTALNOISE:
     124        case FETURBULENCE_TYPE_FRACTALNOISE:
    115125            ts << "NOISE"; break;
    116126    }
     
    118128}
    119129
    120 TextStream& SVGFETurbulence::externalRepresentation(TextStream& ts) const
     130TextStream& FETurbulence::externalRepresentation(TextStream& ts) const
    121131{
    122132    ts << "[type=TURBULENCE] ";
    123     SVGFilterEffect::externalRepresentation(ts);
     133    FilterEffect::externalRepresentation(ts);
    124134    ts << " [turbulence type=" << type() << "]"
    125135        << " [base frequency x=" << baseFrequencyX() << " y=" << baseFrequencyY() << "]"
     
    127137        << " [num octaves=" << numOctaves() << "]"
    128138        << " [stitch tiles=" << stitchTiles() << "]";
     139
    129140    return ts;
    130 
    131141}
    132142
  • trunk/WebCore/svg/graphics/filters/SVGFETurbulence.h

    r34656 r35094  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 #include "SVGFilterEffect.h"
     26#include "FilterEffect.h"
    2727
    2828namespace WebCore {
    2929
    30 enum SVGTurbulanceType {
    31     SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
    32     SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
    33     SVG_TURBULENCE_TYPE_TURBULENCE   = 2
    34 };
     30    enum TurbulanceType {
     31        FETURBULENCE_TYPE_UNKNOWN      = 0,
     32        FETURBULENCE_TYPE_FRACTALNOISE = 1,
     33        FETURBULENCE_TYPE_TURBULENCE   = 2
     34    };
    3535
    36 class SVGFETurbulence : public SVGFilterEffect {
    37 public:
    38     static PassRefPtr<SVGFETurbulence> create(SVGResourceFilter*);
     36    class FETurbulence : public FilterEffect {
     37    public:
     38        static PassRefPtr<FETurbulence> create(TurbulanceType, const float&, const float&, const int&, const float&,
     39                bool);
    3940
    40     SVGTurbulanceType type() const;
    41     void setType(SVGTurbulanceType);
     41        TurbulanceType type() const;
     42        void setType(TurbulanceType);
    4243
    43     float baseFrequencyY() const;
    44     void setBaseFrequencyY(float);
     44        float baseFrequencyY() const;
     45        void setBaseFrequencyY(float);
    4546
    46     float baseFrequencyX() const;
    47     void setBaseFrequencyX(float);
     47        float baseFrequencyX() const;
     48        void setBaseFrequencyX(float);
    4849
    49     float seed() const;
    50     void setSeed(float);
     50        float seed() const;
     51        void setSeed(float);
    5152
    52     int numOctaves() const;
    53     void setNumOctaves(bool);
     53        int numOctaves() const;
     54        void setNumOctaves(bool);
    5455
    55     bool stitchTiles() const;
    56     void setStitchTiles(bool);
     56        bool stitchTiles() const;
     57        void setStitchTiles(bool);
    5758
    58     virtual TextStream& externalRepresentation(TextStream&) const;
     59        virtual void apply();
     60        virtual void dump();
     61        TextStream& externalRepresentation(TextStream& ts) const;
    5962
    60 private:
    61     SVGFETurbulence(SVGResourceFilter*);
     63    private:
     64        FETurbulence(TurbulanceType, const float&, const float&, const int&, const float&,
     65                bool);
    6266
    63     float m_baseFrequencyX;
    64     float m_baseFrequencyY;
    65     int m_numOctaves;
    66     float m_seed;
    67     bool m_stitchTiles;
    68     SVGTurbulanceType m_type;
    69 };
     67        TurbulanceType m_type;
     68        float m_baseFrequencyX;
     69        float m_baseFrequencyY;
     70        int m_numOctaves;
     71        float m_seed;
     72        bool m_stitchTiles;
     73    };
    7074
    7175} // namespace WebCore
  • trunk/WebCore/svg/graphics/filters/cg/SVGFEHelpersCg.h

    r34912 r35094  
    3434namespace WebCore {
    3535
    36 CIVector* getVectorForChannel(SVGChannelSelectorType channel);
     36CIVector* getVectorForChannel(ChannelSelectorType channel);
    3737CIColor* ciColor(const Color& c);
    3838
  • trunk/WebCore/svg/graphics/filters/cg/SVGFEHelpersCg.mm

    r34912 r35094  
    4040namespace WebCore {
    4141
    42 CIVector* getVectorForChannel(SVGChannelSelectorType channel)
     42CIVector* getVectorForChannel(ChannelSelectorType channel)
    4343{
    4444    switch (channel) {
    45     case SVG_CHANNEL_UNKNOWN:
     45    case CHANNEL_UNKNOWN:
    4646        return nil;   
    47     case SVG_CHANNEL_R:
     47    case CHANNEL_R:
    4848        return [CIVector vectorWithX:1.0f Y:0.0f Z:0.0f W:0.0f];
    49     case SVG_CHANNEL_G:
     49    case CHANNEL_G:
    5050        return [CIVector vectorWithX:0.0f Y:1.0f Z:0.0f W:0.0f];
    51     case SVG_CHANNEL_B:
     51    case CHANNEL_B:
    5252        return [CIVector vectorWithX:0.0f Y:0.0f Z:1.0f W:0.0f];
    53     case SVG_CHANNEL_A:
     53    case CHANNEL_A:
    5454        return [CIVector vectorWithX:0.0f Y:0.0f Z:0.0f W:1.0f];
    5555    default:
Note: See TracChangeset for help on using the changeset viewer.