Reviewed by Oliver.
authorzimmermann <zimmermann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 19 Nov 2006 02:44:41 +0000 (02:44 +0000)
committerzimmermann <zimmermann@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 19 Nov 2006 02:44:41 +0000 (02:44 +0000)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11596
Split up KCanvasFilters & KCanvasFilterQuartz into several
new classes (SVGFEBlend, SVGFEComposite...) and move them
into platform/graphics/svg. This is still a temporary location,
as discussed with Darin; the whole platform/graphics/svg directory
will probably be moved into ksvg2/ in near future.

This commit removes the duplicated enumerations in the svg filter
classes and within kcanvas. ksvg2/ and platform/graphics/svg share
their enums now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17850 268f45cc-cd09-0410-ab3c-d52691b4dbfc

164 files changed:
WebCore/CMakeLists.txt
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/kcanvas/KCanvasFilters.cpp [deleted file]
WebCore/kcanvas/KCanvasFilters.h [deleted file]
WebCore/kcanvas/device/KRenderingDevice.h
WebCore/kcanvas/device/qt/KRenderingDeviceQt.cpp
WebCore/kcanvas/device/qt/KRenderingDeviceQt.h
WebCore/kcanvas/device/quartz/KCanvasFilterQuartz.h [deleted file]
WebCore/kcanvas/device/quartz/KCanvasFilterQuartz.mm [deleted file]
WebCore/kcanvas/device/quartz/KCanvasItemQuartz.cpp
WebCore/kcanvas/device/quartz/KRenderingDeviceQuartz.cpp
WebCore/kcanvas/device/quartz/KRenderingDeviceQuartz.h
WebCore/ksvg2/svg/SVGComponentTransferFunctionElement.cpp
WebCore/ksvg2/svg/SVGComponentTransferFunctionElement.h
WebCore/ksvg2/svg/SVGFEBlendElement.cpp
WebCore/ksvg2/svg/SVGFEBlendElement.h
WebCore/ksvg2/svg/SVGFEColorMatrixElement.cpp
WebCore/ksvg2/svg/SVGFEColorMatrixElement.h
WebCore/ksvg2/svg/SVGFEComponentTransferElement.cpp
WebCore/ksvg2/svg/SVGFEComponentTransferElement.h
WebCore/ksvg2/svg/SVGFECompositeElement.cpp
WebCore/ksvg2/svg/SVGFECompositeElement.h
WebCore/ksvg2/svg/SVGFEDiffuseLightingElement.cpp
WebCore/ksvg2/svg/SVGFEDiffuseLightingElement.h
WebCore/ksvg2/svg/SVGFEDisplacementMapElement.cpp
WebCore/ksvg2/svg/SVGFEDisplacementMapElement.h
WebCore/ksvg2/svg/SVGFEDistantLightElement.cpp
WebCore/ksvg2/svg/SVGFEDistantLightElement.h
WebCore/ksvg2/svg/SVGFEFloodElement.cpp
WebCore/ksvg2/svg/SVGFEFloodElement.h
WebCore/ksvg2/svg/SVGFEGaussianBlurElement.cpp
WebCore/ksvg2/svg/SVGFEGaussianBlurElement.h
WebCore/ksvg2/svg/SVGFEImageElement.cpp
WebCore/ksvg2/svg/SVGFEImageElement.h
WebCore/ksvg2/svg/SVGFELightElement.h
WebCore/ksvg2/svg/SVGFEMergeElement.cpp
WebCore/ksvg2/svg/SVGFEMergeElement.h
WebCore/ksvg2/svg/SVGFEOffsetElement.cpp
WebCore/ksvg2/svg/SVGFEOffsetElement.h
WebCore/ksvg2/svg/SVGFEPointLightElement.cpp
WebCore/ksvg2/svg/SVGFEPointLightElement.h
WebCore/ksvg2/svg/SVGFESpecularLightingElement.cpp
WebCore/ksvg2/svg/SVGFESpecularLightingElement.h
WebCore/ksvg2/svg/SVGFESpotLightElement.cpp
WebCore/ksvg2/svg/SVGFESpotLightElement.h
WebCore/ksvg2/svg/SVGFETileElement.cpp
WebCore/ksvg2/svg/SVGFETileElement.h
WebCore/ksvg2/svg/SVGFETurbulenceElement.cpp
WebCore/ksvg2/svg/SVGFETurbulenceElement.h
WebCore/ksvg2/svg/SVGFilterElement.cpp
WebCore/ksvg2/svg/SVGFilterElement.h
WebCore/ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp
WebCore/ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h
WebCore/platform/graphics/FloatPoint3D.cpp [new file with mode: 0644]
WebCore/platform/graphics/FloatPoint3D.h [new file with mode: 0644]
WebCore/platform/graphics/svg/SVGResourceFilter.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/SVGResourceFilter.h [new file with mode: 0644]
WebCore/platform/graphics/svg/SVGResourceImage.h
WebCore/platform/graphics/svg/SVGResourceListener.h
WebCore/platform/graphics/svg/cg/SVGResourceClipperCg.cpp
WebCore/platform/graphics/svg/cg/SVGResourceFilterCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/cg/SVGResourceMaskerCg.h [deleted file]
WebCore/platform/graphics/svg/cg/SVGResourceMaskerCg.mm
WebCore/platform/graphics/svg/filters/SVGDistantLightSource.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEBlend.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEBlend.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEColorMatrix.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEColorMatrix.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEComponentTransfer.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEComponentTransfer.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEComposite.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEComposite.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEConvolveMatrix.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEDiffuseLighting.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEDisplacementMap.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEDisplacementMap.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEFlood.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEFlood.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEGaussianBlur.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEGaussianBlur.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEImage.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEImage.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEMerge.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEMerge.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEMorphology.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEMorphology.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEOffset.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFEOffset.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFESpecularLighting.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFESpecularLighting.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFETile.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFETurbulence.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFETurbulence.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFilterEffect.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGFilterEffect.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGLightSource.cpp [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGLightSource.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGPointLightSource.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/SVGSpotLightSource.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEBlendCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFECompositeCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEFloodCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEHelpersCg.h [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEImageCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEMergeCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFETileCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm [new file with mode: 0644]
WebCore/platform/graphics/svg/filters/cg/WKArithmeticFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKArithmeticFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKArithmeticFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKArithmeticFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKArithmeticFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKArithmeticFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKComponentMergeFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKComponentMergeFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKComponentMergeFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKComponentMergeFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKComponentMergeFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKComponentMergeFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKDiffuseLightingFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKDiffuseLightingFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKDiffuseLightingFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKDiscreteTransferFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKDiscreteTransferFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKDiscreteTransferFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKDisplacementMapFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDisplacementMapFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKDisplacementMapFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKDisplacementMapFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDistantLightFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKDistantLightFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDistantLightFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKDistantLightFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKDistantLightFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKDistantLightFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKGammaTransferFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKGammaTransferFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKGammaTransferFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKGammaTransferFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKGammaTransferFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKGammaTransferFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKIdentityTransferFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKIdentityTransferFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKIdentityTransferFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKIdentityTransferFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKLinearTransferFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKLinearTransferFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKLinearTransferFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKLinearTransferFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKLinearTransferFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKLinearTransferFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKNormalMapFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKNormalMapFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKNormalMapFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKNormalMapFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKNormalMapFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKNormalMapFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKPointLightFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKPointLightFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKPointLightFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKPointLightFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKPointLightFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKPointLightFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKSpecularLightingFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKSpecularLightingFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKSpecularLightingFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKSpecularLightingFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKSpecularLightingFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKSpotLightFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKSpotLightFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKSpotLightFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKSpotLightFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKSpotLightFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKSpotLightFilter.m with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKTableTransferFilter.cikernel [moved from WebCore/kcanvas/device/quartz/filters/WKTableTransferFilter.cikernel with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKTableTransferFilter.h [moved from WebCore/kcanvas/device/quartz/filters/WKTableTransferFilter.h with 100% similarity]
WebCore/platform/graphics/svg/filters/cg/WKTableTransferFilter.m [moved from WebCore/kcanvas/device/quartz/filters/WKTableTransferFilter.m with 100% similarity]
WebCore/rendering/RenderPath.cpp
WebCore/rendering/RenderSVGContainer.cpp
WebCore/rendering/RenderSVGImage.cpp
WebCore/rendering/SVGInlineFlowBox.cpp

index 7cf67fc7ed2fde0bcb7bdb2e5e8586ca89269ee1..c231b96d3c54ccaff9dda06c92bc32c7047c9732 100644 (file)
@@ -37,6 +37,7 @@ include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/platform/graphics
    ${CMAKE_CURRENT_SOURCE_DIR}/platform/graphics/qt
    ${CMAKE_CURRENT_SOURCE_DIR}/platform/graphics/svg
+   ${CMAKE_CURRENT_SOURCE_DIR}/platform/graphics/svg/filters
    ${CMAKE_CURRENT_SOURCE_DIR}/platform/image-decoders
    ${CMAKE_CURRENT_SOURCE_DIR}/platform/image-decoders/gif
    ${CMAKE_CURRENT_SOURCE_DIR}/platform/image-decoders/jpeg
@@ -533,9 +534,8 @@ set (SVG_SOURCES
     kcanvas/device/qt/KRenderingPaintServerGradientQt.cpp
     kcanvas/device/qt/KRenderingPaintServerPatternQt.cpp
     kcanvas/device/qt/KRenderingPaintServerQt.cpp
-kcanvas/device/qt/KRenderingPaintServerSolidQt.cpp
-kcanvas/device/qt/RenderPathQt.cpp
-kcanvas/KCanvasFilters.cpp
+    kcanvas/device/qt/KRenderingPaintServerSolidQt.cpp
+    kcanvas/device/qt/RenderPathQt.cpp
 
     ksvg2/css/SVGCSSParser.cpp
     ksvg2/css/SVGCSSStyleSelector.cpp
@@ -1019,6 +1019,7 @@ set(WebCore_SRCS
 
     platform/graphics/AffineTransform.cpp
     platform/graphics/Color.cpp
+    platform/graphics/FloatPoint3D.cpp
     platform/graphics/FloatPoint.cpp
     platform/graphics/FloatRect.cpp
     platform/graphics/FloatSize.cpp
@@ -1043,9 +1044,28 @@ set(WebCore_SRCS
 
     platform/graphics/svg/SVGResource.cpp
     platform/graphics/svg/SVGResourceClipper.cpp
+    platform/graphics/svg/SVGResourceFilter.cpp
     platform/graphics/svg/SVGResourceMarker.cpp
     platform/graphics/svg/SVGResourceMasker.cpp
 
+    platform/graphics/svg/filters/SVGFEBlend.cpp
+    platform/graphics/svg/filters/SVGFEColorMatrix.cpp
+    platform/graphics/svg/filters/SVGFEComponentTransfer.cpp
+    platform/graphics/svg/filters/SVGFEComposite.cpp
+    platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp
+    platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp
+    platform/graphics/svg/filters/SVGFEDisplacementMap.cpp
+    platform/graphics/svg/filters/SVGFEFlood.cpp
+    platform/graphics/svg/filters/SVGFEGaussianBlur.cpp
+    platform/graphics/svg/filters/SVGFEImage.cpp
+    platform/graphics/svg/filters/SVGFEMerge.cpp
+    platform/graphics/svg/filters/SVGFEMorphology.cpp
+    platform/graphics/svg/filters/SVGFEOffset.cpp
+    platform/graphics/svg/filters/SVGFESpecularLighting.cpp
+    platform/graphics/svg/filters/SVGFETurbulence.cpp
+    platform/graphics/svg/filters/SVGFilterEffect.cpp
+    platform/graphics/svg/filters/SVGLightSource.cpp
+
     platform/graphics/svg/qt/SVGResourceClipperQt.cpp
     platform/graphics/svg/qt/SVGResourceImageQt.cpp
     platform/graphics/svg/qt/SVGResourceMaskerQt.cpp
index 3776f732c68171fc49c398e8953e3b9d0850f56e..b1e09c4fbaf4da2fb9a16a3932a3c6c6196c5af1 100644 (file)
@@ -1,3 +1,454 @@
+2006-11-19  Nikolas Zimmermann  <zimmermann@kde.org>
+
+        Reviewed by Oliver.
+
+        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11596
+
+        Split up KCanvasFilters & KCanvasFilterQuartz into several
+        new classes (SVGFEBlend, SVGFEComposite...) and move them
+        into platform/graphics/svg. This is still a temporary location,
+        as discussed with Darin; the whole platform/graphics/svg directory
+        will probably be moved into ksvg2/ in near future.
+
+        This finally removes the duplicated enumerations in the svg filter
+        classes and within kcanvas. ksvg2/ and platform/graphics/svg share
+        their enums now. As KCanvasFilters is gone now, The kcanvas/ subdirectory
+        is empty.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/scripts/CodeGeneratorJS.pm:
+        * kcanvas/KCanvasFilters.cpp: Removed.
+        * kcanvas/KCanvasFilters.h: Removed.
+        * kcanvas/device/KRenderingDevice.h:
+        * kcanvas/device/qt/KRenderingDeviceQt.cpp:
+        (WebCore::KRenderingDeviceQt::createFilterEffect):
+        * kcanvas/device/qt/KRenderingDeviceQt.h:
+        * kcanvas/device/quartz/KCanvasFilterQuartz.h: Removed.
+        * kcanvas/device/quartz/KCanvasFilterQuartz.mm: Removed.
+        * kcanvas/device/quartz/KCanvasItemQuartz.cpp:
+        * kcanvas/device/quartz/KRenderingDeviceQuartz.cpp:
+        (WebCore::KRenderingDeviceQuartz::createResource):
+        (WebCore::KRenderingDeviceQuartz::createFilterEffect):
+        * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
+        * kcanvas/device/quartz/filters/WKArithmeticFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKArithmeticFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKArithmeticFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKComponentMergeFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKComponentMergeFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKComponentMergeFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKDiffuseLightingFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKDiffuseLightingFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKDiffuseLightingFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKDiscreteTransferFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKDiscreteTransferFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKDiscreteTransferFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKDisplacementMapFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKDisplacementMapFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKDisplacementMapFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKDistantLightFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKDistantLightFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKDistantLightFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKGammaTransferFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKGammaTransferFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKGammaTransferFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKIdentityTransferFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKIdentityTransferFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKLinearTransferFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKLinearTransferFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKLinearTransferFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKNormalMapFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKNormalMapFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKNormalMapFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKPointLightFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKPointLightFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKPointLightFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKSpecularLightingFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKSpecularLightingFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKSpecularLightingFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKSpotLightFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKSpotLightFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKSpotLightFilter.m: Removed.
+        * kcanvas/device/quartz/filters/WKTableTransferFilter.cikernel: Removed.
+        * kcanvas/device/quartz/filters/WKTableTransferFilter.h: Removed.
+        * kcanvas/device/quartz/filters/WKTableTransferFilter.m: Removed.
+        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
+        (WebCore::SVGComponentTransferFunctionElement::transferFunction):
+        * ksvg2/svg/SVGComponentTransferFunctionElement.h:
+        * ksvg2/svg/SVGFEBlendElement.cpp:
+        (WebCore::SVGFEBlendElement::filterEffect):
+        * ksvg2/svg/SVGFEBlendElement.h:
+        * ksvg2/svg/SVGFEColorMatrixElement.cpp:
+        (WebCore::SVGFEColorMatrixElement::filterEffect):
+        * ksvg2/svg/SVGFEColorMatrixElement.h:
+        * ksvg2/svg/SVGFEComponentTransferElement.cpp:
+        (WebCore::SVGFEComponentTransferElement::filterEffect):
+        * ksvg2/svg/SVGFEComponentTransferElement.h:
+        * ksvg2/svg/SVGFECompositeElement.cpp:
+        (WebCore::SVGFECompositeElement::filterEffect):
+        * ksvg2/svg/SVGFECompositeElement.h:
+        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
+        (WebCore::SVGFEDiffuseLightingElement::filterEffect):
+        (WebCore::SVGFEDiffuseLightingElement::updateLights):
+        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
+        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
+        (WebCore::SVGFEDisplacementMapElement::stringToChannel):
+        (WebCore::SVGFEDisplacementMapElement::filterEffect):
+        * ksvg2/svg/SVGFEDisplacementMapElement.h:
+        * ksvg2/svg/SVGFEDistantLightElement.cpp:
+        (WebCore::SVGFEDistantLightElement::lightSource):
+        * ksvg2/svg/SVGFEDistantLightElement.h:
+        * ksvg2/svg/SVGFEFloodElement.cpp:
+        (WebCore::SVGFEFloodElement::filterEffect):
+        * ksvg2/svg/SVGFEFloodElement.h:
+        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
+        (WebCore::SVGFEGaussianBlurElement::filterEffect):
+        * ksvg2/svg/SVGFEGaussianBlurElement.h:
+        * ksvg2/svg/SVGFEImageElement.cpp:
+        (WebCore::SVGFEImageElement::filterEffect):
+        * ksvg2/svg/SVGFEImageElement.h:
+        * ksvg2/svg/SVGFELightElement.h:
+        * ksvg2/svg/SVGFEMergeElement.cpp:
+        (WebCore::SVGFEMergeElement::filterEffect):
+        * ksvg2/svg/SVGFEMergeElement.h:
+        * ksvg2/svg/SVGFEOffsetElement.cpp:
+        (WebCore::SVGFEOffsetElement::filterEffect):
+        * ksvg2/svg/SVGFEOffsetElement.h:
+        * ksvg2/svg/SVGFEPointLightElement.cpp:
+        (WebCore::SVGFEPointLightElement::lightSource):
+        * ksvg2/svg/SVGFEPointLightElement.h:
+        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
+        (WebCore::SVGFESpecularLightingElement::filterEffect):
+        (WebCore::SVGFESpecularLightingElement::updateLights):
+        * ksvg2/svg/SVGFESpecularLightingElement.h:
+        * ksvg2/svg/SVGFESpotLightElement.cpp:
+        (WebCore::SVGFESpotLightElement::lightSource):
+        * ksvg2/svg/SVGFESpotLightElement.h:
+        * ksvg2/svg/SVGFETileElement.cpp:
+        (WebCore::SVGFETileElement::filterEffect):
+        * ksvg2/svg/SVGFETileElement.h:
+        * ksvg2/svg/SVGFETurbulenceElement.cpp:
+        (WebCore::SVGFETurbulenceElement::filterEffect):
+        * ksvg2/svg/SVGFETurbulenceElement.h:
+        (WebCore::):
+        * ksvg2/svg/SVGFilterElement.cpp:
+        (WebCore::SVGFilterElement::canvasResource):
+        * ksvg2/svg/SVGFilterElement.h:
+        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
+        (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
+        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
+        * platform/graphics/FloatPoint3D.cpp: Added.
+        (WebCore::FloatPoint3D::FloatPoint3D):
+        (WebCore::FloatPoint3D::x):
+        (WebCore::FloatPoint3D::setX):
+        (WebCore::FloatPoint3D::y):
+        (WebCore::FloatPoint3D::setY):
+        (WebCore::FloatPoint3D::z):
+        (WebCore::FloatPoint3D::setZ):
+        (WebCore::FloatPoint3D::normalize):
+        * platform/graphics/FloatPoint3D.h: Added.
+        * platform/graphics/svg/SVGResourceFilter.cpp: Added.
+        (WebCore::SVGResourceFilter::clearEffects):
+        (WebCore::SVGResourceFilter::addFilterEffect):
+        (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
+        (WebCore::SVGResourceFilter::externalRepresentation):
+        (WebCore::getFilterById):
+        * platform/graphics/svg/SVGResourceFilter.h: Added.
+        (WebCore::SVGResourceFilter::isFilter):
+        (WebCore::SVGResourceFilter::filterBoundingBoxMode):
+        (WebCore::SVGResourceFilter::setFilterBoundingBoxMode):
+        (WebCore::SVGResourceFilter::effectBoundingBoxMode):
+        (WebCore::SVGResourceFilter::setEffectBoundingBoxMode):
+        (WebCore::SVGResourceFilter::filterRect):
+        (WebCore::SVGResourceFilter::setFilterRect):
+        * platform/graphics/svg/SVGResourceImage.h:
+        * platform/graphics/svg/SVGResourceListener.h:
+        (SVGResourceListener::SVGResourceListener):
+        (SVGResourceListener::~SVGResourceListener):
+        * platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
+        * platform/graphics/svg/cg/SVGResourceFilterCg.mm: Added.
+        (WebCore::SVGResourceFilter::SVGResourceFilter):
+        (WebCore::SVGResourceFilter::~SVGResourceFilter):
+        (WebCore::SVGResourceFilter::prepareFilter):
+        (WebCore::SVGResourceFilter::applyFilter):
+        (WebCore::SVGResourceFilter::getCIFilterStack):
+        (WebCore::SVGResourceFilter::imageForName):
+        (WebCore::SVGResourceFilter::setImageForName):
+        (WebCore::SVGResourceFilter::setOutputImage):
+        (WebCore::alphaImageForImage):
+        (WebCore::SVGResourceFilter::inputImage):
+        * platform/graphics/svg/cg/SVGResourceMaskerCg.h: Removed.
+        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
+        * platform/graphics/svg/filters/SVGDistantLightSource.h: Added.
+        (WebCore::SVGDistantLightSource::SVGDistantLightSource):
+        (WebCore::SVGDistantLightSource::azimuth):
+        (WebCore::SVGDistantLightSource::elevation):
+        * platform/graphics/svg/filters/SVGFEBlend.cpp: Added.
+        (WebCore::SVGFEBlend::in2):
+        (WebCore::SVGFEBlend::setIn2):
+        (WebCore::SVGFEBlend::blendMode):
+        (WebCore::SVGFEBlend::setBlendMode):
+        (WebCore::operator<<):
+        (WebCore::SVGFEBlend::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEBlend.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFEColorMatrix.cpp: Added.
+        (WebCore::SVGFEColorMatrix::type):
+        (WebCore::SVGFEColorMatrix::setType):
+        (WebCore::SVGFEColorMatrix::values):
+        (WebCore::SVGFEColorMatrix::setValues):
+        (WebCore::operator<<):
+        (WebCore::SVGFEColorMatrix::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEColorMatrix.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp: Added.
+        (WebCore::SVGFEComponentTransfer::redFunction):
+        (WebCore::SVGFEComponentTransfer::setRedFunction):
+        (WebCore::SVGFEComponentTransfer::greenFunction):
+        (WebCore::SVGFEComponentTransfer::setGreenFunction):
+        (WebCore::SVGFEComponentTransfer::blueFunction):
+        (WebCore::SVGFEComponentTransfer::setBlueFunction):
+        (WebCore::SVGFEComponentTransfer::alphaFunction):
+        (WebCore::SVGFEComponentTransfer::setAlphaFunction):
+        (WebCore::operator<<):
+        (WebCore::SVGFEComponentTransfer::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEComponentTransfer.h: Added.
+        (WebCore::):
+        (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
+        * platform/graphics/svg/filters/SVGFEComposite.cpp: Added.
+        (WebCore::SVGFEComposite::in2):
+        (WebCore::SVGFEComposite::setIn2):
+        (WebCore::SVGFEComposite::operation):
+        (WebCore::SVGFEComposite::setOperation):
+        (WebCore::SVGFEComposite::k1):
+        (WebCore::SVGFEComposite::setK1):
+        (WebCore::SVGFEComposite::k2):
+        (WebCore::SVGFEComposite::setK2):
+        (WebCore::SVGFEComposite::k3):
+        (WebCore::SVGFEComposite::setK3):
+        (WebCore::SVGFEComposite::k4):
+        (WebCore::SVGFEComposite::setK4):
+        (WebCore::SVGFEComposite::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEComposite.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp: Added.
+        (WebCore::SVGFEConvolveMatrix::kernelSize):
+        (WebCore::SVGFEConvolveMatrix::setKernelSize):
+        (WebCore::SVGFEConvolveMatrix::kernel):
+        (WebCore::SVGFEConvolveMatrix::setKernel):
+        (WebCore::SVGFEConvolveMatrix::divisor):
+        (WebCore::SVGFEConvolveMatrix::setDivisor):
+        (WebCore::SVGFEConvolveMatrix::bias):
+        (WebCore::SVGFEConvolveMatrix::setBias):
+        (WebCore::SVGFEConvolveMatrix::targetOffset):
+        (WebCore::SVGFEConvolveMatrix::setTargetOffset):
+        (WebCore::SVGFEConvolveMatrix::edgeMode):
+        (WebCore::SVGFEConvolveMatrix::setEdgeMode):
+        (WebCore::SVGFEConvolveMatrix::kernelUnitLength):
+        (WebCore::SVGFEConvolveMatrix::setKernelUnitLength):
+        (WebCore::SVGFEConvolveMatrix::preserveAlpha):
+        (WebCore::SVGFEConvolveMatrix::setPreserveAlpha):
+        (WebCore::operator<<):
+        (WebCore::SVGFEConvolveMatrix::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp: Added.
+        (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
+        (WebCore::SVGFEDiffuseLighting::~SVGFEDiffuseLighting):
+        (WebCore::SVGFEDiffuseLighting::lightingColor):
+        (WebCore::SVGFEDiffuseLighting::setLightingColor):
+        (WebCore::SVGFEDiffuseLighting::surfaceScale):
+        (WebCore::SVGFEDiffuseLighting::setSurfaceScale):
+        (WebCore::SVGFEDiffuseLighting::diffuseConstant):
+        (WebCore::SVGFEDiffuseLighting::setDiffuseConstant):
+        (WebCore::SVGFEDiffuseLighting::kernelUnitLengthX):
+        (WebCore::SVGFEDiffuseLighting::setKernelUnitLengthX):
+        (WebCore::SVGFEDiffuseLighting::kernelUnitLengthY):
+        (WebCore::SVGFEDiffuseLighting::setKernelUnitLengthY):
+        (WebCore::SVGFEDiffuseLighting::lightSource):
+        (WebCore::SVGFEDiffuseLighting::setLightSource):
+        (WebCore::SVGFEDiffuseLighting::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h: Added.
+        * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp: Added.
+        (WebCore::SVGFEDisplacementMap::SVGFEDisplacementMap):
+        (WebCore::SVGFEDisplacementMap::in2):
+        (WebCore::SVGFEDisplacementMap::setIn2):
+        (WebCore::SVGFEDisplacementMap::xChannelSelector):
+        (WebCore::SVGFEDisplacementMap::setXChannelSelector):
+        (WebCore::SVGFEDisplacementMap::yChannelSelector):
+        (WebCore::SVGFEDisplacementMap::setYChannelSelector):
+        (WebCore::SVGFEDisplacementMap::scale):
+        (WebCore::SVGFEDisplacementMap::setScale):
+        (WebCore::operator<<):
+        (WebCore::SVGFEDisplacementMap::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEDisplacementMap.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFEFlood.cpp: Added.
+        (WebCore::SVGFEFlood::floodColor):
+        (WebCore::SVGFEFlood::setFloodColor):
+        (WebCore::SVGFEFlood::floodOpacity):
+        (WebCore::SVGFEFlood::setFloodOpacity):
+        (WebCore::SVGFEFlood::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEFlood.h: Added.
+        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp: Added.
+        (WebCore::SVGFEGaussianBlur::stdDeviationX):
+        (WebCore::SVGFEGaussianBlur::setStdDeviationX):
+        (WebCore::SVGFEGaussianBlur::stdDeviationY):
+        (WebCore::SVGFEGaussianBlur::setStdDeviationY):
+        (WebCore::SVGFEGaussianBlur::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEGaussianBlur.h: Added.
+        * platform/graphics/svg/filters/SVGFEImage.cpp: Added.
+        (WebCore::SVGFEImage::SVGFEImage):
+        (WebCore::SVGFEImage::~SVGFEImage):
+        (WebCore::SVGFEImage::cachedImage):
+        (WebCore::SVGFEImage::setCachedImage):
+        (WebCore::SVGFEImage::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEImage.h: Added.
+        * platform/graphics/svg/filters/SVGFEMerge.cpp: Added.
+        (WebCore::SVGFEMerge::mergeInputs):
+        (WebCore::SVGFEMerge::setMergeInputs):
+        (WebCore::SVGFEMerge::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEMerge.h: Added.
+        * platform/graphics/svg/filters/SVGFEMorphology.cpp: Added.
+        (WebCore::SVGFEMorphology::morphologyOperator):
+        (WebCore::SVGFEMorphology::setMorphologyOperator):
+        (WebCore::SVGFEMorphology::radiusX):
+        (WebCore::SVGFEMorphology::setRadiusX):
+        (WebCore::SVGFEMorphology::radiusY):
+        (WebCore::SVGFEMorphology::setRadiusY):
+        (WebCore::operator<<):
+        (WebCore::SVGFEMorphology::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEMorphology.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFEOffset.cpp: Added.
+        (WebCore::SVGFEOffset::dx):
+        (WebCore::SVGFEOffset::setDx):
+        (WebCore::SVGFEOffset::dy):
+        (WebCore::SVGFEOffset::setDy):
+        (WebCore::SVGFEOffset::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFEOffset.h: Added.
+        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp: Added.
+        (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
+        (WebCore::SVGFESpecularLighting::~SVGFESpecularLighting):
+        (WebCore::SVGFESpecularLighting::lightingColor):
+        (WebCore::SVGFESpecularLighting::setLightingColor):
+        (WebCore::SVGFESpecularLighting::surfaceScale):
+        (WebCore::SVGFESpecularLighting::setSurfaceScale):
+        (WebCore::SVGFESpecularLighting::specularConstant):
+        (WebCore::SVGFESpecularLighting::setSpecularConstant):
+        (WebCore::SVGFESpecularLighting::specularExponent):
+        (WebCore::SVGFESpecularLighting::setSpecularExponent):
+        (WebCore::SVGFESpecularLighting::kernelUnitLengthX):
+        (WebCore::SVGFESpecularLighting::setKernelUnitLengthX):
+        (WebCore::SVGFESpecularLighting::kernelUnitLengthY):
+        (WebCore::SVGFESpecularLighting::setKernelUnitLengthY):
+        (WebCore::SVGFESpecularLighting::lightSource):
+        (WebCore::SVGFESpecularLighting::setLightSource):
+        (WebCore::SVGFESpecularLighting::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFESpecularLighting.h: Added.
+        * platform/graphics/svg/filters/SVGFETile.h: Added.
+        * platform/graphics/svg/filters/SVGFETurbulence.cpp: Added.
+        (WebCore::SVGFETurbulence::type):
+        (WebCore::SVGFETurbulence::setType):
+        (WebCore::SVGFETurbulence::baseFrequencyY):
+        (WebCore::SVGFETurbulence::setBaseFrequencyY):
+        (WebCore::SVGFETurbulence::baseFrequencyX):
+        (WebCore::SVGFETurbulence::setBaseFrequencyX):
+        (WebCore::SVGFETurbulence::seed):
+        (WebCore::SVGFETurbulence::setSeed):
+        (WebCore::SVGFETurbulence::numOctaves):
+        (WebCore::SVGFETurbulence::setNumOctaves):
+        (WebCore::SVGFETurbulence::stitchTiles):
+        (WebCore::SVGFETurbulence::setStitchTiles):
+        (WebCore::operator<<):
+        (WebCore::SVGFETurbulence::externalRepresentation):
+        * platform/graphics/svg/filters/SVGFETurbulence.h: Added.
+        (WebCore::):
+        * platform/graphics/svg/filters/SVGFilterEffect.cpp: Added.
+        (WebCore::SVGFilterEffect::subRegion):
+        (WebCore::SVGFilterEffect::setSubRegion):
+        (WebCore::SVGFilterEffect::in):
+        (WebCore::SVGFilterEffect::setIn):
+        (WebCore::SVGFilterEffect::result):
+        (WebCore::SVGFilterEffect::setResult):
+        (WebCore::SVGFilterEffect::externalRepresentation):
+        (WebCore::operator<<):
+        * platform/graphics/svg/filters/SVGFilterEffect.h: Added.
+        (WebCore::):
+        (WebCore::SVGFilterEffect::SVGFilterEffect):
+        (WebCore::SVGFilterEffect::~SVGFilterEffect):
+        (WebCore::SVGFilterEffect::effectType):
+        * platform/graphics/svg/filters/SVGLightSource.cpp: Added.
+        (WebCore::operator<<):
+        (WebCore::SVGPointLightSource::externalRepresentation):
+        (WebCore::SVGSpotLightSource::externalRepresentation):
+        (WebCore::SVGDistantLightSource::externalRepresentation):
+        * platform/graphics/svg/filters/SVGLightSource.h: Added.
+        (WebCore::):
+        (WebCore::SVGLightSource::SVGLightSource):
+        (WebCore::SVGLightSource::~SVGLightSource):
+        (WebCore::SVGLightSource::type):
+        * platform/graphics/svg/filters/SVGPointLightSource.h: Added.
+        (WebCore::SVGPointLightSource::SVGPointLightSource):
+        (WebCore::SVGPointLightSource::position):
+        * platform/graphics/svg/filters/SVGSpotLightSource.h: Added.
+        (WebCore::SVGSpotLightSource::SVGSpotLightSource):
+        (WebCore::SVGSpotLightSource::position):
+        (WebCore::SVGSpotLightSource::direction):
+        (WebCore::SVGSpotLightSource::specularExponent):
+        (WebCore::SVGSpotLightSource::limitingConeAngle):
+        * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm: Added.
+        (WebCore::SVGFEBlend::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm: Added.
+        (WebCore::SVGFEColorMatrix::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm: Added.
+        (WebCore::genImageFromTable):
+        (WebCore::setParametersForComponentFunc):
+        (WebCore::filterForComponentFunc):
+        (WebCore::getFilterForFunc):
+        (WebCore::SVGFEComponentTransfer::getFunctionFilter):
+        (WebCore::SVGFEComponentTransfer::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm: Added.
+        (WebCore::SVGFEComposite::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm: Added.
+        (WebCore::SVGFEDiffuseLighting::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm: Added.
+        (WebCore::SVGFEDisplacementMap::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm: Added.
+        (WebCore::SVGFEFlood::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm: Added.
+        (WebCore::SVGFEGaussianBlur::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h: Added.
+        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm: Added.
+        (WebCore::getVectorForChannel):
+        (WebCore::ciColor):
+        (WebCore::getPointLightVectors):
+        (WebCore::getLightVectors):
+        (WebCore::getNormalMap):
+        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm: Added.
+        (WebCore::SVGFEImage::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm: Added.
+        (WebCore::SVGFEMerge::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm: Added.
+        (WebCore::SVGFEOffset::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm: Added.
+        (WebCore::SVGFESpecularLighting::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFETileCg.mm: Added.
+        (WebCore::SVGFETile::getCIFilter):
+        * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm: Added.
+        (WebCore::SVGFilterEffect::getCIFilter):
+        * rendering/RenderPath.cpp:
+        (WebCore::RenderPath::getAbsoluteRepaintRect):
+        (WebCore::RenderPath::paint):
+        * rendering/RenderSVGContainer.cpp:
+        (WebCore::RenderSVGContainer::paint):
+        (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
+        * rendering/RenderSVGImage.cpp:
+        (WebCore::RenderSVGImage::paint):
+        (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
+        * rendering/SVGInlineFlowBox.cpp:
+        (WebCore::paintSVGInlineFlow):
+
 2006-11-18  Rob Buis  <buis@kde.org>
 
         Reviewed by Maciej.
index d1108840a113f2d0809df7ff575f1cda0d84eb16..62de678bfc17d3e8947668b8a28b463b6ba38d88 100644 (file)
                A70023FD0B02BEAB00170215 /* MimeTypeRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A70023FB0B02BEAB00170215 /* MimeTypeRegistry.cpp */; };
                A70023FE0B02BEAB00170215 /* MimeTypeRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = A70023FC0B02BEAB00170215 /* MimeTypeRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A70024000B02BECC00170215 /* MimeTypeRegistryMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A70023FF0B02BECC00170215 /* MimeTypeRegistryMac.mm */; };
-               A7638A8B09958EA50007E14F /* WKDisplacementMapFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7638A8909958EA50007E14F /* WKDisplacementMapFilter.h */; };
-               A7638A8C09958EA50007E14F /* WKDisplacementMapFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7638A8A09958EA50007E14F /* WKDisplacementMapFilter.m */; };
-               A7638A92099592C30007E14F /* WKDisplacementMapFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A7638A91099592C30007E14F /* WKDisplacementMapFilter.cikernel */; };
                A7638A970995965D0007E14F /* SVGFEDisplacementMapElement.h in Headers */ = {isa = PBXBuildFile; fileRef = A7638A950995965D0007E14F /* SVGFEDisplacementMapElement.h */; };
                A7638A980995965D0007E14F /* SVGFEDisplacementMapElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7638A960995965D0007E14F /* SVGFEDisplacementMapElement.cpp */; };
-               A7B97B770979C3A1000E8EB1 /* WKComponentMergeFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A7B97B660979C3A1000E8EB1 /* WKComponentMergeFilter.cikernel */; };
-               A7B97B780979C3A1000E8EB1 /* WKComponentMergeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B97B670979C3A1000E8EB1 /* WKComponentMergeFilter.h */; };
-               A7B97B790979C3A1000E8EB1 /* WKComponentMergeFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B97B680979C3A1000E8EB1 /* WKComponentMergeFilter.m */; };
-               A7B97B7A0979C3A1000E8EB1 /* WKDiscreteTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A7B97B690979C3A1000E8EB1 /* WKDiscreteTransferFilter.cikernel */; };
-               A7B97B7B0979C3A1000E8EB1 /* WKDiscreteTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B97B6A0979C3A1000E8EB1 /* WKDiscreteTransferFilter.h */; };
-               A7B97B7C0979C3A1000E8EB1 /* WKDiscreteTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B97B6B0979C3A1000E8EB1 /* WKDiscreteTransferFilter.m */; };
-               A7B97B7D0979C3A1000E8EB1 /* WKGammaTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A7B97B6C0979C3A1000E8EB1 /* WKGammaTransferFilter.cikernel */; };
-               A7B97B7E0979C3A1000E8EB1 /* WKGammaTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B97B6D0979C3A1000E8EB1 /* WKGammaTransferFilter.h */; };
-               A7B97B7F0979C3A1000E8EB1 /* WKGammaTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B97B6E0979C3A1000E8EB1 /* WKGammaTransferFilter.m */; };
-               A7B97B800979C3A1000E8EB1 /* WKIdentityTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B97B6F0979C3A1000E8EB1 /* WKIdentityTransferFilter.h */; };
-               A7B97B810979C3A1000E8EB1 /* WKIdentityTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B97B700979C3A1000E8EB1 /* WKIdentityTransferFilter.m */; };
-               A7B97B820979C3A1000E8EB1 /* WKLinearTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A7B97B710979C3A1000E8EB1 /* WKLinearTransferFilter.cikernel */; };
-               A7B97B830979C3A1000E8EB1 /* WKLinearTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B97B720979C3A1000E8EB1 /* WKLinearTransferFilter.h */; };
-               A7B97B840979C3A1000E8EB1 /* WKLinearTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B97B730979C3A1000E8EB1 /* WKLinearTransferFilter.m */; };
-               A7B97B850979C3A1000E8EB1 /* WKTableTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A7B97B740979C3A1000E8EB1 /* WKTableTransferFilter.cikernel */; };
-               A7B97B860979C3A1000E8EB1 /* WKTableTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B97B750979C3A1000E8EB1 /* WKTableTransferFilter.h */; };
-               A7B97B870979C3A1000E8EB1 /* WKTableTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B97B760979C3A1000E8EB1 /* WKTableTransferFilter.m */; };
                A7D23C540B03E41300582A4F /* WebMimeTypeRegistryBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D23C520B03E41300582A4F /* WebMimeTypeRegistryBridge.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A7D23C550B03E41300582A4F /* WebMimeTypeRegistryBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = A7D23C530B03E41300582A4F /* WebMimeTypeRegistryBridge.mm */; };
                A80E6CE40A1989CA007FB8C5 /* CSSValueList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A80E6CBA0A1989CA007FB8C5 /* CSSValueList.cpp */; };
                A833C80C0A2CF25600D57664 /* XMLNames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A833C80A0A2CF25600D57664 /* XMLNames.cpp */; };
                A833C80D0A2CF25600D57664 /* XMLNames.h in Headers */ = {isa = PBXBuildFile; fileRef = A833C80B0A2CF25600D57664 /* XMLNames.h */; };
                A833C8520A2CF52800D57664 /* SVGElementFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 656581E609D1508D000E61D7 /* SVGElementFactory.cpp */; };
-               A8415FA20AC10C5D00F7D0DF /* KCanvasFilters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8415F990AC10C5D00F7D0DF /* KCanvasFilters.cpp */; };
                A86629CF09DA2B47009633A5 /* JSUIEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A86629C909DA2B47009633A5 /* JSUIEvent.h */; };
                A86629D009DA2B48009633A5 /* JSUIEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A86629CA09DA2B47009633A5 /* JSUIEvent.cpp */; };
                A86629D109DA2B48009633A5 /* JSMouseEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A86629CB09DA2B47009633A5 /* JSMouseEvent.h */; };
                A88AD3900952486D001DD196 /* KRenderingPaintServerPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0FB61089701F700BA5114 /* KRenderingPaintServerPattern.h */; };
                A88AD3910952486D001DD196 /* KRenderingPaintServerSolid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0FB62089701F700BA5114 /* KRenderingPaintServerSolid.cpp */; };
                A88AD3920952486D001DD196 /* KRenderingPaintServerSolid.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0FB63089701F700BA5114 /* KRenderingPaintServerSolid.h */; };
-               A88AD3950952486D001DD196 /* WKArithmeticFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C32920093BB732000B9CAC /* WKArithmeticFilter.cikernel */; };
-               A88AD3960952486D001DD196 /* WKArithmeticFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C32921093BB732000B9CAC /* WKArithmeticFilter.h */; };
-               A88AD3970952486D001DD196 /* WKArithmeticFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C32922093BB732000B9CAC /* WKArithmeticFilter.m */; };
-               A88AD3980952486D001DD196 /* WKDiffuseLightingFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C32923093BB732000B9CAC /* WKDiffuseLightingFilter.cikernel */; };
-               A88AD3990952486D001DD196 /* WKDiffuseLightingFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C32924093BB732000B9CAC /* WKDiffuseLightingFilter.h */; };
-               A88AD39A0952486D001DD196 /* WKDiffuseLightingFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C32925093BB732000B9CAC /* WKDiffuseLightingFilter.m */; };
-               A88AD39B0952486D001DD196 /* WKDistantLightFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C32926093BB732000B9CAC /* WKDistantLightFilter.cikernel */; };
-               A88AD39C0952486D001DD196 /* WKDistantLightFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C32927093BB732000B9CAC /* WKDistantLightFilter.h */; };
-               A88AD39D0952486D001DD196 /* WKDistantLightFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C32928093BB732000B9CAC /* WKDistantLightFilter.m */; };
-               A88AD39E0952486D001DD196 /* WKNormalMapFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C32929093BB732000B9CAC /* WKNormalMapFilter.cikernel */; };
-               A88AD39F0952486D001DD196 /* WKNormalMapFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C3292A093BB732000B9CAC /* WKNormalMapFilter.h */; };
-               A88AD3A00952486D001DD196 /* WKNormalMapFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C3292B093BB732000B9CAC /* WKNormalMapFilter.m */; };
-               A88AD3A10952486D001DD196 /* WKPointLightFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C3292C093BB732000B9CAC /* WKPointLightFilter.cikernel */; };
-               A88AD3A20952486D001DD196 /* WKPointLightFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C3292D093BB732000B9CAC /* WKPointLightFilter.h */; };
-               A88AD3A30952486D001DD196 /* WKPointLightFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C3292E093BB732000B9CAC /* WKPointLightFilter.m */; };
-               A88AD3A40952486D001DD196 /* WKSpecularLightingFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C3292F093BB732000B9CAC /* WKSpecularLightingFilter.cikernel */; };
-               A88AD3A50952486D001DD196 /* WKSpecularLightingFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C32930093BB732000B9CAC /* WKSpecularLightingFilter.h */; };
-               A88AD3A60952486D001DD196 /* WKSpecularLightingFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C32931093BB732000B9CAC /* WKSpecularLightingFilter.m */; };
-               A88AD3A70952486D001DD196 /* WKSpotLightFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = A8C32932093BB732000B9CAC /* WKSpotLightFilter.cikernel */; };
-               A88AD3A80952486D001DD196 /* WKSpotLightFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C32933093BB732000B9CAC /* WKSpotLightFilter.h */; };
-               A88AD3A90952486D001DD196 /* WKSpotLightFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = A8C32934093BB732000B9CAC /* WKSpotLightFilter.m */; };
-               A88AD3AA0952486D001DD196 /* KCanvasFilterQuartz.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0FB69089701F800BA5114 /* KCanvasFilterQuartz.h */; };
-               A88AD3AB0952486D001DD196 /* KCanvasFilterQuartz.mm in Sources */ = {isa = PBXBuildFile; fileRef = A8C0FB6A089701F800BA5114 /* KCanvasFilterQuartz.mm */; };
                A88AD3AD0952486D001DD196 /* KCanvasItemQuartz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0FB6C089701F800BA5114 /* KCanvasItemQuartz.cpp */; };
                A88AD3B00952486E001DD196 /* KRenderingDeviceQuartz.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0FB71089701F800BA5114 /* KRenderingDeviceQuartz.h */; };
                A88AD3B10952486E001DD196 /* KRenderingDeviceQuartz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0FB72089701F800BA5114 /* KRenderingDeviceQuartz.cpp */; };
                A88AD3B40952486E001DD196 /* KRenderingPaintServerQuartz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0FB75089701F800BA5114 /* KRenderingPaintServerQuartz.cpp */; };
                A88AD3B50952486E001DD196 /* QuartzSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0FB76089701F800BA5114 /* QuartzSupport.h */; };
                A88AD3B60952486E001DD196 /* QuartzSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0FB77089701F800BA5114 /* QuartzSupport.cpp */; };
