Title: [96530] trunk
- Revision
- 96530
- Author
- [email protected]
- Date
- 2011-10-03 12:54:45 -0700 (Mon, 03 Oct 2011)
Log Message
SVG Pattern tile pixelated on patternTransform
https://bugs.webkit.org/show_bug.cgi?id=69261
Source/WebCore:
Reviewed by Rob Buis.
Scale the SVG pattern tile by the scale level of patternTransform to avoid pixelation.
Test: svg/custom/pattern-scaled-pattern-space.svg
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
LayoutTests:
Reviewed by Rob Buis.
Add a new test to check that SVG pattern tiles are not pixelated on
scaling with patternTransform.
Updated two more pixel tests. Both changes are progressions.
* platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
* platform/mac/svg/custom/non-scaling-stroke-expected.png:
* svg/custom/pattern-scaled-pattern-space-expected.png: Added.
* svg/custom/pattern-scaled-pattern-space-expected.txt: Added.
* svg/custom/pattern-scaled-pattern-space.svg: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (96529 => 96530)
--- trunk/LayoutTests/ChangeLog 2011-10-03 19:52:01 UTC (rev 96529)
+++ trunk/LayoutTests/ChangeLog 2011-10-03 19:54:45 UTC (rev 96530)
@@ -1,3 +1,20 @@
+2011-10-03 Dirk Schulze <[email protected]>
+
+ SVG Pattern tile pixelated on patternTransform
+ https://bugs.webkit.org/show_bug.cgi?id=69261
+
+ Reviewed by Rob Buis.
+
+ Add a new test to check that SVG pattern tiles are not pixelated on
+ scaling with patternTransform.
+ Updated two more pixel tests. Both changes are progressions.
+
+ * platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
+ * platform/mac/svg/custom/non-scaling-stroke-expected.png:
+ * svg/custom/pattern-scaled-pattern-space-expected.png: Added.
+ * svg/custom/pattern-scaled-pattern-space-expected.txt: Added.
+ * svg/custom/pattern-scaled-pattern-space.svg: Added.
+
2011-10-03 Adam Barth <[email protected]>
Another round of updates after http://trac.webkit.org/changeset/96509.
Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/svg/custom/non-scaling-stroke-expected.png
(Binary files differ)
Added: trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space-expected.png
(Binary files differ)
Property changes on: trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space-expected.png
___________________________________________________________________
Added: svn:mime-type
Added: trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space-expected.txt (0 => 96530)
--- trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space-expected.txt (rev 0)
+++ trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space-expected.txt 2011-10-03 19:54:45 UTC (rev 96530)
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderSVGRoot {svg} at (0,0) size 200x200
+ RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+ RenderSVGResourcePattern {pattern} [id="pattern"] [patternUnits=userSpaceOnUse] [patternContentUnits=userSpaceOnUse] [patternTransform={m=((40.00,0.00)(0.00,40.00)) t=(0.00,0.00)}]
+ RenderSVGPath {circle} at (0,0) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [cx=2.50] [cy=2.50] [r=2.50]
+ RenderSVGPath {rect} at (0,0) size 200x200 [fill={[type=PATTERN] [id="pattern"]}] [x=0.00] [y=0.00] [width=200.00] [height=200.00]
Added: trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space.svg (0 => 96530)
--- trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space.svg (rev 0)
+++ trunk/LayoutTests/svg/custom/pattern-scaled-pattern-space.svg 2011-10-03 19:54:45 UTC (rev 96530)
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+<defs>
+<pattern id="pattern" width="5" height="5" patternUnits="userSpaceOnUse" patternTransform="scale(40)">
+ <circle cx="2.5" cy="2.5" r="2.5" fill="lime" />
+</pattern>
+</defs>
+<rect width="200" height="200" fill="url(#pattern)"/>
+</svg>
Modified: trunk/Source/WebCore/ChangeLog (96529 => 96530)
--- trunk/Source/WebCore/ChangeLog 2011-10-03 19:52:01 UTC (rev 96529)
+++ trunk/Source/WebCore/ChangeLog 2011-10-03 19:54:45 UTC (rev 96530)
@@ -1,3 +1,17 @@
+2011-10-03 Dirk Schulze <[email protected]>
+
+ SVG Pattern tile pixelated on patternTransform
+ https://bugs.webkit.org/show_bug.cgi?id=69261
+
+ Reviewed by Rob Buis.
+
+ Scale the SVG pattern tile by the scale level of patternTransform to avoid pixelation.
+
+ Test: svg/custom/pattern-scaled-pattern-space.svg
+
+ * rendering/svg/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::applyResource):
+
2011-10-03 Jer Noble <[email protected]>
Enable WEB_AUDIO by default in the WebKit/mac port.
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp (96529 => 96530)
--- trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp 2011-10-03 19:52:01 UTC (rev 96529)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp 2011-10-03 19:54:45 UTC (rev 96530)
@@ -122,6 +122,9 @@
FloatRect absoluteTileBoundaries = absoluteTransformIgnoringRotation.mapRect(tileBoundaries);
FloatRect clampedAbsoluteTileBoundaries;
+ // Scale the tile size to match the scale level of the patternTransform.
+ absoluteTileBoundaries.scale(m_attributes.patternTransform().xScale(), m_attributes.patternTransform().yScale());
+
// Build tile image.
OwnPtr<ImageBuffer> tileImage = createTileImage(m_attributes, tileBoundaries, absoluteTileBoundaries, tileImageTransform, clampedAbsoluteTileBoundaries);
if (!tileImage)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes