2006-01-25 Alexander Kellett <lypanov@kde.org>
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Jan 2006 09:32:56 +0000 (09:32 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Jan 2006 09:32:56 +0000 (09:32 +0000)
        Reviewed by eseidel.

        Percentage values for width, height are not rendered correctly.
        http://bugzilla.opendarwin.org/show_bug.cgi?id=5331

        Create items for even empty paths to prevent an empty render tree.
        Calculate the viewport element on the fly rather than caching it,
        unless there is no context from which to calculate it. Call
        notifyAttributeChange() on layout to fix usage of viewport
        percentages for lengths. Remove portion of code which appears to
        do nothing but worsen the situation.

        * kcanvas/device/quartz/KCanvasItemQuartz.h:
        * kcanvas/device/quartz/KCanvasItemQuartz.mm:
        (KCanvasItemQuartz::layout):
        * ksvg2/svg/SVGLengthImpl.cpp:
        (SVGLengthImpl::value):
        * ksvg2/svg/SVGStyledElementImpl.cpp:
        (SVGStyledElementImpl::createRenderer):

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

38 files changed:
LayoutTests/ChangeLog
LayoutTests/svg/W3C-SVG-1.1/coords-units-01-b-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/coords-units-01-b-expected.png
LayoutTests/svg/W3C-SVG-1.1/coords-units-02-b-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/coords-units-02-b-expected.png
LayoutTests/svg/W3C-SVG-1.1/coords-units-02-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/coords-units-03-b-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/coords-units-03-b-expected.png
LayoutTests/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-color-01-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-composite-02-b-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png
LayoutTests/svg/W3C-SVG-1.1/filters-composite-02-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-diffuse-01-f-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-displace-01-f-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/filters-displace-01-f-expected.png
LayoutTests/svg/W3C-SVG-1.1/filters-displace-01-f-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-light-01-f-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-specular-01-f-expected.txt
LayoutTests/svg/W3C-SVG-1.1/filters-tile-01-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1/struct-image-02-b-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/struct-image-02-b-expected.png
LayoutTests/svg/W3C-SVG-1.1/struct-image-02-b-expected.txt
LayoutTests/svg/custom/image-with-transform-clip-filter-expected.txt
LayoutTests/svg/custom/percentage-rect-expected.checksum [new file with mode: 0644]
LayoutTests/svg/custom/percentage-rect-expected.png [new file with mode: 0644]
LayoutTests/svg/custom/percentage-rect-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/percentage-rect.svg [new file with mode: 0644]
LayoutTests/svg/custom/text-filter-expected.txt
WebCore/ChangeLog
WebCore/kcanvas/device/quartz/KCanvasItemQuartz.h
WebCore/kcanvas/device/quartz/KCanvasItemQuartz.mm
WebCore/ksvg2/svg/SVGLengthImpl.cpp
WebCore/ksvg2/svg/SVGStyledElementImpl.cpp

index d9d088b6f78857cdaed184bcbd82663150b40590..0f2208bbdbb92603b44e405293e045fec542bdf6 100644 (file)
@@ -1,3 +1,43 @@
+2006-01-25  Alexander Kellett  <lypanov@kde.org>
+
+        Reviewed by eseidel.
+
+        Percentage values for width, height are not rendered correctly.
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=5331
+
+        * svg/W3C-SVG-1.1/coords-units-01-b-expected.checksum:
+        * svg/W3C-SVG-1.1/coords-units-01-b-expected.png:
+        * svg/W3C-SVG-1.1/coords-units-02-b-expected.checksum:
+        * svg/W3C-SVG-1.1/coords-units-02-b-expected.png:
+        * svg/W3C-SVG-1.1/coords-units-02-b-expected.txt:
+        * svg/W3C-SVG-1.1/coords-units-03-b-expected.checksum:
+        * svg/W3C-SVG-1.1/coords-units-03-b-expected.png:
+        * svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-color-01-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-composite-02-b-expected.checksum:
+        * svg/W3C-SVG-1.1/filters-composite-02-b-expected.png:
+        * svg/W3C-SVG-1.1/filters-composite-02-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-diffuse-01-f-expected.txt:
+        * svg/W3C-SVG-1.1/filters-displace-01-f-expected.checksum:
+        * svg/W3C-SVG-1.1/filters-displace-01-f-expected.png:
+        * svg/W3C-SVG-1.1/filters-displace-01-f-expected.txt:
+        * svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-gauss-01-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-light-01-f-expected.txt:
+        * svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt:
+        * svg/W3C-SVG-1.1/filters-specular-01-f-expected.txt:
+        * svg/W3C-SVG-1.1/filters-tile-01-b-expected.txt:
+        * svg/W3C-SVG-1.1/struct-image-02-b-expected.checksum:
+        * svg/W3C-SVG-1.1/struct-image-02-b-expected.png:
+        * svg/W3C-SVG-1.1/struct-image-02-b-expected.txt:
+        * svg/custom/image-with-transform-clip-filter-expected.txt:
+        * svg/custom/percentage-rect-expected.checksum: Added.
+        * svg/custom/percentage-rect-expected.png: Added.
+        * svg/custom/percentage-rect-expected.txt: Added.
+        * svg/custom/percentage-rect.svg: Added.
+        * svg/custom/text-filter-expected.txt:
+
 2006-01-25  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by harrison
index fd391db201076e839edcaba1254d364f82688d17..d46e82566bcb360c31f2632dc8006157985d12a9 100644 (file)
@@ -1 +1 @@
-2b90a21b5042e9bcb1a838582599a85b
\ No newline at end of file
+9ecb34c6bb9f4f8bafc6a302b7ce51aa
\ No newline at end of file
index 24ab4fd9d83a434f52affc657ef5714543dc92bd..ff15025ab7ec55528bf99b3ef0f9e270e595e8cf 100644 (file)
Binary files a/LayoutTests/svg/W3C-SVG-1.1/coords-units-01-b-expected.png and b/LayoutTests/svg/W3C-SVG-1.1/coords-units-01-b-expected.png differ
index e104402f1acf5956fca0c726736661a576f31387..2738652ef397ca103be46ce1d8557b4fb23f295f 100644 (file)
@@ -1 +1 @@
-93816a6c212a235fe97d2df336a92331
\ No newline at end of file
+73f1ab8fa6cb274690d5dde14ce3197a
\ No newline at end of file
index ea65d99d42bb0cd83da2c3812eb3f8e20f6c9530..5269b4b12f4ce435e89f15320b99933b60edf913 100644 (file)
Binary files a/LayoutTests/svg/W3C-SVG-1.1/coords-units-02-b-expected.png and b/LayoutTests/svg/W3C-SVG-1.1/coords-units-02-b-expected.png differ
index 585c0c0b17d7a9ebc55d01e79370b444d7d2b87f..b1974ed582654088778bc67b131d61612d8ed1d9 100644 (file)
@@ -13,6 +13,7 @@ layer at (0,0) size 480x360
             text run at (0,0) width 344: "Percentage coordinates to user space conversion"
         KCanvasContainer {g} at (25,70) size 20x20 [transform={m=((4.00,0.00)(0.00,4.00)) t=(5.00,50.00)}]
           KCanvasItem {circle} at (25,70) size 20x20 [fill={[type=SOLID] [color=#000000]}] [data="M10.00,7.50L10.00,7.66L9.98,7.81L9.96,7.97L9.92,8.12L9.88,8.27L9.82,8.42L9.76,8.56L9.69,8.70L9.61,8.84L9.52,8.97L9.43,9.09L9.32,9.21L9.21,9.32L9.09,9.43L8.97,9.52L8.84,9.61L8.70,9.69L8.56,9.76L8.42,9.82L8.27,9.88L8.12,9.92L7.97,9.96L7.81,9.98L7.66,10.00L7.50,10.00L7.34,10.00L7.19,9.98L7.03,9.96L6.88,9.92L6.73,9.88L6.58,9.82L6.44,9.76L6.30,9.69L6.16,9.61L6.03,9.52L5.91,9.43L5.79,9.32L5.68,9.21L5.57,9.09L5.48,8.97L5.39,8.84L5.31,8.70L5.24,8.56L5.18,8.42L5.12,8.27L5.08,8.12L5.04,7.97L5.02,7.81L5.00,7.66L5.00,7.50L5.00,7.34L5.02,7.19L5.04,7.03L5.08,6.88L5.12,6.73L5.18,6.58L5.24,6.44L5.31,6.30L5.39,6.16L5.48,6.03L5.57,5.91L5.68,5.79L5.79,5.68L5.91,5.57L6.03,5.48L6.16,5.39L6.30,5.31L6.44,5.24L6.58,5.18L6.73,5.12L6.88,5.08L7.03,5.04L7.19,5.02L7.34,5.00L7.50,5.00L7.66,5.00L7.81,5.02L7.97,5.04L8.12,5.08L8.27,5.12L8.42,5.18L8.56,5.24L8.70,5.31L8.84,5.39L8.97,5.48L9.09,5.57L9.21,5.68L9.32,5.79L9.43,5.91L9.52,6.03L9.61,6.16L9.69,6.30L9.76,6.44L9.82,6.58L9.88,6.73L9.92,6.88L9.96,7.03L9.98,7.19L10.00,7.34"]
+          KCanvasItem {circle} at (29.01,74.00) size 12.00x12.00 [fill={[type=SOLID] [color=#FF0000]}] [data="M9.00,7.50L9.00,7.59L8.99,7.69L8.98,7.78L8.96,7.87L8.93,7.96L8.90,8.05L8.86,8.14L8.82,8.22L8.77,8.30L8.72,8.38L8.66,8.45L8.60,8.53L8.53,8.59L8.46,8.65L8.38,8.71L8.31,8.77L8.22,8.81L8.14,8.86L8.05,8.89L7.97,8.93L7.88,8.95L7.78,8.97L7.69,8.99L7.60,9.00L7.50,9.00L7.41,9.00L7.31,8.99L7.22,8.97L7.13,8.95L7.04,8.93L6.95,8.89L6.86,8.86L6.78,8.81L6.70,8.77L6.62,8.71L6.55,8.65L6.48,8.59L6.41,8.53L6.35,8.45L6.29,8.38L6.24,8.30L6.19,8.22L6.15,8.14L6.11,8.05L6.08,7.96L6.05,7.87L6.03,7.78L6.01,7.69L6.01,7.59L6.00,7.50L6.01,7.40L6.01,7.31L6.03,7.22L6.05,7.13L6.08,7.04L6.11,6.95L6.15,6.86L6.19,6.78L6.24,6.70L6.29,6.62L6.35,6.54L6.41,6.47L6.48,6.41L6.55,6.34L6.62,6.29L6.70,6.23L6.78,6.18L6.86,6.14L6.95,6.10L7.04,6.07L7.13,6.05L7.22,6.03L7.31,6.01L7.41,6.00L7.50,6.00L7.60,6.00L7.69,6.01L7.78,6.03L7.88,6.05L7.97,6.07L8.05,6.10L8.14,6.14L8.22,6.18L8.31,6.23L8.38,6.29L8.46,6.34L8.53,6.41L8.60,6.47L8.66,6.54L8.72,6.62L8.77,6.70L8.82,6.78L8.86,6.86L8.90,6.95L8.93,7.04L8.96,7.13L8.98,7.22L8.99,7.31L9.00,7.40"]
         RenderSVGText {text} at (0,0) size 465x20
           RenderText {TEXT} at (0,0) size 302x20
             text run at (0,0) width 302: "CSS width/height to user space conversion"
@@ -22,14 +23,16 @@ layer at (0,0) size 480x360
         RenderSVGText {text} at (0,0) size 465x20
           RenderText {TEXT} at (0,0) size 351x20
             text run at (0,0) width 351: "Percentage width/height to user space conversion"
-        KCanvasContainer {g} at (10,175) size 40x20 [transform={m=((4.00,0.00)(0.00,4.00)) t=(30.00,175.00)}]
+        KCanvasContainer {g} at (10,175) size 40x40.00 [transform={m=((4.00,0.00)(0.00,4.00)) t=(30.00,175.00)}]
           KCanvasItem {rect} at (10,175) size 40x20 [fill={[type=SOLID] [color=#000000]}] [data="M-5.00,0.00L5.00,0.00L5.00,5.00L-5.00,5.00"]
+          KCanvasItem {rect} at (10,195) size 39.99x20.00 [fill={[type=SOLID] [color=#FF0000]}] [data="M-5.00,5.00L5.00,5.00L5.00,10.00L-5.00,10.00"]
         RenderSVGText {text} at (0,0) size 465x20
           RenderText {TEXT} at (0,0) size 273x20
             text run at (0,0) width 273: "CSS and percentage length conversion"
         KCanvasContainer {g} at (0.71,244.86) size 144.43x30.29 [transform={m=((4.00,0.00)(4.00,4.00)) t=(30.00,260.00)}]
           KCanvasItem {circle} at (1.71,245.86) size 56.58x28.29 [fill={[type=SOLID] [color=#000000]}] [data="M3.54,0.00L3.53,0.22L3.51,0.44L3.47,0.66L3.42,0.88L3.36,1.09L3.29,1.30L3.20,1.51L3.10,1.70L2.99,1.89L2.86,2.08L2.72,2.25L2.58,2.42L2.42,2.58L2.25,2.72L2.08,2.86L1.89,2.99L1.70,3.10L1.51,3.20L1.30,3.29L1.09,3.36L0.88,3.42L0.66,3.47L0.44,3.51L0.22,3.53L0.00,3.54L-0.22,3.53L-0.44,3.51L-0.66,3.47L-0.88,3.42L-1.09,3.36L-1.30,3.29L-1.51,3.20L-1.70,3.10L-1.89,2.99L-2.08,2.86L-2.25,2.72L-2.42,2.58L-2.58,2.42L-2.72,2.25L-2.86,2.08L-2.99,1.89L-3.10,1.70L-3.20,1.51L-3.29,1.30L-3.36,1.09L-3.42,0.88L-3.47,0.66L-3.51,0.44L-3.53,0.22L-3.54,0.00L-3.53,-0.22L-3.51,-0.44L-3.47,-0.66L-3.42,-0.88L-3.36,-1.09L-3.29,-1.30L-3.20,-1.51L-3.10,-1.70L-2.99,-1.89L-2.86,-2.08L-2.72,-2.25L-2.58,-2.42L-2.42,-2.58L-2.25,-2.72L-2.08,-2.86L-1.89,-2.99L-1.70,-3.10L-1.51,-3.20L-1.30,-3.29L-1.09,-3.36L-0.88,-3.42L-0.66,-3.47L-0.44,-3.51L-0.22,-3.53L-0.00,-3.54L0.22,-3.53L0.44,-3.51L0.66,-3.47L0.88,-3.42L1.09,-3.36L1.30,-3.29L1.51,-3.20L1.70,-3.10L1.89,-2.99L2.08,-2.86L2.25,-2.72L2.42,-2.58L2.58,-2.42L2.72,-2.25L2.86,-2.08L2.99,-1.89L3.10,-1.70L3.20,-1.51L3.29,-1.30L3.36,-1.09L3.42,-0.88L3.47,-0.66L3.51,-0.44L3.53,-0.22"]
           KCanvasItem {circle} at (41.71,245.86) size 56.58x28.29 [fill={[type=SOLID] [color=#FF0000]}] [data="M13.54,0.00L13.53,0.22L13.51,0.44L13.47,0.66L13.42,0.88L13.36,1.09L13.29,1.30L13.20,1.51L13.10,1.70L12.99,1.89L12.86,2.08L12.72,2.25L12.58,2.42L12.42,2.58L12.25,2.72L12.08,2.86L11.89,2.99L11.70,3.10L11.51,3.20L11.30,3.29L11.09,3.36L10.88,3.42L10.66,3.47L10.44,3.51L10.22,3.53L10.00,3.54L9.78,3.53L9.56,3.51L9.34,3.47L9.12,3.42L8.91,3.36L8.70,3.29L8.49,3.20L8.30,3.10L8.11,2.99L7.92,2.86L7.75,2.72L7.58,2.58L7.42,2.42L7.28,2.25L7.14,2.08L7.01,1.89L6.90,1.70L6.80,1.51L6.71,1.30L6.64,1.09L6.58,0.88L6.53,0.66L6.49,0.44L6.47,0.22L6.46,0.00L6.47,-0.22L6.49,-0.44L6.53,-0.66L6.58,-0.88L6.64,-1.09L6.71,-1.30L6.80,-1.51L6.90,-1.70L7.01,-1.89L7.14,-2.08L7.28,-2.25L7.42,-2.42L7.58,-2.58L7.75,-2.72L7.92,-2.86L8.11,-2.99L8.30,-3.10L8.49,-3.20L8.70,-3.29L8.91,-3.36L9.12,-3.42L9.34,-3.47L9.56,-3.51L9.78,-3.53L10.00,-3.54L10.22,-3.53L10.44,-3.51L10.66,-3.47L10.88,-3.42L11.09,-3.36L11.30,-3.29L11.51,-3.20L11.70,-3.10L11.89,-2.99L12.08,-2.86L12.25,-2.72L12.42,-2.58L12.58,-2.42L12.72,-2.25L12.86,-2.08L12.99,-1.89L13.10,-1.70L13.20,-1.51L13.29,-1.30L13.36,-1.09L13.42,-0.88L13.47,-0.66L13.51,-0.44L13.53,-0.22"]
+          KCanvasItem {circle} at (81.71,245.86) size 56.57x28.29 [fill={[type=SOLID] [color=#008000]}] [data="M23.54,0.00L23.53,0.22L23.51,0.44L23.47,0.66L23.42,0.88L23.36,1.09L23.29,1.30L23.20,1.51L23.10,1.70L22.99,1.89L22.86,2.08L22.72,2.25L22.58,2.42L22.42,2.58L22.25,2.72L22.08,2.86L21.89,2.99L21.70,3.10L21.51,3.20L21.30,3.29L21.09,3.36L20.88,3.42L20.66,3.47L20.44,3.51L20.22,3.53L20.00,3.54L19.78,3.53L19.56,3.51L19.34,3.47L19.12,3.42L18.91,3.36L18.70,3.29L18.49,3.20L18.30,3.10L18.11,2.99L17.92,2.86L17.75,2.72L17.58,2.58L17.42,2.42L17.28,2.25L17.14,2.08L17.01,1.89L16.90,1.70L16.80,1.51L16.71,1.30L16.64,1.09L16.58,0.88L16.53,0.66L16.49,0.44L16.47,0.22L16.46,0.00L16.47,-0.22L16.49,-0.44L16.53,-0.66L16.58,-0.88L16.64,-1.09L16.71,-1.30L16.80,-1.51L16.90,-1.70L17.01,-1.89L17.14,-2.08L17.28,-2.25L17.42,-2.42L17.58,-2.58L17.75,-2.72L17.92,-2.86L18.11,-2.99L18.30,-3.10L18.49,-3.20L18.70,-3.29L18.91,-3.36L19.12,-3.42L19.34,-3.47L19.56,-3.51L19.78,-3.53L20.00,-3.54L20.22,-3.53L20.44,-3.51L20.66,-3.47L20.88,-3.42L21.09,-3.36L21.30,-3.29L21.51,-3.20L21.70,-3.10L21.89,-2.99L22.08,-2.86L22.25,-2.72L22.42,-2.58L22.58,-2.42L22.72,-2.25L22.86,-2.08L22.99,-1.89L23.10,-1.70L23.20,-1.51L23.29,-1.30L23.36,-1.09L23.42,-0.88L23.47,-0.66L23.51,-0.44L23.53,-0.22"]
           KCanvasItem {line} at (0.71,244.86) size 116.14x2 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=0.50]}] [data="M-3.54,-3.54L25.00,-3.54"]
           KCanvasItem {line} at (29,273.14) size 116.14x2 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=0.50]}] [data="M-3.54,3.54L25.00,3.54"]
       RenderSVGText {text} at (0,0) size 465x46
index 0c4db62317d178dbc6c7d4956f7f87a30ded074c..d05dfd09195c929e10119cac711a73854d039533 100644 (file)
@@ -1 +1 @@
-92975fd387e23c3d973b4ab4aaade6f0
\ No newline at end of file
+6ea2114091241d3a1e574986dbfce171
\ No newline at end of file
index 64be71ba9250c8235159e92095be9151f10d0fbc..23f2781d6a6289f99ee0f4945a560ba68a447156 100644 (file)
Binary files a/LayoutTests/svg/W3C-SVG-1.1/coords-units-03-b-expected.png and b/LayoutTests/svg/W3C-SVG-1.1/coords-units-03-b-expected.png differ
index ccbf68301ec7e9b331f12486963b7d16d61cd81b..7c7a29dd76604d91ebe08557298e847125d1c37d 100644 (file)
@@ -8,7 +8,7 @@ layer at (0,0) size 480x360
         RenderSVGText {text} at (0,0) size 465x14
           RenderText {TEXT} at (0,0) size 181x14
             text run at (0,0) width 181: "Initial viewport and CSS units test"
-        KCanvasContainer {g} at (20,80) size 200x181 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,60.00)}]
+        KCanvasContainer {g} at (20,80) size 200.02x181 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,60.00)}]
           RenderSVGText {text} at (0,0) size 465x15
             RenderText {TEXT} at (0,0) size 21x15
               text run at (0,0) width 21: "200"
@@ -30,6 +30,7 @@ layer at (0,0) size 480x360
             RenderText {TEXT} at (0,0) size 136x15
               text run at (0,0) width 136: "Relative to font size (em)"
           KCanvasContainer {g} at (0,60) size 0x0
+            KCanvasItem {rect} at (inf,inf) size 0x0 [fill={[type=SOLID] [color=#000000]}] [data=""]
           RenderSVGText {text} at (0,0) size 465x15
             RenderText {TEXT} at (0,0) size 30x15
               text run at (0,0) width 30: "40 ex"
@@ -37,12 +38,14 @@ layer at (0,0) size 480x360
             RenderText {TEXT} at (0,0) size 158x15
               text run at (0,0) width 158: "Relative to font x-height (ex)"
           KCanvasContainer {g} at (0,60) size 0x0
+            KCanvasItem {rect} at (inf,inf) size 0x0 [fill={[type=SOLID] [color=#000000]}] [data=""]
           RenderSVGText {text} at (0,0) size 465x15
             RenderText {TEXT} at (0,0) size 93x15
               text run at (0,0) width 93: "41.67% = 200 px"
           RenderSVGText {text} at (0,0) size 465x15
             RenderText {TEXT} at (0,0) size 81x15
               text run at (0,0) width 81: "Percentage (%)"
+          KCanvasItem {rect} at (20,160) size 200.02x1 [fill={[type=SOLID] [color=#000000]}] [data="M20.00,100.00L220.02,100.00L220.02,101.00L20.00,101.00"]
           RenderSVGText {text} at (0,0) size 465x15
             RenderText {TEXT} at (0,0) size 21x15
               text run at (0,0) width 21: "1 in"
index 3a06e70c34ad0f9663b90133695d231dcab4de5b..cb3f0bf932a12a801a4c5607e4f8e828f74c9b9b 100644 (file)
@@ -1,8 +1,8 @@
-KCanvasResource {id="BlendNormal" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="BackgroundAlpha"] [result="img1"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [in2="img1"] [blend mode=NORMAL]]]}
-KCanvasResource {id="BlendMultiply" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [in2="img2"] [blend mode=MULTIPLY]]]}
-KCanvasResource {id="BlendScreen" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [in2="img2"] [blend mode=SCREEN]]]}
-KCanvasResource {id="BlendDarken" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [in2="img2"] [blend mode=DARKEN]]]}
-KCanvasResource {id="BlendLighten" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [in2="img2"] [blend mode=LIGHTEN]]]}
+KCanvasResource {id="BlendNormal" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="BackgroundAlpha"] [result="img1"] [subregion="at (0,0) size 160x120"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [subregion="at (0,0) size 160x120"] [in2="img1"] [blend mode=NORMAL]]]}
+KCanvasResource {id="BlendMultiply" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [subregion="at (0,0) size 160x120"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [subregion="at (0,0) size 160x120"] [in2="img2"] [blend mode=MULTIPLY]]]}
+KCanvasResource {id="BlendScreen" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [subregion="at (0,0) size 160x120"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [subregion="at (0,0) size 160x120"] [in2="img2"] [blend mode=SCREEN]]]}
+KCanvasResource {id="BlendDarken" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [subregion="at (0,0) size 160x120"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [subregion="at (0,0) size 160x120"] [in2="img2"] [blend mode=DARKEN]]]}
+KCanvasResource {id="BlendLighten" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=FLOOD] [in="SourceGraphic"] [result="img2"] [subregion="at (0,0) size 160x120"] [color=#00FF00] [opacity=0.50], [type=BLEND] [in="SourceGraphic"] [subregion="at (0,0) size 160x120"] [in2="img2"] [blend mode=LIGHTEN]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (2.25,2.25) size 475.50x355.50
index bf8f9b3858cd723d5c812ce34466fc311f73b101..456ece47d1810a371c95401fe6f57d91007c4bf7 100644 (file)
@@ -1,8 +1,8 @@
 KRenderingPaintServer {id="MyGradient" [type=LINEAR-GRADIENT] [stops=[(0.00,#DD00DD), (0.33,#22CC22), (0.67,#400000), (1.00,#A0A0FF)]] [bounding box mode=0] [start=(20,0)] [end=(760,0)]}
-KCanvasResource {id="Matrix" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [color matrix type=CMT_MATRIX] [values=[0.33, 0.33, 0.33, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00]]]]}
-KCanvasResource {id="Saturate40" [type=FILTER]  [bounding box=at (-5,-5) size 110x110] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [color matrix type=CMT_SATURATE] [values=[0.25]]]]}
-KCanvasResource {id="HueRotate90" [type=FILTER]  [bounding box=at (-5,-5) size 110x110] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [color matrix type=HUE-ROTATE] [values=[90.00]]]]}
-KCanvasResource {id="LuminanceToAlpha" [type=FILTER]  [bounding box=at (-5,-5) size 110x110] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [result="a"] [color matrix type=LUMINANCE-TO-ALPHA] [values=[]], [type=COMPOSITE] [in="SourceGraphic"] [in2="a"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="Matrix" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [subregion="at (0,0) size 800x500"] [color matrix type=CMT_MATRIX] [values=[0.33, 0.33, 0.33, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00, 0.33, 0.33, 0.33, 0.00, 0.00]]]]}
+KCanvasResource {id="Saturate40" [type=FILTER]  [bounding box=at (-5,-5) size 110x110] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [subregion="at (0,0) size 800x500"] [color matrix type=CMT_SATURATE] [values=[0.25]]]]}
+KCanvasResource {id="HueRotate90" [type=FILTER]  [bounding box=at (-5,-5) size 110x110] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [subregion="at (0,0) size 800x500"] [color matrix type=HUE-ROTATE] [values=[90.00]]]]}
+KCanvasResource {id="LuminanceToAlpha" [type=FILTER]  [bounding box=at (-5,-5) size 110x110] [effect bounding box mode=0] [effects=[[type=COLOR-MATRIX] [in="SourceGraphic"] [result="a"] [subregion="at (0,0) size 800x500"] [color matrix type=LUMINANCE-TO-ALPHA] [values=[]], [type=COMPOSITE] [in="SourceGraphic"] [subregion="at (0,0) size 800x500"] [in2="a"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 799x499
index 39e384d42494036e3c37c3a1535fddb5d0e3eeea..c04bacaa4ee0d6f25fdec4d56153d64a926d8a8d 100644 (file)
@@ -1 +1 @@
-9ed0332c2d07ebd9a503a7d2aac27eab
\ No newline at end of file
+045d537ead570399e302b4bfa9fb7d1a
\ No newline at end of file
index 204adb1d8f76ee0be5021ef5c10f7a32a27a5164..d50c57e4a3cb372045e5ca21309473fe19974d9f 100644 (file)
Binary files a/LayoutTests/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png and b/LayoutTests/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png differ
index 7aeb96bcb9cf90dc4a5e1866e7ff39b122ea1cb4..98c436c012b0154a80996d4e13e775a30b0cf758 100644 (file)
@@ -1,15 +1,15 @@
-KCanvasResource {id="over" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="over50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="in" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="in50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="out" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="out50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="atop" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="atop50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="xor" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="xor50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
-KCanvasResource {id="arithmetic" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.50 k2=0.50 k3=0.50 k4=0.50]]]}
-KCanvasResource {id="arithmetic50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"], [type=IMAGE]  [result="red"], [type=COMPOSITE] [in="red"] [in2="blue"] [k1=0.50 k2=0.50 k3=0.50 k4=0.50]]]}
+KCanvasResource {id="over" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="over50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="in" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="in50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="out" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="out50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="atop" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="atop50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="xor" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="xor50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="arithmetic" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.50 k2=0.50 k3=0.50 k4=0.50]]]}
+KCanvasResource {id="arithmetic50" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="blue"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="red"] [subregion="at (0,0) size 480x360"], [type=COMPOSITE] [in="red"] [subregion="at (0,0) size 480x360"] [in2="blue"] [k1=0.50 k2=0.50 k3=0.50 k4=0.50]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index 4133ccc2441df74ff4f86351c95a1283ff1d4649..e0c308cc29b06cae6ca236e1113109366dce6473 100644 (file)
@@ -1,12 +1,12 @@
-KCanvasResource {id="surfaceScaleA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=1.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="surfaceScaleB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="surfaceScaleC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=-10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="diffuseConstantA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=0.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="diffuseConstantB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="diffuseConstantC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=2.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="lightingColorA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="lightingColorB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="lightingColorC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="surfaceScaleA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=1.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="surfaceScaleB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="surfaceScaleC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=-10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="diffuseConstantA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=0.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="diffuseConstantB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="diffuseConstantC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=2.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="lightingColorA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="lightingColorB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="lightingColorC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index a78ef28b838745629d4ed042e44723bb31ff4a6c..54714a36d7364de6e5ceac262cf7553173a62f1e 100644 (file)
@@ -1 +1 @@
-3472de2d21efb6c7c41752bcfbefccd9
\ No newline at end of file
+10aae9bab31ed77a33002ea93e30908d
\ No newline at end of file
index d6125a94b823bb15d028cac86815f38c48be60b1..da0e72dd4e26f19db20d1a74b4b81de524dd652f 100644 (file)
Binary files a/LayoutTests/svg/W3C-SVG-1.1/filters-displace-01-f-expected.png and b/LayoutTests/svg/W3C-SVG-1.1/filters-displace-01-f-expected.png differ
index 31f5523ff547426992715c7209a75c1da5e6ee2f..7aa8bf52568812fa47dc62259cf6a6c71f91f550 100644 (file)
@@ -1,8 +1,8 @@
-KCanvasResource {id="DispMapChecker" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE] ]]}
-KCanvasResource {id="RotateMap" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE] ]]}
-KCanvasResource {id="SphereMap" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE] ]]}
-KCanvasResource {id="RotateMapTest" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="Map"], [type=IMAGE]  [result="Texture"]]]}
-KCanvasResource {id="SphereMapTest" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="Map"], [type=IMAGE]  [result="Texture"]]]}
+KCanvasResource {id="DispMapChecker" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [subregion="at (0,0) size 480x360"]]]}
+KCanvasResource {id="RotateMap" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [subregion="at (0,0) size 480x360"]]]}
+KCanvasResource {id="SphereMap" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [subregion="at (0,0) size 480x360"]]]}
+KCanvasResource {id="RotateMapTest" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="Map"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="Texture"] [subregion="at (0,0) size 480x360"]]]}
+KCanvasResource {id="SphereMapTest" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=IMAGE]  [result="Map"] [subregion="at (0,0) size 480x360"], [type=IMAGE]  [result="Texture"] [subregion="at (0,0) size 480x360"]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index cdd8807db308c871d691c90998de42c189ce532e..cc40c5d5002a01d272ae8cce34e5a6509f8932f9 100644 (file)
@@ -1,4 +1,4 @@
-KCanvasResource {id="MyFilter" [type=FILTER]  [bounding box=at (0,0) size 200x120] [bounding box mode=0] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR] [in="SourceAlpha"] [result="blur"] [std dev. x=4.00 y=4.00], [type=OFFSET] [in="blur"] [result="offsetBlur"] [dx=4.00 dy=4.00], [type=COMPOSITE] [in="SourceGraphic"] [in2="offsetBlur"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
+KCanvasResource {id="MyFilter" [type=FILTER]  [bounding box=at (0,0) size 200x120] [bounding box mode=0] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR] [in="SourceAlpha"] [result="blur"] [subregion="at (0,0) size 200x120"] [std dev. x=4.00 y=4.00], [type=OFFSET] [in="blur"] [result="offsetBlur"] [subregion="at (0,0) size 200x120"] [dx=4.00 dy=4.00], [type=COMPOSITE] [in="SourceGraphic"] [subregion="at (0,0) size 200x120"] [in2="offsetBlur"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (-6.67,0.50) size 486.17x359
index 5374bac51ef99558f688ca6f25fd98ead7d62e8f..a5b3e8b6e85d4d04894293bc94626b4fd2bb4a1c 100644 (file)
@@ -1,5 +1,5 @@
-KCanvasResource {id="blur" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [std dev. x=10.00 y=10.00]]]}
-KCanvasResource {id="blurxy" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [std dev. x=20.00 y=1.00]]]}
+KCanvasResource {id="blur" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [subregion="at (0,0) size 480x360"] [std dev. x=10.00 y=10.00]]]}
+KCanvasResource {id="blurxy" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [subregion="at (0,0) size 480x360"] [std dev. x=20.00 y=1.00]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0,0) size 479.50x359.50
index d8bb4fbbfba993f6329563dc9abb3f3deedd74b4..e477e11ce33175fb2da3d954b0e4a3cc5bbb9ae8 100644 (file)
@@ -1,15 +1,15 @@
-KCanvasResource {id="distantLightA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="distantLightB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="distantLightC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="distantLightD" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="pointLightA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="pointLightB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="pointLightC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="pointLightD" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="spotLightA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="spotLightB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="spotLightC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
-KCanvasResource {id="spotLightD" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="distantLightA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="distantLightB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="distantLightC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="distantLightD" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="pointLightA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="pointLightB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="pointLightC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="pointLightD" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="spotLightA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="spotLightB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="spotLightC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
+KCanvasResource {id="spotLightD" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=DIFFUSE-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [diffuse constant=1.00] [kernel unit length 0.00, 0.00]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index 2ae6d2eaf36eb18a27f431540d5c9c2edd3d53de..3d6f94829fb3d51ceb2f761145fba848c466acd0 100644 (file)
@@ -1,4 +1,4 @@
-KCanvasResource {id="FOMTest" [type=FILTER]  [bounding box=at (0,0) size 250x400] [effect bounding box mode=0] [effects=[[type=OFFSET]  [result="Off1"] [dx=40.00 dy=30.00], [type=FLOOD]  [result="F1"] [color=#408000] [opacity=0.80], [type=COMPOSITE]  [result="C1"] [in2="Off1"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00], [type=OFFSET] [in="SourceGraphic"] [result="Off2"] [dx=80.00 dy=60.00], [type=FLOOD]  [result="F2"] [color=#408000] [opacity=0.60], [type=COMPOSITE]  [result="C2"] [in2="Off2"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00], [type=OFFSET] [in="SourceGraphic"] [result="Off3"] [dx=120.00 dy=90.00], [type=FLOOD]  [result="F3"] [color=#408000] [opacity=0.40], [type=COMPOSITE]  [result="C3"] [in2="Off3"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00], [type=MERGE] [merge inputs=[C3, C2, C1, SourceGraphic]]]]}
+KCanvasResource {id="FOMTest" [type=FILTER]  [bounding box=at (0,0) size 250x400] [effect bounding box mode=0] [effects=[[type=OFFSET]  [result="Off1"] [subregion="at (0,0) size 480x360"] [dx=40.00 dy=30.00], [type=FLOOD]  [result="F1"] [subregion="at (0,0) size 480x360"] [color=#408000] [opacity=0.80], [type=COMPOSITE]  [result="C1"] [subregion="at (0,0) size 480x360"] [in2="Off1"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00], [type=OFFSET] [in="SourceGraphic"] [result="Off2"] [subregion="at (0,0) size 480x360"] [dx=80.00 dy=60.00], [type=FLOOD]  [result="F2"] [subregion="at (0,0) size 480x360"] [color=#408000] [opacity=0.60], [type=COMPOSITE]  [result="C2"] [subregion="at (0,0) size 480x360"] [in2="Off2"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00], [type=OFFSET] [in="SourceGraphic"] [result="Off3"] [subregion="at (0,0) size 480x360"] [dx=120.00 dy=90.00], [type=FLOOD]  [result="F3"] [subregion="at (0,0) size 480x360"] [color=#408000] [opacity=0.40], [type=COMPOSITE]  [result="C3"] [subregion="at (0,0) size 480x360"] [in2="Off3"] [k1=0.00 k2=0.00 k3=0.00 k4=0.00], [type=MERGE]  [subregion="at (0,0) size 480x360"][merge inputs=[C3, C2, C1, SourceGraphic]]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index b77597bb4ddb908b39cea4f1ec8425ae14bdd797..50d4dc2752f57bdee0ce1b8d09fe0451bc67edc3 100644 (file)
@@ -1,15 +1,15 @@
-KCanvasResource {id="surfaceScaleA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=1.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="surfaceScaleB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="surfaceScaleC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=-10.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="specularConstantA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=0.00] [specular exponent=1.00]]]}
-KCanvasResource {id="specularConstantB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="specularConstantC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=2.00] [specular exponent=1.00]]]}
-KCanvasResource {id="specularExponentA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="specularExponentB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=2.00]]]}
-KCanvasResource {id="specularExponentC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=4.00]]]}
-KCanvasResource {id="lightingColorA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="lightingColorB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
-KCanvasResource {id="lightingColorC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="surfaceScaleA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=1.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="surfaceScaleB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="surfaceScaleC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=-10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="specularConstantA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=0.00] [specular exponent=1.00]]]}
+KCanvasResource {id="specularConstantB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="specularConstantC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=2.00] [specular exponent=1.00]]]}
+KCanvasResource {id="specularExponentA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="specularExponentB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=2.00]]]}
+KCanvasResource {id="specularExponentC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=4.00]]]}
+KCanvasResource {id="lightingColorA" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="lightingColorB" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
+KCanvasResource {id="lightingColorC" [type=FILTER]  [bounding box=at (0,0) size 100x100] [effect bounding box mode=0] [effects=[[type=SPECULAR-LIGHTING] [in="SourceGraphic"] [subregion="at (0,0) size 480x360"] [surface scale=10.00] [specual constant=1.00] [specular exponent=1.00]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index bf71589ac5261158771bd8198813b9904d1c4d3b..0a3db820f9749dca3d6b64d738cbc7584fb79705 100644 (file)
@@ -1,4 +1,4 @@
-KCanvasResource {id="feTileFilter" [type=FILTER]  [bounding box=at (115,40) size 250x250] [bounding box mode=0] [effect bounding box mode=0] [effects=[[type=FLOOD]  [subregion="at (115,40) size 54x19"] [color=#FF0000] [opacity=1.00], [type=OFFSET]  [result="offset"] [subregion="at (115,40) size 50x25"] [dx=6.00 dy=6.00], ]]}
+KCanvasResource {id="feTileFilter" [type=FILTER]  [bounding box=at (115,40) size 250x250] [bounding box mode=0] [effect bounding box mode=0] [effects=[[type=FLOOD]  [subregion="at (115,40) size 54x19"] [color=#FF0000] [opacity=1.00], [type=OFFSET]  [result="offset"] [subregion="at (115,40) size 50x25"] [dx=6.00 dy=6.00],  [subregion="at (0,0) size 480x360"]]]}
 layer at (0,0) size 480x360
   RenderCanvas at (0,0) size 480x360
     KCanvasContainer {svg} at (0.50,0.50) size 479x359
index 0812e0b386450e3e3c40f59f6f798d82c50fdc0a..9f70de356e50e0ad6b7c09d5a32c8f0d93f2b30d 100644 (file)
@@ -1 +1 @@
-d272847a1207dc919d63cccfdb9c604d
\ No newline at end of file
+0786032ac00583195a13d7021738ecbd
\ No newline at end of file
index e306accbc8388c1425d0e60de5f43fd159838edc..8506bf9f2f96246d9f8d86624f78d407b0a69972 100644 (file)
Binary files a/LayoutTests/svg/W3C-SVG-1.1/struct-image-02-b-expected.png and b/LayoutTests/svg/W3C-SVG-1.1/struct-image-02-b-expected.png differ
index c4b6c56bf82d588cb4bd8985c08d6d513e0587de..f0f46a1b1c3e430f5dde539061afe0c335be1c49 100644 (file)
@@ -6,10 +6,11 @@ layer at (0,0) size 480x360
           KCanvasContainer {use} at (0,0) size 0x0
             KCanvasContainer {g} at (0,0) size 0x0
               RenderImage {image} at (0,0) size 240x150
-        KCanvasContainer {g} at (0,0) size 0x0
-          KCanvasContainer {use} at (0,0) size 0x0
-            KCanvasContainer {g} at (0,0) size 0x0
-              KCanvasContainer {svg} at (0,0) size 0x0
+        KCanvasContainer {g} at (0,0) size 240x225
+          KCanvasContainer {use} at (0,0) size 240x225
+            KCanvasContainer {g} at (0,0) size 240x225
+              KCanvasContainer {svg} at (0,0) size 240x225
+                KCanvasItem {rect} at (0,0) size 240x225 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00L240.00,0.00L240.00,225.00L0.00,225.00"]
         KCanvasContainer {svg} at (0,0) size 240x150
           KCanvasContainer {g} at (0,0) size 240x150
             KCanvasItem {rect} at (0,0) size 240x150 [fill={[type=SOLID] [color=#00FFFF]}] [data="M0.00,0.00L240.00,0.00L240.00,150.00L0.00,150.00"]
index 2a3ef6c004486b8d3d08be48c49148cfd5723509..372d13b8923f1e34b3fc92876d243b0f56c3997d 100644 (file)
@@ -1,5 +1,5 @@
 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00L100.00,0.00L100.00,100.00L0.00,100.00]]]}
-KCanvasResource {id="myfilter" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [std dev. x=10.00 y=10.00]]]}
+KCanvasResource {id="myfilter" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [subregion="at (0,0) size 800x600"] [std dev. x=10.00 y=10.00]]]}
 layer at (0,0) size 800x600
   RenderCanvas at (0,0) size 800x600
     KCanvasContainer {svg} at (0,0) size 0x0
diff --git a/LayoutTests/svg/custom/percentage-rect-expected.checksum b/LayoutTests/svg/custom/percentage-rect-expected.checksum
new file mode 100644 (file)
index 0000000..32c3b48
--- /dev/null
@@ -0,0 +1 @@
+fbab25a750b4adfd216a10beee715e9a
\ No newline at end of file
diff --git a/LayoutTests/svg/custom/percentage-rect-expected.png b/LayoutTests/svg/custom/percentage-rect-expected.png
new file mode 100644 (file)
index 0000000..4d36b8c
Binary files /dev/null and b/LayoutTests/svg/custom/percentage-rect-expected.png differ
diff --git a/LayoutTests/svg/custom/percentage-rect-expected.txt b/LayoutTests/svg/custom/percentage-rect-expected.txt
new file mode 100644 (file)
index 0000000..4abfc22
--- /dev/null
@@ -0,0 +1,5 @@
+layer at (0,0) size 800x600
+  RenderCanvas at (0,0) size 800x600
+    KCanvasContainer {svg} at (0,0) size 102.05x100.00
+      KCanvasItem {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00L100.00,0.00L100.00,100.00L0.00,100.00"]
+      KCanvasItem {rect} at (0,0) size 102.05x100.00 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00L102.05,0.00L102.05,100.00L0.00,100.00"]
diff --git a/LayoutTests/svg/custom/percentage-rect.svg b/LayoutTests/svg/custom/percentage-rect.svg
new file mode 100644 (file)
index 0000000..46be304
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <rect height="100" width="100" fill="red"/>
+       <rect height="16.667%" width="13%" fill="green"/>
+</svg>
index b9ef71b2afc209d1ad4f9ae6f081994740764b01..3e75da362b14910d251dd92d9190ce86f2701e90 100644 (file)
@@ -1,4 +1,4 @@
-KCanvasResource {id="myfilter" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [std dev. x=3.00 y=3.00]]]}
+KCanvasResource {id="myfilter" [type=FILTER]  [bounding box=at (-10,-10) size 120x120] [effect bounding box mode=0] [effects=[[type=GAUSSIAN-BLUR]  [subregion="at (0,0) size 800x600"] [std dev. x=3.00 y=3.00]]]}
 layer at (0,0) size 800x600
   RenderCanvas at (0,0) size 800x600
     KCanvasContainer {svg} at (0,0) size 0x0
index 7c8050bda962531c0a31288c6ce618994836f9b0..3182c992cdf53446561961a0a4eb1cdf04fde62c 100644 (file)
@@ -1,3 +1,25 @@
+2006-01-25  Alexander Kellett  <lypanov@kde.org>
+
+        Reviewed by eseidel.
+
+        Percentage values for width, height are not rendered correctly.
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=5331
+
+        Create items for even empty paths to prevent an empty render tree.
+        Calculate the viewport element on the fly rather than caching it,
+        unless there is no context from which to calculate it. Call 
+        notifyAttributeChange() on layout to fix usage of viewport
+        percentages for lengths. Remove portion of code which appears to 
+        do nothing but worsen the situation.
+
+        * kcanvas/device/quartz/KCanvasItemQuartz.h:
+        * kcanvas/device/quartz/KCanvasItemQuartz.mm:
+        (KCanvasItemQuartz::layout):
+        * ksvg2/svg/SVGLengthImpl.cpp:
+        (SVGLengthImpl::value):
+        * ksvg2/svg/SVGStyledElementImpl.cpp:
+        (SVGStyledElementImpl::createRenderer):
+
 2006-01-26  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by hyatt.
index 3a3463d0acd2fc5adb1a65cb3e5ffc295e61f396..6387ada3b2558e1f1ab8bbf827f95c571c54adff 100644 (file)
@@ -38,7 +38,7 @@ public:
     virtual IntRect getAbsoluteRepaintRect();
     
     virtual bool requiresLayer() { return false; }
-    virtual void layout() { setNeedsLayout(false); }
+    virtual void layout();
     virtual void paint(PaintInfo&, int parentX, int parentY);
     virtual bool nodeAtPoint(NodeInfo&, int x, int y, int tx, int ty, WebCore::HitTestAction);
 private:
index c34df38f8465a4e640c16aef4c1565be71c5b560..615b4e43aad1592ba11de70a575222f4f05306e4 100644 (file)
@@ -45,6 +45,7 @@
 #import "QuartzSupport.h"
 
 #import "SVGRenderStyle.h"
+#import "SVGStyledElementImpl.h"
 #import "KCanvasRenderingStyle.h"
 
 
@@ -52,6 +53,15 @@ KCanvasItemQuartz::KCanvasItemQuartz(khtml::RenderStyle *style, KSVG::SVGStyledE
 {
 }
 
+void KCanvasItemQuartz::layout()
+{
+    // FIXME: Currently the DOM does all of the % length calculations, so we
+    // pretend that one of the attributes of the element has changed on the DOM
+    // to force the DOM object to update this render object with new aboslute position values.
+    static_cast<KSVG::SVGStyledElementImpl*>(element())->notifyAttributeChange();
+    setNeedsLayout(false);
+}
+
 typedef enum {
     Start,
     Mid,
index 677c2c692cdd6950724d9ef9e3662349b051476f..9fc856d0df2ddc76daa5bb2fcb789b0e9ba157f7 100644 (file)
@@ -91,27 +91,8 @@ float SVGLengthImpl::value() const
     if(m_bboxRelative)
         return value;
 
-    // Spec: When percentages are used with attributes that define the
-    // gradient vector, the pattern tile, the filter region or the masking
-    // region, a percentage represents the same value as the corresponding
-    // decimal value (e.g., 50% means the same as 0.5). 
-    khtml::RenderObject *item = (m_context ? m_context->renderer() : 0);
-    if(item)
-    {
-        FloatRect bbox = item->relativeBBox();
-
-        float result = 0;
-        if(m_mode == LM_WIDTH)
-            result = value * (bbox.width() - 1);
-        else if(m_mode == LM_HEIGHT)
-            result = value * (bbox.height() - 1);
-        else if(m_mode == LM_OTHER)
-            result = value * sqrt(pow(double(bbox.width() - 1), 2) + pow(double(bbox.height() - 1), 2)) / sqrt(2.0);
-
-        return result;
-    }
-
-    return SVGHelper::PercentageOfViewport(value, m_viewportElement, m_mode);
+    // Use the manual override "m_viewportElement" when there is no context element off of which to establish the viewport.
+    return SVGHelper::PercentageOfViewport(value, m_context ? m_context->viewportElement() : m_viewportElement, m_mode);
 }
 
 void SVGLengthImpl::setValueInSpecifiedUnits(float valueInSpecifiedUnits)
index 10345114ee46ac267bf8c6701e329cd2fef03119..2a0f153e09c24779caf8e450dd45d53b8b857952 100644 (file)
@@ -73,7 +73,7 @@ SVGAnimatedStringImpl *SVGStyledElementImpl::className() const
 khtml::RenderObject *SVGStyledElementImpl::createRenderer(RenderArena *arena, khtml::RenderStyle *style)
 {
     RefPtr<KCanvasPath> pathData = toPathData();
-    if (!pathData || pathData->isEmpty())
+    if (!pathData)
         return 0;
     return QPainter::renderingDevice()->createItem(arena, style, this, pathData.get());
 }