-               A88AD3BE0952486E001DD196 /* KCanvasFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0FB7F089701F800BA5114 /* KCanvasFilters.h */; };
                A88AD401095248F0001DD196 /* SVGRenderStyle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0F6FF089701F100BA5114 /* SVGRenderStyle.cpp */; };
                A88AD402095248F0001DD196 /* SVGRenderStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C0F700089701F100BA5114 /* SVGRenderStyle.h */; settings = {ATTRIBUTES = (Private, ); }; };
                A88AD403095248F0001DD196 /* SVGRenderStyleDefs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C0F701089701F100BA5114 /* SVGRenderStyleDefs.cpp */; };
                B2A015BA0AF6CD53006BCE0E /* SVGResourceMasker.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A015A70AF6CD53006BCE0E /* SVGResourceMasker.h */; };
                B2CB41930AB75904004D9C45 /* SVGRenderingIntent.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CB414C0AB75904004D9C45 /* SVGRenderingIntent.h */; };
                B2CB41A60AB75904004D9C45 /* SVGUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CB415F0AB75904004D9C45 /* SVGUnitTypes.h */; };
+               B2E27BD50B0F2A9500F17C7B /* SVGResourceFilterCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BD30B0F2A9500F17C7B /* SVGResourceFilterCg.mm */; };
+               B2E27BDA0B0F2AC800F17C7B /* SVGResourceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BD70B0F2AC800F17C7B /* SVGResourceFilter.cpp */; };
+               B2E27BDB0B0F2AC800F17C7B /* SVGResourceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BD80B0F2AC800F17C7B /* SVGResourceFilter.h */; };
+               B2E27BDC0B0F2AC800F17C7B /* SVGResourceListener.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BD90B0F2AC800F17C7B /* SVGResourceListener.h */; };
+               B2E27C3E0B0F2AE600F17C7B /* SVGFEBlendCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BDF0B0F2AE600F17C7B /* SVGFEBlendCg.mm */; };
+               B2E27C3F0B0F2AE600F17C7B /* SVGFEColorMatrixCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE00B0F2AE600F17C7B /* SVGFEColorMatrixCg.mm */; };
+               B2E27C400B0F2AE600F17C7B /* SVGFEComponentTransferCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE10B0F2AE600F17C7B /* SVGFEComponentTransferCg.mm */; };
+               B2E27C410B0F2AE600F17C7B /* SVGFECompositeCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE20B0F2AE600F17C7B /* SVGFECompositeCg.mm */; };
+               B2E27C420B0F2AE600F17C7B /* SVGFEDiffuseLightingCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE30B0F2AE600F17C7B /* SVGFEDiffuseLightingCg.mm */; };
+               B2E27C430B0F2AE600F17C7B /* SVGFEDisplacementMapCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE40B0F2AE600F17C7B /* SVGFEDisplacementMapCg.mm */; };
+               B2E27C440B0F2AE600F17C7B /* SVGFEFloodCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE50B0F2AE600F17C7B /* SVGFEFloodCg.mm */; };
+               B2E27C450B0F2AE600F17C7B /* SVGFEGaussianBlurCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE60B0F2AE600F17C7B /* SVGFEGaussianBlurCg.mm */; };
+               B2E27C460B0F2AE600F17C7B /* SVGFEHelpersCg.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BE70B0F2AE600F17C7B /* SVGFEHelpersCg.h */; };
+               B2E27C470B0F2AE600F17C7B /* SVGFEHelpersCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE80B0F2AE600F17C7B /* SVGFEHelpersCg.mm */; };
+               B2E27C480B0F2AE600F17C7B /* SVGFEImageCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BE90B0F2AE600F17C7B /* SVGFEImageCg.mm */; };
+               B2E27C490B0F2AE600F17C7B /* SVGFEMergeCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BEA0B0F2AE600F17C7B /* SVGFEMergeCg.mm */; };
+               B2E27C4A0B0F2AE600F17C7B /* SVGFEOffsetCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BEB0B0F2AE600F17C7B /* SVGFEOffsetCg.mm */; };
+               B2E27C4B0B0F2AE600F17C7B /* SVGFESpecularLightingCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BEC0B0F2AE600F17C7B /* SVGFESpecularLightingCg.mm */; };
+               B2E27C4C0B0F2AE600F17C7B /* SVGFETileCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BED0B0F2AE600F17C7B /* SVGFETileCg.mm */; };
+               B2E27C4D0B0F2AE600F17C7B /* SVGFilterEffectCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BEE0B0F2AE600F17C7B /* SVGFilterEffectCg.mm */; };
+               B2E27C4E0B0F2AE600F17C7B /* WKArithmeticFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27BEF0B0F2AE600F17C7B /* WKArithmeticFilter.cikernel */; };
+               B2E27C4F0B0F2AE600F17C7B /* WKArithmeticFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BF00B0F2AE600F17C7B /* WKArithmeticFilter.h */; };
+               B2E27C500B0F2AE600F17C7B /* WKArithmeticFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BF10B0F2AE600F17C7B /* WKArithmeticFilter.m */; };
+               B2E27C510B0F2AE600F17C7B /* WKComponentMergeFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27BF20B0F2AE600F17C7B /* WKComponentMergeFilter.cikernel */; };
+               B2E27C520B0F2AE600F17C7B /* WKComponentMergeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BF30B0F2AE600F17C7B /* WKComponentMergeFilter.h */; };
+               B2E27C530B0F2AE600F17C7B /* WKComponentMergeFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BF40B0F2AE600F17C7B /* WKComponentMergeFilter.m */; };
+               B2E27C540B0F2AE600F17C7B /* WKDiffuseLightingFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27BF50B0F2AE600F17C7B /* WKDiffuseLightingFilter.cikernel */; };
+               B2E27C550B0F2AE600F17C7B /* WKDiffuseLightingFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BF60B0F2AE600F17C7B /* WKDiffuseLightingFilter.h */; };
+               B2E27C560B0F2AE600F17C7B /* WKDiffuseLightingFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BF70B0F2AE600F17C7B /* WKDiffuseLightingFilter.m */; };
+               B2E27C570B0F2AE600F17C7B /* WKDiscreteTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27BF80B0F2AE600F17C7B /* WKDiscreteTransferFilter.cikernel */; };
+               B2E27C580B0F2AE600F17C7B /* WKDiscreteTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BF90B0F2AE600F17C7B /* WKDiscreteTransferFilter.h */; };
+               B2E27C590B0F2AE600F17C7B /* WKDiscreteTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BFA0B0F2AE600F17C7B /* WKDiscreteTransferFilter.m */; };
+               B2E27C5A0B0F2AE600F17C7B /* WKDisplacementMapFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27BFB0B0F2AE600F17C7B /* WKDisplacementMapFilter.cikernel */; };
+               B2E27C5B0B0F2AE600F17C7B /* WKDisplacementMapFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BFC0B0F2AE600F17C7B /* WKDisplacementMapFilter.h */; };
+               B2E27C5C0B0F2AE600F17C7B /* WKDisplacementMapFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27BFD0B0F2AE600F17C7B /* WKDisplacementMapFilter.m */; };
+               B2E27C5D0B0F2AE600F17C7B /* WKDistantLightFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27BFE0B0F2AE600F17C7B /* WKDistantLightFilter.cikernel */; };
+               B2E27C5E0B0F2AE600F17C7B /* WKDistantLightFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27BFF0B0F2AE600F17C7B /* WKDistantLightFilter.h */; };
+               B2E27C5F0B0F2AE600F17C7B /* WKDistantLightFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C000B0F2AE600F17C7B /* WKDistantLightFilter.m */; };
+               B2E27C600B0F2AE600F17C7B /* WKGammaTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C010B0F2AE600F17C7B /* WKGammaTransferFilter.cikernel */; };
+               B2E27C610B0F2AE600F17C7B /* WKGammaTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C020B0F2AE600F17C7B /* WKGammaTransferFilter.h */; };
+               B2E27C620B0F2AE600F17C7B /* WKGammaTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C030B0F2AE600F17C7B /* WKGammaTransferFilter.m */; };
+               B2E27C630B0F2AE600F17C7B /* WKIdentityTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C040B0F2AE600F17C7B /* WKIdentityTransferFilter.h */; };
+               B2E27C640B0F2AE600F17C7B /* WKIdentityTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C050B0F2AE600F17C7B /* WKIdentityTransferFilter.m */; };
+               B2E27C650B0F2AE600F17C7B /* WKLinearTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C060B0F2AE600F17C7B /* WKLinearTransferFilter.cikernel */; };
+               B2E27C660B0F2AE600F17C7B /* WKLinearTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C070B0F2AE600F17C7B /* WKLinearTransferFilter.h */; };
+               B2E27C670B0F2AE600F17C7B /* WKLinearTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C080B0F2AE600F17C7B /* WKLinearTransferFilter.m */; };
+               B2E27C680B0F2AE600F17C7B /* WKNormalMapFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C090B0F2AE600F17C7B /* WKNormalMapFilter.cikernel */; };
+               B2E27C690B0F2AE600F17C7B /* WKNormalMapFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C0A0B0F2AE600F17C7B /* WKNormalMapFilter.h */; };
+               B2E27C6A0B0F2AE600F17C7B /* WKNormalMapFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C0B0B0F2AE600F17C7B /* WKNormalMapFilter.m */; };
+               B2E27C6B0B0F2AE600F17C7B /* WKPointLightFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C0C0B0F2AE600F17C7B /* WKPointLightFilter.cikernel */; };
+               B2E27C6C0B0F2AE600F17C7B /* WKPointLightFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C0D0B0F2AE600F17C7B /* WKPointLightFilter.h */; };
+               B2E27C6D0B0F2AE600F17C7B /* WKPointLightFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C0E0B0F2AE600F17C7B /* WKPointLightFilter.m */; };
+               B2E27C6E0B0F2AE600F17C7B /* WKSpecularLightingFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C0F0B0F2AE600F17C7B /* WKSpecularLightingFilter.cikernel */; };
+               B2E27C6F0B0F2AE600F17C7B /* WKSpecularLightingFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C100B0F2AE600F17C7B /* WKSpecularLightingFilter.h */; };
+               B2E27C700B0F2AE600F17C7B /* WKSpecularLightingFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C110B0F2AE600F17C7B /* WKSpecularLightingFilter.m */; };
+               B2E27C710B0F2AE600F17C7B /* WKSpotLightFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C120B0F2AE600F17C7B /* WKSpotLightFilter.cikernel */; };
+               B2E27C720B0F2AE600F17C7B /* WKSpotLightFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C130B0F2AE600F17C7B /* WKSpotLightFilter.h */; };
+               B2E27C730B0F2AE600F17C7B /* WKSpotLightFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C140B0F2AE600F17C7B /* WKSpotLightFilter.m */; };
+               B2E27C740B0F2AE600F17C7B /* WKTableTransferFilter.cikernel in Resources */ = {isa = PBXBuildFile; fileRef = B2E27C150B0F2AE600F17C7B /* WKTableTransferFilter.cikernel */; };
+               B2E27C750B0F2AE600F17C7B /* WKTableTransferFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C160B0F2AE600F17C7B /* WKTableTransferFilter.h */; };
+               B2E27C760B0F2AE600F17C7B /* WKTableTransferFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C170B0F2AE600F17C7B /* WKTableTransferFilter.m */; };
+               B2E27C770B0F2AE600F17C7B /* SVGDistantLightSource.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C180B0F2AE600F17C7B /* SVGDistantLightSource.h */; };
+               B2E27C780B0F2AE600F17C7B /* SVGFEBlend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C190B0F2AE600F17C7B /* SVGFEBlend.cpp */; };
+               B2E27C790B0F2AE600F17C7B /* SVGFEBlend.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C1A0B0F2AE600F17C7B /* SVGFEBlend.h */; };
+               B2E27C7A0B0F2AE600F17C7B /* SVGFEColorMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C1B0B0F2AE600F17C7B /* SVGFEColorMatrix.cpp */; };
+               B2E27C7B0B0F2AE600F17C7B /* SVGFEColorMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C1C0B0F2AE600F17C7B /* SVGFEColorMatrix.h */; };
+               B2E27C7C0B0F2AE600F17C7B /* SVGFEComponentTransfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C1D0B0F2AE600F17C7B /* SVGFEComponentTransfer.cpp */; };
+               B2E27C7D0B0F2AE600F17C7B /* SVGFEComponentTransfer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C1E0B0F2AE600F17C7B /* SVGFEComponentTransfer.h */; };
+               B2E27C7E0B0F2AE600F17C7B /* SVGFEComposite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C1F0B0F2AE600F17C7B /* SVGFEComposite.cpp */; };
+               B2E27C7F0B0F2AE600F17C7B /* SVGFEComposite.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C200B0F2AE600F17C7B /* SVGFEComposite.h */; };
+               B2E27C800B0F2AE600F17C7B /* SVGFEConvolveMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C210B0F2AE600F17C7B /* SVGFEConvolveMatrix.cpp */; };
+               B2E27C810B0F2AE600F17C7B /* SVGFEConvolveMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C220B0F2AE600F17C7B /* SVGFEConvolveMatrix.h */; };
+               B2E27C820B0F2AE600F17C7B /* SVGFEDiffuseLighting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C230B0F2AE600F17C7B /* SVGFEDiffuseLighting.cpp */; };
+               B2E27C830B0F2AE600F17C7B /* SVGFEDiffuseLighting.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C240B0F2AE600F17C7B /* SVGFEDiffuseLighting.h */; };
+               B2E27C840B0F2AE600F17C7B /* SVGFEDisplacementMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C250B0F2AE600F17C7B /* SVGFEDisplacementMap.cpp */; };
+               B2E27C850B0F2AE600F17C7B /* SVGFEDisplacementMap.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C260B0F2AE600F17C7B /* SVGFEDisplacementMap.h */; };
+               B2E27C860B0F2AE600F17C7B /* SVGFEFlood.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C270B0F2AE600F17C7B /* SVGFEFlood.cpp */; };
+               B2E27C870B0F2AE600F17C7B /* SVGFEFlood.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C280B0F2AE600F17C7B /* SVGFEFlood.h */; };
+               B2E27C880B0F2AE600F17C7B /* SVGFEGaussianBlur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C290B0F2AE600F17C7B /* SVGFEGaussianBlur.cpp */; };
+               B2E27C890B0F2AE600F17C7B /* SVGFEGaussianBlur.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C2A0B0F2AE600F17C7B /* SVGFEGaussianBlur.h */; };
+               B2E27C8A0B0F2AE600F17C7B /* SVGFEImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C2B0B0F2AE600F17C7B /* SVGFEImage.cpp */; };
+               B2E27C8B0B0F2AE600F17C7B /* SVGFEImage.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C2C0B0F2AE600F17C7B /* SVGFEImage.h */; };
+               B2E27C8C0B0F2AE600F17C7B /* SVGFEMerge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C2D0B0F2AE600F17C7B /* SVGFEMerge.cpp */; };
+               B2E27C8D0B0F2AE600F17C7B /* SVGFEMerge.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C2E0B0F2AE600F17C7B /* SVGFEMerge.h */; };
+               B2E27C8E0B0F2AE600F17C7B /* SVGFEMorphology.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C2F0B0F2AE600F17C7B /* SVGFEMorphology.cpp */; };
+               B2E27C8F0B0F2AE600F17C7B /* SVGFEMorphology.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C300B0F2AE600F17C7B /* SVGFEMorphology.h */; };
+               B2E27C900B0F2AE600F17C7B /* SVGFEOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C310B0F2AE600F17C7B /* SVGFEOffset.cpp */; };
+               B2E27C910B0F2AE600F17C7B /* SVGFEOffset.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C320B0F2AE600F17C7B /* SVGFEOffset.h */; };
+               B2E27C920B0F2AE600F17C7B /* SVGFESpecularLighting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C330B0F2AE600F17C7B /* SVGFESpecularLighting.cpp */; };
+               B2E27C930B0F2AE600F17C7B /* SVGFESpecularLighting.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C340B0F2AE600F17C7B /* SVGFESpecularLighting.h */; };
+               B2E27C940B0F2AE600F17C7B /* SVGFETile.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C350B0F2AE600F17C7B /* SVGFETile.h */; };
+               B2E27C950B0F2AE600F17C7B /* SVGFETurbulence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C360B0F2AE600F17C7B /* SVGFETurbulence.cpp */; };
+               B2E27C960B0F2AE600F17C7B /* SVGFETurbulence.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C370B0F2AE600F17C7B /* SVGFETurbulence.h */; };
+               B2E27C970B0F2AE600F17C7B /* SVGFilterEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C380B0F2AE600F17C7B /* SVGFilterEffect.cpp */; };
+               B2E27C980B0F2AE600F17C7B /* SVGFilterEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C390B0F2AE600F17C7B /* SVGFilterEffect.h */; };
+               B2E27C990B0F2AE600F17C7B /* SVGLightSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C3A0B0F2AE600F17C7B /* SVGLightSource.cpp */; };
+               B2E27C9A0B0F2AE600F17C7B /* SVGLightSource.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C3B0B0F2AE600F17C7B /* SVGLightSource.h */; };
+               B2E27C9B0B0F2AE600F17C7B /* SVGPointLightSource.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C3C0B0F2AE600F17C7B /* SVGPointLightSource.h */; };
+               B2E27C9C0B0F2AE600F17C7B /* SVGSpotLightSource.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C3D0B0F2AE600F17C7B /* SVGSpotLightSource.h */; };
+               B2E27C9F0B0F2B0900F17C7B /* FloatPoint3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */; };
+               B2E27CA00B0F2B0900F17C7B /* FloatPoint3D.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C9E0B0F2B0900F17C7B /* FloatPoint3D.h */; };
                B2EBDC9C0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2EBDC9A0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp */; };
                B2EBDC9D0AF77E3400AE4A68 /* SVGRenderTreeAsText.h in Headers */ = {isa = PBXBuildFile; fileRef = B2EBDC9B0AF77E3400AE4A68 /* SVGRenderTreeAsText.h */; };
                B2FA3D360AB75A6F000E5AC4 /* JSSVGAnimateColorElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2FA3C4E0AB75A6E000E5AC4 /* JSSVGAnimateColorElement.cpp */; };
                A70023FB0B02BEAB00170215 /* MimeTypeRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MimeTypeRegistry.cpp; sourceTree = "<group>"; };
                A70023FC0B02BEAB00170215 /* MimeTypeRegistry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MimeTypeRegistry.h; sourceTree = "<group>"; };
                A70023FF0B02BECC00170215 /* MimeTypeRegistryMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = MimeTypeRegistryMac.mm; sourceTree = "<group>"; };
-               A7638A8909958EA50007E14F /* WKDisplacementMapFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKDisplacementMapFilter.h; sourceTree = "<group>"; };
-               A7638A8A09958EA50007E14F /* WKDisplacementMapFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKDisplacementMapFilter.m; sourceTree = "<group>"; };
-               A7638A91099592C30007E14F /* WKDisplacementMapFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WKDisplacementMapFilter.cikernel; sourceTree = "<group>"; };
                A7638A950995965D0007E14F /* SVGFEDisplacementMapElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFEDisplacementMapElement.h; sourceTree = "<group>"; };
                A7638A960995965D0007E14F /* SVGFEDisplacementMapElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEDisplacementMapElement.cpp; sourceTree = "<group>"; };
-               A7B97B660979C3A1000E8EB1 /* WKComponentMergeFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKComponentMergeFilter.cikernel; sourceTree = "<group>"; };
-               A7B97B670979C3A1000E8EB1 /* WKComponentMergeFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKComponentMergeFilter.h; sourceTree = "<group>"; };
-               A7B97B680979C3A1000E8EB1 /* WKComponentMergeFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKComponentMergeFilter.m; sourceTree = "<group>"; };
-               A7B97B690979C3A1000E8EB1 /* WKDiscreteTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKDiscreteTransferFilter.cikernel; sourceTree = "<group>"; };
-               A7B97B6A0979C3A1000E8EB1 /* WKDiscreteTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKDiscreteTransferFilter.h; sourceTree = "<group>"; };
-               A7B97B6B0979C3A1000E8EB1 /* WKDiscreteTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKDiscreteTransferFilter.m; sourceTree = "<group>"; };
-               A7B97B6C0979C3A1000E8EB1 /* WKGammaTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKGammaTransferFilter.cikernel; sourceTree = "<group>"; };
-               A7B97B6D0979C3A1000E8EB1 /* WKGammaTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKGammaTransferFilter.h; sourceTree = "<group>"; };
-               A7B97B6E0979C3A1000E8EB1 /* WKGammaTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKGammaTransferFilter.m; sourceTree = "<group>"; };
-               A7B97B6F0979C3A1000E8EB1 /* WKIdentityTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKIdentityTransferFilter.h; sourceTree = "<group>"; };
-               A7B97B700979C3A1000E8EB1 /* WKIdentityTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKIdentityTransferFilter.m; sourceTree = "<group>"; };
-               A7B97B710979C3A1000E8EB1 /* WKLinearTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKLinearTransferFilter.cikernel; sourceTree = "<group>"; };
-               A7B97B720979C3A1000E8EB1 /* WKLinearTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKLinearTransferFilter.h; sourceTree = "<group>"; };
-               A7B97B730979C3A1000E8EB1 /* WKLinearTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKLinearTransferFilter.m; sourceTree = "<group>"; };
-               A7B97B740979C3A1000E8EB1 /* WKTableTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKTableTransferFilter.cikernel; sourceTree = "<group>"; };
-               A7B97B750979C3A1000E8EB1 /* WKTableTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKTableTransferFilter.h; sourceTree = "<group>"; };
-               A7B97B760979C3A1000E8EB1 /* WKTableTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKTableTransferFilter.m; sourceTree = "<group>"; };
                A7D23C520B03E41300582A4F /* WebMimeTypeRegistryBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebMimeTypeRegistryBridge.h; sourceTree = "<group>"; };
                A7D23C530B03E41300582A4F /* WebMimeTypeRegistryBridge.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebMimeTypeRegistryBridge.mm; sourceTree = "<group>"; };
                A80E6CBA0A1989CA007FB8C5 /* CSSValueList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSValueList.cpp; sourceTree = "<group>"; };
                A833C7F60A2CF1D800D57664 /* xmlattrs.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = xmlattrs.in; sourceTree = "<group>"; };
                A833C80A0A2CF25600D57664 /* XMLNames.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = XMLNames.cpp; sourceTree = "<group>"; };
                A833C80B0A2CF25600D57664 /* XMLNames.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XMLNames.h; sourceTree = "<group>"; };
-               A8415F990AC10C5D00F7D0DF /* KCanvasFilters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KCanvasFilters.cpp; sourceTree = "<group>"; };
                A85D7A2F0879EBA9006A9172 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
                A86629C909DA2B47009633A5 /* JSUIEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSUIEvent.h; sourceTree = "<group>"; };
                A86629CA09DA2B47009633A5 /* JSUIEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSUIEvent.cpp; sourceTree = "<group>"; };
                A8C0FB61089701F700BA5114 /* KRenderingPaintServerPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KRenderingPaintServerPattern.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB62089701F700BA5114 /* KRenderingPaintServerSolid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRenderingPaintServerSolid.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB63089701F700BA5114 /* KRenderingPaintServerSolid.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KRenderingPaintServerSolid.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C0FB69089701F800BA5114 /* KCanvasFilterQuartz.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KCanvasFilterQuartz.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C0FB6A089701F800BA5114 /* KCanvasFilterQuartz.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KCanvasFilterQuartz.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB6C089701F800BA5114 /* KCanvasItemQuartz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KCanvasItemQuartz.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB71089701F800BA5114 /* KRenderingDeviceQuartz.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KRenderingDeviceQuartz.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB72089701F800BA5114 /* KRenderingDeviceQuartz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRenderingDeviceQuartz.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB75089701F800BA5114 /* KRenderingPaintServerQuartz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRenderingPaintServerQuartz.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB76089701F800BA5114 /* QuartzSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = QuartzSupport.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C0FB77089701F800BA5114 /* QuartzSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QuartzSupport.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C0FB7F089701F800BA5114 /* KCanvasFilters.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KCanvasFilters.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32920093BB732000B9CAC /* WKArithmeticFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKArithmeticFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32921093BB732000B9CAC /* WKArithmeticFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKArithmeticFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32922093BB732000B9CAC /* WKArithmeticFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKArithmeticFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32923093BB732000B9CAC /* WKDiffuseLightingFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKDiffuseLightingFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32924093BB732000B9CAC /* WKDiffuseLightingFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKDiffuseLightingFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32925093BB732000B9CAC /* WKDiffuseLightingFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKDiffuseLightingFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32926093BB732000B9CAC /* WKDistantLightFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKDistantLightFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32927093BB732000B9CAC /* WKDistantLightFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKDistantLightFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32928093BB732000B9CAC /* WKDistantLightFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKDistantLightFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32929093BB732000B9CAC /* WKNormalMapFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKNormalMapFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C3292A093BB732000B9CAC /* WKNormalMapFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKNormalMapFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C3292B093BB732000B9CAC /* WKNormalMapFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKNormalMapFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C3292C093BB732000B9CAC /* WKPointLightFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKPointLightFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C3292D093BB732000B9CAC /* WKPointLightFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKPointLightFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C3292E093BB732000B9CAC /* WKPointLightFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKPointLightFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C3292F093BB732000B9CAC /* WKSpecularLightingFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKSpecularLightingFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32930093BB732000B9CAC /* WKSpecularLightingFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKSpecularLightingFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32931093BB732000B9CAC /* WKSpecularLightingFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKSpecularLightingFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32932093BB732000B9CAC /* WKSpotLightFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = text; path = WKSpotLightFilter.cikernel; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32933093BB732000B9CAC /* WKSpotLightFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WKSpotLightFilter.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
-               A8C32934093BB732000B9CAC /* WKSpotLightFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WKSpotLightFilter.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C3295C093BB7B2000B9CAC /* SVGFELightElement.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = SVGFELightElement.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C3295D093BB7B2000B9CAC /* SVGFELightElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFELightElement.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                A8C3295E093BB7B2000B9CAC /* SVGFEDistantLightElement.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = SVGFEDistantLightElement.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                B2CB41620AB75904004D9C45 /* SVGUseElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGUseElement.idl; sourceTree = "<group>"; };
                B2CB41630AB75904004D9C45 /* SVGViewElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGViewElement.idl; sourceTree = "<group>"; };
                B2CB41640AB75904004D9C45 /* SVGZoomAndPan.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGZoomAndPan.idl; sourceTree = "<group>"; };
+               B2E27BD30B0F2A9500F17C7B /* SVGResourceFilterCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGResourceFilterCg.mm; sourceTree = "<group>"; };
+               B2E27BD70B0F2AC800F17C7B /* SVGResourceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourceFilter.cpp; sourceTree = "<group>"; };
+               B2E27BD80B0F2AC800F17C7B /* SVGResourceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGResourceFilter.h; sourceTree = "<group>"; };
+               B2E27BD90B0F2AC800F17C7B /* SVGResourceListener.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGResourceListener.h; sourceTree = "<group>"; };
+               B2E27BDF0B0F2AE600F17C7B /* SVGFEBlendCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEBlendCg.mm; sourceTree = "<group>"; };
+               B2E27BE00B0F2AE600F17C7B /* SVGFEColorMatrixCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEColorMatrixCg.mm; sourceTree = "<group>"; };
+               B2E27BE10B0F2AE600F17C7B /* SVGFEComponentTransferCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEComponentTransferCg.mm; sourceTree = "<group>"; };
+               B2E27BE20B0F2AE600F17C7B /* SVGFECompositeCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFECompositeCg.mm; sourceTree = "<group>"; };
+               B2E27BE30B0F2AE600F17C7B /* SVGFEDiffuseLightingCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEDiffuseLightingCg.mm; sourceTree = "<group>"; };
+               B2E27BE40B0F2AE600F17C7B /* SVGFEDisplacementMapCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEDisplacementMapCg.mm; sourceTree = "<group>"; };
+               B2E27BE50B0F2AE600F17C7B /* SVGFEFloodCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEFloodCg.mm; sourceTree = "<group>"; };
+               B2E27BE60B0F2AE600F17C7B /* SVGFEGaussianBlurCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEGaussianBlurCg.mm; sourceTree = "<group>"; };
+               B2E27BE70B0F2AE600F17C7B /* SVGFEHelpersCg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEHelpersCg.h; sourceTree = "<group>"; };
+               B2E27BE80B0F2AE600F17C7B /* SVGFEHelpersCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEHelpersCg.mm; sourceTree = "<group>"; };
+               B2E27BE90B0F2AE600F17C7B /* SVGFEImageCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEImageCg.mm; sourceTree = "<group>"; };
+               B2E27BEA0B0F2AE600F17C7B /* SVGFEMergeCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEMergeCg.mm; sourceTree = "<group>"; };
+               B2E27BEB0B0F2AE600F17C7B /* SVGFEOffsetCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEOffsetCg.mm; sourceTree = "<group>"; };
+               B2E27BEC0B0F2AE600F17C7B /* SVGFESpecularLightingCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFESpecularLightingCg.mm; sourceTree = "<group>"; };
+               B2E27BED0B0F2AE600F17C7B /* SVGFETileCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFETileCg.mm; sourceTree = "<group>"; };
+               B2E27BEE0B0F2AE600F17C7B /* SVGFilterEffectCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFilterEffectCg.mm; sourceTree = "<group>"; };
+               B2E27BEF0B0F2AE600F17C7B /* WKArithmeticFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKArithmeticFilter.cikernel; sourceTree = "<group>"; };
+               B2E27BF00B0F2AE600F17C7B /* WKArithmeticFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKArithmeticFilter.h; sourceTree = "<group>"; };
+               B2E27BF10B0F2AE600F17C7B /* WKArithmeticFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKArithmeticFilter.m; sourceTree = "<group>"; };
+               B2E27BF20B0F2AE600F17C7B /* WKComponentMergeFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKComponentMergeFilter.cikernel; sourceTree = "<group>"; };
+               B2E27BF30B0F2AE600F17C7B /* WKComponentMergeFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKComponentMergeFilter.h; sourceTree = "<group>"; };
+               B2E27BF40B0F2AE600F17C7B /* WKComponentMergeFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKComponentMergeFilter.m; sourceTree = "<group>"; };
+               B2E27BF50B0F2AE600F17C7B /* WKDiffuseLightingFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKDiffuseLightingFilter.cikernel; sourceTree = "<group>"; };
+               B2E27BF60B0F2AE600F17C7B /* WKDiffuseLightingFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKDiffuseLightingFilter.h; sourceTree = "<group>"; };
+               B2E27BF70B0F2AE600F17C7B /* WKDiffuseLightingFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKDiffuseLightingFilter.m; sourceTree = "<group>"; };
+               B2E27BF80B0F2AE600F17C7B /* WKDiscreteTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKDiscreteTransferFilter.cikernel; sourceTree = "<group>"; };
+               B2E27BF90B0F2AE600F17C7B /* WKDiscreteTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKDiscreteTransferFilter.h; sourceTree = "<group>"; };
+               B2E27BFA0B0F2AE600F17C7B /* WKDiscreteTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKDiscreteTransferFilter.m; sourceTree = "<group>"; };
+               B2E27BFB0B0F2AE600F17C7B /* WKDisplacementMapFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKDisplacementMapFilter.cikernel; sourceTree = "<group>"; };
+               B2E27BFC0B0F2AE600F17C7B /* WKDisplacementMapFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKDisplacementMapFilter.h; sourceTree = "<group>"; };
+               B2E27BFD0B0F2AE600F17C7B /* WKDisplacementMapFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKDisplacementMapFilter.m; sourceTree = "<group>"; };
+               B2E27BFE0B0F2AE600F17C7B /* WKDistantLightFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKDistantLightFilter.cikernel; sourceTree = "<group>"; };
+               B2E27BFF0B0F2AE600F17C7B /* WKDistantLightFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKDistantLightFilter.h; sourceTree = "<group>"; };
+               B2E27C000B0F2AE600F17C7B /* WKDistantLightFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKDistantLightFilter.m; sourceTree = "<group>"; };
+               B2E27C010B0F2AE600F17C7B /* WKGammaTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKGammaTransferFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C020B0F2AE600F17C7B /* WKGammaTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKGammaTransferFilter.h; sourceTree = "<group>"; };
+               B2E27C030B0F2AE600F17C7B /* WKGammaTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKGammaTransferFilter.m; sourceTree = "<group>"; };
+               B2E27C040B0F2AE600F17C7B /* WKIdentityTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKIdentityTransferFilter.h; sourceTree = "<group>"; };
+               B2E27C050B0F2AE600F17C7B /* WKIdentityTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKIdentityTransferFilter.m; sourceTree = "<group>"; };
+               B2E27C060B0F2AE600F17C7B /* WKLinearTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKLinearTransferFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C070B0F2AE600F17C7B /* WKLinearTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKLinearTransferFilter.h; sourceTree = "<group>"; };
+               B2E27C080B0F2AE600F17C7B /* WKLinearTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKLinearTransferFilter.m; sourceTree = "<group>"; };
+               B2E27C090B0F2AE600F17C7B /* WKNormalMapFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKNormalMapFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C0A0B0F2AE600F17C7B /* WKNormalMapFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKNormalMapFilter.h; sourceTree = "<group>"; };
+               B2E27C0B0B0F2AE600F17C7B /* WKNormalMapFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKNormalMapFilter.m; sourceTree = "<group>"; };
+               B2E27C0C0B0F2AE600F17C7B /* WKPointLightFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKPointLightFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C0D0B0F2AE600F17C7B /* WKPointLightFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKPointLightFilter.h; sourceTree = "<group>"; };
+               B2E27C0E0B0F2AE600F17C7B /* WKPointLightFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKPointLightFilter.m; sourceTree = "<group>"; };
+               B2E27C0F0B0F2AE600F17C7B /* WKSpecularLightingFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKSpecularLightingFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C100B0F2AE600F17C7B /* WKSpecularLightingFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKSpecularLightingFilter.h; sourceTree = "<group>"; };
+               B2E27C110B0F2AE600F17C7B /* WKSpecularLightingFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKSpecularLightingFilter.m; sourceTree = "<group>"; };
+               B2E27C120B0F2AE600F17C7B /* WKSpotLightFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKSpotLightFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C130B0F2AE600F17C7B /* WKSpotLightFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKSpotLightFilter.h; sourceTree = "<group>"; };
+               B2E27C140B0F2AE600F17C7B /* WKSpotLightFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKSpotLightFilter.m; sourceTree = "<group>"; };
+               B2E27C150B0F2AE600F17C7B /* WKTableTransferFilter.cikernel */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = WKTableTransferFilter.cikernel; sourceTree = "<group>"; };
+               B2E27C160B0F2AE600F17C7B /* WKTableTransferFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WKTableTransferFilter.h; sourceTree = "<group>"; };
+               B2E27C170B0F2AE600F17C7B /* WKTableTransferFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WKTableTransferFilter.m; sourceTree = "<group>"; };
+               B2E27C180B0F2AE600F17C7B /* SVGDistantLightSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGDistantLightSource.h; sourceTree = "<group>"; };
+               B2E27C190B0F2AE600F17C7B /* SVGFEBlend.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEBlend.cpp; sourceTree = "<group>"; };
+               B2E27C1A0B0F2AE600F17C7B /* SVGFEBlend.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEBlend.h; sourceTree = "<group>"; };
+               B2E27C1B0B0F2AE600F17C7B /* SVGFEColorMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEColorMatrix.cpp; sourceTree = "<group>"; };
+               B2E27C1C0B0F2AE600F17C7B /* SVGFEColorMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEColorMatrix.h; sourceTree = "<group>"; };
+               B2E27C1D0B0F2AE600F17C7B /* SVGFEComponentTransfer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEComponentTransfer.cpp; sourceTree = "<group>"; };
+               B2E27C1E0B0F2AE600F17C7B /* SVGFEComponentTransfer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEComponentTransfer.h; sourceTree = "<group>"; };
+               B2E27C1F0B0F2AE600F17C7B /* SVGFEComposite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEComposite.cpp; sourceTree = "<group>"; };
+               B2E27C200B0F2AE600F17C7B /* SVGFEComposite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEComposite.h; sourceTree = "<group>"; };
+               B2E27C210B0F2AE600F17C7B /* SVGFEConvolveMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEConvolveMatrix.cpp; sourceTree = "<group>"; };
+               B2E27C220B0F2AE600F17C7B /* SVGFEConvolveMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEConvolveMatrix.h; sourceTree = "<group>"; };
+               B2E27C230B0F2AE600F17C7B /* SVGFEDiffuseLighting.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEDiffuseLighting.cpp; sourceTree = "<group>"; };
+               B2E27C240B0F2AE600F17C7B /* SVGFEDiffuseLighting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEDiffuseLighting.h; sourceTree = "<group>"; };
+               B2E27C250B0F2AE600F17C7B /* SVGFEDisplacementMap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEDisplacementMap.cpp; sourceTree = "<group>"; };
+               B2E27C260B0F2AE600F17C7B /* SVGFEDisplacementMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEDisplacementMap.h; sourceTree = "<group>"; };
+               B2E27C270B0F2AE600F17C7B /* SVGFEFlood.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEFlood.cpp; sourceTree = "<group>"; };
+               B2E27C280B0F2AE600F17C7B /* SVGFEFlood.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEFlood.h; sourceTree = "<group>"; };
+               B2E27C290B0F2AE600F17C7B /* SVGFEGaussianBlur.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEGaussianBlur.cpp; sourceTree = "<group>"; };
+               B2E27C2A0B0F2AE600F17C7B /* SVGFEGaussianBlur.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEGaussianBlur.h; sourceTree = "<group>"; };
+               B2E27C2B0B0F2AE600F17C7B /* SVGFEImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEImage.cpp; sourceTree = "<group>"; };
+               B2E27C2C0B0F2AE600F17C7B /* SVGFEImage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEImage.h; sourceTree = "<group>"; };
+               B2E27C2D0B0F2AE600F17C7B /* SVGFEMerge.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEMerge.cpp; sourceTree = "<group>"; };
+               B2E27C2E0B0F2AE600F17C7B /* SVGFEMerge.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEMerge.h; sourceTree = "<group>"; };
+               B2E27C2F0B0F2AE600F17C7B /* SVGFEMorphology.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEMorphology.cpp; sourceTree = "<group>"; };
+               B2E27C300B0F2AE600F17C7B /* SVGFEMorphology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEMorphology.h; sourceTree = "<group>"; };
+               B2E27C310B0F2AE600F17C7B /* SVGFEOffset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEOffset.cpp; sourceTree = "<group>"; };
+               B2E27C320B0F2AE600F17C7B /* SVGFEOffset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEOffset.h; sourceTree = "<group>"; };
+               B2E27C330B0F2AE600F17C7B /* SVGFESpecularLighting.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFESpecularLighting.cpp; sourceTree = "<group>"; };
+               B2E27C340B0F2AE600F17C7B /* SVGFESpecularLighting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFESpecularLighting.h; sourceTree = "<group>"; };
+               B2E27C350B0F2AE600F17C7B /* SVGFETile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFETile.h; sourceTree = "<group>"; };
+               B2E27C360B0F2AE600F17C7B /* SVGFETurbulence.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFETurbulence.cpp; sourceTree = "<group>"; };
+               B2E27C370B0F2AE600F17C7B /* SVGFETurbulence.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFETurbulence.h; sourceTree = "<group>"; };
+               B2E27C380B0F2AE600F17C7B /* SVGFilterEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFilterEffect.cpp; sourceTree = "<group>"; };
+               B2E27C390B0F2AE600F17C7B /* SVGFilterEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFilterEffect.h; sourceTree = "<group>"; };
+               B2E27C3A0B0F2AE600F17C7B /* SVGLightSource.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGLightSource.cpp; sourceTree = "<group>"; };
+               B2E27C3B0B0F2AE600F17C7B /* SVGLightSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGLightSource.h; sourceTree = "<group>"; };
+               B2E27C3C0B0F2AE600F17C7B /* SVGPointLightSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGPointLightSource.h; sourceTree = "<group>"; };
+               B2E27C3D0B0F2AE600F17C7B /* SVGSpotLightSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGSpotLightSource.h; sourceTree = "<group>"; };
+               B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FloatPoint3D.cpp; sourceTree = "<group>"; };
+               B2E27C9E0B0F2B0900F17C7B /* FloatPoint3D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FloatPoint3D.h; sourceTree = "<group>"; };
                B2E954610AB5FB7F0076DE37 /* SVGAnimatedAngle.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedAngle.idl; sourceTree = "<group>"; };
                B2E954620AB5FB7F0076DE37 /* SVGAnimatedBoolean.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedBoolean.idl; sourceTree = "<group>"; };
                B2E954630AB5FB7F0076DE37 /* SVGAnimatedEnumeration.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGAnimatedEnumeration.idl; sourceTree = "<group>"; };
                        isa = PBXGroup;
                        children = (
                                A8C0FB53089701F700BA5114 /* device */,
