Title: [89365] branches/chromium/782
Revision
89365
Author
le...@chromium.org
Date
2011-06-21 11:04:17 -0700 (Tue, 21 Jun 2011)

Log Message

Merge 87846 - 2011-06-01  Levi Weintraub  <le...@chromium.org>

        Reviewed by Eric Seidel.

        Text is scaled in a stair-step pattern
        https://bugs.webkit.org/show_bug.cgi?id=60317

        Stop scaling the specified font to the actual on-screen value when font-rendering: 
        geometricPrecision is specified, but instead scale the graphics context. This allows
        us to scale text up and down smoothly.

        Test: svg/text/scaling-font-with-geometric-precision.html

        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
2011-06-01  Levi Weintraub  <le...@chromium.org>

        Reviewed by Eric Seidel.

        Text is scaled in a stair-step pattern
        https://bugs.webkit.org/show_bug.cgi?id=60317

        Stop scaling the specified font to the actual on-screen value when font-rendering: 
        geometricPrecision is specified, but instead scale the graphics context. This allows
        us to scale text up and down smoothly.

        * platform/mac/svg/text/scaling-font-with-geometric-precision-expected.png: Added.
        * platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt: Added.
        * svg/text/scaling-font-with-geometric-precision.html: Added.


TBR=le...@chromium.org
Review URL: http://codereview.chromium.org/7218014

Modified Paths

Added Paths

Diff

Modified: branches/chromium/782/LayoutTests/ChangeLog (89364 => 89365)


--- branches/chromium/782/LayoutTests/ChangeLog	2011-06-21 18:03:36 UTC (rev 89364)
+++ branches/chromium/782/LayoutTests/ChangeLog	2011-06-21 18:04:17 UTC (rev 89365)
@@ -1,3 +1,18 @@
+2011-06-21  Levi Weintraub  <le...@chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Text is scaled in a stair-step pattern
+        https://bugs.webkit.org/show_bug.cgi?id=60317
+
+        Stop scaling the specified font to the actual on-screen value when font-rendering: 
+        geometricPrecision is specified, but instead scale the graphics context. This allows
+        us to scale text up and down smoothly.
+
+        * platform/mac/svg/text/scaling-font-with-geometric-precision-expected.png: Added.
+        * platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt: Added.
+        * svg/text/scaling-font-with-geometric-precision.html: Added.
+
 2011-06-08  John Bauman  <jbau...@chromium.org>
 
         Reviewed by James Robinson.

Copied: branches/chromium/782/LayoutTests/platform/mac/svg/text/scaling-font-with-geometric-precision-expected.png (from rev 87846, trunk/LayoutTests/platform/mac/svg/text/scaling-font-with-geometric-precision-expected.png)


(Binary files differ)

Copied: branches/chromium/782/LayoutTests/platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt (from rev 87846, trunk/LayoutTests/platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt) (0 => 89365)


--- branches/chromium/782/LayoutTests/platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt	                        (rev 0)
+++ branches/chromium/782/LayoutTests/platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt	2011-06-21 18:04:17 UTC (rev 89365)
@@ -0,0 +1,165 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+layer at (8,8) size 275x560
+  RenderSVGRoot {svg} at (8,8) size 259x462
+    RenderSVGText {text} at (0,-2) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,5.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,2) size 88x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 88x11
+        chunk 1 text run 1 at (0.00,10.00) startOffset 0 endOffset 32 width 87.27: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,7) size 80x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 80x11
+        chunk 1 text run 1 at (0.00,15.00) startOffset 0 endOffset 32 width 80.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,12) size 74x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 74x10
+        chunk 1 text run 1 at (0.00,20.00) startOffset 0 endOffset 32 width 73.85: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,17) size 69x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 69x10
+        chunk 1 text run 1 at (0.00,25.00) startOffset 0 endOffset 32 width 68.57: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,22) size 64x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x10
+        chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,27) size 80x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 80x11
+        chunk 1 text run 1 at (0.00,35.00) startOffset 0 endOffset 32 width 80.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,32) size 76x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 76x11
+        chunk 1 text run 1 at (0.00,40.00) startOffset 0 endOffset 32 width 75.29: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,38) size 72x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 72x9
+        chunk 1 text run 1 at (0.00,45.00) startOffset 0 endOffset 32 width 71.11: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,43) size 68x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 68x9
+        chunk 1 text run 1 at (0.00,50.00) startOffset 0 endOffset 32 width 67.37: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,48) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,55.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,52) size 77x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 77x11
+        chunk 1 text run 1 at (0.00,60.00) startOffset 0 endOffset 32 width 76.19: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,57) size 73x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 73x11
+        chunk 1 text run 1 at (0.00,65.00) startOffset 0 endOffset 32 width 72.73: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,62) size 70x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 70x10
+        chunk 1 text run 1 at (0.00,70.00) startOffset 0 endOffset 32 width 69.57: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,67) size 67x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 67x10
+        chunk 1 text run 1 at (0.00,75.00) startOffset 0 endOffset 32 width 66.67: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,72) size 77x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 77x10
+        chunk 1 text run 1 at (0.00,80.00) startOffset 0 endOffset 32 width 76.80: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,77) size 74x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 74x11
+        chunk 1 text run 1 at (0.00,85.00) startOffset 0 endOffset 32 width 73.85: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,82) size 72x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 72x11
+        chunk 1 text run 1 at (0.00,90.00) startOffset 0 endOffset 32 width 71.11: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,88) size 69x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 69x9
+        chunk 1 text run 1 at (0.00,95.00) startOffset 0 endOffset 32 width 68.57: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,93) size 67x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 67x9
+        chunk 1 text run 1 at (0.00,100.00) startOffset 0 endOffset 32 width 66.21: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,97) size 75x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 75x10
+        chunk 1 text run 1 at (0.00,105.00) startOffset 0 endOffset 32 width 74.67: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,102) size 73x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 73x11
+        chunk 1 text run 1 at (0.00,110.00) startOffset 0 endOffset 32 width 72.26: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,107) size 70x11 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 70x11
+        chunk 1 text run 1 at (0.00,115.00) startOffset 0 endOffset 32 width 70.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,112) size 68x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 68x10
+        chunk 1 text run 1 at (0.00,120.00) startOffset 0 endOffset 32 width 67.88: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,117) size 76x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 76x10
+        chunk 1 text run 1 at (0.00,125.00) startOffset 0 endOffset 32 width 75.29: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,122) size 74x10 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 74x10
+        chunk 1 text run 1 at (0.00,130.00) startOffset 0 endOffset 32 width 73.14: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+layer at (275,8) size 275x560
+  RenderSVGRoot {svg} at (275,8) size 224x462
+    RenderSVGText {text} at (0,-2) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,5.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,3) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,10.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,8) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,15.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,13) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,20.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,18) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,25.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,23) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,28) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,35.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,33) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,40.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,38) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,45.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,43) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,50.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,48) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,55.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,53) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,60.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,58) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,65.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,63) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,70.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,68) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,75.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,73) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,80.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,78) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,85.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,83) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,90.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,88) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,95.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,93) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,100.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,98) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,105.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,103) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,110.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,108) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,115.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,113) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,120.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,118) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,125.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
+    RenderSVGText {text} at (0,123) size 64x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,0) size 64x9
+        chunk 1 text run 1 at (0.00,130.00) startOffset 0 endOffset 32 width 64.00: "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"

Copied: branches/chromium/782/LayoutTests/svg/text/scaling-font-with-geometric-precision.html (from rev 87846, trunk/LayoutTests/svg/text/scaling-font-with-geometric-precision.html) (0 => 89365)


--- branches/chromium/782/LayoutTests/svg/text/scaling-font-with-geometric-precision.html	                        (rev 0)
+++ branches/chromium/782/LayoutTests/svg/text/scaling-font-with-geometric-precision.html	2011-06-21 18:04:17 UTC (rev 89365)
@@ -0,0 +1,68 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body>
+<style type="text/css">
+text {
+  font-size: 6pt;
+}
+text.geometric {
+  text-rendering: geometricPrecision;
+}
+</style>
+<svg height="560" width="275" version="1.1" style="position: absolute;">
+<text transform="scale(1.0)" dy="5" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.1)" dy="10" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.2)" dy="15" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.3)" dy="20" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.4)" dy="25" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.5)" dy="30" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.6)" dy="35" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.7)" dy="40" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.8)" dy="45" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(1.9)" dy="50" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.0)" dy="55" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.1)" dy="60" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.2)" dy="65" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.3)" dy="70" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.4)" dy="75" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.5)" dy="80" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.6)" dy="85" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.7)" dy="90" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.8)" dy="95" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(2.9)" dy="100" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(3.0)" dy="105" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(3.1)" dy="110" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(3.2)" dy="115" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(3.3)" dy="120" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(3.4)" dy="125" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text transform="scale(3.5)" dy="130" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+</svg>
+<svg height="560" width="275" version="1.1" style="position: absolute; left:275px;">
+<text class="geometric" transform="scale(1.0)" dy="5" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.1)" dy="10" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.2)" dy="15" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.3)" dy="20" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.4)" dy="25" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.5)" dy="30" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.6)" dy="35" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.7)" dy="40" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.8)" dy="45" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(1.9)" dy="50" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.0)" dy="55" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.1)" dy="60" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.2)" dy="65" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.3)" dy="70" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.4)" dy="75" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.5)" dy="80" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.6)" dy="85" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.7)" dy="90" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.8)" dy="95" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(2.9)" dy="100" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(3.0)" dy="105" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(3.1)" dy="110" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(3.2)" dy="115" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(3.3)" dy="120" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(3.4)" dy="125" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+<text class="geometric" transform="scale(3.5)" dy="130" fill="navy">iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</text>
+</svg>
+</body>
+</html>
\ No newline at end of file

Modified: branches/chromium/782/Source/WebCore/ChangeLog (89364 => 89365)


--- branches/chromium/782/Source/WebCore/ChangeLog	2011-06-21 18:03:36 UTC (rev 89364)
+++ branches/chromium/782/Source/WebCore/ChangeLog	2011-06-21 18:04:17 UTC (rev 89365)
@@ -1,3 +1,19 @@
+2011-06-21  Levi Weintraub  <le...@chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Text is scaled in a stair-step pattern
+        https://bugs.webkit.org/show_bug.cgi?id=60317
+
+        Stop scaling the specified font to the actual on-screen value when font-rendering: 
+        geometricPrecision is specified, but instead scale the graphics context. This allows
+        us to scale text up and down smoothly.
+
+        Test: svg/text/scaling-font-with-geometric-precision.html
+
+        * rendering/svg/RenderSVGInlineText.cpp:
+        (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
+
 2011-06-08  John Bauman  <jbau...@chromium.org>
 
         Reviewed by James Robinson.

Modified: branches/chromium/782/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp (89364 => 89365)


--- branches/chromium/782/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp	2011-06-21 18:03:36 UTC (rev 89364)
+++ branches/chromium/782/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp	2011-06-21 18:04:17 UTC (rev 89365)
@@ -235,15 +235,15 @@
 
     Document* document = renderer->document();
     ASSERT(document);
-
+    
     CSSStyleSelector* styleSelector = document->styleSelector();
     ASSERT(styleSelector);
 
-    // Alter font-size to the right on-screen value, to avoid scaling the glyphs themselves.
+    // Alter font-size to the right on-screen value to avoid scaling the glyphs themselves, except when GeometricPrecision is specified
     AffineTransform ctm;
     SVGImageBufferTools::calculateTransformationToOutermostSVGCoordinateSystem(renderer, ctm);
     scalingFactor = narrowPrecisionToFloat(sqrt((pow(ctm.xScale(), 2) + pow(ctm.yScale(), 2)) / 2));
-    if (scalingFactor == 1 || !scalingFactor) {
+    if (scalingFactor == 1 || !scalingFactor || style->fontDescription().textRenderingMode() == GeometricPrecision) {
         scalingFactor = 1;
         scaledFont = style->font();
         return;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to