[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
alex at webkit.org
alex at webkit.org
Wed Dec 22 11:54:59 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit aa299d01c17de8d8ada1c71425c846a7a3af14d3
Author: alex at webkit.org <alex at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Aug 11 08:43:13 2010 +0000
2010-08-11 Alejandro G. Castro <alex at igalia.com>
Reviewed by Dirk Schulze.
Fixes to the gaussian blur algorithm
https://bugs.webkit.org/show_bug.cgi?id=41605
Added the recomendations of SVG regarding the kernel size
calculation for the approximation of the gaussian
blur. http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement.
Modified also some variable names to clarify algorithm, reviewed
the situation where both standard deviations are 0.
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::FEGaussianBlur):
(WebCore::FEGaussianBlur::stdDeviationX):
(WebCore::FEGaussianBlur::setStdDeviationX):
(WebCore::FEGaussianBlur::stdDeviationY):
(WebCore::FEGaussianBlur::setStdDeviationY):
(WebCore::boxBlur):
(WebCore::FEGaussianBlur::kernelPosition): Added the SVG kernel
position recomendation.
(WebCore::FEGaussianBlur::apply):
(WebCore::FEGaussianBlur::externalRepresentation):
* platform/graphics/filters/FEGaussianBlur.h:
2010-08-11 Alejandro G. Castro <alex at igalia.com>
Reviewed by Dirk Schulze.
Fixes to the gaussian blur algorithm
https://bugs.webkit.org/show_bug.cgi?id=41605
Unskipped test and generated results.
* platform/gtk/Skipped:
* platform/gtk/svg/filters/feGaussianBlur-expected.txt: Added.
Updated pixel tests.
* platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum:
* platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png:
* platform/mac-leopard/svg/batik/text/textProperties-expected.checksum:
* platform/mac-leopard/svg/batik/text/textProperties-expected.png:
* platform/mac-leopard/svg/custom/mask-colorspace-expected.png:
* platform/mac-leopard/svg/filters/feGaussianBlur-expected.checksum:
* platform/mac-leopard/svg/filters/feGaussianBlur-expected.png:
* platform/mac-leopard/svg/filters/shadow-on-filter-expected.checksum:
* platform/mac-leopard/svg/filters/shadow-on-filter-expected.png:
* platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum:
* platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png:
* platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum:
* platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png:
* platform/mac/svg/batik/text/textEffect-expected.checksum:
* platform/mac/svg/batik/text/textEffect-expected.png:
* platform/mac/svg/batik/text/textEffect3-expected.checksum:
* platform/mac/svg/batik/text/textEffect3-expected.png:
* platform/mac/svg/batik/text/textFeatures-expected.checksum:
* platform/mac/svg/batik/text/textFeatures-expected.png:
* platform/mac/svg/custom/non-opaque-filters-expected.checksum:
* platform/mac/svg/custom/non-opaque-filters-expected.png:
* platform/mac/svg/custom/recursive-filter-expected.checksum:
* platform/mac/svg/custom/recursive-filter-expected.png:
* platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum:
* platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png:
* platform/mac/svg/custom/text-filter-expected.checksum:
* platform/mac/svg/custom/text-filter-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.png:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.checksum:
* platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.png:
* platform/mac/svg/filters/filter-on-filter-for-text-expected.checksum:
* platform/mac/svg/filters/filter-on-filter-for-text-expected.png:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index eca970e..4d464dd 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,63 @@
+2010-08-11 Alejandro G. Castro <alex at igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ Fixes to the gaussian blur algorithm
+ https://bugs.webkit.org/show_bug.cgi?id=41605
+
+ Unskipped test and generated results.
+
+ * platform/gtk/Skipped:
+ * platform/gtk/svg/filters/feGaussianBlur-expected.txt: Added.
+
+ Updated pixel tests.
+
+ * platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum:
+ * platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png:
+ * platform/mac-leopard/svg/batik/text/textProperties-expected.checksum:
+ * platform/mac-leopard/svg/batik/text/textProperties-expected.png:
+ * platform/mac-leopard/svg/custom/mask-colorspace-expected.png:
+ * platform/mac-leopard/svg/filters/feGaussianBlur-expected.checksum:
+ * platform/mac-leopard/svg/filters/feGaussianBlur-expected.png:
+ * platform/mac-leopard/svg/filters/shadow-on-filter-expected.checksum:
+ * platform/mac-leopard/svg/filters/shadow-on-filter-expected.png:
+ * platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum:
+ * platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png:
+ * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum:
+ * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png:
+ * platform/mac/svg/batik/text/textEffect-expected.checksum:
+ * platform/mac/svg/batik/text/textEffect-expected.png:
+ * platform/mac/svg/batik/text/textEffect3-expected.checksum:
+ * platform/mac/svg/batik/text/textEffect3-expected.png:
+ * platform/mac/svg/batik/text/textFeatures-expected.checksum:
+ * platform/mac/svg/batik/text/textFeatures-expected.png:
+ * platform/mac/svg/custom/non-opaque-filters-expected.checksum:
+ * platform/mac/svg/custom/non-opaque-filters-expected.png:
+ * platform/mac/svg/custom/recursive-filter-expected.checksum:
+ * platform/mac/svg/custom/recursive-filter-expected.png:
+ * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum:
+ * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png:
+ * platform/mac/svg/custom/text-filter-expected.checksum:
+ * platform/mac/svg/custom/text-filter-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.png:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.checksum:
+ * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.png:
+ * platform/mac/svg/filters/filter-on-filter-for-text-expected.checksum:
+ * platform/mac/svg/filters/filter-on-filter-for-text-expected.png:
+
2010-08-11 Fumitoshi Ukai <ukai at chromium.org>
Reviewed by Alexey Proskuryakov.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index 8251c0d..480169c 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -5145,7 +5145,6 @@ svg/custom/js-update-image-and-display.svg
svg/custom/mask-with-default-value.svg
svg/custom/outer-svg-unknown-feature.svg
svg/filters/feComposite.svg
-svg/filters/feGaussianBlur.svg
svg/filters/feMerge.svg
svg/filters/feMerge-wrong-input.svg
svg/filters/feOffset.svg
diff --git a/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum b/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum
index 5876769..5f14945 100644
--- a/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum
+++ b/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum
@@ -1 +1 @@
-34f79ef1fbb73a01e8aec8bb2e8455eb
\ No newline at end of file
+dc3c93fea9c9f7c07f2e4bcd1aefe2b0
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png b/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png
index da39678..e485be8 100644
Binary files a/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png and b/LayoutTests/platform/mac-leopard/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.checksum b/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.checksum
index 3b626ef..457481c 100644
--- a/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.checksum
+++ b/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.checksum
@@ -1 +1 @@
-7ac90845492b90c794aca5a6d005acd8
\ No newline at end of file
+a3d8bc0cc8481bd140592dcb3fcaf420
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.png b/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.png
index 00091d4..eae80ef 100644
Binary files a/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.png and b/LayoutTests/platform/mac-leopard/svg/batik/text/textProperties-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/custom/mask-colorspace-expected.png b/LayoutTests/platform/mac-leopard/svg/custom/mask-colorspace-expected.png
index 8e39608..55c6b04 100644
Binary files a/LayoutTests/platform/mac-leopard/svg/custom/mask-colorspace-expected.png and b/LayoutTests/platform/mac-leopard/svg/custom/mask-colorspace-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.checksum b/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.checksum
index 88361b2..920e218 100644
--- a/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.checksum
+++ b/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.checksum
@@ -1 +1 @@
-f3318b6d1298eda9ee6363189136f00b
\ No newline at end of file
+7cb949d5ea30e101ea1d193398d7dfbf
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.png b/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.png
index ed9a06d..e1a805b 100644
Binary files a/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.png and b/LayoutTests/platform/mac-leopard/svg/filters/feGaussianBlur-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.checksum b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.checksum
index 34ff8bc..179c927 100644
--- a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.checksum
+++ b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.checksum
@@ -1 +1 @@
-0dd0bccfd1290c9d1361ee69593a4d6e
\ No newline at end of file
+8e475e1e09357e8d50c695e6ca734b93
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.png b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.png
index 2d67529..db7255b 100644
Binary files a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.png and b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-filter-expected.png differ
diff --git a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum
index 9c2a961..624b011 100644
--- a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum
+++ b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum
@@ -1 +1 @@
-c2f1aa1ba34ce5d2a4217daa9002179e
\ No newline at end of file
+19b5d78801f2d08d4249c8d238aded55
\ No newline at end of file
diff --git a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png
index 63f28a5..7cfce70 100644
Binary files a/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png and b/LayoutTests/platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum
index d283320..bffb4b1 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum
@@ -1 +1 @@
-c0ccdff2628158da021f32ba7af1e47c
\ No newline at end of file
+f7717b50eeca605243da2930e64940ac
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png
index e62ad85..a006175 100644
Binary files a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png and b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.checksum b/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.checksum
index c1ee7ca..28d7dc4 100644
--- a/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.checksum
+++ b/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.checksum
@@ -1 +1 @@
-7651f6c33dceb07248402e7fb11c57f1
\ No newline at end of file
+0e76f04b2984b3e4bfaa1779eedf7af6
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.png b/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.png
index f545e03..3dd9ec1 100644
Binary files a/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.png and b/LayoutTests/platform/mac/svg/batik/text/textEffect-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.checksum b/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.checksum
index ab06815..75c72b0 100644
--- a/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.checksum
+++ b/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.checksum
@@ -1 +1 @@
-d7f76e45d195413b296ca2deb3910c77
\ No newline at end of file
+11ee970a315adb062f1c0c3960253ff5
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png b/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png
index f7ec367..f25442e 100644
Binary files a/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png and b/LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.checksum b/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.checksum
index 72dcecf..eb7e310 100644
--- a/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.checksum
+++ b/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.checksum
@@ -1 +1 @@
-c769d5472cf882e729c24a6bfde679df
\ No newline at end of file
+6b2078e5c0d3486665431e4b40cb7b4c
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.png b/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.png
index 0984607..28b2f54 100644
Binary files a/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.png and b/LayoutTests/platform/mac/svg/batik/text/textFeatures-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.checksum b/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.checksum
index d431e41..2d50b74 100644
--- a/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.checksum
+++ b/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.checksum
@@ -1 +1 @@
-41be27d1eb69c595bf1008c91e33986e
\ No newline at end of file
+233fea7c5e41ee0ca468848c6eb3da7d
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.png b/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.png
index 12cccfa..663e1ee 100644
Binary files a/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.png and b/LayoutTests/platform/mac/svg/custom/non-opaque-filters-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.checksum b/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.checksum
index b897005..615a1e1 100644
--- a/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.checksum
+++ b/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.checksum
@@ -1 +1 @@
-0e4859e3b02f2f48bba2c68cad4e0e7b
\ No newline at end of file
+bf1540c2d63cfbe404253f1cead165f7
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.png b/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.png
index 0d5315d..925121f 100644
Binary files a/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.png and b/LayoutTests/platform/mac/svg/custom/recursive-filter-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum b/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum
index 36c6826..3176886 100644
--- a/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum
+++ b/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum
@@ -1 +1 @@
-def3237c2a760761dec917e57f640cf2
\ No newline at end of file
+81be80c359177d1c77f3118e94802bee
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png b/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png
index dc63fb0..d2ad560 100644
Binary files a/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png and b/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/custom/text-filter-expected.checksum b/LayoutTests/platform/mac/svg/custom/text-filter-expected.checksum
index 044dee7..4f0acf8 100644
--- a/LayoutTests/platform/mac/svg/custom/text-filter-expected.checksum
+++ b/LayoutTests/platform/mac/svg/custom/text-filter-expected.checksum
@@ -1 +1 @@
-30be532effae934d62209ee6e73a4476
\ No newline at end of file
+54c828205d2241acc305c3b40534794b
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/custom/text-filter-expected.png b/LayoutTests/platform/mac/svg/custom/text-filter-expected.png
index a9217bd..ae5c7c7 100644
Binary files a/LayoutTests/platform/mac/svg/custom/text-filter-expected.png and b/LayoutTests/platform/mac/svg/custom/text-filter-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum
index 9f1781f..6aff524 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum
@@ -1 +1 @@
-17f613f518fa96eaf04b5665376f21c6
\ No newline at end of file
+133d41ed5215bc4e93601ec45682bec0
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png
index 71a363d..78320ce 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum
index 590e176..fc677b3 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum
@@ -1 +1 @@
-cb0a1ce11b98bb8f20caee21cc827537
\ No newline at end of file
+fd5cc3a0a27955bf90c5558140012a9a
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.png
index 7497a07..8d0d528 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.checksum
index 6c929d5..c4d8f80 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.checksum
@@ -1 +1 @@
-0a7d21c1b0e8f4cfaf45b63f545a9f66
\ No newline at end of file
+9959235d96473029f2d29d73b9cc7112
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.png
index db0c05d..3f35559 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-lighting-color-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.checksum
index 9e462e1..8b4ae62 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.checksum
@@ -1 +1 @@
-867d80dd6ba1e356566c66bad2bdc739
\ No newline at end of file
+d7f015d11a52c6b3a881be30f65ddd20
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.png
index 2d83833..0a4177e 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-surfaceScale-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum
index 1a1fa39..097ff26 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum
@@ -1 +1 @@
-3ebe46f74da6ce45855377513b293ba7
\ No newline at end of file
+d53a2e4153d3748984be458e53e813f2
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png
index 254485b..34b12ca 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.checksum
index 8fcece4..bccc1cd 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.checksum
@@ -1 +1 @@
-a25087cfe3b4741de25f13c273bbd06e
\ No newline at end of file
+256adccb5136d5345d480eb3ee067579
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.png
index 4cfda4a..fa88d88 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-diffuseConstant-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.checksum
index 97a3e5d..71d2f15 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.checksum
@@ -1 +1 @@
-2061b100f62c1e13f737bfacf3b9a6d6
\ No newline at end of file
+c43a3e81d71c9fb60a1ae1c7525a5f71
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.png
index 9f96b53..7585182 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-in-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.checksum
index b55747d..1426bf3 100644
--- a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.checksum
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.checksum
@@ -1 +1 @@
-4ba162b04759b146548003b5c1a17477
\ No newline at end of file
+8a344e71484fcdd6b1cbd3bc4da22aa6
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.png
index 494a9aa..254f408 100644
Binary files a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.png and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-svgdom-surfaceScale-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.checksum b/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.checksum
index 3e60472..a81dd34 100644
--- a/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.checksum
+++ b/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.checksum
@@ -1 +1 @@
-43ef38740a8ab2373ed5ee0df84f2699
\ No newline at end of file
+b850bc401490e135c73688e0c90e760d
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.png b/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.png
index 2820fab..d06a14a 100644
Binary files a/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.png and b/LayoutTests/platform/mac/svg/filters/filter-on-filter-for-text-expected.png differ
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index f82e94d..cf030ae 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,29 @@
+2010-08-11 Alejandro G. Castro <alex at igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ Fixes to the gaussian blur algorithm
+ https://bugs.webkit.org/show_bug.cgi?id=41605
+
+ Added the recomendations of SVG regarding the kernel size
+ calculation for the approximation of the gaussian
+ blur. http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement.
+ Modified also some variable names to clarify algorithm, reviewed
+ the situation where both standard deviations are 0.
+
+ * platform/graphics/filters/FEGaussianBlur.cpp:
+ (WebCore::FEGaussianBlur::FEGaussianBlur):
+ (WebCore::FEGaussianBlur::stdDeviationX):
+ (WebCore::FEGaussianBlur::setStdDeviationX):
+ (WebCore::FEGaussianBlur::stdDeviationY):
+ (WebCore::FEGaussianBlur::setStdDeviationY):
+ (WebCore::boxBlur):
+ (WebCore::FEGaussianBlur::kernelPosition): Added the SVG kernel
+ position recomendation.
+ (WebCore::FEGaussianBlur::apply):
+ (WebCore::FEGaussianBlur::externalRepresentation):
+ * platform/graphics/filters/FEGaussianBlur.h:
+
2010-08-11 Kristian Monsen <kristianm at google.com>
Reviewed by Steve Block.
diff --git a/WebCore/platform/graphics/filters/FEGaussianBlur.cpp b/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
index 61aea90..e0c29e6 100644
--- a/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
+++ b/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
@@ -3,6 +3,7 @@
2004, 2005 Rob Buis <buis at kde.org>
2005 Eric Seidel <eric at webkit.org>
2009 Dirk Schulze <krit at webkit.org>
+ 2010 Igalia, S.L.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -29,18 +30,19 @@
#include "Filter.h"
#include "GraphicsContext.h"
#include "ImageData.h"
-#include <math.h>
#include <wtf/MathExtras.h>
using std::max;
+static const float gGaussianKernelFactor = (3 * sqrtf(2 * piFloat) / 4.f);
+
namespace WebCore {
FEGaussianBlur::FEGaussianBlur(FilterEffect* in, const float& x, const float& y)
: FilterEffect()
, m_in(in)
- , m_x(x)
- , m_y(y)
+ , m_stdX(x)
+ , m_stdY(y)
{
}
@@ -51,30 +53,27 @@ PassRefPtr<FEGaussianBlur> FEGaussianBlur::create(FilterEffect* in, const float&
float FEGaussianBlur::stdDeviationX() const
{
- return m_x;
+ return m_stdX;
}
void FEGaussianBlur::setStdDeviationX(float x)
{
- m_x = x;
+ m_stdX = x;
}
float FEGaussianBlur::stdDeviationY() const
{
- return m_y;
+ return m_stdY;
}
void FEGaussianBlur::setStdDeviationY(float y)
{
- m_y = y;
+ m_stdY = y;
}
static void boxBlur(CanvasPixelArray*& srcPixelArray, CanvasPixelArray*& dstPixelArray,
- unsigned dx, int stride, int strideLine, int effectWidth, int effectHeight, bool alphaImage)
+ unsigned dx, int dxLeft, int dxRight, int stride, int strideLine, int effectWidth, int effectHeight, bool alphaImage)
{
- int dxLeft = dx / 2;
- int dxRight = dx - dxLeft;
-
for (int y = 0; y < effectHeight; ++y) {
int line = y * strideLine;
for (int channel = 3; channel >= 0; --channel) {
@@ -99,6 +98,34 @@ static void boxBlur(CanvasPixelArray*& srcPixelArray, CanvasPixelArray*& dstPixe
}
}
+void FEGaussianBlur::kernelPosition(int boxBlur, unsigned& std, int& dLeft, int& dRight)
+{
+ // check http://www.w3.org/TR/SVG/filters.html#feGaussianBlurElement for details
+ switch (boxBlur) {
+ case 0:
+ if (!(std % 2)) {
+ dLeft = std / 2 - 1;
+ dRight = std - dLeft;
+ } else {
+ dLeft = std / 2;
+ dRight = std - dLeft;
+ }
+ break;
+ case 1:
+ if (!(std % 2)) {
+ dLeft++;
+ dRight--;
+ }
+ break;
+ case 2:
+ if (!(std % 2)) {
+ dRight++;
+ std++;
+ }
+ break;
+ }
+}
+
void FEGaussianBlur::apply(Filter* filter)
{
m_in->apply(filter);
@@ -110,26 +137,47 @@ void FEGaussianBlur::apply(Filter* filter)
setIsAlphaImage(m_in->isAlphaImage());
- if (m_x == 0 || m_y == 0)
+ IntRect effectDrawingRect = calculateDrawingIntRect(m_in->scaledSubRegion());
+ RefPtr<ImageData> srcImageData(m_in->resultImage()->getPremultipliedImageData(effectDrawingRect));
+ IntRect imageRect(IntPoint(), resultImage()->size());
+
+ if (!m_stdX && !m_stdY) {
+ resultImage()->putPremultipliedImageData(srcImageData.get(), imageRect, IntPoint());
return;
+ }
- unsigned sdx = static_cast<unsigned>(floor(m_x * filter->filterResolution().width() * 3 * sqrt(2 * piDouble) / 4.f + 0.5f));
- unsigned sdy = static_cast<unsigned>(floor(m_y * filter->filterResolution().height() * 3 * sqrt(2 * piDouble) / 4.f + 0.5f));
- sdx = max(sdx, static_cast<unsigned>(1));
- sdy = max(sdy, static_cast<unsigned>(1));
+ unsigned kernelSizeX = 0;
+ if (m_stdX)
+ kernelSizeX = max(2U, static_cast<unsigned>(floor(m_stdX * filter->filterResolution().width() * gGaussianKernelFactor + 0.5f)));
- IntRect effectDrawingRect = calculateDrawingIntRect(m_in->scaledSubRegion());
- RefPtr<ImageData> srcImageData(m_in->resultImage()->getPremultipliedImageData(effectDrawingRect));
- CanvasPixelArray* srcPixelArray(srcImageData->data());
+ unsigned kernelSizeY = 0;
+ if (m_stdY)
+ kernelSizeY = max(2U, static_cast<unsigned>(floor(m_stdY * filter->filterResolution().height() * gGaussianKernelFactor + 0.5f)));
- IntRect imageRect(IntPoint(), resultImage()->size());
+ CanvasPixelArray* srcPixelArray(srcImageData->data());
RefPtr<ImageData> tmpImageData = ImageData::create(imageRect.width(), imageRect.height());
CanvasPixelArray* tmpPixelArray(tmpImageData->data());
int stride = 4 * imageRect.width();
+ int dxLeft, dxRight, dyLeft, dyRight;
for (int i = 0; i < 3; ++i) {
- boxBlur(srcPixelArray, tmpPixelArray, sdx, 4, stride, imageRect.width(), imageRect.height(), isAlphaImage());
- boxBlur(tmpPixelArray, srcPixelArray, sdy, stride, 4, imageRect.height(), imageRect.width(), isAlphaImage());
+ if (kernelSizeX) {
+ kernelPosition(i, kernelSizeX, dxLeft, dxRight);
+ boxBlur(srcPixelArray, tmpPixelArray, kernelSizeX, dxLeft, dxRight, 4, stride, imageRect.width(), imageRect.height(), isAlphaImage());
+ } else {
+ CanvasPixelArray* auxPixelArray = tmpPixelArray;
+ tmpPixelArray = srcPixelArray;
+ srcPixelArray = auxPixelArray;
+ }
+
+ if (kernelSizeY) {
+ kernelPosition(i, kernelSizeY, dyLeft, dyRight);
+ boxBlur(tmpPixelArray, srcPixelArray, kernelSizeY, dyLeft, dyRight, stride, 4, imageRect.height(), imageRect.width(), isAlphaImage());
+ } else {
+ CanvasPixelArray* auxPixelArray = tmpPixelArray;
+ tmpPixelArray = srcPixelArray;
+ srcPixelArray = auxPixelArray;
+ }
}
resultImage()->putPremultipliedImageData(srcImageData.get(), imageRect, IntPoint());
@@ -144,7 +192,7 @@ TextStream& FEGaussianBlur::externalRepresentation(TextStream& ts, int indent) c
writeIndent(ts, indent);
ts << "[feGaussianBlur";
FilterEffect::externalRepresentation(ts);
- ts << " stdDeviation=\"" << m_x << ", " << m_y << "\"]\n";
+ ts << " stdDeviation=\"" << m_stdX << ", " << m_stdY << "\"]\n";
m_in->externalRepresentation(ts, indent + 1);
return ts;
}
diff --git a/WebCore/platform/graphics/filters/FEGaussianBlur.h b/WebCore/platform/graphics/filters/FEGaussianBlur.h
index bcc030e..4c7c43c 100644
--- a/WebCore/platform/graphics/filters/FEGaussianBlur.h
+++ b/WebCore/platform/graphics/filters/FEGaussianBlur.h
@@ -45,10 +45,11 @@ public:
private:
FEGaussianBlur(FilterEffect*, const float&, const float&);
+ static void kernelPosition(int boxBlur, unsigned& std, int& dLeft, int& dRight);
RefPtr<FilterEffect> m_in;
- float m_x;
- float m_y;
+ float m_stdX;
+ float m_stdY;
};
} // namespace WebCore
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list