-                               A8415F990AC10C5D00F7D0DF /* KCanvasFilters.cpp */,
-                               A8C0FB7F089701F800BA5114 /* KCanvasFilters.h */,
                        );
                        path = kcanvas;
                        sourceTree = "<group>";
                A8C0FB68089701F800BA5114 /* quartz */ = {
                        isa = PBXGroup;
                        children = (
-                               A8C3291F093BB732000B9CAC /* filters */,
-                               A8C0FB69089701F800BA5114 /* KCanvasFilterQuartz.h */,
-                               A8C0FB6A089701F800BA5114 /* KCanvasFilterQuartz.mm */,
                                A8C0FB6C089701F800BA5114 /* KCanvasItemQuartz.cpp */,
                                A8C0FB71089701F800BA5114 /* KRenderingDeviceQuartz.h */,
                                A8C0FB72089701F800BA5114 /* KRenderingDeviceQuartz.cpp */,
                        path = quartz;
                        sourceTree = "<group>";
                };
-               A8C3291F093BB732000B9CAC /* filters */ = {
-                       isa = PBXGroup;
-                       children = (
-                               A8C32920093BB732000B9CAC /* WKArithmeticFilter.cikernel */,
-                               A7B97B660979C3A1000E8EB1 /* WKComponentMergeFilter.cikernel */,
-                               A7B97B670979C3A1000E8EB1 /* WKComponentMergeFilter.h */,
-                               A7B97B680979C3A1000E8EB1 /* WKComponentMergeFilter.m */,
-                               A7B97B690979C3A1000E8EB1 /* WKDiscreteTransferFilter.cikernel */,
-                               A7B97B6A0979C3A1000E8EB1 /* WKDiscreteTransferFilter.h */,
-                               A7B97B6B0979C3A1000E8EB1 /* WKDiscreteTransferFilter.m */,
-                               A7B97B6C0979C3A1000E8EB1 /* WKGammaTransferFilter.cikernel */,
-                               A7B97B6D0979C3A1000E8EB1 /* WKGammaTransferFilter.h */,
-                               A7B97B6E0979C3A1000E8EB1 /* WKGammaTransferFilter.m */,
-                               A7B97B6F0979C3A1000E8EB1 /* WKIdentityTransferFilter.h */,
-                               A7B97B700979C3A1000E8EB1 /* WKIdentityTransferFilter.m */,
-                               A7B97B710979C3A1000E8EB1 /* WKLinearTransferFilter.cikernel */,
-                               A7B97B720979C3A1000E8EB1 /* WKLinearTransferFilter.h */,
-                               A7B97B730979C3A1000E8EB1 /* WKLinearTransferFilter.m */,
-                               A7B97B740979C3A1000E8EB1 /* WKTableTransferFilter.cikernel */,
-                               A7B97B750979C3A1000E8EB1 /* WKTableTransferFilter.h */,
-                               A7B97B760979C3A1000E8EB1 /* WKTableTransferFilter.m */,
-                               A8C32921093BB732000B9CAC /* WKArithmeticFilter.h */,
-                               A8C32922093BB732000B9CAC /* WKArithmeticFilter.m */,
-                               A8C32923093BB732000B9CAC /* WKDiffuseLightingFilter.cikernel */,
-                               A8C32924093BB732000B9CAC /* WKDiffuseLightingFilter.h */,
-                               A8C32925093BB732000B9CAC /* WKDiffuseLightingFilter.m */,
-                               A7638A91099592C30007E14F /* WKDisplacementMapFilter.cikernel */,
-                               A7638A8909958EA50007E14F /* WKDisplacementMapFilter.h */,
-                               A7638A8A09958EA50007E14F /* WKDisplacementMapFilter.m */,
-                               A8C32926093BB732000B9CAC /* WKDistantLightFilter.cikernel */,
-                               A8C32927093BB732000B9CAC /* WKDistantLightFilter.h */,
-                               A8C32928093BB732000B9CAC /* WKDistantLightFilter.m */,
-                               A8C32929093BB732000B9CAC /* WKNormalMapFilter.cikernel */,
-                               A8C3292A093BB732000B9CAC /* WKNormalMapFilter.h */,
-                               A8C3292B093BB732000B9CAC /* WKNormalMapFilter.m */,
-                               A8C3292C093BB732000B9CAC /* WKPointLightFilter.cikernel */,
-                               A8C3292D093BB732000B9CAC /* WKPointLightFilter.h */,
-                               A8C3292E093BB732000B9CAC /* WKPointLightFilter.m */,
-                               A8C3292F093BB732000B9CAC /* WKSpecularLightingFilter.cikernel */,
-                               A8C32930093BB732000B9CAC /* WKSpecularLightingFilter.h */,
-                               A8C32931093BB732000B9CAC /* WKSpecularLightingFilter.m */,
-                               A8C32932093BB732000B9CAC /* WKSpotLightFilter.cikernel */,
-                               A8C32933093BB732000B9CAC /* WKSpotLightFilter.h */,
-                               A8C32934093BB732000B9CAC /* WKSpotLightFilter.m */,
-                       );
-                       path = filters;
-                       sourceTree = "<group>";
-               };
                B27535290B053814002CE64F /* cg */ = {
                        isa = PBXGroup;
                        children = (
                                B27535390B053814002CE64F /* Color.h */,
                                B275353A0B053814002CE64F /* FloatPoint.cpp */,
                                B275353B0B053814002CE64F /* FloatPoint.h */,
+                               B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */,
+                               B2E27C9E0B0F2B0900F17C7B /* FloatPoint3D.h */,
                                B275353C0B053814002CE64F /* FloatRect.cpp */,
                                B275353D0B053814002CE64F /* FloatRect.h */,
                                B275353E0B053814002CE64F /* FloatSize.cpp */,
                B2A015960AF6CD53006BCE0E /* svg */ = {
                        isa = PBXGroup;
                        children = (
+                               B2E27BDD0B0F2AE500F17C7B /* filters */,
                                B2A015970AF6CD53006BCE0E /* cg */,
                                B2A0159F0AF6CD53006BCE0E /* SVGResource.cpp */,
                                B2A015A00AF6CD53006BCE0E /* SVGResource.h */,
                                B2A015A10AF6CD53006BCE0E /* SVGResourceClipper.cpp */,
                                B2A015A20AF6CD53006BCE0E /* SVGResourceClipper.h */,
+                               B2E27BD70B0F2AC800F17C7B /* SVGResourceFilter.cpp */,
+                               B2E27BD80B0F2AC800F17C7B /* SVGResourceFilter.h */,
                                B2A015A30AF6CD53006BCE0E /* SVGResourceImage.h */,
+                               B2E27BD90B0F2AC800F17C7B /* SVGResourceListener.h */,
                                B2A015A40AF6CD53006BCE0E /* SVGResourceMarker.cpp */,
                                B2A015A50AF6CD53006BCE0E /* SVGResourceMarker.h */,
                                B2A015A60AF6CD53006BCE0E /* SVGResourceMasker.cpp */,
                B2A015970AF6CD53006BCE0E /* cg */ = {
                        isa = PBXGroup;
                        children = (
+                               B2E27BD30B0F2A9500F17C7B /* SVGResourceFilterCg.mm */,
                                B2A015980AF6CD53006BCE0E /* SVGResourceClipperCg.cpp */,
                                B2A015990AF6CD53006BCE0E /* SVGResourceImageCg.cpp */,
                                B2A0159A0AF6CD53006BCE0E /* SVGResourceMaskerCg.mm */,
                        path = cg;
                        sourceTree = "<group>";
                };
+               B2E27BDD0B0F2AE500F17C7B /* filters */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B2E27BDE0B0F2AE500F17C7B /* cg */,
+                               B2E27C180B0F2AE600F17C7B /* SVGDistantLightSource.h */,
+                               B2E27C190B0F2AE600F17C7B /* SVGFEBlend.cpp */,
+                               B2E27C1A0B0F2AE600F17C7B /* SVGFEBlend.h */,
+                               B2E27C1B0B0F2AE600F17C7B /* SVGFEColorMatrix.cpp */,
+                               B2E27C1C0B0F2AE600F17C7B /* SVGFEColorMatrix.h */,
+                               B2E27C1D0B0F2AE600F17C7B /* SVGFEComponentTransfer.cpp */,
+                               B2E27C1E0B0F2AE600F17C7B /* SVGFEComponentTransfer.h */,
+                               B2E27C1F0B0F2AE600F17C7B /* SVGFEComposite.cpp */,
+                               B2E27C200B0F2AE600F17C7B /* SVGFEComposite.h */,
+                               B2E27C210B0F2AE600F17C7B /* SVGFEConvolveMatrix.cpp */,
+                               B2E27C220B0F2AE600F17C7B /* SVGFEConvolveMatrix.h */,
+                               B2E27C230B0F2AE600F17C7B /* SVGFEDiffuseLighting.cpp */,
+                               B2E27C240B0F2AE600F17C7B /* SVGFEDiffuseLighting.h */,
+                               B2E27C250B0F2AE600F17C7B /* SVGFEDisplacementMap.cpp */,
+                               B2E27C260B0F2AE600F17C7B /* SVGFEDisplacementMap.h */,
+                               B2E27C270B0F2AE600F17C7B /* SVGFEFlood.cpp */,
+                               B2E27C280B0F2AE600F17C7B /* SVGFEFlood.h */,
+                               B2E27C290B0F2AE600F17C7B /* SVGFEGaussianBlur.cpp */,
+                               B2E27C2A0B0F2AE600F17C7B /* SVGFEGaussianBlur.h */,
+                               B2E27C2B0B0F2AE600F17C7B /* SVGFEImage.cpp */,
+                               B2E27C2C0B0F2AE600F17C7B /* SVGFEImage.h */,
+                               B2E27C2D0B0F2AE600F17C7B /* SVGFEMerge.cpp */,
+                               B2E27C2E0B0F2AE600F17C7B /* SVGFEMerge.h */,
+                               B2E27C2F0B0F2AE600F17C7B /* SVGFEMorphology.cpp */,
+                               B2E27C300B0F2AE600F17C7B /* SVGFEMorphology.h */,
+                               B2E27C310B0F2AE600F17C7B /* SVGFEOffset.cpp */,
+                               B2E27C320B0F2AE600F17C7B /* SVGFEOffset.h */,
+                               B2E27C330B0F2AE600F17C7B /* SVGFESpecularLighting.cpp */,
+                               B2E27C340B0F2AE600F17C7B /* SVGFESpecularLighting.h */,
+                               B2E27C350B0F2AE600F17C7B /* SVGFETile.h */,
+                               B2E27C360B0F2AE600F17C7B /* SVGFETurbulence.cpp */,
+                               B2E27C370B0F2AE600F17C7B /* SVGFETurbulence.h */,
+                               B2E27C380B0F2AE600F17C7B /* SVGFilterEffect.cpp */,
+                               B2E27C390B0F2AE600F17C7B /* SVGFilterEffect.h */,
+                               B2E27C3A0B0F2AE600F17C7B /* SVGLightSource.cpp */,
+                               B2E27C3B0B0F2AE600F17C7B /* SVGLightSource.h */,
+                               B2E27C3C0B0F2AE600F17C7B /* SVGPointLightSource.h */,
+                               B2E27C3D0B0F2AE600F17C7B /* SVGSpotLightSource.h */,
+                       );
+                       path = filters;
+                       sourceTree = "<group>";
+               };
+               B2E27BDE0B0F2AE500F17C7B /* cg */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B2E27BDF0B0F2AE600F17C7B /* SVGFEBlendCg.mm */,
+                               B2E27BE00B0F2AE600F17C7B /* SVGFEColorMatrixCg.mm */,
+                               B2E27BE10B0F2AE600F17C7B /* SVGFEComponentTransferCg.mm */,
+                               B2E27BE20B0F2AE600F17C7B /* SVGFECompositeCg.mm */,
+                               B2E27BE30B0F2AE600F17C7B /* SVGFEDiffuseLightingCg.mm */,
+                               B2E27BE40B0F2AE600F17C7B /* SVGFEDisplacementMapCg.mm */,
+                               B2E27BE50B0F2AE600F17C7B /* SVGFEFloodCg.mm */,
+                               B2E27BE60B0F2AE600F17C7B /* SVGFEGaussianBlurCg.mm */,
+                               B2E27BE70B0F2AE600F17C7B /* SVGFEHelpersCg.h */,
+                               B2E27BE80B0F2AE600F17C7B /* SVGFEHelpersCg.mm */,
+                               B2E27BE90B0F2AE600F17C7B /* SVGFEImageCg.mm */,
+                               B2E27BEA0B0F2AE600F17C7B /* SVGFEMergeCg.mm */,
+                               B2E27BEB0B0F2AE600F17C7B /* SVGFEOffsetCg.mm */,
+                               B2E27BEC0B0F2AE600F17C7B /* SVGFESpecularLightingCg.mm */,
+                               B2E27BED0B0F2AE600F17C7B /* SVGFETileCg.mm */,
+                               B2E27BEE0B0F2AE600F17C7B /* SVGFilterEffectCg.mm */,
+                               B2E27BEF0B0F2AE600F17C7B /* WKArithmeticFilter.cikernel */,
+                               B2E27BF00B0F2AE600F17C7B /* WKArithmeticFilter.h */,
+                               B2E27BF10B0F2AE600F17C7B /* WKArithmeticFilter.m */,
+                               B2E27BF20B0F2AE600F17C7B /* WKComponentMergeFilter.cikernel */,
+                               B2E27BF30B0F2AE600F17C7B /* WKComponentMergeFilter.h */,
+                               B2E27BF40B0F2AE600F17C7B /* WKComponentMergeFilter.m */,
+                               B2E27BF50B0F2AE600F17C7B /* WKDiffuseLightingFilter.cikernel */,
+                               B2E27BF60B0F2AE600F17C7B /* WKDiffuseLightingFilter.h */,
+                               B2E27BF70B0F2AE600F17C7B /* WKDiffuseLightingFilter.m */,
+                               B2E27BF80B0F2AE600F17C7B /* WKDiscreteTransferFilter.cikernel */,
+                               B2E27BF90B0F2AE600F17C7B /* WKDiscreteTransferFilter.h */,
+                               B2E27BFA0B0F2AE600F17C7B /* WKDiscreteTransferFilter.m */,
+                               B2E27BFB0B0F2AE600F17C7B /* WKDisplacementMapFilter.cikernel */,
+                               B2E27BFC0B0F2AE600F17C7B /* WKDisplacementMapFilter.h */,
+                               B2E27BFD0B0F2AE600F17C7B /* WKDisplacementMapFilter.m */,
+                               B2E27BFE0B0F2AE600F17C7B /* WKDistantLightFilter.cikernel */,
+                               B2E27BFF0B0F2AE600F17C7B /* WKDistantLightFilter.h */,
+                               B2E27C000B0F2AE600F17C7B /* WKDistantLightFilter.m */,
+                               B2E27C010B0F2AE600F17C7B /* WKGammaTransferFilter.cikernel */,
+                               B2E27C020B0F2AE600F17C7B /* WKGammaTransferFilter.h */,
+                               B2E27C030B0F2AE600F17C7B /* WKGammaTransferFilter.m */,
+                               B2E27C040B0F2AE600F17C7B /* WKIdentityTransferFilter.h */,
+                               B2E27C050B0F2AE600F17C7B /* WKIdentityTransferFilter.m */,
+                               B2E27C060B0F2AE600F17C7B /* WKLinearTransferFilter.cikernel */,
+                               B2E27C070B0F2AE600F17C7B /* WKLinearTransferFilter.h */,
+                               B2E27C080B0F2AE600F17C7B /* WKLinearTransferFilter.m */,
+                               B2E27C090B0F2AE600F17C7B /* WKNormalMapFilter.cikernel */,
+                               B2E27C0A0B0F2AE600F17C7B /* WKNormalMapFilter.h */,
+                               B2E27C0B0B0F2AE600F17C7B /* WKNormalMapFilter.m */,
+                               B2E27C0C0B0F2AE600F17C7B /* WKPointLightFilter.cikernel */,
+                               B2E27C0D0B0F2AE600F17C7B /* WKPointLightFilter.h */,
+                               B2E27C0E0B0F2AE600F17C7B /* WKPointLightFilter.m */,
+                               B2E27C0F0B0F2AE600F17C7B /* WKSpecularLightingFilter.cikernel */,
+                               B2E27C100B0F2AE600F17C7B /* WKSpecularLightingFilter.h */,
+                               B2E27C110B0F2AE600F17C7B /* WKSpecularLightingFilter.m */,
+                               B2E27C120B0F2AE600F17C7B /* WKSpotLightFilter.cikernel */,
+                               B2E27C130B0F2AE600F17C7B /* WKSpotLightFilter.h */,
+                               B2E27C140B0F2AE600F17C7B /* WKSpotLightFilter.m */,
+                               B2E27C150B0F2AE600F17C7B /* WKTableTransferFilter.cikernel */,
+                               B2E27C160B0F2AE600F17C7B /* WKTableTransferFilter.h */,
+                               B2E27C170B0F2AE600F17C7B /* WKTableTransferFilter.m */,
+                       );
+                       path = cg;
+                       sourceTree = "<group>";
+               };
                BC1A3790097C6F970019F3D8 /* bindings */ = {
                        isa = PBXGroup;
                        children = (
                                A88AD38C0952486D001DD196 /* KRenderingPaintServerGradient.h in Headers */,
                                A88AD3900952486D001DD196 /* KRenderingPaintServerPattern.h in Headers */,
                                A88AD3920952486D001DD196 /* KRenderingPaintServerSolid.h in Headers */,
-                               A88AD3960952486D001DD196 /* WKArithmeticFilter.h in Headers */,
-                               A88AD3990952486D001DD196 /* WKDiffuseLightingFilter.h in Headers */,
-                               A88AD39C0952486D001DD196 /* WKDistantLightFilter.h in Headers */,
-                               A88AD39F0952486D001DD196 /* WKNormalMapFilter.h in Headers */,
-                               A88AD3A20952486D001DD196 /* WKPointLightFilter.h in Headers */,
-                               A88AD3A50952486D001DD196 /* WKSpecularLightingFilter.h in Headers */,
-                               A88AD3A80952486D001DD196 /* WKSpotLightFilter.h in Headers */,
-                               A88AD3AA0952486D001DD196 /* KCanvasFilterQuartz.h in Headers */,
                                A88AD3B00952486E001DD196 /* KRenderingDeviceQuartz.h in Headers */,
                                A88AD3B30952486E001DD196 /* KRenderingPaintServerQuartz.h in Headers */,
                                A88AD3B50952486E001DD196 /* QuartzSupport.h in Headers */,
-                               A88AD3BE0952486E001DD196 /* KCanvasFilters.h in Headers */,
                                A88AD402095248F0001DD196 /* SVGRenderStyle.h in Headers */,
                                A88AD404095248F0001DD196 /* SVGRenderStyleDefs.h in Headers */,
                                A88AD40B095248F0001DD196 /* SVGZoomEvent.h in Headers */,
                                A81369E2097374F600D74463 /* HTMLLabelElement.h in Headers */,
                                A81369E4097374F600D74463 /* HTMLKeygenElement.h in Headers */,
                                A8136D380973A8E700D74463 /* FormDataList.h in Headers */,
-                               A7B97B780979C3A1000E8EB1 /* WKComponentMergeFilter.h in Headers */,
-                               A7B97B7B0979C3A1000E8EB1 /* WKDiscreteTransferFilter.h in Headers */,
-                               A7B97B7E0979C3A1000E8EB1 /* WKGammaTransferFilter.h in Headers */,
-                               A7B97B800979C3A1000E8EB1 /* WKIdentityTransferFilter.h in Headers */,
-                               A7B97B830979C3A1000E8EB1 /* WKLinearTransferFilter.h in Headers */,
-                               A7B97B860979C3A1000E8EB1 /* WKTableTransferFilter.h in Headers */,
                                65BF022F0974816300C43196 /* Frame.h in Headers */,
                                65BF02300974816300C43196 /* FramePrivate.h in Headers */,
                                65BF02440974819000C43196 /* FrameMac.h in Headers */,
                                93CD4FE40995F9EA007ECC97 /* StringImpl.h in Headers */,
                                93CD4FEC0995FD2A007ECC97 /* PlatformString.h in Headers */,
                                6582A14009999CD600BEEB6D /* DeprecatedString.h in Headers */,
-                               A7638A8B09958EA50007E14F /* WKDisplacementMapFilter.h in Headers */,
                                A7638A970995965D0007E14F /* SVGFEDisplacementMapElement.h in Headers */,
                                93309DD7099E64920056E581 /* AppendNodeCommand.h in Headers */,
                                93309DD9099E64920056E581 /* ApplyStyleCommand.h in Headers */,
                                93B6A0E60B0BCA5C00F5027A /* ContextMenu.h in Headers */,
                                065AD4F50B0C2EDA005A2B1D /* ContextMenuClient.h in Headers */,
                                065AD4F70B0C2EDA005A2B1D /* ContextMenuController.h in Headers */,
+                               B2E27BDB0B0F2AC800F17C7B /* SVGResourceFilter.h in Headers */,
+                               B2E27BDC0B0F2AC800F17C7B /* SVGResourceListener.h in Headers */,
+                               B2E27C460B0F2AE600F17C7B /* SVGFEHelpersCg.h in Headers */,
+                               B2E27C4F0B0F2AE600F17C7B /* WKArithmeticFilter.h in Headers */,
+                               B2E27C520B0F2AE600F17C7B /* WKComponentMergeFilter.h in Headers */,
+                               B2E27C550B0F2AE600F17C7B /* WKDiffuseLightingFilter.h in Headers */,
+                               B2E27C580B0F2AE600F17C7B /* WKDiscreteTransferFilter.h in Headers */,
+                               B2E27C5B0B0F2AE600F17C7B /* WKDisplacementMapFilter.h in Headers */,
+                               B2E27C5E0B0F2AE600F17C7B /* WKDistantLightFilter.h in Headers */,
+                               B2E27C610B0F2AE600F17C7B /* WKGammaTransferFilter.h in Headers */,
+                               B2E27C630B0F2AE600F17C7B /* WKIdentityTransferFilter.h in Headers */,
+                               B2E27C660B0F2AE600F17C7B /* WKLinearTransferFilter.h in Headers */,
+                               B2E27C690B0F2AE600F17C7B /* WKNormalMapFilter.h in Headers */,
+                               B2E27C6C0B0F2AE600F17C7B /* WKPointLightFilter.h in Headers */,
+                               B2E27C6F0B0F2AE600F17C7B /* WKSpecularLightingFilter.h in Headers */,
+                               B2E27C720B0F2AE600F17C7B /* WKSpotLightFilter.h in Headers */,
+                               B2E27C750B0F2AE600F17C7B /* WKTableTransferFilter.h in Headers */,
+                               B2E27C770B0F2AE600F17C7B /* SVGDistantLightSource.h in Headers */,
+                               B2E27C790B0F2AE600F17C7B /* SVGFEBlend.h in Headers */,
+                               B2E27C7B0B0F2AE600F17C7B /* SVGFEColorMatrix.h in Headers */,
+                               B2E27C7D0B0F2AE600F17C7B /* SVGFEComponentTransfer.h in Headers */,
+                               B2E27C7F0B0F2AE600F17C7B /* SVGFEComposite.h in Headers */,
+                               B2E27C810B0F2AE600F17C7B /* SVGFEConvolveMatrix.h in Headers */,
+                               B2E27C830B0F2AE600F17C7B /* SVGFEDiffuseLighting.h in Headers */,
+                               B2E27C850B0F2AE600F17C7B /* SVGFEDisplacementMap.h in Headers */,
+                               B2E27C870B0F2AE600F17C7B /* SVGFEFlood.h in Headers */,
+                               B2E27C890B0F2AE600F17C7B /* SVGFEGaussianBlur.h in Headers */,
+                               B2E27C8B0B0F2AE600F17C7B /* SVGFEImage.h in Headers */,
+                               B2E27C8D0B0F2AE600F17C7B /* SVGFEMerge.h in Headers */,
+                               B2E27C8F0B0F2AE600F17C7B /* SVGFEMorphology.h in Headers */,
+                               B2E27C910B0F2AE600F17C7B /* SVGFEOffset.h in Headers */,
+                               B2E27C930B0F2AE600F17C7B /* SVGFESpecularLighting.h in Headers */,
+                               B2E27C940B0F2AE600F17C7B /* SVGFETile.h in Headers */,
+                               B2E27C960B0F2AE600F17C7B /* SVGFETurbulence.h in Headers */,
+                               B2E27C980B0F2AE600F17C7B /* SVGFilterEffect.h in Headers */,
+                               B2E27C9A0B0F2AE600F17C7B /* SVGLightSource.h in Headers */,
+                               B2E27C9B0B0F2AE600F17C7B /* SVGPointLightSource.h in Headers */,
+                               B2E27C9C0B0F2AE600F17C7B /* SVGSpotLightSource.h in Headers */,
+                               B2E27CA00B0F2B0900F17C7B /* FloatPoint3D.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        buildActionMask = 2147483647;
                        files = (
                                ED048ABC0833F132006E1E67 /* textAreaResizeCorner.tiff in Resources */,
-                               A88AD3950952486D001DD196 /* WKArithmeticFilter.cikernel in Resources */,
-                               A88AD3980952486D001DD196 /* WKDiffuseLightingFilter.cikernel in Resources */,
-                               A88AD39B0952486D001DD196 /* WKDistantLightFilter.cikernel in Resources */,
-                               A88AD39E0952486D001DD196 /* WKNormalMapFilter.cikernel in Resources */,
-                               A88AD3A10952486D001DD196 /* WKPointLightFilter.cikernel in Resources */,
-                               A88AD3A40952486D001DD196 /* WKSpecularLightingFilter.cikernel in Resources */,
-                               A88AD3A70952486D001DD196 /* WKSpotLightFilter.cikernel in Resources */,
-                               A7B97B770979C3A1000E8EB1 /* WKComponentMergeFilter.cikernel in Resources */,
-                               A7B97B7A0979C3A1000E8EB1 /* WKDiscreteTransferFilter.cikernel in Resources */,
-                               A7B97B7D0979C3A1000E8EB1 /* WKGammaTransferFilter.cikernel in Resources */,
-                               A7B97B820979C3A1000E8EB1 /* WKLinearTransferFilter.cikernel in Resources */,
-                               A7B97B850979C3A1000E8EB1 /* WKTableTransferFilter.cikernel in Resources */,
-                               A7638A92099592C30007E14F /* WKDisplacementMapFilter.cikernel in Resources */,
                                AB4261D80A2F6C9700BDD17D /* missingImage.tiff in Resources */,
                                5115095C0A9CE04700901013 /* urlIcon.tiff in Resources */,
                                1C14E76B0AD8C81C00B6158B /* deleteButtonPressed.tiff in Resources */,
                                46F9D5DD0B0D60170028EE36 /* aliasCursor.png in Resources */,
                                46F9D5DE0B0D60170028EE36 /* noDropCursor.png in Resources */,
                                46F9D5DF0B0D60170028EE36 /* progressCursor.png in Resources */,
+                               B2E27C4E0B0F2AE600F17C7B /* WKArithmeticFilter.cikernel in Resources */,
+                               B2E27C510B0F2AE600F17C7B /* WKComponentMergeFilter.cikernel in Resources */,
+                               B2E27C540B0F2AE600F17C7B /* WKDiffuseLightingFilter.cikernel in Resources */,
+                               B2E27C570B0F2AE600F17C7B /* WKDiscreteTransferFilter.cikernel in Resources */,
+                               B2E27C5A0B0F2AE600F17C7B /* WKDisplacementMapFilter.cikernel in Resources */,
+                               B2E27C5D0B0F2AE600F17C7B /* WKDistantLightFilter.cikernel in Resources */,
+                               B2E27C600B0F2AE600F17C7B /* WKGammaTransferFilter.cikernel in Resources */,
+                               B2E27C650B0F2AE600F17C7B /* WKLinearTransferFilter.cikernel in Resources */,
+                               B2E27C680B0F2AE600F17C7B /* WKNormalMapFilter.cikernel in Resources */,
+                               B2E27C6B0B0F2AE600F17C7B /* WKPointLightFilter.cikernel in Resources */,
+                               B2E27C6E0B0F2AE600F17C7B /* WKSpecularLightingFilter.cikernel in Resources */,
+                               B2E27C710B0F2AE600F17C7B /* WKSpotLightFilter.cikernel in Resources */,
+                               B2E27C740B0F2AE600F17C7B /* WKTableTransferFilter.cikernel in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                A88AD38B0952486D001DD196 /* KRenderingPaintServerGradient.cpp in Sources */,
                                A88AD38F0952486D001DD196 /* KRenderingPaintServerPattern.cpp in Sources */,
                                A88AD3910952486D001DD196 /* KRenderingPaintServerSolid.cpp in Sources */,
-                               A88AD3970952486D001DD196 /* WKArithmeticFilter.m in Sources */,
-                               A88AD39A0952486D001DD196 /* WKDiffuseLightingFilter.m in Sources */,
-                               A88AD39D0952486D001DD196 /* WKDistantLightFilter.m in Sources */,
-                               A88AD3A00952486D001DD196 /* WKNormalMapFilter.m in Sources */,
-                               A88AD3A30952486D001DD196 /* WKPointLightFilter.m in Sources */,
-                               A88AD3A60952486D001DD196 /* WKSpecularLightingFilter.m in Sources */,
-                               A88AD3A90952486D001DD196 /* WKSpotLightFilter.m in Sources */,
-                               A88AD3AB0952486D001DD196 /* KCanvasFilterQuartz.mm in Sources */,
                                A88AD3AD0952486D001DD196 /* KCanvasItemQuartz.cpp in Sources */,
                                A88AD3B10952486E001DD196 /* KRenderingDeviceQuartz.cpp in Sources */,
                                A88AD3B20952486E001DD196 /* KRenderingPaintServerGradientQuartz.cpp in Sources */,
                                A81369E3097374F600D74463 /* HTMLLabelElement.cpp in Sources */,
                                A81369E5097374F600D74463 /* HTMLKeygenElement.cpp in Sources */,
                                A8136D390973A8E700D74463 /* FormDataList.cpp in Sources */,
-                               A7B97B790979C3A1000E8EB1 /* WKComponentMergeFilter.m in Sources */,
-                               A7B97B7C0979C3A1000E8EB1 /* WKDiscreteTransferFilter.m in Sources */,
-                               A7B97B7F0979C3A1000E8EB1 /* WKGammaTransferFilter.m in Sources */,
-                               A7B97B810979C3A1000E8EB1 /* WKIdentityTransferFilter.m in Sources */,
-                               A7B97B840979C3A1000E8EB1 /* WKLinearTransferFilter.m in Sources */,
-                               A7B97B870979C3A1000E8EB1 /* WKTableTransferFilter.m in Sources */,
                                65BF022E0974816300C43196 /* Frame.cpp in Sources */,
                                65BF02450974819000C43196 /* FrameMac.mm in Sources */,
                                FAE0418F097596C9000540BE /* SVGImageLoader.cpp in Sources */,
                                6582A13F09999CD600BEEB6D /* DeprecatedString.cpp in Sources */,
                                6582A16309999D6D00BEEB6D /* SystemTimeMac.cpp in Sources */,
                                6582A17809999EA000BEEB6D /* DeprecatedStringMac.mm in Sources */,
-                               A7638A8C09958EA50007E14F /* WKDisplacementMapFilter.m in Sources */,
                                A7638A980995965D0007E14F /* SVGFEDisplacementMapElement.cpp in Sources */,
                                93309DD6099E64920056E581 /* AppendNodeCommand.cpp in Sources */,
                                93309DD8099E64920056E581 /* ApplyStyleCommand.cpp in Sources */,
                                853BF4DC0ABB6B55008647BB /* DOMNode.mm in Sources */,
                                85BCBC140ABBA87D00381160 /* DOMHTMLDocument.mm in Sources */,
                                AA21ECCA0ABF0FBA002B834C /* CSSCursorImageValue.cpp in Sources */,
-                               A8415FA20AC10C5D00F7D0DF /* KCanvasFilters.cpp in Sources */,
                                8541636A0AC7180B0001E01B /* DOMSVGTransformList.mm in Sources */,
                                8541636C0AC7180B0001E01B /* DOMSVGTransform.mm in Sources */,
                                8541636E0AC7180B0001E01B /* DOMSVGPathSegList.mm in Sources */,
                                93B6A0E80B0BCA6700F5027A /* ContextMenu.cpp in Sources */,
                                93B6A0EA0B0BCA8400F5027A /* ContextMenuMac.mm in Sources */,
                                065AD4F60B0C2EDA005A2B1D /* ContextMenuController.cpp in Sources */,
+                               B2E27BD50B0F2A9500F17C7B /* SVGResourceFilterCg.mm in Sources */,
+                               B2E27BDA0B0F2AC800F17C7B /* SVGResourceFilter.cpp in Sources */,
+                               B2E27C3E0B0F2AE600F17C7B /* SVGFEBlendCg.mm in Sources */,
+                               B2E27C3F0B0F2AE600F17C7B /* SVGFEColorMatrixCg.mm in Sources */,
+                               B2E27C400B0F2AE600F17C7B /* SVGFEComponentTransferCg.mm in Sources */,
+                               B2E27C410B0F2AE600F17C7B /* SVGFECompositeCg.mm in Sources */,
+                               B2E27C420B0F2AE600F17C7B /* SVGFEDiffuseLightingCg.mm in Sources */,
+                               B2E27C430B0F2AE600F17C7B /* SVGFEDisplacementMapCg.mm in Sources */,
+                               B2E27C440B0F2AE600F17C7B /* SVGFEFloodCg.mm in Sources */,
+                               B2E27C450B0F2AE600F17C7B /* SVGFEGaussianBlurCg.mm in Sources */,
+                               B2E27C470B0F2AE600F17C7B /* SVGFEHelpersCg.mm in Sources */,
+                               B2E27C480B0F2AE600F17C7B /* SVGFEImageCg.mm in Sources */,
+                               B2E27C490B0F2AE600F17C7B /* SVGFEMergeCg.mm in Sources */,
+                               B2E27C4A0B0F2AE600F17C7B /* SVGFEOffsetCg.mm in Sources */,
+                               B2E27C4B0B0F2AE600F17C7B /* SVGFESpecularLightingCg.mm in Sources */,
+                               B2E27C4C0B0F2AE600F17C7B /* SVGFETileCg.mm in Sources */,
+                               B2E27C4D0B0F2AE600F17C7B /* SVGFilterEffectCg.mm in Sources */,
+                               B2E27C500B0F2AE600F17C7B /* WKArithmeticFilter.m in Sources */,
+                               B2E27C530B0F2AE600F17C7B /* WKComponentMergeFilter.m in Sources */,
+                               B2E27C560B0F2AE600F17C7B /* WKDiffuseLightingFilter.m in Sources */,
+                               B2E27C590B0F2AE600F17C7B /* WKDiscreteTransferFilter.m in Sources */,
+                               B2E27C5C0B0F2AE600F17C7B /* WKDisplacementMapFilter.m in Sources */,
+                               B2E27C5F0B0F2AE600F17C7B /* WKDistantLightFilter.m in Sources */,
+                               B2E27C620B0F2AE600F17C7B /* WKGammaTransferFilter.m in Sources */,
+                               B2E27C640B0F2AE600F17C7B /* WKIdentityTransferFilter.m in Sources */,
+                               B2E27C670B0F2AE600F17C7B /* WKLinearTransferFilter.m in Sources */,
+                               B2E27C6A0B0F2AE600F17C7B /* WKNormalMapFilter.m in Sources */,
+                               B2E27C6D0B0F2AE600F17C7B /* WKPointLightFilter.m in Sources */,
+                               B2E27C700B0F2AE600F17C7B /* WKSpecularLightingFilter.m in Sources */,
+                               B2E27C730B0F2AE600F17C7B /* WKSpotLightFilter.m in Sources */,
+                               B2E27C760B0F2AE600F17C7B /* WKTableTransferFilter.m in Sources */,
+                               B2E27C780B0F2AE600F17C7B /* SVGFEBlend.cpp in Sources */,
+                               B2E27C7A0B0F2AE600F17C7B /* SVGFEColorMatrix.cpp in Sources */,
+                               B2E27C7C0B0F2AE600F17C7B /* SVGFEComponentTransfer.cpp in Sources */,
+                               B2E27C7E0B0F2AE600F17C7B /* SVGFEComposite.cpp in Sources */,
+                               B2E27C800B0F2AE600F17C7B /* SVGFEConvolveMatrix.cpp in Sources */,
+                               B2E27C820B0F2AE600F17C7B /* SVGFEDiffuseLighting.cpp in Sources */,
+                               B2E27C840B0F2AE600F17C7B /* SVGFEDisplacementMap.cpp in Sources */,
+                               B2E27C860B0F2AE600F17C7B /* SVGFEFlood.cpp in Sources */,
+                               B2E27C880B0F2AE600F17C7B /* SVGFEGaussianBlur.cpp in Sources */,
+                               B2E27C8A0B0F2AE600F17C7B /* SVGFEImage.cpp in Sources */,
+                               B2E27C8C0B0F2AE600F17C7B /* SVGFEMerge.cpp in Sources */,
+                               B2E27C8E0B0F2AE600F17C7B /* SVGFEMorphology.cpp in Sources */,
+                               B2E27C900B0F2AE600F17C7B /* SVGFEOffset.cpp in Sources */,
+                               B2E27C920B0F2AE600F17C7B /* SVGFESpecularLighting.cpp in Sources */,
+                               B2E27C950B0F2AE600F17C7B /* SVGFETurbulence.cpp in Sources */,
+                               B2E27C970B0F2AE600F17C7B /* SVGFilterEffect.cpp in Sources */,
+                               B2E27C990B0F2AE600F17C7B /* SVGLightSource.cpp in Sources */,
+                               B2E27C9F0B0F2B0900F17C7B /* FloatPoint3D.cpp in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index fff7bd88f6ccc9ab1e0d2b6b5c419ae0a143caaa..25fb0ba894f19ab85418d9c5ec4c2fbefa489158 100644 (file)
@@ -199,6 +199,19 @@ sub AddClassForwardIfNeeded
     push(@headerContent, "class $implClassName;\n\n") unless $codeGenerator->IsSVGAnimatedType($implClassName);
 }
 
+sub HashValueForClassAndName
+{
+    my $class = shift;
+    my $name = shift;
+
+    # SVG Filter enums live in WebCore namespace (platform/graphics/)
+    if ($class =~ /^SVGFE*/ or $class =~ /^SVGComponentTransferFunctionElement$/) {
+        return "WebCore::$name";
+    }
+
+    return "${class}::$name";
+}
+
 sub GenerateHeader
 {
     my $object = shift;
@@ -527,7 +540,7 @@ sub GenerateImplementation
             my $name = $constant->name;
             push(@hashKeys, $name);
 
-            my $value = "${implClassName}::$name";
+            my $value = HashValueForClassAndName($implClassName, $name);
             push(@hashValues, $value);
 
             my $special = "DontDelete|ReadOnly";
@@ -560,7 +573,7 @@ sub GenerateImplementation
         my $name = $constant->name;
         push(@hashKeys, $name);
 
-        my $value = "${implClassName}::$name";
+        my $value = HashValueForClassAndName($implClassName, $name);
         push(@hashValues, $value);
 
         my $special = "DontDelete|ReadOnly";
diff --git a/WebCore/kcanvas/KCanvasFilters.cpp b/WebCore/kcanvas/KCanvasFilters.cpp
deleted file mode 100644 (file)
index 643a951..0000000
+++ /dev/null
@@ -1,537 +0,0 @@
-/*
-    Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
-                  2004, 2005 Rob Buis <buis@kde.org>
-                  2005 Eric Seidel <eric.seidel@kdemail.net>
-
-    This file is part of the KDE project
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    aint with this library; see the file COPYING.LIB.  If not, write to
-    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-    Boston, MA 02111-1307, USA.
-*/
-
-#include "config.h"
-#ifdef SVG_SUPPORT
-#include "KCanvasFilters.h"
-
-#include "CachedImage.h"
-#include "SVGRenderTreeAsText.h"
-#include "TextStream.h"
-
-#include <wtf/Assertions.h>
-#include <math.h>
-
-namespace WebCore {
-
-void KCanvasPoint3F::normalize()
-{
-    float length = sqrt(m_x * m_x + m_y * m_y + m_z * m_z);
-    m_x /= length;
-    m_y /= length;
-    m_z /= length;
-}
-
-// Filters
-
-void KCanvasFilter::clearEffects()
-{
-    m_effects.clear();
-}
-
-void KCanvasFilter::addFilterEffect(KCanvasFilterEffect *effect)
-{
-    ASSERT(effect);
-    if (effect)
-        m_effects.append(effect);
-}
-
-FloatRect KCanvasFilter::filterBBoxForItemBBox(FloatRect itemBBox) const
-{
-    FloatRect filterBBox = filterRect();
-    if (filterBoundingBoxMode())
-        filterBBox = FloatRect(filterBBox.x() * itemBBox.width(),
-                               filterBBox.y() * itemBBox.height(),
-                               filterBBox.width() * itemBBox.width(),
-                               filterBBox.height() * itemBBox.height());
-    return filterBBox;
-}
-
-TextStream& KCanvasFilter::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=FILTER] ";
-    FloatRect bbox = filterRect();
-    static FloatRect defaultFilterRect(0, 0, 1, 1);
-    if (!filterBoundingBoxMode() || bbox != defaultFilterRect) {
-        ts << " [bounding box=";
-        if (filterBoundingBoxMode()) {
-            bbox.scale(100.f);
-            ts << "at (" << bbox.x() << "%," <<  bbox.y() << "%) size " << bbox.width() << "%x" << bbox.height() << "%";
-        } else
-            ts << filterRect();
-        ts << "]";
-    }
-    if (!filterBoundingBoxMode()) // default is true
-        ts << " [bounding box mode=" << filterBoundingBoxMode() << "]";
-    if (effectBoundingBoxMode()) // default is false
-        ts << " [effect bounding box mode=" << effectBoundingBoxMode() << "]";
-    if (m_effects.size() > 0)
-        ts << " [effects=" << m_effects << "]";
-    return ts;
-}
-
-KCanvasFilter* getFilterById(Document *document, const AtomicString &id)
-{
-    SVGResource* resource = getResourceById(document, id);
-    if (resource && resource->isFilter())
-        return static_cast<KCanvasFilter*>(resource);
-    return 0;
-}
-
-TextStream& operator<<(TextStream& ts, const KCanvasFilterEffect &e)
-{
-    return e.externalRepresentation(ts);
-}
-
-FloatRect KCanvasFilterEffect::subRegion() const
-{
-    return m_subregion;
-}
-
-void KCanvasFilterEffect::setSubRegion(const FloatRect &subregion)
-{
-    m_subregion = subregion;
-}
-
-String KCanvasFilterEffect::in() const
-{
-    return m_in;
-}
-
-void KCanvasFilterEffect::setIn(const String &in)
-{
-    m_in = in;
-}
-
-String KCanvasFilterEffect::result() const
-{
-    return m_result;
-}
-
-void KCanvasFilterEffect::setResult(const String &result)
-{
-    m_result = result;
-}
-
-static TextStream& operator<<(TextStream& ts, const KCanvasPoint3F p)
-{
-    ts << "x=" << p.x() << " y=" << p.y() << " z=" << p.z();
-    return ts;  
-}
-
-TextStream& KCanvasFilterEffect::externalRepresentation(TextStream& ts) const
-{
-    if (!in().isEmpty())
-        ts << "[in=\"" << in() << "\"]";
-    if (!result().isEmpty())
-        ts << " [result=\"" << result() << "\"]";
-    if (!subRegion().isEmpty())
-        ts << " [subregion=\"" << subRegion() << "\"]";
-    return ts;    
-}
-
-TextStream& KCPointLightSource::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=POINT-LIGHT] ";
-    ts << "[position=\"" << position() << "\"]";
-    return ts;  
-}
-
-TextStream& KCSpotLightSource::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=SPOT-LIGHT] ";
-    ts << "[position=\"" << position() << "\"]";
-    ts << "[direction=\"" << direction() << "\"]";
-    ts << "[specularExponent=\"" << specularExponent() << "\"]";
-    ts << "[limitingConeAngle=\"" << limitingConeAngle() << "\"]";
-    return ts;
-}
-
-TextStream& KCDistantLightSource::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=DISTANT-LIGHT] ";
-    ts << "[azimuth=\"" << azimuth() << "\"]";
-    ts << "[elevation=\"" << elevation() << "\"]";
-    return ts;  
-}
-
-static TextStream& operator<<(TextStream& ts, KCBlendModeType t)
-{
-    switch (t) 
-    {
-        case BM_NORMAL:
-            ts << "NORMAL"; break;
-        case BM_MULTIPLY:    
-            ts << "MULTIPLY"; break;
-        case BM_SCREEN:    
-            ts << "SCREEN"; break;
-        case BM_DARKEN:
-            ts << "DARKEN"; break;
-        case BM_LIGHTEN:
-            ts << "LIGHTEN"; break;            
-    }
-    return ts;        
-}
-
-TextStream& KCanvasFEBlend::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=BLEND] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    if (!m_in2.isEmpty())
-        ts << " [in2=\"" << m_in2 << "\"]";
-    ts << " [blend mode=" << m_mode << "]";
-    return ts;
-}
-
-static TextStream& operator<<(TextStream& ts, KCColorMatrixType t)
-{
-    switch (t) 
-    {
-        case CMT_MATRIX:
-            ts << "CMT_MATRIX"; break;
-        case CMT_SATURATE:    
-            ts << "CMT_SATURATE"; break;
-        case CMT_HUE_ROTATE:    
-            ts << "HUE-ROTATE"; break;
-        case CMT_LUMINANCE_TO_ALPHA:
-            ts << "LUMINANCE-TO-ALPHA"; break;
-    }
-    return ts;        
-}
-
-TextStream& KCanvasFEColorMatrix::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=COLOR-MATRIX] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [color matrix type=" << type() << "]"
-        << " [values=" << values() << "]";
-    return ts;
-}
-
-static TextStream& operator<<(TextStream& ts, KCComponentTransferType t)
-{
-    switch (t) 
-    {
-        case CT_IDENTITY:
-            ts << "IDENTITY";break;
-        case CT_TABLE:
-            ts << "TABLE"; break;
-        case CT_DISCRETE:
-            ts << "DISCRETE"; break;
-        case CT_LINEAR:             
-            ts << "LINEAR"; break;
-        case CT_GAMMA:
-            ts << "GAMMA"; break;
-    }
-    return ts;
-}
-
-static TextStream& operator<<(TextStream& ts, const KCComponentTransferFunction &func)
-{
-    ts << "[type=" << func.type << "]"; 
-    switch (func.type) {
-        case CT_IDENTITY:
-            break;
-        case CT_TABLE:
-        case CT_DISCRETE:
-        {
-            ts << " [table values=";
-            Vector<float>::const_iterator itr=func.tableValues.begin();
-            if (itr != func.tableValues.end()) {
-                ts << *itr++;
-                for (; itr!=func.tableValues.end(); itr++) {
-                    ts << " " << *itr;
-                }
-            }
-            ts << "]";
-            break;
-        }
-        case CT_LINEAR:
-            ts << " [slope=" << func.slope << "]"
-               << " [intercept=" << func.intercept << "]";
-            break;
-        case CT_GAMMA:
-            ts << " [amplitude=" << func.amplitude << "]"
-               << " [exponent=" << func.exponent << "]"
-               << " [offset=" << func.offset << "]";
-            break;
-    }
-    return ts;        
-}
-
-TextStream& KCanvasFEComponentTransfer::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=COMPONENT-TRANSFER] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [red func=" << redFunction() << "]"
-        << " [green func=" << greenFunction() << "]"
-        << " [blue func=" << blueFunction() << "]"
-        << " [alpha func=" << alphaFunction() << "]";
-    return ts;  
-}
-
-TextStream& KCanvasFEComposite::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=COMPOSITE] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    if (!in2().isEmpty())
-        ts << " [in2=\"" << in2() << "\"]";    
-    ts << " [k1=" << k1() << " k2=" << k2() << " k3=" << k3() << " k4=" << k4() << "]";
-    return ts;
-}
-
-static TextStream& operator<<(TextStream& ts, KCEdgeModeType t)
-{   
-    switch (t) 
-    {
-        case EM_DUPLICATE:
-            ts << "DUPLICATE";break;
-        case EM_WRAP:
-            ts << "WRAP"; break;
-        case EM_NONE:
-            ts << "NONE"; break;
-    }
-    return ts;
-}
-
-TextStream& KCanvasFEConvolveMatrix::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=CONVOLVE-MATRIX] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [order " << m_kernelSize << "]"
-        << " [kernel matrix=" << m_kernelMatrix  << "]"
-        << " [divisor=" << m_divisor << "]"
-        << " [bias=" << m_bias << "]"
-        << " [target " << m_targetOffset << "]"
-        << " [edge mode=" << m_edgeMode << "]"
-        << " [kernel unit length " << m_kernelUnitLength << "]"
-        << " [preserve alpha=" << m_preserveAlpha << "]";        
-   return ts;
-}
-
-void KCanvasFEDiffuseLighting::setLightSource(KCLightSource *lightSource)
-{
-    if (m_lightSource != lightSource) {
-        delete m_lightSource;
-        m_lightSource = lightSource;
-    }
-}
-
-void KCanvasFESpecularLighting::setLightSource(KCLightSource *lightSource)
-{
-    if (m_lightSource != lightSource) {
-        delete m_lightSource;
-        m_lightSource = lightSource;
-    }
-}
-
-TextStream& KCanvasFEDiffuseLighting::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=DIFFUSE-LIGHTING] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [surface scale=" << m_surfaceScale << "]"
-        << " [diffuse constant=" << m_diffuseConstant << "]"
-        << " [kernel unit length " << m_kernelUnitLengthX << ", " << m_kernelUnitLengthY << "]";
-   return ts;
-}
-
-static TextStream& operator<<(TextStream& ts, KCChannelSelectorType t)
-{
-    switch (t)
-    {
-        case CS_RED:
-            ts << "RED"; break;
-        case CS_GREEN:
-            ts << "GREEN"; break;
-        case CS_BLUE:
-            ts << "BLUE"; break;
-        case CS_ALPHA:
-            ts << "ALPHA"; break;
-    }
-    return ts;
-}
-
-TextStream& KCanvasFEDisplacementMap::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=DISPLACEMENT-MAP] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    if (!in2().isEmpty())
-        ts << " [in2=" << in2() << "]";        
-    ts << " [scale=" << m_scale << "]"
-        << " [x channel selector=" << m_xChannelSelector << "]"
-        << " [y channel selector=" << m_yChannelSelector << "]";
-   return ts;
-}
-
-TextStream& KCanvasFEFlood::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=FLOOD] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [color=" << floodColor() << "]"
-        << " [opacity=" << floodOpacity() << "]";
-   return ts;
-}
-
-float KCanvasFEGaussianBlur::stdDeviationX() const
-{
-    return m_x;
-}
-
-void KCanvasFEGaussianBlur::setStdDeviationX(float x)
-{
-    m_x = x;
-}
-
-float KCanvasFEGaussianBlur::stdDeviationY() const
-{
-    return m_y;
-}
-
-void KCanvasFEGaussianBlur::setStdDeviationY(float y)
-{
-    m_y = y;
-}
-
-TextStream& KCanvasFEGaussianBlur::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=GAUSSIAN-BLUR] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [std dev. x=" << stdDeviationX() << " y=" << stdDeviationY() << "]";
-    return ts;
-}
-
-TextStream& KCanvasFEImage::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=IMAGE] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    //FIXME: should this dump also object returned by KCanvasFEImage::image() ?
-    return ts;
-}
-
-TextStream& KCanvasFEMerge::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=MERGE] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << "[merge inputs=[";
-    unsigned x = 0;
-    unsigned size = m_mergeInputs.size();
-    while (x < size) {
-        ts << m_mergeInputs[x];
-        x++;
-        if (x < m_mergeInputs.size())
-            ts << ", ";
-    }
-    ts << "]]";
-    return ts;
-}
-
-static TextStream& operator<<(TextStream& ts, KCMorphologyOperatorType t)
-{
-    switch (t)
-    {
-        case MO_ERODE:
-            ts << "ERODE"; break;
-        case MO_DIALATE:
-            ts << "DIALATE"; break;
-    }
-    return ts;
-}
-
-TextStream& KCanvasFEMorphology::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=MORPHOLOGY-OPERATOR] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [operator type=" << morphologyOperator() << "]"
-        << " [radius x=" << radiusX() << " y=" << radiusY() << "]";
-   return ts;
-}
-
-TextStream& KCanvasFEOffset::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=OFFSET] "; KCanvasFilterEffect::externalRepresentation(ts)
-        << " [dx=" << dx() << " dy=" << dy() << "]";    
-   return ts;
-}
-
-TextStream& KCanvasFESpecularLighting::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=SPECULAR-LIGHTING] ";
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [surface scale=" << m_surfaceScale << "]"
-        << " [specual constant=" << m_specularConstant << "]"
-        << " [specular exponent=" << m_specularExponent << "]";        
-   return ts;
-}
-
-#if 0
-///FIXME: KCanvasFETile doesn't have any properties
-TextStream& KCanvasFETile::externalRepresentation(TextStream& ts) const
-{
-   KCanvasFilterEffect::externalRepresentation(ts);
-   return ts;
-}
-#endif
-
-static TextStream& operator<<(TextStream& ts, KCTurbulanceType t)
-{
-    switch (t)
-    {
-        case TT_TURBULANCE:
-            ts << "TURBULANCE";break;
-        case TT_NOISE:
-            ts << "NOISE"; break;
-    }
-    return ts;
-}
-
-TextStream& KCanvasFETurbulence::externalRepresentation(TextStream& ts) const
-{
-    ts << "[type=TURBULENCE] "; 
-    KCanvasFilterEffect::externalRepresentation(ts);
-    ts << " [turbulence type=" << type() << "]"
-        << " [base frequency x=" << baseFrequencyX() << " y=" << baseFrequencyY() << "]"
-        << " [seed=" << seed() << "]"
-        << " [num octaves=" << numOctaves() << "]"
-        << " [stitch tiles=" << stitchTiles() << "]";
-   return ts;
-}
-
-KCanvasFEImage::~KCanvasFEImage()
-{
-    if (m_cachedImage)
-        m_cachedImage->deref(this);
-}
-
-void KCanvasFEImage::setCachedImage(CachedImage* image)
-{
-    if (m_cachedImage)
-        m_cachedImage->deref(this);
-    m_cachedImage = image;
-    if (m_cachedImage)
-        m_cachedImage->ref(this);
-}
-
-}
-
-#endif // SVG_SUPPORT
-
diff --git a/WebCore/kcanvas/KCanvasFilters.h b/WebCore/kcanvas/KCanvasFilters.h
deleted file mode 100644 (file)
index d94fcf9..0000000
+++ /dev/null
@@ -1,687 +0,0 @@
-/*
-    Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
-                  2004, 2005 Rob Buis <buis@kde.org>
-                  2005 Eric Seidel <eric.seidel@kdemail.net>
-
-    This file is part of the KDE project
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    aint with this library; see the file COPYING.LIB.  If not, write to
-    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-    Boston, MA 02111-1307, USA.
-*/
-
-#ifndef KCanvasFilters_H
-#define KCanvasFilters_H
-#ifdef SVG_SUPPORT
-
-#include "CachedImage.h"
-#include "CachedResourceClient.h"
-#include "Color.h"
-#include "FloatRect.h"
-#include "SVGResource.h"
-
-#ifdef __OBJC__
-@class CIFilter;
-#else
-class CIFilter;
-#endif
-
-namespace WebCore {
-
-#if PLATFORM(MAC)
-class KCanvasFilterQuartz;
-#endif
-
-// Enumerations
-typedef enum {
-    FE_DISTANT_LIGHT = 0,
-    FE_POINT_LIGHT = 1,
-    FE_SPOT_LIGHT = 2,
-    FE_BLEND = 3,
-    FE_COLOR_MATRIX = 4,
-    FE_COMPONENT_TRANSFER = 5,
-    FE_COMPOSITE = 6,
-    FE_CONVOLVE_MATRIX = 7,
-    FE_DIFFUSE_LIGHTING = 8,
-    FE_DISPLACEMENT_MAP = 9,
-    FE_FLOOD = 10,
-    FE_GAUSSIAN_BLUR = 11,
-    FE_IMAGE = 12,
-    FE_MERGE = 13,
-    FE_MORPHOLOGY = 14,
-    FE_OFFSET = 15,
-    FE_SPECULAR_LIGHTING = 16,
-    FE_TILE = 17,
-    FE_TURBULENCE = 18
-} KCFilterEffectType;
-
-class KCanvasPoint3F {
-public:
-    KCanvasPoint3F()
-        : m_x(0)
-        , m_y(0)
-        , m_z(0)
-    {
-    }
-
-    KCanvasPoint3F(float x, float y, float z)
-        : m_x(x)
-        , m_y(y)
-        , m_z(z)
-    {
-    }
-    
-    float x() const { return m_x; }
-    void setX(float x) { m_x = x; }
-    
-    float y() const { return m_y; }
-    void setY(float y) { m_y = y; }
-    
-    float z() const { return m_z; }
-    void setZ(float z) { m_z = z; }
-    
-    void normalize();
-    
-private:
-    float m_x;
-    float m_y;
-    float m_z;
-};
-
-class KCanvasFilterEffect;
-class KRenderingDevice;
-
-class KCanvasFilter : public SVGResource {
-public:
-    KCanvasFilter() { }
-    virtual ~KCanvasFilter() { }
-    
-    virtual bool isFilter() const { return true; }
-    
-    bool filterBoundingBoxMode() const { return m_filterBBoxMode; }
-    void setFilterBoundingBoxMode(bool bboxMode) { m_filterBBoxMode = bboxMode; }
-    
-    bool effectBoundingBoxMode() const { return m_effectBBoxMode; }
-    void setEffectBoundingBoxMode(bool bboxMode) { m_effectBBoxMode = bboxMode; }    
-
-    FloatRect filterRect() const { return m_filterRect; }
-    void setFilterRect(const FloatRect &rect) { m_filterRect = rect; }
-    
-    FloatRect filterBBoxForItemBBox(FloatRect itemBBox) const;
-
-    void clearEffects();
-    void addFilterEffect(KCanvasFilterEffect*);
-
-    virtual void prepareFilter(const FloatRect &bbox) = 0;
-    virtual void applyFilter(const FloatRect &bbox) = 0;
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-protected:
-    FloatRect m_filterRect;
-    Vector<KCanvasFilterEffect*> m_effects;
-    bool m_filterBBoxMode;
-    bool m_effectBBoxMode;
-};
-
-KCanvasFilter* getFilterById(Document*, const AtomicString&);
-
-class KCanvasFilterEffect {
-public:
-    // this default constructor is only needed for gcc 3.3
-    KCanvasFilterEffect() { }
-    virtual ~KCanvasFilterEffect() { }
-
-    virtual KCFilterEffectType effectType() const { return FE_TURBULENCE; }
-
-    FloatRect subRegion() const;
-    void setSubRegion(const FloatRect&);
-
-    String in() const;
-    void setIn(const String&);
-
-    String result() const;
-    void setResult(const String&);
-
-#if PLATFORM(MAC)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const = 0;
-#endif
-
-    virtual TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    FloatRect m_subregion;
-    String m_in;
-    String m_result;
-};
-
-TextStream& operator<<(TextStream&, const KCanvasFilterEffect&);
-
-typedef enum {
-    BM_NORMAL = 0,
-    BM_MULTIPLY = 1,
-    BM_SCREEN = 2,
-    BM_DARKEN = 3,
-    BM_LIGHTEN = 4
-} KCBlendModeType;
-
-class KCanvasFEBlend : public KCanvasFilterEffect {
-public:
-    String in2() const { return m_in2; }
-    void setIn2(const String &in2) { m_in2 = in2; }
-    
-    KCBlendModeType blendMode() const { return m_mode; }
-    void setBlendMode(KCBlendModeType mode) { m_mode = mode; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    KCBlendModeType m_mode;
-    String m_in2;
-};
-
-typedef enum {
-    CMT_MATRIX = 0,
-    CMT_SATURATE = 1,
-    CMT_HUE_ROTATE = 2,
-    CMT_LUMINANCE_TO_ALPHA = 3
-} KCColorMatrixType;
-
-class KCanvasFEColorMatrix : public KCanvasFilterEffect {
-public:
-    KCColorMatrixType type() const { return m_type; }
-    void setType(KCColorMatrixType type) { m_type = type; }
-
-    const Vector<float>& values() const { return m_values; }
-    void setValues(const Vector<float>& values) { m_values = values; };
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    KCColorMatrixType m_type;
-    Vector<float> m_values;
-};
-
-typedef enum {
-    CT_IDENTITY = 0,
-    CT_TABLE = 1,
-    CT_DISCRETE = 2,
-    CT_LINEAR = 3,
-    CT_GAMMA = 4
-} KCComponentTransferType;
-
-struct KCComponentTransferFunction {
-    KCComponentTransferFunction()
-        : type(CT_IDENTITY)
-    {
-    }
-
-    KCComponentTransferType type;
-    Vector<float> tableValues;
-    float slope;
-    float intercept;
-    float amplitude;
-    float exponent;
-    float offset;
-};
-
-class KCanvasFEComponentTransfer : public KCanvasFilterEffect {
-public:    
-    KCComponentTransferFunction redFunction() const { return m_redFunc; }
-    void setRedFunction(const KCComponentTransferFunction& func) { m_redFunc = func; }
-    
-    KCComponentTransferFunction greenFunction() const { return m_greenFunc; }
-    void setGreenFunction(const KCComponentTransferFunction& func) { m_greenFunc = func; }
-    
-    KCComponentTransferFunction blueFunction() const { return m_blueFunc; }
-    void setBlueFunction(const KCComponentTransferFunction& func) { m_blueFunc = func; }
-    
-    KCComponentTransferFunction alphaFunction() const { return m_alphaFunc; }
-    void setAlphaFunction(const KCComponentTransferFunction& func) { m_alphaFunc = func; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    KCComponentTransferFunction m_redFunc;
-    KCComponentTransferFunction m_greenFunc;
-    KCComponentTransferFunction m_blueFunc;
-    KCComponentTransferFunction m_alphaFunc;
-};
-
-typedef enum {
-    CO_OVER = 0,
-    CO_IN = 1,
-    CO_OUT = 2,
-    CO_ATOP = 3,
-    CO_XOR = 4,
-    CO_ARITHMETIC = 5
-} KCCompositeOperationType;
-
-class KCanvasFEComposite : public KCanvasFilterEffect {
-public:
-    String in2() const { return m_in2; }
-    void setIn2(const String &in2) { m_in2 = in2; }
-    
-    KCCompositeOperationType operation() const { return m_operation; }
-    void setOperation(KCCompositeOperationType oper) { m_operation = oper; }
-    
-    float k1() const { return m_k1; }
-    void setK1(float k1) { m_k1 = k1; }
-    float k2() const { return m_k2;}
-    void setK2(float k2) { m_k2 = k2; }
-    float k3() const { return m_k3; }
-    void setK3(float k3) { m_k3 = k3; }
-    float k4() const { return m_k4; }
-    void setK4(float k4) { m_k4 = k4; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    String m_in2;
-    KCCompositeOperationType m_operation;
-    float m_k1;
-    float m_k2;
-    float m_k3;
-    float m_k4;
-};
-
-typedef enum {
-    EM_DUPLICATE = 0,
-    EM_WRAP = 1,
-    EM_NONE = 2
-} KCEdgeModeType;
-
-class KCanvasFEConvolveMatrix : public KCanvasFilterEffect {
-public:
-    KCanvasFEConvolveMatrix() { }
-
-    FloatSize kernelSize() const { return m_kernelSize; }
-    void setKernelSize(FloatSize kernelSize) { m_kernelSize = kernelSize; }
-    
-    const Vector<float>& kernel() const { return m_kernelMatrix; }
-    void setKernel(const Vector<float>& kernel) { m_kernelMatrix = kernel; }
-    
-    float divisor() const { return m_divisor; }
-    void setDivisor(float divisor) { m_divisor = divisor; }
-    
-    float bias() const { return m_bias; }
-    void setBias(float bias) { m_bias = bias; }
-    
-    FloatSize targetOffset() const { return m_targetOffset; }
-    void setTargetOffset(FloatSize targetOffset) { m_targetOffset = targetOffset; }
-    
-    KCEdgeModeType edgeMode() const { return m_edgeMode; }
-    void setEdgeMode(KCEdgeModeType edgeMode) { m_edgeMode = edgeMode; }
-    
-    FloatPoint kernelUnitLength() const {return m_kernelUnitLength; }
-    void setKernelUnitLength(FloatPoint kernelUnitLength) { m_kernelUnitLength = kernelUnitLength; }
-    
-    bool preserveAlpha() const { return m_preserveAlpha; }
-    void setPreserveAlpha(bool preserveAlpha) { m_preserveAlpha = preserveAlpha; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    FloatSize m_kernelSize;
-    Vector<float> m_kernelMatrix; // maybe should be a real matrix?
-    float m_divisor;
-    float m_bias;
-    FloatSize m_targetOffset;
-    KCEdgeModeType m_edgeMode;
-    FloatPoint m_kernelUnitLength;
-    bool m_preserveAlpha;
-};
-
-typedef enum{
-    LS_DISTANT,
-    LS_POINT,
-    LS_SPOT
-} KCLightType;
-
-//The light source for Diffuse/SpecularLighting
-class KCLightSource {
-public:
-    KCLightSource(KCLightType a_type)
-        : m_type(a_type)
-    {
-    }
-    
-    virtual ~KCLightSource() { }
-    
-    KCLightType type() const { return m_type; }
-    
-    virtual TextStream& externalRepresentation(TextStream&) const = 0;
-    
-private:
-    KCLightType m_type;
-};
-
-class KCDistantLightSource : public KCLightSource {
-public:
-    KCDistantLightSource(float azimuth, float elevation)
-        : KCLightSource(LS_DISTANT)
-        , m_azimuth(azimuth)
-        , m_elevation(elevation)
-    {
-    }
-    
-    float azimuth() const{ return m_azimuth; }
-    float elevation() const{ return m_elevation; }
-    
-    virtual TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    float m_azimuth;
-    float m_elevation;
-};
-
-class KCPointLightSource : public KCLightSource {
-public:
-    KCPointLightSource(KCanvasPoint3F& position)
-        : KCLightSource(LS_POINT)
-        , m_position(position)
-    {
-    }
-    
-    const KCanvasPoint3F& position() const { return m_position; }
-    
-    virtual TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    KCanvasPoint3F m_position;
-};
-
-class KCSpotLightSource : public KCLightSource {
-public:
-    KCSpotLightSource(KCanvasPoint3F& position, KCanvasPoint3F& direction,float specularExponent, float limitingConeAngle) 
-        : KCLightSource(LS_SPOT)
-        , m_position(position)
-        , m_direction(direction)
-        , m_specularExponent(specularExponent)
-        , m_limitingConeAngle(limitingConeAngle)
-    {
-    }
-    
-    const KCanvasPoint3F& position() const { return m_position; }
-    const KCanvasPoint3F& direction() const { return m_direction; }
-    float specularExponent() const { return m_specularExponent; }
-    float limitingConeAngle() const { return m_limitingConeAngle; }
-    
-    virtual TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    KCanvasPoint3F m_position;
-    KCanvasPoint3F m_direction;
-    float          m_specularExponent;
-    float          m_limitingConeAngle;
-};
-
-class KCanvasFEDiffuseLighting : public KCanvasFilterEffect {
-public:
-    KCanvasFEDiffuseLighting()
-        : m_lightSource(0)
-    {
-    }
-    ~KCanvasFEDiffuseLighting() { delete m_lightSource; }
-
-    Color lightingColor() const { return m_lightingColor; }
-    void setLightingColor(const Color &lightingColor) { m_lightingColor = lightingColor; }
-
-    float surfaceScale() const { return m_surfaceScale; }
-    void setSurfaceScale(float surfaceScale) { m_surfaceScale = surfaceScale; }
-    
-    float diffuseConstant() const { return m_diffuseConstant; }
-    void setDiffuseConstant(float diffuseConstant) { m_diffuseConstant = diffuseConstant; }
-    
-    float kernelUnitLengthX() const { return m_kernelUnitLengthX; }
-    void setKernelUnitLengthX(float kernelUnitLengthX) { m_kernelUnitLengthX = kernelUnitLengthX; }
-    
-    float kernelUnitLengthY() const { return m_kernelUnitLengthY; }
-    void setKernelUnitLengthY(float kernelUnitLengthY) { m_kernelUnitLengthY = kernelUnitLengthY; }
-
-    const KCLightSource* lightSource() const { return m_lightSource; }
-    void setLightSource(KCLightSource*);
-    
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    Color m_lightingColor;
-    float m_surfaceScale;
-    float m_diffuseConstant;
-    float m_kernelUnitLengthX;
-    float m_kernelUnitLengthY;
-    KCLightSource* m_lightSource;
-};
-
-typedef enum {
-    CS_RED = 0,
-    CS_GREEN = 1,
-    CS_BLUE = 2,
-    CS_ALPHA = 3
-} KCChannelSelectorType;
-
-class KCanvasFEDisplacementMap : public KCanvasFilterEffect {
-public:
-    KCanvasFEDisplacementMap()
-        : m_xChannelSelector(CS_RED)
-        , m_yChannelSelector(CS_RED)
-        , m_scale(0)
-    {
-    }
-    
-    String in2() const { return m_in2; }
-    void setIn2(const String &in2) { m_in2 = in2; }
-    
-    KCChannelSelectorType xChannelSelector() const { return m_xChannelSelector; }
-    void setXChannelSelector(const KCChannelSelectorType xChannelSelector) { m_xChannelSelector = xChannelSelector; }
-    
-    KCChannelSelectorType yChannelSelector() const { return m_yChannelSelector; }
-    void setYChannelSelector(const KCChannelSelectorType yChannelSelector) { m_yChannelSelector = yChannelSelector; }
-
-    float scale() const { return m_scale; }
-    void setScale(float scale) { m_scale = scale; }
-    
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    String m_in2;
-    KCChannelSelectorType m_xChannelSelector;
-    KCChannelSelectorType m_yChannelSelector;
-    float m_scale;
-};
-
-class KCanvasFEFlood : public KCanvasFilterEffect {
-public:
-    Color floodColor() const { return m_floodColor; }
-    void setFloodColor(const Color &color) { m_floodColor = color; }
-
-    float floodOpacity() const { return m_floodOpacity; }
-    void setFloodOpacity(float floodOpacity) { m_floodOpacity = floodOpacity; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    Color m_floodColor;
-    float m_floodOpacity;
-};
-
-class KCanvasFEGaussianBlur : public KCanvasFilterEffect {
-public:
-    float stdDeviationX() const;
-    void setStdDeviationX(float);
-
-    float stdDeviationY() const;
-    void setStdDeviationY(float);
-
-    TextStream& externalRepresentation(TextStream&) const;
-
-private:
-    float m_x;
-    float m_y;
-};
-
-class KCanvasFEImage : public KCanvasFilterEffect, public CachedResourceClient {
-public:
-    KCanvasFEImage()
-        : m_cachedImage(0)
-    {
-    }
-
-    virtual ~KCanvasFEImage();
-    
-    // FIXME: Eventually we need to support <svg> (RenderObject*) as well as image data.
-    
-    CachedImage* cachedImage() const { return m_cachedImage; }
-    void setCachedImage(CachedImage*);
-
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    CachedImage* m_cachedImage;
-};
-
-class KCanvasFEMerge : public KCanvasFilterEffect {
-public:
-    const Vector<String>& mergeInputs() const { return m_mergeInputs; }
-    void setMergeInputs(const Vector<String>& mergeInputs) { m_mergeInputs = mergeInputs; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    Vector<String> m_mergeInputs;
-};
-
-typedef enum {
-    MO_ERODE = 0,
-    MO_DIALATE = 1
-} KCMorphologyOperatorType;
-
-class KCanvasFEMorphology : public KCanvasFilterEffect {
-public:
-    KCMorphologyOperatorType morphologyOperator() const { return m_operator; }
-    void setMorphologyOperator(KCMorphologyOperatorType _operator) { m_operator = _operator; }
-
-    float radiusX() const { return m_radiusX; }
-    void setRadiusX(float radiusX) { m_radiusX = radiusX; }
-
-    float radiusY() const { return m_radiusY; }
-    void setRadiusY(float radiusY) { m_radiusY = radiusY; }
-    
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    KCMorphologyOperatorType m_operator;
-    float m_radiusX;
-    float m_radiusY;
-};
-
-class KCanvasFEOffset : public KCanvasFilterEffect {
-public:
-    float dx() const { return m_dx; }
-    void setDx(float dx) { m_dx = dx; }
-
-    float dy() const { return m_dy; }
-    void setDy(float dy) { m_dy = dy; }
-    
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    float m_dx;
-    float m_dy;
-};
-
-class KCanvasFESpecularLighting : public KCanvasFilterEffect {
-public:
-    KCanvasFESpecularLighting()
-        : m_lightSource(0)
-    {
-    }
-    ~KCanvasFESpecularLighting() { delete m_lightSource; }
-
-    Color lightingColor() const { return m_lightingColor; }
-    void setLightingColor(const Color &lightingColor) { m_lightingColor = lightingColor; }
-
-    float surfaceScale() const { return m_surfaceScale; }
-    void setSurfaceScale(float surfaceScale) { m_surfaceScale = surfaceScale; }
-    
-    float specularConstant() const { return m_specularConstant; }
-    void setSpecularConstant(float specularConstant) { m_specularConstant = specularConstant; }
-    
-    float specularExponent() const { return m_specularExponent; }
-    void setSpecularExponent(float specularExponent) { m_specularExponent = specularExponent; }
-    
-    float kernelUnitLengthX() const { return m_kernelUnitLengthX; }
-    void setKernelUnitLengthX(float kernelUnitLengthX) { m_kernelUnitLengthX = kernelUnitLengthX; }
-    
-    float kernelUnitLengthY() const { return m_kernelUnitLengthY; }
-    void setKernelUnitLengthY(float kernelUnitLengthY) { m_kernelUnitLengthY = kernelUnitLengthY; }
-    
-    const KCLightSource* lightSource() const { return m_lightSource; }
-    void setLightSource(KCLightSource*);
-    
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    Color m_lightingColor;
-    float m_surfaceScale;
-    float m_specularConstant;
-    float m_specularExponent;
-    float m_kernelUnitLengthX;
-    float m_kernelUnitLengthY;
-    KCLightSource* m_lightSource;
-};
-
-class KCanvasFETile : public KCanvasFilterEffect { };
-
-typedef enum {
-    TT_TURBULANCE = 0,
-    TT_NOISE = 1
-} KCTurbulanceType;
-
-class KCanvasFETurbulence : public KCanvasFilterEffect {
-public:
-    KCTurbulanceType type() const { return m_type; }
-    void setType(KCTurbulanceType type) { m_type = type; }
-
-    float baseFrequencyY() const { return m_baseFrequencyY; }
-    void setBaseFrequencyY(float baseFrequencyY) { m_baseFrequencyY = baseFrequencyY; }
-
-    float baseFrequencyX() const { return m_baseFrequencyX; }
-    void setBaseFrequencyX(float baseFrequencyX) { m_baseFrequencyX = baseFrequencyX; }
-
-    float seed() const { return m_seed; }
-    void setSeed(float seed) { m_seed = seed; }
-
-    int numOctaves() const { return m_numOctaves; }
-    void setNumOctaves(bool numOctaves) { m_numOctaves = numOctaves; }
-
-    bool stitchTiles() const { return m_stitchTiles; }
-    void setStitchTiles(bool stitch) { m_stitchTiles = stitch; }
-
-    TextStream& externalRepresentation(TextStream&) const;
-    
-private:
-    float m_baseFrequencyX;
-    float m_baseFrequencyY;
-    int m_numOctaves;
-    float m_seed;
-    bool m_stitchTiles;
-    KCTurbulanceType m_type;
-};
-
-} // namespace WebCore
-
-#endif // SVG_SUPPORT
-
-#endif // KCanvasFilters_H
index f8ef3942e02341ee9b2b6a9e5b7484a3618410d7..7349a05d166bfaa5b41d821a118f49949128c75a 100644 (file)
 
 #ifndef KRenderingDevice_H
 #define KRenderingDevice_H
+
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFilterEffect.h"
 #include "KRenderingPaintServer.h"
 
 namespace WebCore {
@@ -50,7 +51,7 @@ public:
 };
 
 class SVGResourceImage;
-class KCanvasFilterEffect;
+class SVGResourceFilterEffect;
 class KRenderingDevice
 {
 public:
@@ -71,7 +72,7 @@ public:
 
     // Creation tools
     virtual PassRefPtr<SVGResource> createResource(const SVGResourceType&) const = 0;
-    virtual KCanvasFilterEffect* createFilterEffect(const KCFilterEffectType&) const = 0;
+    virtual SVGFilterEffect* createFilterEffect(const SVGFilterEffectType&) const = 0;
     virtual PassRefPtr<KRenderingPaintServer> createPaintServer(const KCPaintServerType&) const = 0;
 
 private:
index fe0a3d2eaab20be0e31ab9cca555014fc1823c3e..59fbc5b4304c8aba5e3b9252fa66e75634c6f76d 100644 (file)
@@ -178,7 +178,7 @@ PassRefPtr<KRenderingPaintServer> KRenderingDeviceQt::createPaintServer(const KC
     }
 }
 
-KCanvasFilterEffect* KRenderingDeviceQt::createFilterEffect(const KCFilterEffectType& type) const
+SVGFilterEffect* KRenderingDeviceQt::createFilterEffect(const SVGFilterEffectType& type) const
 {
     qDebug("KRenderingDeviceQt::createFilterEffect() TODO!");
     return 0;
index d63a13d1d76fe976e2b937588b24d5dd30d11551..2fdf339e2176b4a11a2b9d97f2f5415bb2fe98d6 100644 (file)
@@ -79,7 +79,7 @@ public:
     // Resource creation
     virtual PassRefPtr<SVGResource> createResource(const SVGResourceType&) const;
     virtual PassRefPtr<KRenderingPaintServer> createPaintServer(const KCPaintServerType&) const;
-    virtual KCanvasFilterEffect* createFilterEffect(const KCFilterEffectType&) const;
+    virtual SVGFilterEffect* createFilterEffect(const SVGFilterEffectType&) const;
 };
 
 }
diff --git a/WebCore/kcanvas/device/quartz/KCanvasFilterQuartz.h b/WebCore/kcanvas/device/quartz/KCanvasFilterQuartz.h
deleted file mode 100644 (file)
index 60a4e53..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef KCancasFilterQuartz_H
-#define KCanvasFilterQuartz_H
-
-#ifdef SVG_SUPPORT
-
-#include "KCanvasFilters.h"
-
-#ifdef __OBJC__
-@class CIFilter;
-@class CIImage;
-#else
-class CIFilter;
-class CIImage;
-class NSArray;
-class CIContext;
-class NSMutableDictionary;
-#endif
-
-namespace WebCore {
-
-class KRenderingDevice;
-
-class KCanvasFilterQuartz : public KCanvasFilter {
-public:
-    KCanvasFilterQuartz();
-    virtual ~KCanvasFilterQuartz();
-    
-    virtual void prepareFilter(const FloatRect& bbox);
-    virtual void applyFilter(const FloatRect& bbox);
-    CIImage* imageForName(const String&) const;
-    void setImageForName(CIImage*, const String&);
-    
-    void setOutputImage(const KCanvasFilterEffect*, CIImage*);
-    CIImage* inputImage(const KCanvasFilterEffect*);
-
-private:
-#if PLATFORM(CI)
-    NSArray* getCIFilterStack(CIImage* inputImage);
-
-    CIContext* m_filterCIContext;
-    CGLayerRef m_filterCGLayer;
-    NSMutableDictionary* m_imagesByName;
-#endif
-};
-
-class KCanvasFEBlendQuartz : public KCanvasFEBlend {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEColorMatrixQuartz : public KCanvasFEColorMatrix {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEComponentTransferQuartz : public KCanvasFEComponentTransfer {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-    
-private:
-    CIFilter* getFunctionFilter(KCChannelSelectorType, CIImage* inputImage) const;
-#endif
-};
-
-class KCanvasFEConvolveMatrixQuartz : public KCanvasFEConvolveMatrix {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFECompositeQuartz : public KCanvasFEComposite {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEDiffuseLightingQuartz : public KCanvasFEDiffuseLighting {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEFloodQuartz : public KCanvasFEFlood {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEGaussianBlurQuartz : public KCanvasFEGaussianBlur {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEImageQuartz : public KCanvasFEImage {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEDisplacementMapQuartz : public KCanvasFEDisplacementMap {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEMergeQuartz : public KCanvasFEMerge {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFEOffsetQuartz : public KCanvasFEOffset {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFESpecularLightingQuartz : public KCanvasFESpecularLighting {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-class KCanvasFETileQuartz : public KCanvasFETile {
-public:
-#if PLATFORM(CI)
-    virtual CIFilter* getCIFilter(KCanvasFilterQuartz*) const;
-#endif
-};
-
-}
-
-#endif // SVG_SUPPORT
-#endif // !KCanvasFilterQuartz_H
diff --git a/WebCore/kcanvas/device/quartz/KCanvasFilterQuartz.mm b/WebCore/kcanvas/device/quartz/KCanvasFilterQuartz.mm
deleted file mode 100644 (file)
index 0883c1a..0000000
+++ /dev/null
@@ -1,839 +0,0 @@
-/*
- * Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
- * Copyright (C) 2006 Dave MacLachlan (dmaclach@mac.com)
- *               2006 Rob Buis <buis@kde.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-
-#include "config.h"
-#ifdef SVG_SUPPORT
-
-#import "KCanvasFilterQuartz.h"
-
-#import "AffineTransform.h"
-#import "BlockExceptions.h"
-#import "CachedImage.h"
-#import "FoundationExtras.h"
-#import "Image.h"
-#import "KRenderingDeviceQuartz.h"
-#import "QuartzSupport.h"
-#import "WKArithmeticFilter.h"
-#import "WKDiffuseLightingFilter.h"
-#import "WKDisplacementMapFilter.h"
-#import "WKDistantLightFilter.h"
-#import "WKNormalMapFilter.h"
-#import "WKArithmeticFilter.h"
-#import "WKComponentMergeFilter.h"
-#import "WKIdentityTransferFilter.h"
-#import "WKTableTransferFilter.h"
-#import "WKDiscreteTransferFilter.h"
-#import "WKLinearTransferFilter.h"
-#import "WKGammaTransferFilter.h"
-#import "WKPointLightFilter.h"
-#import "WKSpecularLightingFilter.h"
-#import "WKSpotLightFilter.h"
-#import <QuartzCore/QuartzCore.h>
-
-namespace WebCore {
-
-static const char* const KCPreviousFilterOutputName = "__previousOutput__";
-
-static inline CIColor *ciColor(const Color &c)
-{
-    CGColorRef colorCG = cgColor(c);
-    CIColor *colorCI = [CIColor colorWithCGColor:colorCG];
-    CGColorRelease(colorCG);
-    return colorCI;
-}
-
-static inline CIVector *ciVector(KCanvasPoint3F point)
-{
-    return [CIVector vectorWithX:point.x() Y:point.y() Z:point.z()];
-}
-
-static inline CIVector *ciVector(FloatPoint point)
-{
-    return [CIVector vectorWithX:point.x() Y:point.y()];
-}
-
-static inline CIVector *getVectorForChannel(KCChannelSelectorType channel)
-{
-    switch (channel) {
-        case CS_RED:
-            return [CIVector vectorWithX:1.0 Y:0.0 Z:0.0 W:0.0];
-        case CS_GREEN:
-            return [CIVector vectorWithX:0.0 Y:1.0 Z:0.0 W:0.0];            
-        case CS_BLUE:
-            return [CIVector vectorWithX:0.0 Y:0.0 Z:1.0 W:0.0];
-        case CS_ALPHA:
-            return [CIVector vectorWithX:0.0 Y:0.0 Z:0.0 W:1.0];
-        default:
-            return [CIVector vectorWithX:0.0 Y:0.0 Z:0.0 W:0.0];
-    }
-}
-
-KCanvasFilterQuartz::KCanvasFilterQuartz()
-    : m_filterCIContext(0)
-    , m_filterCGLayer(0)
-{
-    m_imagesByName = HardRetainWithNSRelease([[NSMutableDictionary alloc] init]);
-}
-
-KCanvasFilterQuartz::~KCanvasFilterQuartz()
-{
-    ASSERT(!m_filterCGLayer);
-    ASSERT(!m_filterCIContext);
-    HardRelease(m_imagesByName);
-}
-
-void KCanvasFilterQuartz::prepareFilter(const FloatRect &bbox)
-{
-    if (bbox.isEmpty() || !KRenderingDeviceQuartz::filtersEnabled() || m_effects.isEmpty())
-        return;
-
-    CGContextRef cgContext = static_cast<KRenderingDeviceQuartz*>(renderingDevice())->currentCGContext();
-    
-    // get a CIContext, and CGLayer for drawing in.
-    bool useSoftware = ! KRenderingDeviceQuartz::hardwareRenderingEnabled();
-    NSDictionary *contextOptions = nil;
-    
-    if (useSoftware)
-        contextOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], kCIContextUseSoftwareRenderer, nil];
-    
-    // Use of CGBegin/EndTransparencyLayer around this call causes over release
-    // of cgContext due to it being created on an autorelease pool, and released
-    // after CGEndTransparencyLayer. Create local pool to fix.
-    // <http://bugs.webkit.org/show_bug.cgi?id=8425>
-    // <http://bugs.webkit.org/show_bug.cgi?id=6947>
-    // <rdar://problem/4647735>
-    NSAutoreleasePool *filterContextPool = [[NSAutoreleasePool alloc] init];
-    m_filterCIContext = HardRetain([CIContext contextWithCGContext:cgContext options:contextOptions]);
-    [filterContextPool drain];
-    
-    m_filterCGLayer = [m_filterCIContext createCGLayerWithSize:CGRect(bbox).size info:NULL];
-    
-    KRenderingDeviceContext* filterContext = new KRenderingDeviceContextQuartz(CGLayerGetContext(m_filterCGLayer));
-    renderingDevice()->pushContext(filterContext);
-    
-    filterContext->concatCTM(AffineTransform().translate(-1.0f * bbox.x(), -1.0f * bbox.y()));
-}
-
-void KCanvasFilterQuartz::applyFilter(const FloatRect &bbox)
-{
-    if (bbox.isEmpty() || !KRenderingDeviceQuartz::filtersEnabled() || m_effects.isEmpty())
-        return;
-
-    // restore the previous context, delete the filter context.
-    delete (renderingDevice()->popContext());
-
-    // actually apply the filter effects
-    CIImage *inputImage = [CIImage imageWithCGLayer:m_filterCGLayer];
-    NSArray *filterStack = getCIFilterStack(inputImage);
-    if ([filterStack count]) {
-        CIImage *outputImage = [[filterStack lastObject] valueForKey:@"outputImage"];
-        if (outputImage) {
-            CGRect filterRect = CGRect(filterBBoxForItemBBox(bbox));
-            CGRect translated = filterRect;
-            CGPoint bboxOrigin = CGRect(bbox).origin;
-            CGRect sourceRect = CGRectIntersection(translated,[outputImage extent]);
-            
-            CGPoint destOrigin = sourceRect.origin;
-            destOrigin.x += bboxOrigin.x;
-            destOrigin.y += bboxOrigin.y;
-            
-            [m_filterCIContext drawImage:outputImage atPoint:destOrigin fromRect:sourceRect];
-        }
-    }
-    
-    CGLayerRelease(m_filterCGLayer);
-    m_filterCGLayer = 0;
-
-    HardRelease(m_filterCIContext);
-    m_filterCIContext = 0;
-}
-
-NSArray *KCanvasFilterQuartz::getCIFilterStack(CIImage *inputImage)
-{
-    NSMutableArray *filterEffects = [NSMutableArray array];
-
-    setImageForName(inputImage, "SourceGraphic"); // input
-
-    for (unsigned i = 0; i < m_effects.size(); i++) {
-        CIFilter *filter = m_effects[i]->getCIFilter(this);
-        if (filter)
-            [filterEffects addObject:filter];
-    }
-    [m_imagesByName removeAllObjects]; // clean up before next time.
-
-    return filterEffects;
-}
-
-CIImage *KCanvasFilterQuartz::imageForName(const String& name) const
-{
-    return [m_imagesByName objectForKey:name];
-}
-
-void KCanvasFilterQuartz::setImageForName(CIImage *image, const String &name)
-{
-    [m_imagesByName setValue:image forKey:name];
-}
-
-void KCanvasFilterQuartz::setOutputImage(const KCanvasFilterEffect *filterEffect, CIImage *output)
-{
-    if (!filterEffect->result().isEmpty())
-        setImageForName(output, filterEffect->result());
-    setImageForName(output, KCPreviousFilterOutputName);
-}
-
-static inline CIImage *alphaImageForImage(CIImage *image)
-{
-    CIFilter *onlyAlpha = [CIFilter filterWithName:@"CIColorMatrix"];
-    CGFloat zero[4] = {0, 0, 0, 0};
-    [onlyAlpha setDefaults];
-    [onlyAlpha setValue:image forKey:@"inputImage"];
-    [onlyAlpha setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputRVector"];
-    [onlyAlpha setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputGVector"];
-    [onlyAlpha setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputBVector"];
-    return [onlyAlpha valueForKey:@"outputImage"];
-}
-
-CIImage *KCanvasFilterQuartz::inputImage(const KCanvasFilterEffect *filterEffect)
-{
-    if (filterEffect->in().isEmpty()) {
-        CIImage *inImage = imageForName(KCPreviousFilterOutputName);
-        if (!inImage)
-            inImage = imageForName("SourceGraphic");
-        return inImage;
-    } else if (filterEffect->in() == "SourceAlpha") {
-        CIImage *sourceAlpha = imageForName(filterEffect->in());
-        if (!sourceAlpha) {
-            CIImage *sourceGraphic = imageForName("SourceGraphic");
-            if (!sourceGraphic)
-                return nil;
-            sourceAlpha = alphaImageForImage(sourceGraphic);
-            setImageForName(sourceAlpha, "SourceAlpha");
-        }
-        return sourceAlpha;
-    }
-
-    return imageForName(filterEffect->in());
-}
-
-#pragma mark -
-#pragma mark Filter Elements
-
-#define FE_QUARTZ_SETUP_INPUT(name) \
-    CIImage *inputImage = quartzFilter->inputImage(this); \
-    FE_QUARTZ_CHECK_INPUT(inputImage) \
-    CIFilter *filter; \
-    BEGIN_BLOCK_OBJC_EXCEPTIONS; \
-    filter = [CIFilter filterWithName:name]; \
-    [filter setDefaults]; \
-    [filter setValue:inputImage forKey:@"inputImage"];
-
-#define FE_QUARTZ_CHECK_INPUT(input) \
-    if (!input) \
-        return nil;
-
-#define FE_QUARTZ_OUTPUT_RETURN \
-    quartzFilter->setOutputImage(this, [filter valueForKey:@"outputImage"]); \
-    return filter; \
-    END_BLOCK_OBJC_EXCEPTIONS; \
-    return nil;
-
-#define FE_QUARTZ_CROP_TO_RECT(rect) \
-    { \
-        CIFilter *crop = [CIFilter filterWithName:@"CICrop"]; \
-        [crop setDefaults]; \
-        [crop setValue:[filter valueForKey:@"outputImage"] forKey:@"inputImage"]; \
-        [crop setValue:[CIVector vectorWithX:rect.origin.x Y:rect.origin.y Z:rect.size.width W:rect.size.height] forKey:@"inputRectangle"]; \
-        filter = crop; \
-    }
-
-CIFilter *KCanvasFEBlendQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    CIFilter *filter = nil;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-
-    switch (blendMode()) {
-    case BM_NORMAL:
-        // FIXME: I think this is correct....
-        filter = [CIFilter filterWithName:@"CISourceOverCompositing"];
-        break;
-    case BM_MULTIPLY:
-        filter = [CIFilter filterWithName:@"CIMultiplyBlendMode"];
-        break;
-    case BM_SCREEN:
-        filter = [CIFilter filterWithName:@"CIScreenBlendMode"];
-        break;
-    case BM_DARKEN:
-        filter = [CIFilter filterWithName:@"CIDarkenBlendMode"];
-        break;
-    case BM_LIGHTEN:
-        filter = [CIFilter filterWithName:@"CILightenBlendMode"];
-        break;
-    default:
-        LOG_ERROR("Unhandled blend mode: %i", blendMode());
-        return nil;
-    }
-
-    [filter setDefaults];
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    FE_QUARTZ_CHECK_INPUT(inputImage);
-    [filter setValue:inputImage forKey:@"inputImage"];
-    CIImage *backgroundImage = quartzFilter->imageForName(in2());
-    FE_QUARTZ_CHECK_INPUT(backgroundImage);
-    [filter setValue:backgroundImage forKey:@"inputBackgroundImage"];
-
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-#define deg2rad(d) ((d * (2.0 * M_PI))/360.0)
-
-#define CMValuesCheck(expected, type) \
-    if (values().size() != expected) { \
-        NSLog(@"Error, incorrect number of values in ColorMatrix for type \"%s\", expected: %i actual: %i, ignoring filter.  Values:", type, expected, values().size()); \
-        for (unsigned x=0; x < values().size(); x++) fprintf(stderr, " %f", values()[x]); \
-        fprintf(stderr, "\n"); \
-        return nil; \
-    }
-
-CIFilter *KCanvasFEColorMatrixQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    CIFilter *filter = nil;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    switch (type()) {
-    case CMT_MATRIX:
-    {
-        CMValuesCheck(20, "matrix");
-        filter = [CIFilter filterWithName:@"CIColorMatrix"];
-        [filter setDefaults];
-        const Vector<float>& v = values();
-        [filter setValue:[CIVector vectorWithX:v[0] Y:v[1] Z:v[2] W:v[3]] forKey:@"inputRVector"];
-        [filter setValue:[CIVector vectorWithX:v[5] Y:v[6] Z:v[7] W:v[8]] forKey:@"inputGVector"];
-        [filter setValue:[CIVector vectorWithX:v[10] Y:v[11] Z:v[12] W:v[13]] forKey:@"inputBVector"];
-        [filter setValue:[CIVector vectorWithX:v[15] Y:v[16] Z:v[17] W:v[18]] forKey:@"inputAVector"];
-        [filter setValue:[CIVector vectorWithX:v[4] Y:v[9] Z:v[14] W:v[19]] forKey:@"inputBiasVector"];
-        break;
-    }
-    case CMT_SATURATE:
-    {
-        CMValuesCheck(1, "saturate");
-        filter = [CIFilter filterWithName:@"CIColorControls"];
-        [filter setDefaults];
-        float saturation = values()[0];
-        if ((saturation < 0.0) || (saturation > 3.0))
-                NSLog(@"WARNING: Saturation adjustment: %f outside supported range.");
-        [filter setValue:[NSNumber numberWithFloat:saturation] forKey:@"inputSaturation"];
-        break;
-    }
-    case CMT_HUE_ROTATE:
-    {
-        CMValuesCheck(1, "hueRotate");
-        filter = [CIFilter filterWithName:@"CIHueAdjust"];
-        [filter setDefaults];
-        float radians = deg2rad(values()[0]);
-        [filter setValue:[NSNumber numberWithFloat:radians] forKey:@"inputAngle"];
-        break;
-    }
-    case CMT_LUMINANCE_TO_ALPHA:
-    {
-        CMValuesCheck(0, "luminanceToAlpha");
-        // FIXME: I bet there is an easy filter to do this.
-        filter = [CIFilter filterWithName:@"CIColorMatrix"];
-        [filter setDefaults];
-        CGFloat zero[4] = {0, 0, 0, 0};
-        CGFloat alpha[4] = {0.2125, 0.7154, 0.0721, 0};
-        [filter setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputRVector"];
-        [filter setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputGVector"];
-        [filter setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputBVector"];
-        [filter setValue:[CIVector vectorWithValues:alpha count:4] forKey:@"inputAVector"];
-        [filter setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputBiasVector"];
-        break;
-    }
-    default:
-        LOG_ERROR("Unhandled ColorMatrix type: %i", type());
-        return nil;
-    }
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    FE_QUARTZ_CHECK_INPUT(inputImage);
-    [filter setValue:inputImage forKey:@"inputImage"];
-
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-static CIImage *genImageFromTable(const Vector<float>& table)
-{
-    int length = table.size();
-    int nBytes = length*4*sizeof(float);
-    float *tableStore = (float *)malloc(nBytes);
-    NSData *bitmapData = [NSData dataWithBytesNoCopy:tableStore length:nBytes];
-    for (Vector<float>::const_iterator it = table.begin(); it != table.end(); it++) {
-        const float value = *it;
-        *tableStore++ = value;
-        *tableStore++ = value;
-        *tableStore++ = value;
-        *tableStore++ = value;
-    }
-    return [CIImage imageWithBitmapData:bitmapData bytesPerRow:nBytes size:CGSizeMake(length, 1) format:kCIFormatRGBAf colorSpace:nil];
-}
-
-static CIFilter *filterForComponentFunc(const KCComponentTransferFunction& func)
-{
-    CIFilter *filter;
-    switch (func.type) {
-        case CT_IDENTITY:
-            filter = [CIFilter filterWithName:@"WKIdentityTransfer"];
-            break;
-        case CT_TABLE:
-            filter = [CIFilter filterWithName:@"WKTableTransferFilter"];
-            break;
-        case CT_DISCRETE:
-            filter = [CIFilter filterWithName:@"WKDiscreteTransferFilter"];
-            break;
-        case CT_LINEAR:
-            filter = [CIFilter filterWithName:@"WKLinearTransfer"];            
-            break;
-        case CT_GAMMA:
-            filter = [CIFilter filterWithName:@"WKGammaTransfer"];
-            break;
-        default:
-            NSLog(@"WARNING: Unknown function type for feComponentTransfer");
-            //and to prevent the entire svg from failing as a result
-            filter = [CIFilter filterWithName:@"WKIdentityTransfer"];
-            break;
-    }
-    return filter;
-}
-
-static void setParametersForComponentFunc(CIFilter *filter, const KCComponentTransferFunction& func, CIVector *channelSelector)
-{
-    switch (func.type) {
-        case CT_TABLE:
-            [filter setValue:genImageFromTable(func.tableValues) forKey:@"inputTable"];
-            [filter setValue:channelSelector forKey:@"inputSelector"];
-            break;
-        case CT_DISCRETE:
-            [filter setValue:genImageFromTable(func.tableValues) forKey:@"inputTable"];
-            [filter setValue:channelSelector forKey:@"inputSelector"];
-            break;
-        case CT_LINEAR:
-            [filter setValue:[NSNumber numberWithFloat:func.slope] forKey:@"inputSlope"];
-            [filter setValue:[NSNumber numberWithFloat:func.intercept] forKey:@"inputIntercept"];          
-            break;
-        case CT_GAMMA:
-            [filter setValue:[NSNumber numberWithFloat:func.amplitude] forKey:@"inputAmplitude"];
-            [filter setValue:[NSNumber numberWithFloat:func.exponent] forKey:@"inputExponent"];
-            [filter setValue:[NSNumber numberWithFloat:func.offset] forKey:@"inputOffset"];
-            break;
-        default:
-            //identity has no args
-            break;
-    }
-}
-
-static CIFilter *getFilterForFunc(const KCComponentTransferFunction& func, CIImage *inputImage, CIVector *channelSelector) 
-{
-    CIFilter *filter = filterForComponentFunc(func);
-    [filter setDefaults];
-    
-    setParametersForComponentFunc(filter, func, channelSelector);
-    [filter setValue:inputImage forKey:@"inputImage"];
-    return filter;
-}
-
-CIFilter *KCanvasFEComponentTransferQuartz::getFunctionFilter(KCChannelSelectorType channel, CIImage *inputImage) const
-{
-    switch (channel) {
-        case CS_RED:
-            return [getFilterForFunc(redFunction(), inputImage, getVectorForChannel(channel)) valueForKey:@"outputImage"];
-        case CS_GREEN: 
-            return [getFilterForFunc(greenFunction(), inputImage, getVectorForChannel(channel)) valueForKey:@"outputImage"];
-        case CS_BLUE:
-            return [getFilterForFunc(blueFunction(), inputImage, getVectorForChannel(channel)) valueForKey:@"outputImage"];
-        case CS_ALPHA:
-            return [getFilterForFunc(alphaFunction(), inputImage, getVectorForChannel(channel)) valueForKey:@"outputImage"];
-        default:
-            return nil;
-    }
-    
-}
-
-CIFilter *KCanvasFEComponentTransferQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    [WKComponentMergeFilter class];
-    [WKIdentityTransferFilter class];
-    [WKTableTransferFilter class];
-    [WKDiscreteTransferFilter class];
-    [WKLinearTransferFilter class];
-    [WKGammaTransferFilter class];
-    
-    CIFilter *filter = nil;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    filter = [CIFilter filterWithName:@"WKComponentMerge"];
-    if (!filter)
-        return nil;
-    [filter setDefaults];
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    FE_QUARTZ_CHECK_INPUT(inputImage);    
-    
-    [filter setValue:getFunctionFilter(CS_RED, inputImage) forKey:@"inputFuncR"];
-    [filter setValue:getFunctionFilter(CS_GREEN, inputImage) forKey:@"inputFuncG"];
-    [filter setValue:getFunctionFilter(CS_BLUE, inputImage) forKey:@"inputFuncB"];
-    [filter setValue:getFunctionFilter(CS_ALPHA, inputImage) forKey:@"inputFuncA"];
-    
-    FE_QUARTZ_OUTPUT_RETURN;
-    return nil;
-}
-
-CIFilter *KCanvasFECompositeQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    CIFilter *filter = nil;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-
-    switch (operation()) {
-    case CO_OVER:
-        filter = [CIFilter filterWithName:@"CISourceOverCompositing"];
-        break;
-    case CO_IN:
-        filter = [CIFilter filterWithName:@"CISourceInCompositing"];
-        break;
-    case CO_OUT:
-        filter = [CIFilter filterWithName:@"CISourceOutCompositing"];
-        break;
-    case CO_ATOP:
-        filter = [CIFilter filterWithName:@"CISourceAtopCompositing"];
-        break;
-    case CO_XOR:
-        //FIXME: I'm not sure this is right...
-        filter = [CIFilter filterWithName:@"CIExclusionBlendMode"];
-        break;
-    case CO_ARITHMETIC:
-        [WKArithmeticFilter class];
-        filter = [CIFilter filterWithName:@"WKArithmeticFilter"];
-        break;
-    }
-    
-    [filter setDefaults];
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    CIImage *backgroundImage = quartzFilter->imageForName(in2());
-    FE_QUARTZ_CHECK_INPUT(inputImage);
-    FE_QUARTZ_CHECK_INPUT(backgroundImage);
-    [filter setValue:inputImage forKey:@"inputImage"];
-    [filter setValue:backgroundImage forKey:@"inputBackgroundImage"];
-    //FIXME: this seems ugly
-    if (operation() == CO_ARITHMETIC) {
-        [filter setValue:[NSNumber numberWithFloat:k1()] forKey:@"inputK1"];
-        [filter setValue:[NSNumber numberWithFloat:k2()] forKey:@"inputK2"];
-        [filter setValue:[NSNumber numberWithFloat:k3()] forKey:@"inputK3"];
-        [filter setValue:[NSNumber numberWithFloat:k4()] forKey:@"inputK4"];
-    }
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFEDisplacementMapQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    CIFilter *filter = nil;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    [WKDisplacementMapFilter class];
-    filter = [CIFilter filterWithName:@"WKDisplacementMapFilter"];    
-    [filter setDefaults];
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    CIImage *displacementMap = quartzFilter->imageForName(in2());
-    FE_QUARTZ_CHECK_INPUT(inputImage);
-    FE_QUARTZ_CHECK_INPUT(displacementMap);
-    [filter setValue:inputImage forKey:@"inputImage"];
-    [filter setValue:displacementMap forKey:@"inputDisplacementMap"];
-    [filter setValue:getVectorForChannel(xChannelSelector()) forKey:@"inputXChannelSelector"];
-    [filter setValue:getVectorForChannel(yChannelSelector()) forKey:@"inputYChannelSelector"];
-    [filter setValue:[NSNumber numberWithFloat:scale()] forKey:@"inputScale"];
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-static inline CIFilter *getPointLightVectors(CIFilter * normals, CIVector * lightPosition, float surfaceScale)
-{
-    CIFilter *filter;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    filter = [CIFilter filterWithName:@"WKPointLight"];
-    if (!filter)
-        return nil;
-    [filter setDefaults];
-    [filter setValue:[normals valueForKey:@"outputImage"] forKey:@"inputNormalMap"];
-    [filter setValue:lightPosition forKey:@"inputLightPosition"];    
-    [filter setValue:[NSNumber numberWithFloat:surfaceScale] forKey:@"inputSurfaceScale"];
-    return filter; 
-    END_BLOCK_OBJC_EXCEPTIONS;
-    return nil;
-}
-
-static CIFilter *getLightVectors(CIFilter * normals, const KCLightSource * light, float surfaceScale)
-{
-    [WKDistantLightFilter class];
-    [WKPointLightFilter class];
-    [WKSpotLightFilter class];
-
-    CIFilter *filter = nil;    
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    
-    switch (light->type()) {
-    case LS_DISTANT:
-    {
-        const KCDistantLightSource *dlight = static_cast<const KCDistantLightSource*>(light);
-        
-        filter = [CIFilter filterWithName:@"WKDistantLight"];
-        if (!filter)
-            return nil;
-        [filter setDefaults];
-        
-        float azimuth = dlight->azimuth();
-        float elevation = dlight->elevation();
-        azimuth=deg2rad(azimuth);
-        elevation=deg2rad(elevation);
-        float Lx = cos(azimuth)*cos(elevation);
-        float Ly = sin(azimuth)*cos(elevation);
-        float Lz = sin(elevation);
-        
-        [filter setValue:[normals valueForKey:@"outputImage"] forKey:@"inputNormalMap"];
-        [filter setValue:[CIVector vectorWithX:Lx Y:Ly Z:Lz] forKey:@"inputLightDirection"];
-        return filter;
-    }
-    case LS_POINT:
-    {
-        const KCPointLightSource *plight = static_cast<const KCPointLightSource*>(light);
-        return getPointLightVectors(normals, [CIVector vectorWithX:plight->position().x() Y:plight->position().y() Z:plight->position().z()], surfaceScale);
-    }
-    case LS_SPOT:
-    {
-        const KCSpotLightSource *slight = static_cast<const KCSpotLightSource*>(light);
-        filter = [CIFilter filterWithName:@"WKSpotLight"];
-        if (!filter)
-            return nil;
-        
-        CIFilter * pointLightFilter = getPointLightVectors(normals, [CIVector vectorWithX:slight->position().x() Y:slight->position().y() Z:slight->position().z()], surfaceScale);
-        if (!pointLightFilter)
-            return nil;
-        [filter setDefaults];
-        
-        [filter setValue:[pointLightFilter valueForKey:@"outputImage"] forKey:@"inputLightVectors"];
-        [filter setValue:[CIVector vectorWithX:slight->direction().x() Y:slight->direction().y() Z:slight->direction().z()] forKey:@"inputLightDirection"];
-        [filter setValue:[NSNumber numberWithFloat:slight->specularExponent()] forKey:@"inputSpecularExponent"];
-        [filter setValue:[NSNumber numberWithFloat:deg2rad(slight->limitingConeAngle())] forKey:@"inputLimitingConeAngle"];
-        return filter;
-    }
-    }
-    END_BLOCK_OBJC_EXCEPTIONS;
-    return nil;
-}
-
-static CIFilter *getNormalMap(CIImage *bumpMap, float scale)
-{
-    [WKNormalMapFilter class];
-    CIFilter *filter;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    filter = [CIFilter filterWithName:@"WKNormalMap"];   
-    [filter setDefaults];
-    
-    [filter setValue:bumpMap forKey:@"inputImage"];  
-    [filter setValue:[NSNumber numberWithFloat:scale] forKey:@"inputSurfaceScale"];
-    return filter;
-    END_BLOCK_OBJC_EXCEPTIONS;
-    return nil;
-}
-
-CIFilter *KCanvasFEDiffuseLightingQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    const KCLightSource *light = lightSource();
-    if (!light)
-        return nil;
-    
-    [WKDiffuseLightingFilter class];
-    
-    CIFilter *filter;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    filter = [CIFilter filterWithName:@"WKDiffuseLighting"];
-    if (!filter)
-        return nil;
-    
-    [filter setDefaults];
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    FE_QUARTZ_CHECK_INPUT(inputImage);
-    CIFilter *normals = getNormalMap(inputImage, surfaceScale());
-    if (!normals) 
-        return nil;
-    
-    CIFilter *lightVectors = getLightVectors(normals, light, surfaceScale());
-    if (!lightVectors) 
-        return nil;
-    
-    [filter setValue:[normals valueForKey:@"outputImage"] forKey:@"inputNormalMap"];
-    [filter setValue:[lightVectors valueForKey:@"outputImage"] forKey:@"inputLightVectors"];
-    [filter setValue:ciColor(lightingColor()) forKey:@"inputLightingColor"];
-    [filter setValue:[NSNumber numberWithFloat:surfaceScale()] forKey:@"inputSurfaceScale"];
-    [filter setValue:[NSNumber numberWithFloat:diffuseConstant()] forKey:@"inputDiffuseConstant"];
-    [filter setValue:[NSNumber numberWithFloat:kernelUnitLengthX()] forKey:@"inputKernelUnitLengthX"];
-    [filter setValue:[NSNumber numberWithFloat:kernelUnitLengthY()] forKey:@"inputKernelUnitLengthY"];
-    
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFEFloodQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    CIFilter *filter;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    filter = [CIFilter filterWithName:@"CIConstantColorGenerator"];
-    [filter setDefaults];
-    CGColorRef color = cgColor(floodColor());
-    CGColorRef withAlpha = CGColorCreateCopyWithAlpha(color,CGColorGetAlpha(color) * floodOpacity());
-    CIColor *inputColor = [CIColor colorWithCGColor:withAlpha];
-    CGColorRelease(color);
-    CGColorRelease(withAlpha);
-    [filter setValue:inputColor forKey:@"inputColor"];
-    
-    CGRect cropRect = CGRectMake(-100,-100,1000,1000); // HACK
-    if (!subRegion().isEmpty())
-        cropRect = subRegion();
-    FE_QUARTZ_CROP_TO_RECT(cropRect);
-    
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFEImageQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    if (!cachedImage())
-        return nil;
-
-    CIFilter *filter;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    // FIXME: This is only partially implemented (only supports images)
-    CIImage *ciImage = [CIImage imageWithCGImage:cachedImage()->image()->getCGImageRef()];
-    
-    // FIXME: There is probably a nicer way to perform both of these transforms.
-    filter = [CIFilter filterWithName:@"CIAffineTransform"];
-    [filter setDefaults];
-    [filter setValue:ciImage forKey:@"inputImage"];
-    
-    CGAffineTransform cgTransform = CGAffineTransformMake(1,0,0,-1,0,cachedImage()->image()->rect().bottom());
-    NSAffineTransform *nsTransform = [NSAffineTransform transform];
-    [nsTransform setTransformStruct:*((NSAffineTransformStruct *)&cgTransform)];
-    [filter setValue:nsTransform forKey:@"inputTransform"];
-    
-    if (!subRegion().isEmpty()) {
-        CIFilter *scaleImage = [CIFilter filterWithName:@"CIAffineTransform"];
-        [scaleImage setDefaults];
-        [scaleImage setValue:[filter valueForKey:@"outputImage"] forKey:@"inputImage"];
-        
-        cgTransform = CGAffineTransformMakeMapBetweenRects(CGRect(cachedImage()->image()->rect()), subRegion());
-        [nsTransform setTransformStruct:*((NSAffineTransformStruct *)&cgTransform)];
-        [scaleImage setValue:nsTransform forKey:@"inputTransform"];
-        filter = scaleImage;
-    }
-    
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFEGaussianBlurQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    FE_QUARTZ_SETUP_INPUT(@"CIGaussianPyramid");
-
-    float inputRadius = stdDeviationX();
-    if (inputRadius != stdDeviationY()) {
-        float inputAspectRatio = stdDeviationX()/stdDeviationY();
-        // FIXME: inputAspectRatio only support the range .5 to 2.0!
-        [filter setValue:[NSNumber numberWithFloat:inputAspectRatio] forKey:@"inputAspectRatio"];
-    }
-    [filter setValue:[NSNumber numberWithFloat:inputRadius] forKey:@"inputRadius"];
-
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFEMergeQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    CIFilter *filter = nil;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    const Vector<String>& inputs = mergeInputs();
-
-    CIImage *previousOutput = quartzFilter->inputImage(this);
-    for (unsigned x = 0; x < inputs.size(); x++) {
-        CIImage *inputImage = quartzFilter->imageForName(inputs[x]);
-        FE_QUARTZ_CHECK_INPUT(inputImage);
-        FE_QUARTZ_CHECK_INPUT(previousOutput);
-        filter = [CIFilter filterWithName:@"CISourceOverCompositing"];
-        [filter setDefaults];
-        [filter setValue:inputImage forKey:@"inputImage"];
-        [filter setValue:previousOutput forKey:@"inputBackgroundImage"];
-        previousOutput = [filter valueForKey:@"outputImage"];
-    }
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFEOffsetQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    FE_QUARTZ_SETUP_INPUT(@"CIAffineTransform");
-    NSAffineTransform *offsetTransform = [NSAffineTransform transform];
-    [offsetTransform translateXBy:dx() yBy:dy()];
-    [filter setValue:offsetTransform  forKey:@"inputTransform"];
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFESpecularLightingQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{  
-    const KCLightSource *light = lightSource();
-    if(!light)
-        return nil;
-    
-    [WKSpecularLightingFilter class];  
-    
-    CIFilter *filter;
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    filter = [CIFilter filterWithName:@"WKSpecularLighting"];
-    [filter setDefaults];
-    CIImage *inputImage = quartzFilter->inputImage(this);
-    FE_QUARTZ_CHECK_INPUT(inputImage);
-    CIFilter *normals = getNormalMap(inputImage, surfaceScale());
-    if (!normals) 
-        return nil;
-    CIFilter *lightVectors = getLightVectors(normals, light, surfaceScale());
-    if (!lightVectors) 
-        return nil;
-    [filter setValue:[normals valueForKey:@"outputImage"] forKey:@"inputNormalMap"];
-    [filter setValue:[lightVectors valueForKey:@"outputImage"] forKey:@"inputLightVectors"];
-    [filter setValue:ciColor(lightingColor()) forKey:@"inputLightingColor"];
-    [filter setValue:[NSNumber numberWithFloat:surfaceScale()] forKey:@"inputSurfaceScale"];
-    [filter setValue:[NSNumber numberWithFloat:specularConstant()] forKey:@"inputSpecularConstant"];
-    [filter setValue:[NSNumber numberWithFloat:specularExponent()] forKey:@"inputSpecularExponent"];
-    [filter setValue:[NSNumber numberWithFloat:kernelUnitLengthX()] forKey:@"inputKernelUnitLengthX"];
-    [filter setValue:[NSNumber numberWithFloat:kernelUnitLengthY()] forKey:@"inputKernelUnitLengthY"];
-    
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-CIFilter *KCanvasFETileQuartz::getCIFilter(KCanvasFilterQuartz* quartzFilter) const
-{
-    FE_QUARTZ_SETUP_INPUT(@"CIAffineTile");
-    FE_QUARTZ_OUTPUT_RETURN;
-}
-
-}
-
-#endif // SVG_SUPPORT
index 747b564bddb8486e5bb52eface34047e26797c99..5b32292fa5db2c760cf33b8564f55a8a7fc1194b 100644 (file)
@@ -31,7 +31,6 @@
 #include <wtf/Assertions.h>
 
 #include <ApplicationServices/ApplicationServices.h>
-#include "KCanvasFilterQuartz.h"
 #include "KCanvasRenderingStyle.h"
 #include "KRenderingDeviceQuartz.h"
 #include "QuartzSupport.h"
index 7dbb0bf182222b09dd36d352a87fe656f4aaed9a..02124739642dff116d9d2c456d45b9a4b65e71dd 100644 (file)
 
 #ifdef SVG_SUPPORT
 #include "KRenderingDeviceQuartz.h"
-
 #include "GraphicsContext.h"
+#include "SVGFEBlend.h"
+#include "SVGFEColorMatrix.h"
+#include "SVGFEComponentTransfer.h"
+#include "SVGFEComposite.h"
+#include "SVGFEDiffuseLighting.h"
+#include "SVGFEDisplacementMap.h"
+#include "SVGFEFlood.h"
+#include "SVGFEGaussianBlur.h"
+#include "SVGFEImage.h"
+#include "SVGFEMerge.h"
+#include "SVGFEOffset.h"
+#include "SVGFESpecularLighting.h"
+#include "SVGFETile.h"
 #include "SVGResourceClipper.h"
+#include "SVGResourceFilter.h"
 #include "SVGResourceImage.h"
 #include "SVGResourceMarker.h"
-#include "KCanvasFilterQuartz.h"
 #include "SVGResourceMasker.h"
 #include "KRenderingPaintServerQuartz.h"
 #include "Logging.h"
@@ -166,7 +178,7 @@ PassRefPtr<SVGResource> KRenderingDeviceQuartz::createResource(const SVGResource
     case RS_IMAGE:
         return new SVGResourceImage();
     case RS_FILTER:
-        return new KCanvasFilterQuartz();
+        return new SVGResourceFilter();
     case RS_MASKER:
         return new SVGResourceMasker();
     }
@@ -174,7 +186,7 @@ PassRefPtr<SVGResource> KRenderingDeviceQuartz::createResource(const SVGResource
     return 0;
 }
 
-KCanvasFilterEffect *KRenderingDeviceQuartz::createFilterEffect(const KCFilterEffectType& type) const
+SVGFilterEffect* KRenderingDeviceQuartz::createFilterEffect(const SVGFilterEffectType& type) const
 {
     switch(type)
     {
@@ -183,21 +195,21 @@ KCanvasFilterEffect *KRenderingDeviceQuartz::createFilterEffect(const KCFilterEf
     case FE_POINT_LIGHT: 
     case FE_SPOT_LIGHT: 
     */
-    case FE_BLEND: return new KCanvasFEBlendQuartz();
-    case FE_COLOR_MATRIX: return new KCanvasFEColorMatrixQuartz();
-    case FE_COMPONENT_TRANSFER: return new KCanvasFEComponentTransferQuartz();
-    case FE_COMPOSITE: return new KCanvasFECompositeQuartz();
+    case FE_BLEND: return new SVGFEBlend();
+    case FE_COLOR_MATRIX: return new SVGFEColorMatrix();
+    case FE_COMPONENT_TRANSFER: return new SVGFEComponentTransfer();
+    case FE_COMPOSITE: return new SVGFEComposite();
 //  case FE_CONVOLVE_MATRIX: 
-    case FE_DIFFUSE_LIGHTING: return new KCanvasFEDiffuseLightingQuartz();
-    case FE_DISPLACEMENT_MAP: return new KCanvasFEDisplacementMapQuartz();
-    case FE_FLOOD: return new KCanvasFEFloodQuartz();
-    case FE_GAUSSIAN_BLUR: return new KCanvasFEGaussianBlurQuartz();
-    case FE_IMAGE: return new KCanvasFEImageQuartz();
-    case FE_MERGE: return new KCanvasFEMergeQuartz();
+    case FE_DIFFUSE_LIGHTING: return new SVGFEDiffuseLighting();
+    case FE_DISPLACEMENT_MAP: return new SVGFEDisplacementMap();
+    case FE_FLOOD: return new SVGFEFlood();
+    case FE_GAUSSIAN_BLUR: return new SVGFEGaussianBlur();
+    case FE_IMAGE: return new SVGFEImage();
+    case FE_MERGE: return new SVGFEMerge();
 //  case FE_MORPHOLOGY: 
-    case FE_OFFSET: return new KCanvasFEOffsetQuartz();
-    case FE_SPECULAR_LIGHTING: return new KCanvasFESpecularLightingQuartz();
-    case FE_TILE: return new KCanvasFETileQuartz();
+    case FE_OFFSET: return new SVGFEOffset();
+    case FE_SPECULAR_LIGHTING: return new SVGFESpecularLighting();
+    case FE_TILE: return new SVGFETile();
 //  case FE_TURBULENCE: 
     default:
         return 0;
index c31db5ddede6188536570aa624e1fdcdbaf32aae..2052635105752977721990052cc558f6a8e8572a 100644 (file)
@@ -70,7 +70,7 @@ public:
     // Resource creation
     virtual PassRefPtr<SVGResource> createResource(const SVGResourceType&) const;
     virtual PassRefPtr<KRenderingPaintServer> createPaintServer(const KCPaintServerType&) const;
-    virtual KCanvasFilterEffect *createFilterEffect(const KCFilterEffectType&) const;
+    virtual SVGFilterEffect *createFilterEffect(const SVGFilterEffectType&) const;
     
     // filters (mostly debugging)
     static bool filtersEnabled();
index 45b15a4d100d7dbdb1a73e136bd324657e32e2c0..b85f9863df1813d27a26dabd8b4ba2f1c1875091 100644 (file)
@@ -87,10 +87,10 @@ void SVGComponentTransferFunctionElement::parseMappedAttribute(MappedAttribute*
         SVGElement::parseMappedAttribute(attr);
 }
 
-KCComponentTransferFunction SVGComponentTransferFunctionElement::transferFunction() const
+SVGComponentTransferFunction SVGComponentTransferFunctionElement::transferFunction() const
 {
-    KCComponentTransferFunction func;
-    func.type = (KCComponentTransferType)(type() - 1);
+    SVGComponentTransferFunction func;
+    func.type = (SVGComponentTransferType) type();
     func.slope = slope();
     func.intercept = intercept();
     func.amplitude = amplitude();
index 08c562b48657cabff57ed09e853c3ce19a6d11fe..ba49d5f5ead58e3ab47df5410a9816e36323172d 100644 (file)
@@ -24,8 +24,8 @@
 #define KSVG_SVGComponentTransferFunctionElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
 #include "SVGElement.h"
+#include "SVGFEComponentTransfer.h"
 
 namespace WebCore
 {
@@ -34,15 +34,6 @@ namespace WebCore
     class SVGComponentTransferFunctionElement : public SVGElement
     {
     public:
-        enum SVGComponentTransferType {
-            SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
-            SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
-            SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
-            SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
-            SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
-            SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
-        };
-
         SVGComponentTransferFunctionElement(const QualifiedName&, Document*);
         virtual ~SVGComponentTransferFunctionElement();
 
@@ -50,7 +41,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
         
-        KCComponentTransferFunction transferFunction() const;
+        SVGComponentTransferFunction transferFunction() const;
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, int, int, Type, type)
index 9dd03d5efedde5d0d0b1b8c5657444d8054ccd15..3701c3438fdda812354631c7aeb58316adbf60ba 100644 (file)
@@ -67,13 +67,13 @@ void SVGFEBlendElement::parseMappedAttribute(MappedAttribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEBlend* SVGFEBlendElement::filterEffect() const
+SVGFEBlend* SVGFEBlendElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEBlend*>(renderingDevice()->createFilterEffect(FE_BLEND));
+        m_filterEffect = static_cast<SVGFEBlend*>(renderingDevice()->createFilterEffect(FE_BLEND));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setBlendMode((KCBlendModeType)(mode()-1));
+    m_filterEffect->setBlendMode((SVGBlendModeType) mode());
     m_filterEffect->setIn(in1());
     m_filterEffect->setIn2(in2());
     setStandardAttributes(m_filterEffect);
index e34cd316d91d3f67bf58f4d90ad153fe6a2a8b0d..479c55de55b263bf9406914e3c00224ee65fd1de 100644 (file)
 #define KSVG_SVGFEBlendElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFEBlend.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
 {
-
     class SVGFEBlendElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
-        enum SVGBlendModeType {
-            SVG_FEBLEND_MODE_UNKNOWN  = 0,
-            SVG_FEBLEND_MODE_NORMAL   = 1,
-            SVG_FEBLEND_MODE_MULTIPLY = 2,
-            SVG_FEBLEND_MODE_SCREEN   = 3,
-            SVG_FEBLEND_MODE_DARKEN   = 4,
-            SVG_FEBLEND_MODE_LIGHTEN  = 5
-        };
-
         SVGFEBlendElement(const QualifiedName&, Document*);
         virtual ~SVGFEBlendElement();
 
@@ -49,7 +39,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
 
-        virtual KCanvasFEBlend* filterEffect() const;
+        virtual SVGFEBlend* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -58,7 +48,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, String, In2, in2)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, int, int, Mode, mode)
-        mutable KCanvasFEBlend* m_filterEffect;
+        mutable SVGFEBlend* m_filterEffect;
     };
 
 } // namespace WebCore
index 9a3180f597724fd16cb8f82f7a001cc31ac8e4b0..3ab8166d534f20e299fd571cf95342aa58e41a95 100644 (file)
@@ -69,10 +69,10 @@ void SVGFEColorMatrixElement::parseMappedAttribute(MappedAttribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEColorMatrix* SVGFEColorMatrixElement::filterEffect() const
+SVGFEColorMatrix* SVGFEColorMatrixElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEColorMatrix*>(renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
+        m_filterEffect = static_cast<SVGFEColorMatrix*>(renderingDevice()->createFilterEffect(FE_COLOR_MATRIX));
     if (!m_filterEffect)
         return 0;
         
@@ -86,7 +86,7 @@ KCanvasFEColorMatrix* SVGFEColorMatrixElement::filterEffect() const
     for (unsigned int i = 0;i < nr;i++)
         _values.append(numbers->getItem(i, ec));
     m_filterEffect->setValues(_values);
-    m_filterEffect->setType((KCColorMatrixType)(type() - 1));
+    m_filterEffect->setType((SVGColorMatrixType) type());
     
     return m_filterEffect;
 }
index 6b93e69de2c277555ce4540196d231dc8651ce12..5b529ca56ed0469adb5b379bc243242a38eafb95 100644 (file)
@@ -24,7 +24,7 @@
 #define KSVG_SVGFEColorMatrixElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFEColorMatrix.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
@@ -34,14 +34,6 @@ namespace WebCore
     class SVGFEColorMatrixElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
-        enum SVGColorMatrixType {
-            SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
-            SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
-            SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
-            SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
-            SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
-        };
-
         SVGFEColorMatrixElement(const QualifiedName&, Document*);
         virtual ~SVGFEColorMatrixElement();
 
@@ -49,7 +41,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
         
-        virtual KCanvasFEColorMatrix* filterEffect() const;
+        virtual SVGFEColorMatrix* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -58,7 +50,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, int, int, Type, type)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, SVGNumberList*, RefPtr<SVGNumberList>, Values, values)
-        mutable KCanvasFEColorMatrix* m_filterEffect;
+        mutable SVGFEColorMatrix* m_filterEffect;
     };
 
 } // namespace WebCore
index 3118e05510949dd7b152fb4c62e19977cd2bcff0..a2543c582ba075dfc201f1e8b95364b34f0aca36 100644 (file)
@@ -24,7 +24,6 @@
 #ifdef SVG_SUPPORT
 #include "Attr.h"
 
-#include "KCanvasFilters.h"
 #include "KRenderingDevice.h"
 
 #include "SVGNames.h"
@@ -60,10 +59,10 @@ void SVGFEComponentTransferElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEComponentTransfer *SVGFEComponentTransferElement::filterEffect() const
+SVGFEComponentTransfer *SVGFEComponentTransferElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEComponentTransfer *>(renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
+        m_filterEffect = static_cast<SVGFEComponentTransfer *>(renderingDevice()->createFilterEffect(FE_COMPONENT_TRANSFER));
     if (!m_filterEffect)
         return 0;
     
index 7a817c7a7e098fa9472d49307bb108a9501ad3bb..4b34ddf7f8a1cf7852e39f053c199a7cc8c03214 100644 (file)
@@ -25,7 +25,7 @@
 #ifdef SVG_SUPPORT
 
 #include "SVGFilterPrimitiveStandardAttributes.h"
-#include "KCanvasFilters.h"
+#include "SVGFEComponentTransfer.h"
 
 namespace WebCore
 {
@@ -40,14 +40,14 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFEComponentTransfer *filterEffect() const;
+        virtual SVGFEComponentTransfer *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEComponentTransferElement, String, String, In1, in1)
-        mutable KCanvasFEComponentTransfer *m_filterEffect;
+        mutable SVGFEComponentTransfer *m_filterEffect;
     };
 
 } // namespace WebCore
index e96846670fd0446504389fcfd9eb04956b588286..422e6a5dfb3cd31bbaa1f9b815aa5804be923825 100644 (file)
@@ -88,13 +88,13 @@ void SVGFECompositeElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEComposite *SVGFECompositeElement::filterEffect() const
+SVGFEComposite *SVGFECompositeElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEComposite *>(renderingDevice()->createFilterEffect(FE_COMPOSITE));
+        m_filterEffect = static_cast<SVGFEComposite *>(renderingDevice()->createFilterEffect(FE_COMPOSITE));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setOperation((KCCompositeOperationType)(_operator() - 1));
+    m_filterEffect->setOperation((SVGCompositeOperationType) _operator());
     m_filterEffect->setIn(in1());
     m_filterEffect->setIn2(in2());
     setStandardAttributes(m_filterEffect);
index 27adfa5939bf02ef83abb344cb51aaeaf0106284..2d1b6f69e490b79839bcee16cf1e08e0a00bf4f8 100644 (file)
@@ -24,7 +24,7 @@
 #define KSVG_SVGFECompositeElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFEComposite.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
@@ -33,16 +33,6 @@ namespace WebCore
     class SVGFECompositeElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
-        enum SVGCompositeOperators {
-            SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
-            SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
-            SVG_FECOMPOSITE_OPERATOR_IN         = 2,
-            SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
-            SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
-            SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
-            SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
-        };
-
         SVGFECompositeElement(const QualifiedName&, Document*);
         virtual ~SVGFECompositeElement();
 
@@ -50,7 +40,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
 
-        virtual KCanvasFEComposite* filterEffect() const;
+        virtual SVGFEComposite* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -63,7 +53,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, double, double, K2, k2)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, double, double, K3, k3)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, double, double, K4, k4)
-        mutable KCanvasFEComposite* m_filterEffect;
+        mutable SVGFEComposite* m_filterEffect;
     };
 
 } // namespace WebCore
index 7de94739824ce7d7d7616b4963f3b3df4f8d525f..1cb968bc87cda5403ef60a4e6668698f95d6925a 100644 (file)
 #include "SVGFEDiffuseLightingElement.h"
 
 #include "Attr.h"
-#include "KCanvasFilters.h"
 #include "KRenderingDevice.h"
 #include "SVGColor.h"
 #include "SVGFELightElement.h"
 #include "SVGHelper.h"
 #include "SVGNames.h"
 #include "SVGRenderStyle.h"
+#include "SVGFEDiffuseLighting.h"
 
 namespace WebCore {
 
@@ -79,10 +79,10 @@ void SVGFEDiffuseLightingElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFilterEffect *SVGFEDiffuseLightingElement::filterEffect() const
+SVGFilterEffect *SVGFEDiffuseLightingElement::filterEffect() const
 {
     if (!m_filterEffect) 
-        m_filterEffect = static_cast<KCanvasFEDiffuseLighting *>(renderingDevice()->createFilterEffect(FE_DIFFUSE_LIGHTING));
+        m_filterEffect = static_cast<SVGFEDiffuseLighting *>(renderingDevice()->createFilterEffect(FE_DIFFUSE_LIGHTING));
     m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setDiffuseConstant((diffuseConstant()));
@@ -99,7 +99,7 @@ void SVGFEDiffuseLightingElement::updateLights() const
     if (!m_filterEffect)
         return;
     
-    KCLightSource *light = 0;
+    SVGLightSource *light = 0;
     for (Node *n = firstChild(); n; n = n->nextSibling()) {
         if (n->hasTagName(SVGNames::feDistantLightTag)||n->hasTagName(SVGNames::fePointLightTag)||n->hasTagName(SVGNames::feSpotLightTag)) {
             SVGFELightElement *lightNode = static_cast<SVGFELightElement *>(n); 
index cbf15d6e6344bcf8465a6ab4d3d3517c03671110..b701a735c164e915f1177be43564afe1b93707c5 100644 (file)
@@ -26,7 +26,7 @@
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore {
-    class KCanvasFEDiffuseLighting;
+    class SVGFEDiffuseLighting;
     class SVGColor;
     
     class SVGFEDiffuseLightingElement : public SVGFilterPrimitiveStandardAttributes
@@ -39,7 +39,7 @@ namespace WebCore {
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFilterEffect *filterEffect() const;
+        virtual SVGFilterEffect *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -52,7 +52,7 @@ namespace WebCore {
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, double, double, KernelUnitLengthX, kernelUnitLengthX)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, double, double, KernelUnitLengthY, kernelUnitLengthY)
         //need other properties here...
-        mutable KCanvasFEDiffuseLighting *m_filterEffect;
+        mutable SVGFEDiffuseLighting *m_filterEffect;
         
         //light management
         void updateLights() const;
index 3287ac60723a31912bdf3b9611b701d2cbbf8b2c..79027cf9b93ab21071d1b812cb728a5fdb4dcc95 100644 (file)
@@ -47,18 +47,18 @@ ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, int, Enumeration, enu
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, int, Enumeration, enumeration, YChannelSelector, yChannelSelector, SVGNames::yChannelSelectorAttr.localName(), m_yChannelSelector)
 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, double, Number, number, Scale, scale, SVGNames::scaleAttr.localName(), m_scale)
 
-KCChannelSelectorType SVGFEDisplacementMapElement::stringToChannel(const String& key)
+SVGChannelSelectorType SVGFEDisplacementMapElement::stringToChannel(const String& key)
 {
     if (key == "R")
-        return CS_RED;
+        return SVG_CHANNEL_R;
     else if (key == "G")
-        return CS_GREEN;
+        return SVG_CHANNEL_G;
     else if (key == "B")
-        return CS_BLUE;
+        return SVG_CHANNEL_B;
     else if (key == "A")
-        return CS_ALPHA;
-    //error
-    return (KCChannelSelectorType)-1;
+        return SVG_CHANNEL_A;
+
+    return SVG_CHANNEL_UNKNOWN;
 }
 
 void SVGFEDisplacementMapElement::parseMappedAttribute(MappedAttribute* attr)
@@ -78,14 +78,14 @@ void SVGFEDisplacementMapElement::parseMappedAttribute(MappedAttribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEDisplacementMap* SVGFEDisplacementMapElement::filterEffect() const
+SVGFEDisplacementMap* SVGFEDisplacementMapElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEDisplacementMap *>(renderingDevice()->createFilterEffect(FE_DISPLACEMENT_MAP));
+        m_filterEffect = static_cast<SVGFEDisplacementMap *>(renderingDevice()->createFilterEffect(FE_DISPLACEMENT_MAP));
     if (!m_filterEffect)
         return 0;
-    m_filterEffect->setXChannelSelector((KCChannelSelectorType)(xChannelSelector()));
-    m_filterEffect->setYChannelSelector((KCChannelSelectorType)(yChannelSelector()));
+    m_filterEffect->setXChannelSelector((SVGChannelSelectorType)(xChannelSelector()));
+    m_filterEffect->setYChannelSelector((SVGChannelSelectorType)(yChannelSelector()));
     m_filterEffect->setIn(in1());
     m_filterEffect->setIn2(in2());
     m_filterEffect->setScale(scale());
index 9c5aa9fb9b3157e15d64ba6baffcafb2ba9c8d26..002baecb2ed60ccf80bc7a2e7ae8bdf893f40df4 100644 (file)
 #define KSVG_SVGFEDisplacementMapElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFEDisplacementMap.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore {
     
     class SVGFEDisplacementMapElement : public SVGFilterPrimitiveStandardAttributes {
     public:
-        enum SVGChannelSelectors {
-            SVG_CHANNEL_UNKNOWN = 0,
-            SVG_CHANNEL_R       = 1,
-            SVG_CHANNEL_G       = 2,
-            SVG_CHANNEL_B       = 3,
-            SVG_CHANNEL_A       = 4
-        };
-
         SVGFEDisplacementMapElement(const QualifiedName& tagName, Document*);
         virtual ~SVGFEDisplacementMapElement();
         
         // 'SVGFEDisplacementMapElement' functions
-        static KCChannelSelectorType stringToChannel(const String&);
+        static SVGChannelSelectorType stringToChannel(const String&);
         
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute*);
         
-        virtual KCanvasFEDisplacementMap* filterEffect() const;
+        virtual SVGFEDisplacementMap* filterEffect() const;
         
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -56,7 +48,7 @@ namespace WebCore {
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, int, XChannelSelector, xChannelSelector)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, int, YChannelSelector, yChannelSelector)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, double, double, Scale, scale)
-        mutable KCanvasFEDisplacementMap* m_filterEffect;
+        mutable SVGFEDisplacementMap* m_filterEffect;
     };
 
 } // namespace WebCore
index 8521b15883e8b788bd53c8ce1656789ee3f70785..d8ae8d4042a7b76a8a2bae9d83af40ceba198d4d 100644 (file)
@@ -20,7 +20,7 @@
 #include "config.h"
 #ifdef SVG_SUPPORT
 #include "SVGFEDistantLightElement.h"
-
+#include "SVGDistantLightSource.h"
 
 namespace WebCore {
 
@@ -33,9 +33,9 @@ SVGFEDistantLightElement::~SVGFEDistantLightElement()
 {
 }
 
-KCLightSource *SVGFEDistantLightElement::lightSource() const
+SVGLightSource *SVGFEDistantLightElement::lightSource() const
 {
-    return new KCDistantLightSource(azimuth(), elevation());
+    return new SVGDistantLightSource(azimuth(), elevation());
 }
 
 }
index f26ee411460192fbde751f598cfc807bc7fd58c6..5f36275f3fc28dd3ca7ecba12bcf21c57a0b846c 100644 (file)
@@ -30,7 +30,7 @@ namespace WebCore
     public:
         SVGFEDistantLightElement(const QualifiedName&, Document*);
         virtual ~SVGFEDistantLightElement();
-        virtual KCLightSource *lightSource() const;
+        virtual SVGLightSource *lightSource() const;
     };
 
 } // namespace WebCore
index 731034e33184a0cdb05b43f3914474db240ac313..c269daddc40f8d842ab665d59016fc956bf237d6 100644 (file)
@@ -29,7 +29,6 @@
 #include "SVGHelper.h"
 #include "SVGNames.h"
 #include "SVGRenderStyle.h"
-#include "KCanvasFilters.h"
 #include "KRenderingDevice.h"
 
 namespace WebCore {
@@ -56,10 +55,10 @@ void SVGFEFloodElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEFlood *SVGFEFloodElement::filterEffect() const
+SVGFEFlood *SVGFEFloodElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEFlood *>(renderingDevice()->createFilterEffect(FE_FLOOD));
+        m_filterEffect = static_cast<SVGFEFlood *>(renderingDevice()->createFilterEffect(FE_FLOOD));
     if (!m_filterEffect)
         return 0;
     m_filterEffect->setIn(in1());
index 6cb11545378412c676ea50fd3e77fd02a1188ded..b8b999ba5be596c547e294701a61dbbde77872f8 100644 (file)
@@ -25,7 +25,7 @@
 #ifdef SVG_SUPPORT
 
 #include "SVGFilterPrimitiveStandardAttributes.h"
-#include "KCanvasFilters.h"
+#include "SVGFEFlood.h"
 
 namespace WebCore
 {
@@ -40,14 +40,14 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFEFlood *filterEffect() const;
+        virtual SVGFEFlood *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEFloodElement, String, String, In1, in1)
-        mutable KCanvasFEFlood *m_filterEffect;
+        mutable SVGFEFlood *m_filterEffect;
     };
 
 } // namespace WebCore
index d7db6de02876fcd8f752e84e69fedc928252e475..461fb4d3c07541092d31ee03765b4ff9b0c79ec4 100644 (file)
@@ -68,10 +68,10 @@ void SVGFEGaussianBlurElement::parseMappedAttribute(MappedAttribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEGaussianBlur* SVGFEGaussianBlurElement::filterEffect() const
+SVGFEGaussianBlur* SVGFEGaussianBlurElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEGaussianBlur*>(renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
+        m_filterEffect = static_cast<SVGFEGaussianBlur*>(renderingDevice()->createFilterEffect(FE_GAUSSIAN_BLUR));
     if (!m_filterEffect)
         return 0;
     m_filterEffect->setIn(in1());
index 7a51cba75e658385504d170c9d70c8c0654a8cb8..58e64bd6b869927fb6071877157200a2680ec84b 100644 (file)
@@ -24,7 +24,7 @@
 #define KSVG_SVGFEGaussianBlurElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFEGaussianBlur.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
@@ -42,7 +42,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
 
-        virtual KCanvasFEGaussianBlur* filterEffect() const;
+        virtual SVGFEGaussianBlur* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -51,7 +51,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, double, double, StdDeviationX, stdDeviationX)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, double, double, StdDeviationY, stdDeviationY)
-        mutable KCanvasFEGaussianBlur* m_filterEffect;
+        mutable SVGFEGaussianBlur* m_filterEffect;
     };
 
 } // namespace WebCore
index fe548628ed9e607b8bee51d56bcaf06e09d6e5c5..1f6da5e1d9be05e66c734550ecd5393c70498eb2 100644 (file)
@@ -86,10 +86,10 @@ void SVGFEImageElement::notifyFinished(CachedResource *finishedObj)
         filterEffect()->setCachedImage(m_cachedImage);
 }
 
-KCanvasFEImage *SVGFEImageElement::filterEffect() const
+SVGFEImage *SVGFEImageElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEImage *>(renderingDevice()->createFilterEffect(FE_IMAGE));
+        m_filterEffect = static_cast<SVGFEImage *>(renderingDevice()->createFilterEffect(FE_IMAGE));
     if (!m_filterEffect)
         return 0;
     setStandardAttributes(m_filterEffect);
index 34a2e23e91ac1763bec07d82f6b318f80ef347ed..e3dbc14281a0f9526da4898179d326cfd6bf40f7 100644 (file)
@@ -28,7 +28,7 @@
 #include "SVGURIReference.h"
 #include "SVGLangSpace.h"
 #include "SVGExternalResourcesRequired.h"
-#include "KCanvasFilters.h"
+#include "SVGFEImage.h"
 
 namespace WebCore {
     class SVGPreserveAspectRatio;
@@ -48,7 +48,7 @@ namespace WebCore {
         virtual void notifyFinished(CachedResource *finishedObj);
 
     protected:
-        virtual KCanvasFEImage *filterEffect() const;
+        virtual SVGFEImage *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -60,7 +60,7 @@ namespace WebCore {
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEImageElement, SVGPreserveAspectRatio*, RefPtr<SVGPreserveAspectRatio>, PreserveAspectRatio, preserveAspectRatio)
 
         CachedImage *m_cachedImage;
-        mutable KCanvasFEImage *m_filterEffect;
+        mutable SVGFEImage *m_filterEffect;
     };
 
 } // namespace WebCore
index caffce6cb01dc76f40045af4ee12b3994385cd28..211e66e730f478d886244a62422dfcfc8bb845b4 100644 (file)
@@ -23,8 +23,8 @@
 #define KSVG_SVGFELightElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
 #include "SVGElement.h"
+#include "SVGLightSource.h"
 
 namespace WebCore
 {
@@ -37,7 +37,7 @@ namespace WebCore
         virtual ~SVGFELightElement();
         
         // 'SVGComponentTransferFunctionElement' functions
-        virtual KCLightSource* lightSource() const = 0;
+        virtual SVGLightSource* lightSource() const = 0;
         
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);        
index 392609e18a87e83b6d36aa44e29ecb62ee9e49c7..f30ebe671ad491a09aaff5bf1dcf1d91c59cf585 100644 (file)
@@ -41,10 +41,10 @@ SVGFEMergeElement::~SVGFEMergeElement()
     delete m_filterEffect;
 }
 
-KCanvasFEMerge* SVGFEMergeElement::filterEffect() const
+SVGFEMerge* SVGFEMergeElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEMerge*>(renderingDevice()->createFilterEffect(FE_MERGE));
+        m_filterEffect = static_cast<SVGFEMerge*>(renderingDevice()->createFilterEffect(FE_MERGE));
     if (!m_filterEffect)
         return 0;
     setStandardAttributes(m_filterEffect);
index cceb6f58f11bda867e86617b625d09c66e11b07c..f6e4e89674d5983abd95c1e447324a2bca4091f3 100644 (file)
@@ -24,7 +24,7 @@
 #define KSVG_SVGFEMergeElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFEMerge.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
@@ -35,13 +35,13 @@ namespace WebCore
         SVGFEMergeElement(const QualifiedName&, Document*);
         virtual ~SVGFEMergeElement();
 
-        virtual KCanvasFEMerge* filterEffect() const;
+        virtual SVGFEMerge* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
-        mutable KCanvasFEMerge* m_filterEffect;
+        mutable SVGFEMerge* m_filterEffect;
     };
 
 } // namespace WebCore
index 3f4b1b754cda441a2dd0645c694a9c5329fe9f21..0bbf211fa076fe13378b5be62c2936a70834600f 100644 (file)
@@ -24,7 +24,6 @@
 #ifdef SVG_SUPPORT
 #include "Attr.h"
 
-#include "KCanvasFilters.h"
 #include "KRenderingDevice.h"
 #include "KRenderingPaintServerGradient.h"
 
@@ -64,10 +63,10 @@ void SVGFEOffsetElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFEOffset *SVGFEOffsetElement::filterEffect() const
+SVGFEOffset *SVGFEOffsetElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFEOffset *>(renderingDevice()->createFilterEffect(FE_OFFSET));
+        m_filterEffect = static_cast<SVGFEOffset *>(renderingDevice()->createFilterEffect(FE_OFFSET));
     if (!m_filterEffect)
         return 0;
     m_filterEffect->setIn(in1());
index 257018b7b2c319d41aeddab1c76f553c256aca6b..560ff20a4d3a2d01ea8c5003ea92eb62e562df8c 100644 (file)
@@ -25,7 +25,7 @@
 #ifdef SVG_SUPPORT
 
 #include "SVGFilterPrimitiveStandardAttributes.h"
-#include "KCanvasFilters.h"
+#include "SVGFEOffset.h"
 
 namespace WebCore
 {
@@ -40,7 +40,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFEOffset *filterEffect() const;
+        virtual SVGFEOffset *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -49,7 +49,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, String, String, In1, in1)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, double, double, Dx, dx)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, double, double, Dy, dy)
-        mutable KCanvasFEOffset *m_filterEffect;
+        mutable SVGFEOffset *m_filterEffect;
     };
 
 } // namespace WebCore
index 004057c830b8eb2db81012a29175f414bd5a2a4d..8c9aada7f2ca988514a1b2816448dfa7b857e879 100644 (file)
@@ -20,7 +20,7 @@
 #include "config.h"
 #ifdef SVG_SUPPORT
 #include "SVGFEPointLightElement.h"
-
+#include "SVGPointLightSource.h"
 
 namespace WebCore {
 
@@ -33,10 +33,10 @@ SVGFEPointLightElement::~SVGFEPointLightElement()
 {
 }
 
-KCLightSource *SVGFEPointLightElement::lightSource() const
+SVGLightSource *SVGFEPointLightElement::lightSource() const
 {
-    KCanvasPoint3F pos(x(), y(), z());
-    return new KCPointLightSource(pos);
+    FloatPoint3D pos(x(), y(), z());
+    return new SVGPointLightSource(pos);
 }
 
 }
index 31ccdd859835b170d27432ac0d52a9f11ba3f951..cbed9d20285179e273cd636c52faa95d9345c25a 100644 (file)
@@ -30,7 +30,7 @@ namespace WebCore
         public:
         SVGFEPointLightElement(const QualifiedName&, Document*);
         virtual ~SVGFEPointLightElement();
-        virtual KCLightSource *lightSource() const;
+        virtual SVGLightSource *lightSource() const;
     };
 
 } // namespace WebCore
index ddcce8e62dc1df6bac655a684b72f6a76fbf36a8..6938c08c8ed5ac0a60581a2510bf8c4dddbfc4a8 100644 (file)
@@ -80,10 +80,10 @@ void SVGFESpecularLightingElement::parseMappedAttribute(MappedAttribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFESpecularLighting* SVGFESpecularLightingElement::filterEffect() const
+SVGFESpecularLighting* SVGFESpecularLightingElement::filterEffect() const
 {
     if (!m_filterEffect) 
-        m_filterEffect = static_cast<KCanvasFESpecularLighting*>(renderingDevice()->createFilterEffect(FE_SPECULAR_LIGHTING));
+        m_filterEffect = static_cast<SVGFESpecularLighting*>(renderingDevice()->createFilterEffect(FE_SPECULAR_LIGHTING));
     m_filterEffect->setIn(in1());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setSpecularConstant((specularConstant()));
@@ -101,7 +101,7 @@ void SVGFESpecularLightingElement::updateLights() const
     if (!m_filterEffect)
         return;
 
-    KCLightSource* light = 0;    
+    SVGLightSource* light = 0;    
     for (Node* n = firstChild(); n; n = n->nextSibling()) {
         if (n->hasTagName(SVGNames::feDistantLightTag)||n->hasTagName(SVGNames::fePointLightTag)||n->hasTagName(SVGNames::feSpotLightTag)) {
             SVGFELightElement* lightNode = static_cast<SVGFELightElement*>(n); 
index 557325cb06aa6be3168cc5b1d22b3314beceecbe..6214970efa29e237346696c75fc081bdf1d805c2 100644 (file)
@@ -23,7 +23,7 @@
 #define KSVG_SVGFESpecularLightingElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFESpecularLighting.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
@@ -40,7 +40,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
         
-        virtual KCanvasFESpecularLighting* filterEffect() const;
+        virtual SVGFESpecularLighting* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -54,7 +54,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, double, double, KernelUnitLengthX, kernelUnitLengthX)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, double, double, KernelUnitLengthY, kernelUnitLengthY)
         //need other properties here...
-        mutable KCanvasFESpecularLighting* m_filterEffect;
+        mutable SVGFESpecularLighting* m_filterEffect;
         
         //light management
         void updateLights() const;
index b7a1fa5b70aebec5bf65ea6730cfb21371e44607..36dbae0323ec7fef22a439b4345797616aca350d 100644 (file)
@@ -20,7 +20,7 @@
 #include "config.h"
 #ifdef SVG_SUPPORT
 #include "SVGFESpotLightElement.h"
-
+#include "SVGSpotLightSource.h"
 
 namespace WebCore {
 
@@ -33,15 +33,15 @@ SVGFESpotLightElement::~SVGFESpotLightElement()
 {
 }
 
-KCLightSource *SVGFESpotLightElement::lightSource() const
+SVGLightSource *SVGFESpotLightElement::lightSource() const
 {
-    KCanvasPoint3F pos(x(), y(), z());
+    FloatPoint3D pos(x(), y(), z());
     //convert lookAt to a direction
-    KCanvasPoint3F direction(pointsAtX() - pos.x(), 
+    FloatPoint3D direction(pointsAtX() - pos.x(), 
                              pointsAtY() - pos.y(), 
                              pointsAtZ() - pos.z());
     direction.normalize();
-    return new KCSpotLightSource(pos, direction, specularExponent(), limitingConeAngle());
+    return new SVGSpotLightSource(pos, direction, specularExponent(), limitingConeAngle());
 }
 
 }
index 455b233c5ad0fc05362523cc68d3394765c91384..480ead5eba3bd208180c3b7bb9f946398c448e16 100644 (file)
@@ -30,7 +30,7 @@ namespace WebCore
     public:
         SVGFESpotLightElement(const QualifiedName&, Document*);
         virtual ~SVGFESpotLightElement();
-        virtual KCLightSource *lightSource() const;
+        virtual SVGLightSource *lightSource() const;
     };
 
 } // namespace WebCore
index 01ae9162bbdf9700fed2f8a1bbeae32fd6221dda..f7982008dd33b7d0f9fa307371b900cfe9c4e2fe 100644 (file)
@@ -27,7 +27,6 @@
 #include "SVGFETileElement.h"
 
 #include "Attr.h"
-#include "KCanvasFilters.h"
 #include "KRenderingDevice.h"
 #include "SVGHelper.h"
 #include "SVGRenderStyle.h"
@@ -56,10 +55,10 @@ void SVGFETileElement::parseMappedAttribute(MappedAttribute *attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFETile *SVGFETileElement::filterEffect() const
+SVGFETile *SVGFETileElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFETile *>(renderingDevice()->createFilterEffect(FE_TILE));
+        m_filterEffect = static_cast<SVGFETile *>(renderingDevice()->createFilterEffect(FE_TILE));
     if (!m_filterEffect)
         return 0;
     m_filterEffect->setIn(in1());
index a854c28c594059b573250eddf64bcef7cdca61b2..cc443eafcc03f8dc1b2a3dd36f964771b2259a2e 100644 (file)
@@ -25,7 +25,7 @@
 #ifdef SVG_SUPPORT
 
 #include "SVGFilterPrimitiveStandardAttributes.h"
-#include "KCanvasFilters.h"
+#include "SVGFETile.h"
 
 namespace WebCore
 {
@@ -40,14 +40,14 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFETile *filterEffect() const;
+        virtual SVGFETile *filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
 
     private:
         ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, String, String, In1, in1)
-        mutable KCanvasFETile *m_filterEffect;
+        mutable SVGFETile *m_filterEffect;
     };
 
 } // namespace WebCore
index e860030f62cedea71d09885d7fc055209f194568..2d7605a34bf18e50199cc15a83796663e8655c33 100644 (file)
@@ -80,14 +80,14 @@ void SVGFETurbulenceElement::parseMappedAttribute(MappedAttribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
-KCanvasFETurbulence* SVGFETurbulenceElement::filterEffect() const
+SVGFETurbulence* SVGFETurbulenceElement::filterEffect() const
 {
     if (!m_filterEffect)
-        m_filterEffect = static_cast<KCanvasFETurbulence*>(renderingDevice()->createFilterEffect(FE_TURBULENCE));
+        m_filterEffect = static_cast<SVGFETurbulence*>(renderingDevice()->createFilterEffect(FE_TURBULENCE));
     if (!m_filterEffect)
         return 0;
     
-    m_filterEffect->setType((KCTurbulanceType)(type() - 1));
+    m_filterEffect->setType((SVGTurbulanceType) type());
     setStandardAttributes(m_filterEffect);
     m_filterEffect->setBaseFrequencyX(baseFrequencyX());
     m_filterEffect->setBaseFrequencyY(baseFrequencyY());
index 134dbf09aedf09aec5ebbe7b30abab2ddfc4b57b..ba9224d4ecb2f9046d66faea8e9abd527ba1a968 100644 (file)
 #define KSVG_SVGFETurbulenceElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGFETurbulence.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 namespace WebCore
 {
+    enum SVGStitchOptions {
+        SVG_STITCHTYPE_UNKNOWN  = 0,
+        SVG_STITCHTYPE_STITCH   = 1,
+        SVG_STITCHTYPE_NOSTITCH = 2
+    };
 
     class SVGFETurbulenceElement : public SVGFilterPrimitiveStandardAttributes
     {
     public:
-        enum SVGTurbulenceType {
-            SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
-            SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
-            SVG_TURBULENCE_TYPE_TURBULENCE   = 2
-        };
-
-        enum SVGStitchOptions {
-            SVG_STITCHTYPE_UNKNOWN  = 0,
-            SVG_STITCHTYPE_STITCH   = 1,
-            SVG_STITCHTYPE_NOSTITCH = 2
-        };
-
         SVGFETurbulenceElement(const QualifiedName&, Document*);
         virtual ~SVGFETurbulenceElement();
 
@@ -52,7 +45,7 @@ namespace WebCore
         // Derived from: 'Element'
         virtual void parseMappedAttribute(MappedAttribute* attr);
 
-        virtual KCanvasFETurbulence* filterEffect() const;
+        virtual SVGFETurbulence* filterEffect() const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
@@ -64,7 +57,7 @@ namespace WebCore
         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, double, double, Seed, seed)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, int, int, StitchTiles, stitchTiles)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, int, int, Type, type)
-        mutable KCanvasFETurbulence* m_filterEffect;
+        mutable SVGFETurbulence* m_filterEffect;
     };
 
 } // namespace WebCore
index 832a710794192c1d403d87a54215fc322c1a3295..16aa3203b7a5be434329f326571d67ef44746c52 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "Attr.h"
 #include "KRenderingDevice.h"
-#include "KCanvasFilters.h"
+#include "SVGResourceFilter.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 #include "SVGHelper.h"
 #include "SVGLength.h"
@@ -113,7 +113,7 @@ SVGResource* SVGFilterElement::canvasResource()
         return 0;
 
     if (!m_filter)
-        m_filter = WTF::static_pointer_cast<KCanvasFilter>(renderingDevice()->createResource(RS_FILTER));
+        m_filter = WTF::static_pointer_cast<SVGResourceFilter>(renderingDevice()->createResource(RS_FILTER));
 
     bool filterBBoxMode = filterUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
     m_filter->setFilterBoundingBoxMode(filterBBoxMode);
index 86b2e0b56588dc44b4fd0ba1b3e6a6d17f1cfd60..b3da0628712538d3846544318ef6b7908580dd49 100644 (file)
@@ -25,7 +25,7 @@
 #define KSVG_SVGFilterElementImpl_H
 #ifdef SVG_SUPPORT
 
-#include "KCanvasFilters.h"
+#include "SVGResourceFilter.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGLangSpace.h"
 #include "SVGStyledElement.h"
@@ -66,7 +66,7 @@ namespace WebCore {
         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, long, long, FilterResX, filterResX)
         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, long, long, FilterResY, filterResY)
 
-        RefPtr<KCanvasFilter> m_filter;
+        RefPtr<SVGResourceFilter> m_filter;
     };
 
 } // namespace WebCore
index 6c5628a103a8f4f30df3fe26d5dc19e5de1de6cd..1257b9f4099f262c9bd9bfad4cfb9282380cdab6 100644 (file)
@@ -25,6 +25,7 @@
 #include "SVGFilterPrimitiveStandardAttributes.h"
 
 #include "SVGFilterElement.h"
+#include "SVGFilterEffect.h"
 #include "SVGLength.h"
 #include "SVGNames.h"
 #include "SVGStyledElement.h"
@@ -71,7 +72,7 @@ void SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(MappedAttribute*
         return SVGStyledElement::parseMappedAttribute(attr);
 }
 
-void SVGFilterPrimitiveStandardAttributes::setStandardAttributes(KCanvasFilterEffect* filterEffect) const
+void SVGFilterPrimitiveStandardAttributes::setStandardAttributes(SVGFilterEffect* filterEffect) const
 {
     ASSERT(filterEffect);
     if (!filterEffect)
index 7ab0f6c544fd23d50adf616980a590d1920fa2b0..bb9efe66ee615690e5337288af1e68e5e6bb42b4 100644 (file)
@@ -27,7 +27,7 @@
 #include "SVGStyledElement.h"
 
 namespace WebCore {
-    class KCanvasFilterEffect;
+    class SVGFilterEffect;
     class SVGLength;
 
     class SVGFilterPrimitiveStandardAttributes : public SVGStyledElement
@@ -41,10 +41,10 @@ namespace WebCore {
         // 'SVGFilterPrimitiveStandardAttributes' functions
         virtual void parseMappedAttribute(MappedAttribute *attr);
 
-        virtual KCanvasFilterEffect* filterEffect() const = 0;
+        virtual SVGFilterEffect* filterEffect() const = 0;
 
     protected:
-        void setStandardAttributes(KCanvasFilterEffect* filterEffect) const;
+        void setStandardAttributes(SVGFilterEffect* filterEffect) const;
 
     protected:
         virtual const SVGElement* contextElement() const { return this; }
diff --git a/WebCore/platform/graphics/FloatPoint3D.cpp b/WebCore/platform/graphics/FloatPoint3D.cpp
new file mode 100644 (file)
index 0000000..d139266
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+
+#ifdef SVG_SUPPORT
+#include <math.h>
+#include "FloatPoint3D.h"
+
+namespace WebCore {
+
+FloatPoint3D::FloatPoint3D()
+    : m_x(0)
+    , m_y(0)
+    , m_z(0)
+{
+}
+
+FloatPoint3D::FloatPoint3D(float x, float y, float z)
+    : m_x(x)
+    , m_y(y)
+    , m_z(z)
+{
+}
+
+float FloatPoint3D::x() const
+{
+    return m_x;
+}
+
+void FloatPoint3D::setX(float x)
+{
+    m_x = x;
+}
+
+float FloatPoint3D::y() const
+{
+    return m_y;
+}
+
+void FloatPoint3D::setY(float y)
+{
+    m_y = y;
+}
+
+float FloatPoint3D::z() const
+{
+    return m_z;
+}
+
+void FloatPoint3D::setZ(float z)
+{
+    m_z = z;
+}
+
+void FloatPoint3D::normalize()
+{
+    float length = sqrt(m_x * m_x + m_y * m_y + m_z * m_z);
+
+    m_x /= length;
+    m_y /= length;
+    m_z /= length;
+}
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
diff --git a/WebCore/platform/graphics/FloatPoint3D.h b/WebCore/platform/graphics/FloatPoint3D.h
new file mode 100644 (file)
index 0000000..046868c
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef FloatPoint3D_H
+#define FloatPoint3D_H
+
+#ifdef SVG_SUPPORT
+
+namespace WebCore {
+
+class FloatPoint3D {
+public:
+    FloatPoint3D();
+    FloatPoint3D(float x, float y, float z);
+
+    float x() const;
+    void setX(float x);
+
+    float y() const;
+    void setY(float y);
+
+    float z() const;
+    void setZ(float z);
+
+    void normalize();
+
+private:
+    float m_x;
+    float m_y;
+    float m_z;
+};
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+
+#endif // FloatPoint3D_H
diff --git a/WebCore/platform/graphics/svg/SVGResourceFilter.cpp b/WebCore/platform/graphics/svg/SVGResourceFilter.cpp
new file mode 100644 (file)
index 0000000..fe1a30b
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+
+#ifdef SVG_SUPPORT
+#include "SVGResourceFilter.h"
+
+#include "SVGRenderTreeAsText.h"
+#include "SVGFilterEffect.h"
+#include "TextStream.h"
+
+namespace WebCore {
+
+void SVGResourceFilter::clearEffects()
+{
+    m_effects.clear();
+}
+
+void SVGResourceFilter::addFilterEffect(SVGFilterEffect* effect)
+{
+    ASSERT(effect);
+
+    if (effect)
+        m_effects.append(effect);
+}
+
+FloatRect SVGResourceFilter::filterBBoxForItemBBox(FloatRect itemBBox) const
+{
+    FloatRect filterBBox = filterRect();
+
+    if (filterBoundingBoxMode())
+        filterBBox = FloatRect(filterBBox.x() * itemBBox.width(),
+                               filterBBox.y() * itemBBox.height(),
+                               filterBBox.width() * itemBBox.width(),
+                               filterBBox.height() * itemBBox.height());
+
+    return filterBBox;
+}
+
+TextStream& SVGResourceFilter::externalRepresentation(TextStream& ts) const
+{
+    ts << "[type=FILTER] ";
+
+    FloatRect bbox = filterRect();
+    static FloatRect defaultFilterRect(0, 0, 1, 1);
+
+    if (!filterBoundingBoxMode() || bbox != defaultFilterRect) {
+        ts << " [bounding box=";
+        if (filterBoundingBoxMode()) {
+            bbox.scale(100.f);
+            ts << "at (" << bbox.x() << "%," <<  bbox.y() << "%) size " << bbox.width() << "%x" << bbox.height() << "%";
+        } else
+            ts << filterRect();
+        ts << "]";
+    }
+
+    if (!filterBoundingBoxMode()) // default is true
+        ts << " [bounding box mode=" << filterBoundingBoxMode() << "]";
+    if (effectBoundingBoxMode()) // default is false
+        ts << " [effect bounding box mode=" << effectBoundingBoxMode() << "]";
+    if (m_effects.size() > 0)
+        ts << " [effects=" << m_effects << "]";
+
+    return ts;
+}
+
+SVGResourceFilter* getFilterById(Document* document, const AtomicString& id)
+{
+    SVGResource* resource = getResourceById(document, id);
+    if (resource && resource->isFilter())
+        return static_cast<SVGResourceFilter*>(resource);
+
+    return 0;
+}
+
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
diff --git a/WebCore/platform/graphics/svg/SVGResourceFilter.h b/WebCore/platform/graphics/svg/SVGResourceFilter.h
new file mode 100644 (file)
index 0000000..ce8fd94
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGResourceFilter_H
+#define SVGResourceFilter_H
+
+#ifdef SVG_SUPPORT
+#include "SVGResource.h"
+
+#include "FloatRect.h"
+
+#if PLATFORM(CI)
+#include <ApplicationServices/ApplicationServices.h>
+
+#ifdef __OBJC__
+@class CIImage;
+@class CIFilter;
+@class CIContext;
+@class NSArray;
+@class NSMutableDictionary;
+#else
+class CIImage;
+class CIFilter;
+class CIContext;
+class NSArray;
+class NSMutableDictionary;
+#endif
+#endif
+
+namespace WebCore {
+
+class SVGFilterEffect;
+
+class SVGResourceFilter : public SVGResource {
+public:
+    // To be implemented in platform specific code.
+    SVGResourceFilter();
+    virtual ~SVGResourceFilter();
+
+    virtual bool isFilter() const { return true; }
+
+    bool filterBoundingBoxMode() const { return m_filterBBoxMode; }
+    void setFilterBoundingBoxMode(bool bboxMode) { m_filterBBoxMode = bboxMode; }
+
+    bool effectBoundingBoxMode() const { return m_effectBBoxMode; }
+    void setEffectBoundingBoxMode(bool bboxMode) { m_effectBBoxMode = bboxMode; }
+
+    FloatRect filterRect() const { return m_filterRect; }
+    void setFilterRect(const FloatRect& rect) { m_filterRect = rect; }
+
+    FloatRect filterBBoxForItemBBox(FloatRect itemBBox) const;
+
+    void clearEffects();
+    void addFilterEffect(SVGFilterEffect*);
+
+    virtual TextStream& externalRepresentation(TextStream&) const;
+
+    // To be implemented in platform specific code.
+    void prepareFilter(const FloatRect& bbox);
+    void applyFilter(const FloatRect& bbox);
+
+#if PLATFORM(CI)
+    CIImage* imageForName(const String&) const;
+    void setImageForName(CIImage*, const String&);
+
+    void setOutputImage(const SVGFilterEffect*, CIImage*);
+    CIImage* inputImage(const SVGFilterEffect*);
+#endif
+
+private:
+#if PLATFORM(CI)
+    NSArray* getCIFilterStack(CIImage* inputImage);
+
+    CIContext* m_filterCIContext;
+    CGLayerRef m_filterCGLayer;
+    NSMutableDictionary* m_imagesByName;
+#endif
+
+    FloatRect m_filterRect;
+    Vector<SVGFilterEffect*> m_effects;
+
+    bool m_filterBBoxMode;
+    bool m_effectBBoxMode;
+};
+
+SVGResourceFilter* getFilterById(Document*, const AtomicString&);
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+
+#endif // SVGResourceFilter_H
index 9ea9575c472f2f3baf5ca1bee018ad6438d34658..1a4f7f6630dd1f2aac91453e2ceb679145343e8d 100644 (file)
@@ -46,7 +46,7 @@ namespace WebCore {
         SVGResourceImage();
 
 #if PLATFORM(CG)
-    virtual ~SVGResourceImage();
+        virtual ~SVGResourceImage();
 #endif
 
         // To be implemented by the specific rendering devices 
index c758adf49a21cb83b041920cdc293136369c60ca..a436e51d2950df74b60aed40345149c2612c01fe 100644 (file)
     Boston, MA 02111-1307, USA.
 */
 
-#ifndef KCanvasResourceListener_H
-#define KCanvasResourceListener_H
+#ifndef SVGResourceListener_H
+#define SVGResourceListener_H
+
 #ifdef SVG_SUPPORT
 
-class KCanvasResourceListener
+class SVGResourceListener
 {
 public:
-    KCanvasResourceListener() { }
-    virtual ~KCanvasResourceListener() { }
+    SVGResourceListener() { }
+    virtual ~SVGResourceListener() { }
 
     virtual void resourceNotification() const = 0;
 };
 
 #endif // SVG_SUPPORT
+
 #endif
 
 // vim:ts=4:noet
index 0714aea57361ec8f6202bb1aad02a5e0e7366ea6..faed770b7ecbe083ce8b50c3e9ed3baccfe3baf0 100644 (file)
@@ -31,7 +31,6 @@
 #include "SVGResourceClipper.h"
 
 #include "GraphicsContext.h"
-#include "KCanvasFilterQuartz.h"
 #include "KRenderingDeviceQuartz.h"
 #include "QuartzSupport.h"
 
diff --git a/WebCore/platform/graphics/svg/cg/SVGResourceFilterCg.mm b/WebCore/platform/graphics/svg/cg/SVGResourceFilterCg.mm
new file mode 100644 (file)
index 0000000..0525523
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#include "config.h"
+
+#ifdef SVG_SUPPORT
+#include "AffineTransform.h"
+#include "FoundationExtras.h"
+#include "KRenderingDeviceQuartz.h"
+#include "SVGResourceFilter.h"
+
+#include <QuartzCore/CoreImage.h>
+
+namespace WebCore {
+
+static const char* const SVGPreviousFilterOutputName = "__previousOutput__";
+
+SVGResourceFilter::SVGResourceFilter()
+    : m_filterCIContext(0)
+    , m_filterCGLayer(0)
+{
+    m_imagesByName = HardRetainWithNSRelease([[NSMutableDictionary alloc] init]);
+}
+
+SVGResourceFilter::~SVGResourceFilter()
+{
+    ASSERT(!m_filterCGLayer);
+    ASSERT(!m_filterCIContext);
+    HardRelease(m_imagesByName);
+}
+
+void SVGResourceFilter::prepareFilter(const FloatRect &bbox)
+{
+    if (bbox.isEmpty() || !KRenderingDeviceQuartz::filtersEnabled() || m_effects.isEmpty())
+        return;
+
+    CGContextRef cgContext = static_cast<KRenderingDeviceQuartz*>(renderingDevice())->currentCGContext();
+
+    // get a CIContext, and CGLayer for drawing in.
+    bool useSoftware = ! KRenderingDeviceQuartz::hardwareRenderingEnabled();
+    NSDictionary *contextOptions = nil;
+
+    if (useSoftware)
+        contextOptions = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], kCIContextUseSoftwareRenderer, nil];
+
+    // Use of CGBegin/EndTransparencyLayer around this call causes over release
+    // of cgContext due to it being created on an autorelease pool, and released
+    // after CGEndTransparencyLayer. Create local pool to fix.
+    // <http://bugs.webkit.org/show_bug.cgi?id=8425>
+    // <http://bugs.webkit.org/show_bug.cgi?id=6947>
+    // <rdar://problem/4647735>
+    NSAutoreleasePool *filterContextPool = [[NSAutoreleasePool alloc] init];
+    m_filterCIContext = HardRetain([CIContext contextWithCGContext:cgContext options:contextOptions]);
+    [filterContextPool drain];
+
+    m_filterCGLayer = [m_filterCIContext createCGLayerWithSize:CGRect(bbox).size info:NULL];
+
+    KRenderingDeviceContext* filterContext = new KRenderingDeviceContextQuartz(CGLayerGetContext(m_filterCGLayer));
+    renderingDevice()->pushContext(filterContext);
+
+    filterContext->concatCTM(AffineTransform().translate(-1.0f * bbox.x(), -1.0f * bbox.y()));
+}
+
+void SVGResourceFilter::applyFilter(const FloatRect &bbox)
+{
+    if (bbox.isEmpty() || !KRenderingDeviceQuartz::filtersEnabled() || m_effects.isEmpty())
+        return;
+
+    // restore the previous context, delete the filter context.
+    delete (renderingDevice()->popContext());
+
+    // actually apply the filter effects
+    CIImage *inputImage = [CIImage imageWithCGLayer:m_filterCGLayer];
+    NSArray *filterStack = getCIFilterStack(inputImage);
+    if ([filterStack count]) {
+        CIImage *outputImage = [[filterStack lastObject] valueForKey:@"outputImage"];
+        if (outputImage) {
+            CGRect filterRect = CGRect(filterBBoxForItemBBox(bbox));
+            CGRect translated = filterRect;
+            CGPoint bboxOrigin = CGRect(bbox).origin;
+            CGRect sourceRect = CGRectIntersection(translated,[outputImage extent]);
+
+            CGPoint destOrigin = sourceRect.origin;
+            destOrigin.x += bboxOrigin.x;
+            destOrigin.y += bboxOrigin.y;
+
+            [m_filterCIContext drawImage:outputImage atPoint:destOrigin fromRect:sourceRect];
+        }
+    }
+
+    CGLayerRelease(m_filterCGLayer);
+    m_filterCGLayer = 0;
+
+    HardRelease(m_filterCIContext);
+    m_filterCIContext = 0;
+}
+
+NSArray* SVGResourceFilter::getCIFilterStack(CIImage* inputImage)
+{
+    NSMutableArray* filterEffects = [NSMutableArray array];
+
+    setImageForName(inputImage, "SourceGraphic"); // input
+
+    for (unsigned int i = 0; i < m_effects.size(); i++) {
+        CIFilter* filter = m_effects[i]->getCIFilter(this);
+        if (filter)
+            [filterEffects addObject:filter];
+    }
+
+    [m_imagesByName removeAllObjects]; // clean up before next time.
+
+    return filterEffects;
+}
+
+CIImage *SVGResourceFilter::imageForName(const String& name) const
+{
+    return [m_imagesByName objectForKey:name];
+}
+
+void SVGResourceFilter::setImageForName(CIImage *image, const String &name)
+{
+    [m_imagesByName setValue:image forKey:name];
+}
+
+void SVGResourceFilter::setOutputImage(const SVGFilterEffect *filterEffect, CIImage *output)
+{
+    if (!filterEffect->result().isEmpty())
+        setImageForName(output, filterEffect->result());
+    setImageForName(output, SVGPreviousFilterOutputName);
+}
+
+static inline CIImage *alphaImageForImage(CIImage *image)
+{
+    CIFilter *onlyAlpha = [CIFilter filterWithName:@"CIColorMatrix"];
+    CGFloat zero[4] = {0, 0, 0, 0};
+    [onlyAlpha setDefaults];
+    [onlyAlpha setValue:image forKey:@"inputImage"];
+    [onlyAlpha setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputRVector"];
+    [onlyAlpha setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputGVector"];
+    [onlyAlpha setValue:[CIVector vectorWithValues:zero count:4] forKey:@"inputBVector"];
+    return [onlyAlpha valueForKey:@"outputImage"];
+}
+
+CIImage *SVGResourceFilter::inputImage(const SVGFilterEffect *filterEffect)
+{
+    if (filterEffect->in().isEmpty()) {
+        CIImage *inImage = imageForName(SVGPreviousFilterOutputName);
+        if (!inImage)
+            inImage = imageForName("SourceGraphic");
+        return inImage;
+    } else if (filterEffect->in() == "SourceAlpha") {
+        CIImage *sourceAlpha = imageForName(filterEffect->in());
+        if (!sourceAlpha) {
+            CIImage *sourceGraphic = imageForName("SourceGraphic");
+            if (!sourceGraphic)
+                return nil;
+            sourceAlpha = alphaImageForImage(sourceGraphic);
+            setImageForName(sourceAlpha, "SourceAlpha");
+        }
+        return sourceAlpha;
+    }
+
+    return imageForName(filterEffect->in());
+}
+
+}
+
+#endif // SVG_SUPPORT
diff --git a/WebCore/platform/graphics/svg/cg/SVGResourceMaskerCg.h b/WebCore/platform/graphics/svg/cg/SVGResourceMaskerCg.h
deleted file mode 100644 (file)
index 8a0f35f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
- *               2005, 2006 Alexander Kellett <lypanov@kde.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifdef SVG_SUPPORT
-
-#include "KCanvasMasker.h"
-#include "KCanvasImage.h"
-
-namespace WebCore {
-
-class KCanvasMaskerQuartz : public KCanvasMasker {
-public:
-    KCanvasMaskerQuartz() { }
-    
-    virtual void applyMask(const FloatRect& boundingBox) const;
-};
-
-}
-
-#endif
index 01280feacf6fe12b167787f643d5c1a9b78973cc..46680571916412f62b9b3a89eda6e7ae660f9b0d 100644 (file)
@@ -27,6 +27,7 @@
 #include "config.h"
 
 #ifdef SVG_SUPPORT
+#import "SVGResourceFilter.h"
 #import "SVGResourceMasker.h"
 #import "SVGResourceImage.h"
 #import "SVGRenderStyle.h"
@@ -35,7 +36,8 @@
 #import "QuartzSupport.h"
 
 #import <QuartzCore/CoreImage.h>
-
+#import <QuartzCore/CIFilter.h>
+#
 namespace WebCore {
 
 static CIImage* applyLuminanceToAlphaFilter(CIImage* inputImage)
diff --git a/WebCore/platform/graphics/svg/filters/SVGDistantLightSource.h b/WebCore/platform/graphics/svg/filters/SVGDistantLightSource.h
new file mode 100644 (file)
index 0000000..16e9092
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGDistantLightSource_H
+#define SVGDistantLightSource_H
+
+#ifdef SVG_SUPPORT
+#include "SVGLightSource.h"
+
+namespace WebCore {
+
+class SVGDistantLightSource : public SVGLightSource {
+public:
+    SVGDistantLightSource(float azimuth, float elevation)
+        : SVGLightSource(LS_DISTANT)
+        , m_azimuth(azimuth)
+        , m_elevation(elevation)
+    { }
+
+    float azimuth() const { return m_azimuth; }
+    float elevation() const { return m_elevation; }
+
+    virtual TextStream& externalRepresentation(TextStream&) const;
+
+private:
+    float m_azimuth;
+    float m_elevation;
+};
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+
+#endif // SVGDistantLightSource_H
diff --git a/WebCore/platform/graphics/svg/filters/SVGFEBlend.cpp b/WebCore/platform/graphics/svg/filters/SVGFEBlend.cpp
new file mode 100644 (file)
index 0000000..59a29b9
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+
+#ifdef SVG_SUPPORT
+#include "SVGFEBlend.h"
+#include "TextStream.h"
+
+namespace WebCore {
+
+String SVGFEBlend::in2() const
+{
+    return m_in2;
+}
+
+void SVGFEBlend::setIn2(const String& in2)
+{
+    m_in2 = in2;
+}
+
+SVGBlendModeType SVGFEBlend::blendMode() const
+{
+    return m_mode;
+}
+
+void SVGFEBlend::setBlendMode(SVGBlendModeType mode)
+{
+    m_mode = mode;
+}
+
+static TextStream& operator<<(TextStream& ts, SVGBlendModeType t)
+{
+    switch (t)
+    {
+        case SVG_FEBLEND_MODE_UNKNOWN:
+            ts << "UNKNOWN"; break;
+        case SVG_FEBLEND_MODE_NORMAL:
+            ts << "NORMAL"; break;
+        case SVG_FEBLEND_MODE_MULTIPLY:
+            ts << "MULTIPLY"; break;
+        case SVG_FEBLEND_MODE_SCREEN:
+            ts << "SCREEN"; break;
+        case SVG_FEBLEND_MODE_DARKEN:
+            ts << "DARKEN"; break;
+        case SVG_FEBLEND_MODE_LIGHTEN:
+            ts << "LIGHTEN"; break;
+    }
+    return ts;
+}
+
+TextStream& SVGFEBlend::externalRepresentation(TextStream& ts) const
+{
+    ts << "[type=BLEND] ";
+    SVGFilterEffect::externalRepresentation(ts);
+    if (!m_in2.isEmpty())
+        ts << " [in2=\"" << m_in2 << "\"]";
+    ts << " [blend mode=" << m_mode << "]";
+    return ts;
+}
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
diff --git a/WebCore/platform/graphics/svg/filters/SVGFEBlend.h b/WebCore/platform/graphics/svg/filters/SVGFEBlend.h
new file mode 100644 (file)
index 0000000..cd4ac78
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGFEBlend_H
+#define SVGFEBlend_H
+
+#ifdef SVG_SUPPORT
+#include "SVGFilterEffect.h"
+
+namespace WebCore {
+
+enum SVGBlendModeType {
+    SVG_FEBLEND_MODE_UNKNOWN  = 0,
+    SVG_FEBLEND_MODE_NORMAL   = 1,
+    SVG_FEBLEND_MODE_MULTIPLY = 2,
+    SVG_FEBLEND_MODE_SCREEN   = 3,
+    SVG_FEBLEND_MODE_DARKEN   = 4,
+    SVG_FEBLEND_MODE_LIGHTEN  = 5
+};
+
+class SVGFEBlend : public SVGFilterEffect {
+public:
+    String in2() const;
+    void setIn2(const String&);
+
+    SVGBlendModeType blendMode() const;
+    void setBlendMode(SVGBlendModeType);
+
+    virtual TextStream& externalRepresentation(TextStream&) const;
+
+#if PLATFORM(CI)
+    virtual CIFilter* getCIFilter(SVGResourceFilter*) const;
+#endif
+
+private:
+    SVGBlendModeType m_mode;
+    String m_in2;
+};
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+
+#endif // SVGFEBlend_H
diff --git a/WebCore/platform/graphics/svg/filters/SVGFEColorMatrix.cpp b/WebCore/platform/graphics/svg/filters/SVGFEColorMatrix.cpp
new file mode 100644 (file)
index 0000000..c8889a4
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+
+#ifdef SVG_SUPPORT
+#include "SVGFEColorMatrix.h"
+
+namespace WebCore {
+
+SVGColorMatrixType SVGFEColorMatrix::type() const
+{
+    return m_type;
+}
+
+void SVGFEColorMatrix::setType(SVGColorMatrixType type)
+{
+    m_type = type;
+}
+
+const Vector<float>& SVGFEColorMatrix::values() const
+{
+    return m_values;
+}
+
+void SVGFEColorMatrix::setValues(const Vector<float> &values)
+{
+    m_values = values;
+}
+
+static TextStream& operator<<(TextStream& ts, SVGColorMatrixType t)
+{
+    switch (t)
+    {
+        case SVG_FECOLORMATRIX_TYPE_UNKNOWN:
+            ts << "UNKNOWN"; break;
+        case SVG_FECOLORMATRIX_TYPE_MATRIX:
+            ts << "CMT_MATRIX"; break;
+        case SVG_FECOLORMATRIX_TYPE_SATURATE:
+            ts << "CMT_SATURATE"; break;
+        case SVG_FECOLORMATRIX_TYPE_HUEROTATE:
+            ts << "HUE-ROTATE"; break;
+        case SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA:
+            ts << "LUMINANCE-TO-ALPHA"; break;
+    }
+    return ts;
+}
+
+TextStream& SVGFEColorMatrix::externalRepresentation(TextStream& ts) const
+{
+    ts << "[type=COLOR-MATRIX] ";
+    SVGFilterEffect::externalRepresentation(ts);
+    ts << " [color matrix type=" << type() << "]"
+        << " [values=" << values() << "]";
+    return ts;
+}
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
diff --git a/WebCore/platform/graphics/svg/filters/SVGFEColorMatrix.h b/WebCore/platform/graphics/svg/filters/SVGFEColorMatrix.h
new file mode 100644 (file)
index 0000000..2c8f67c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGFEColorMatrix_H
+#define SVGFEColorMatrix_H
+
+#ifdef SVG_SUPPORT
+#include "SVGFilterEffect.h"
+#include "SVGRenderTreeAsText.h"
+
+namespace WebCore {
+
+enum SVGColorMatrixType {
+    SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
+    SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
+    SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
+    SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
+    SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
+};
+
+class SVGFEColorMatrix : public SVGFilterEffect {
+public:
+    SVGColorMatrixType type() const;
+    void setType(SVGColorMatrixType);
+
+    const Vector<float>& values() const;
+    void setValues(const Vector<float>&);
+
+    virtual TextStream& externalRepresentation(TextStream&) const;
+
+#if PLATFORM(CI)
+    virtual CIFilter* getCIFilter(SVGResourceFilter*) const;
+#endif
+
+private:
+    SVGColorMatrixType m_type;
+    Vector<float> m_values;
+};
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
+
+#endif // SVGFEColorMatrix_H
diff --git a/WebCore/platform/graphics/svg/filters/SVGFEComponentTransfer.cpp b/WebCore/platform/graphics/svg/filters/SVGFEComponentTransfer.cpp
new file mode 100644 (file)
index 0000000..7314033
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#include "config.h"
+
+#ifdef SVG_SUPPORT
+#include "SVGFEComponentTransfer.h"
+#include "TextStream.h"
+
+namespace WebCore {
+
+SVGComponentTransferFunction SVGFEComponentTransfer::redFunction() const
+{
+    return m_redFunc;
+}
+
+void SVGFEComponentTransfer::setRedFunction(const SVGComponentTransferFunction& func)
+{
+    m_redFunc = func;
+}
+
+SVGComponentTransferFunction SVGFEComponentTransfer::greenFunction() const
+{
+    return m_greenFunc;
+}
+
+void SVGFEComponentTransfer::setGreenFunction(const SVGComponentTransferFunction& func)
+{
+    m_greenFunc = func;
+}
+
+SVGComponentTransferFunction SVGFEComponentTransfer::blueFunction() const
+{
+    return m_blueFunc;
+}
+
+void SVGFEComponentTransfer::setBlueFunction(const SVGComponentTransferFunction& func)
+{
+    m_blueFunc = func;
+}
+
+SVGComponentTransferFunction SVGFEComponentTransfer::alphaFunction() const
+{
+    return m_alphaFunc;
+}
+
+void SVGFEComponentTransfer::setAlphaFunction(const SVGComponentTransferFunction& func)
+{
+    m_alphaFunc = func;
+}
+
+static TextStream& operator<<(TextStream& ts, SVGComponentTransferType t)
+{
+    switch (t)
+    {
+        case SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN:
+            ts << "UNKNOWN"; break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY:
+            ts << "IDENTITY"; break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_TABLE:
+            ts << "TABLE"; break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE:
+            ts << "DISCRETE"; break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_LINEAR:
+            ts << "LINEAR"; break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_GAMMA:
+            ts << "GAMMA"; break;
+    }
+    return ts;
+}
+
+static TextStream& operator<<(TextStream& ts, const SVGComponentTransferFunction &func)
+{
+    ts << "[type=" << func.type << "]";
+    switch (func.type) {
+        case SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN:
+        case SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY:
+            break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_TABLE:
+        case SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE:
+        {
+            ts << " [table values=";
+            Vector<float>::const_iterator itr=func.tableValues.begin();
+            if (itr != func.tableValues.end()) {
+                ts << *itr++;
+                for (; itr!=func.tableValues.end(); itr++) {
+                    ts << " " << *itr;
+                }
+            }
+            ts << "]";
+            break;
+        }
+        case SVG_FECOMPONENTTRANSFER_TYPE_LINEAR:
+            ts << " [slope=" << func.slope << "]"
+               << " [intercept=" << func.intercept << "]";
+            break;
+        case SVG_FECOMPONENTTRANSFER_TYPE_GAMMA:
+            ts << " [amplitude=" << func.amplitude << "]"
+               << " [exponent=" << func.exponent << "]"
+               << " [offset=" << func.offset << "]";
+            break;
+    }
+    return ts;
+}
+
+TextStream& SVGFEComponentTransfer::externalRepresentation(TextStream& ts) const
+{
+    ts << "[type=COMPONENT-TRANSFER] ";
+    SVGFilterEffect::externalRepresentation(ts);
+    ts << " [red func=" << redFunction() << "]"
+        << " [green func=" << greenFunction() << "]"
+        << " [blue func=" << blueFunction() << "]"
+        << " [alpha func=" << alphaFunction() << "]";
+    return ts;
+}
+
+} // namespace WebCore
+
+#endif // SVG_SUPPORT
diff --git a/WebCore/platform/graphics/svg/filters/SVGFEComponentTransfer.h b/WebCore/platform/graphics/svg/filters/SVGFEComponentTransfer.h
new file mode 100644 (file)
index 0000000..0675e6b
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+    Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <wildfox@kde.org>
+                  2004, 2005 Rob Buis <buis@kde.org>
+                  2005 Eric Seidel <eric.seidel@kdemail.net>
+
+    This file is part of the KDE project
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public License
+    aint with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+*/
+
+#ifndef SVGFEComponentTransfer_H
+#define SVGFEComponentTransfer_H
+
+#ifdef SVG_SUPPORT
+#include <wtf/Vector.h>
+
+#include "SVGFilterEffect.h"
+#include "SVGFEDisplacementMap.h"
+
+#if PLATFORM(CI)
+#ifdef __OBJC__
+@class CIImage;
+@class CIFilter;
+#else
+class CIImage;
+class CIFilter;
+#endif
+#endif
+
+namespace WebCore {
+
+enum SVGComponentTransferType {
+    SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
+    SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
+    SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
+    SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
+    SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
+    SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
+};
+
+struct SVGComponentTransferFunction {
+    SVGComponentTransferFunction()
+        : type(SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY)
+    {
+    }
+
+    SVGComponentTransferType type;
+    Vector<float> tableValues;
+    float slope;
+    float intercept;
+    float amplitude;
+    float exponent;
+    float offset;
+};
+
+class SVGFEComponentTransfer : public SVGFilterEffect {