Commit d5ab4fa9 authored by zimmermann@webkit.org's avatar zimmermann@webkit.org

Reviewed by Eric.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)

Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27680 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 436422be
2007-11-10 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Update SVG layout test results after landing the vertical text support fixes.
* platform/mac/svg/W3C-SVG-1.1/text-align-05-b-expected.checksum:
* platform/mac/svg/W3C-SVG-1.1/text-align-05-b-expected.png:
* platform/mac/svg/W3C-SVG-1.1/text-align-05-b-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.checksum:
* platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.png:
* platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
* svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
* svg/batik/text/verticalText-expected.checksum:
* svg/batik/text/verticalText-expected.png:
* svg/batik/text/verticalText-expected.txt:
* svg/batik/text/verticalTextOnPath-expected.checksum:
* svg/batik/text/verticalTextOnPath-expected.png:
* svg/batik/text/verticalTextOnPath-expected.txt:
* svg/text/text-align-05-b-expected.txt:
* svg/text/text-align-06-b-expected.txt:
* svg/text/text-path-01-b-expected.checksum:
* svg/text/text-path-01-b-expected.png:
2007-11-10 Nikolas Zimmermann <zimmermann@kde.org>
Rubberstamped by Eric.
......
791e50419ca3392f5988e93347de08e4
\ No newline at end of file
43bcac92c80d7b9853e87672ef21933b
\ No newline at end of file
......@@ -2,27 +2,27 @@ layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0.50,0.50) size 479x359
RenderSVGContainer {g} at (5,4) size 465x317
RenderSVGContainer {g} at (5,4) size 465x311
RenderSVGText {text} at (5,40) size 465x44 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 465x44
chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 29 width 465.00: "Test 'text-anchor' (vertical)"
RenderSVGContainer {g} at (152,57) size 117x264
RenderSVGContainer {g} at (152,57) size 117x264 [transform={m=((1.00,0.00)(0.00,1.00)) t=(160.00,150.00)}]
RenderSVGContainer {g} at (152,147) size 17x174
RenderSVGContainer {g} at (152,51) size 117x264
RenderSVGContainer {g} at (152,51) size 117x264 [transform={m=((1.00,0.00)(0.00,1.00)) t=(160.00,150.00)}]
RenderSVGContainer {g} at (152,147) size 17x168
RenderPath {circle} at (157,147) size 6x6 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L-0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,-0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
RenderSVGText {text} at (-9,33) size 17x165 contains 1 chunk(s)
RenderSVGText {text} at (-9,27) size 17x165 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 17x165
chunk 1 (vertical) text run 1 at (-8.50,33.00) startOffset 0 endOffset 5 height 165.00: "start"
RenderSVGContainer {g} at (198,57) size 25x198 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,0.00)}]
chunk 1 (vertical) text run 1 at (-8.50,27.00) startOffset 0 endOffset 5 height 165.00: "start"
RenderSVGContainer {g} at (198,51) size 25x198 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,0.00)}]
RenderPath {circle} at (207,147) size 6x6 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L-0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,-0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
RenderSVGText {text} at (-13,-66) size 25x198 contains 1 chunk(s)
RenderSVGText {text} at (-13,-72) size 25x198 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 25x198
chunk 1 (middle anchor, vertical) text run 1 at (-12.50,-66.00) startOffset 0 endOffset 6 height 198.00: "middle"
RenderSVGContainer {g} at (252,57) size 17x99 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
chunk 1 (middle anchor, vertical) text run 1 at (-12.50,-72.00) startOffset 0 endOffset 6 height 198.00: "middle"
RenderSVGContainer {g} at (252,51) size 17x102 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
RenderPath {circle} at (257,147) size 6x6 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L-0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,-0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
RenderSVGText {text} at (-9,-66) size 17x99 contains 1 chunk(s)
RenderSVGText {text} at (-9,-72) size 17x99 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 17x99
chunk 1 (end anchor, vertical) text run 1 at (-8.50,-66.00) startOffset 0 endOffset 3 height 99.00: "end"
chunk 1 (end anchor, vertical) text run 1 at (-8.50,-72.00) startOffset 0 endOffset 3 height 99.00: "end"
RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 264x46
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
......
88d2fbdabf0d8ca62a5db1922ffec361
\ No newline at end of file
d4f1c338871e272f77efb2c7fb44d905
\ No newline at end of file
layer at (0,0) size 480x360
RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0.50) size 481x362.50
RenderSVGContainer {g} at (0,4) size 481x359
RenderSVGRoot {svg} at (0,0.50) size 481x359
RenderSVGContainer {g} at (0,4) size 481x353
RenderSVGText {text} at (0,40) size 481x44 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 481x44
chunk 1 text run 1 at (0.00,40.00) startOffset 0 endOffset 31 width 481.00: "Test 'baseline-shift' (vertic.)"
RenderSVGContainer {g} at (82,66) size 293x297
RenderSVGContainer {g} at (82,66) size 293x297 [transform={m=((1.00,0.00)(0.00,1.00)) t=(90.00,60.00)}]
RenderSVGText {text} at (-9,33) size 24x165 contains 1 chunk(s)
RenderSVGContainer {g} at (82,60) size 293x297
RenderSVGContainer {g} at (82,60) size 293x297 [transform={m=((1.00,0.00)(0.00,1.00)) t=(90.00,60.00)}]
RenderSVGText {text} at (-9,27) size 24x165 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 17x66
chunk 1 (vertical) text run 1 at (-8.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (-8.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 17x33
RenderSVGInlineText {#text} at (8,39) size 17x33
chunk 1 (vertical) text run 2 at (-1.50,99.00) startOffset 0 endOffset 1 height 33.00: "7"
chunk 1 (vertical) text run 2 at (-1.50,93.00) startOffset 0 endOffset 1 height 33.00: "7"
RenderSVGInlineText {#text} at (2,72) size 15x66
chunk 1 (vertical) text run 3 at (-7.50,132.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (45,33) size 44x264 contains 1 chunk(s)
chunk 1 (vertical) text run 3 at (-7.50,126.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (45,27) size 44x264 contains 1 chunk(s)
RenderSVGInlineText {#text} at (26,-27) size 18x66
chunk 1 (vertical) text run 1 at (71.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (71.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 28x132
RenderSVGInlineText {#text} at (0,39) size 28x132
chunk 1 (vertical) text run 2 at (45.50,99.00) startOffset 0 endOffset 4 height 132.00: "-70%"
chunk 1 (vertical) text run 2 at (45.50,93.00) startOffset 0 endOffset 4 height 132.00: "-70%"
RenderSVGInlineText {#text} at (27,171) size 16x66
chunk 1 (vertical) text run 3 at (72.50,231.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (155,33) size 34x231 contains 1 chunk(s)
chunk 1 (vertical) text run 3 at (72.50,225.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (155,27) size 34x231 contains 1 chunk(s)
RenderSVGInlineText {#text} at (16,-27) size 18x66
chunk 1 (vertical) text run 1 at (171.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (171.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 17x99
RenderSVGInlineText {#text} at (0,39) size 17x99
chunk 1 (vertical) text run 2 at (155.00,99.00) startOffset 0 endOffset 3 height 99.00: "sub"
chunk 1 (vertical) text run 2 at (155.00,93.00) startOffset 0 endOffset 3 height 99.00: "sub"
RenderSVGTSpan {tspan} at (0,0) size 16x33
RenderSVGInlineText {#text} at (17,138) size 16x33
chunk 1 (vertical) text run 3 at (172.50,198.00) startOffset 0 endOffset 1 height 33.00: "x"
chunk 1 (vertical) text run 3 at (172.50,192.00) startOffset 0 endOffset 1 height 33.00: "x"
RenderSVGInlineText {#text} at (21,171) size 8x33
chunk 1 (vertical) text run 4 at (176.00,231.00) startOffset 0 endOffset 1 height 33.00: "t"
RenderSVGText {text} at (251,33) size 34x297 contains 1 chunk(s)
chunk 1 (vertical) text run 4 at (176.00,225.00) startOffset 0 endOffset 1 height 33.00: "t"
RenderSVGText {text} at (251,27) size 34x297 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-27) size 18x66
chunk 1 (vertical) text run 1 at (251.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (251.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 17x165
RenderSVGInlineText {#text} at (17,39) size 17x165
chunk 1 (vertical) text run 2 at (268.00,99.00) startOffset 0 endOffset 5 height 165.00: "super"
chunk 1 (vertical) text run 2 at (268.00,93.00) startOffset 0 endOffset 5 height 165.00: "super"
RenderSVGTSpan {tspan} at (0,0) size 16x33
RenderSVGInlineText {#text} at (1,204) size 16x33
chunk 1 (vertical) text run 3 at (252.50,264.00) startOffset 0 endOffset 1 height 33.00: "x"
chunk 1 (vertical) text run 3 at (252.50,258.00) startOffset 0 endOffset 1 height 33.00: "x"
RenderSVGInlineText {#text} at (5,237) size 8x33
chunk 1 (vertical) text run 4 at (256.00,297.00) startOffset 0 endOffset 1 height 33.00: "t"
chunk 1 (vertical) text run 4 at (256.00,291.00) startOffset 0 endOffset 1 height 33.00: "t"
RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 264x46
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
......
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 450x500
RenderSVGRoot {svg} at (40,16) size 360x375.52
RenderSVGRoot {svg} at (39,16) size 361x375.52
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderPath {path} at (19.65,8.96) size 160.35x42.08 [stroke={[type=SOLID] [color=#0000FF]}] [data="M20.00,40.00C40.00,20.00,60.00,0.00,80.00,20.00C100.00,40.00,120.00,60.00,140.00,40.00C160.00,20.00,180.00,20.00,180.00,20.00"]
RenderPath {path} at (19.78,8.99) size 320.22x42.02 [stroke={[type=SOLID] [color=#0000FF]}] [data="M20.00,40.00C60.00,20.00,100.00,0.00,140.00,20.00C180.00,40.00,220.00,60.00,260.00,40.00C300.00,20.00,340.00,20.00,340.00,20.00"]
RenderSVGText {text} at (130,30) size 190x17 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-14) size 190x17
chunk 1 (middle anchor) text run 1 at (130.00,30.00) startOffset 0 endOffset 27 width 190.00: "Text Orientation Horizontal"
RenderSVGContainer {g} at (40,45) size 360x346.52
RenderSVGContainer {g} at (39,45) size 361x346.52
RenderPath {line} at (50,79) size 150x2 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M50.00,80.00L200.00,80.00"]
RenderSVGText {text} at (50,80) size 142x27 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-22) size 142x27
......@@ -29,28 +29,28 @@ layer at (0,0) size 450x500
chunk 1 text run 3 at (85.93,25.89) startOffset 0 endOffset 5 width 65.00: " Good"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderPath {line} at (50,129) size 350x2 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M50.00,130.00L400.00,130.00"]
RenderSVGText {text} at (50,130) size 142x27 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-22) size 142x27
chunk 1 text run 1 at (50.00,130.00) startOffset 0 endOffset 13 width 142.00: "Batik is Good"
RenderSVGContainer {g} at (40,132) size 330x69.52 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,150.00)}]
RenderSVGText {text} at (58,125) size 351x20 contains 1 chunk(s)
RenderSVGInlineText {#text} at (-11,-15) size 351x20
chunk 1 text run 1 at (58.00,125.00) startOffset 0 endOffset 13 width 142.00: "Batik is Good"
RenderSVGContainer {g} at (40,147) size 340x54.52 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,150.00)}]
RenderSVGContainer {use} at (49.55,158.48) size 320.45x43.05
RenderSVGContainer {g} at (49.55,158.48) size 320.45x43.05
RenderPath {path} at (49.55,158.48) size 320.45x43.05 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [data="M20.00,40.00C60.00,20.00,100.00,0.00,140.00,20.00C180.00,40.00,220.00,60.00,260.00,40.00C300.00,20.00,340.00,20.00,340.00,20.00"]
RenderSVGText {text} at (27,11) size 153x62 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 153x62
RenderSVGInlineText {#text} at (-17,-15) size 67x48
chunk 1 text run 1 at (27.16,17.35) startOffset 0 endOffset 6 width 60.00: "Batik "
RenderSVGTSpan {tspan} at (0,0) size 25x29
RenderSVGInlineText {#text} at (39,-29) size 25x29
chunk 1 text run 2 at (77.45,13.71) startOffset 0 endOffset 2 width 17.00: "is"
RenderSVGTSpan {tspan} at (0,0) size 74x41
RenderSVGInlineText {#text} at (62,-21) size 74x41
chunk 1 text run 3 at (95.11,11.78) startOffset 0 endOffset 5 width 65.00: " Good"
RenderSVGText {text} at (32,11) size 340x47 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 340x47
RenderSVGInlineText {#text} at (-22,-14) size 162x42
chunk 1 text run 1 at (32.09,11.82) startOffset 0 endOffset 6 width 60.00: "Batik "
RenderSVGTSpan {tspan} at (0,0) size 54x24
RenderSVGInlineText {#text} at (138,0) size 54x24
chunk 1 text run 2 at (184.39,40.17) startOffset 0 endOffset 2 width 17.00: "is"
RenderSVGTSpan {tspan} at (0,0) size 135x40
RenderSVGInlineText {#text} at (183,-7) size 135x40
chunk 1 text run 3 at (237.33,22.64) startOffset 0 endOffset 5 width 65.00: " Good"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderPath {line} at (50,239) size 150x2 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M50.00,240.00L200.00,240.00"]
RenderSVGText {text} at (50,240) size 142x27 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-22) size 142x27
chunk 1 text run 1 at (50.00,240.00) startOffset 0 endOffset 13 width 142.00: "Batik is Good"
RenderSVGText {text} at (58,240) size 143x28 contains 1 chunk(s)
RenderSVGInlineText {#text} at (-9,-23) size 143x28
chunk 1 text run 1 at (58.00,240.00) startOffset 0 endOffset 13 width 142.00: "Batik is Good"
RenderSVGContainer {g} at (224,205) size 176x69 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,220.00)}]
RenderSVGContainer {use} at (239.29,228.42) size 160.71x43.16
RenderSVGContainer {g} at (239.29,228.42) size 160.71x43.16
......@@ -67,21 +67,21 @@ layer at (0,0) size 450x500
chunk 1 text run 3 at (85.93,25.89) startOffset 0 endOffset 5 width 65.00: " Good"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderPath {line} at (50,319) size 350x2 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M50.00,320.00L400.00,320.00"]
RenderSVGText {text} at (50,320) size 142x27 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-22) size 142x27
chunk 1 text run 1 at (50.00,320.00) startOffset 0 endOffset 13 width 142.00: "Batik is Good"
RenderSVGContainer {g} at (40,322) size 330x69.52 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,340.00)}]
RenderSVGText {text} at (42,315) size 353x20 contains 1 chunk(s)
RenderSVGInlineText {#text} at (5,-15) size 353x20
chunk 1 text run 1 at (42.00,315.00) startOffset 0 endOffset 13 width 142.00: "Batik is Good"
RenderSVGContainer {g} at (39,338) size 343x53.52 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,340.00)}]
RenderSVGContainer {use} at (49.55,348.48) size 320.45x43.05
RenderSVGContainer {g} at (49.55,348.48) size 320.45x43.05
RenderPath {path} at (49.55,348.48) size 320.45x43.05 [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [data="M20.00,40.00C60.00,20.00,100.00,0.00,140.00,20.00C180.00,40.00,220.00,60.00,260.00,40.00C300.00,20.00,340.00,20.00,340.00,20.00"]
RenderSVGText {text} at (27,11) size 153x62 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 153x62
RenderSVGInlineText {#text} at (-17,-15) size 67x48
chunk 1 text run 1 at (27.16,17.35) startOffset 0 endOffset 6 width 60.00: "Batik "
RenderSVGTSpan {tspan} at (0,0) size 25x29
RenderSVGInlineText {#text} at (39,-29) size 25x29
chunk 1 text run 2 at (77.45,13.71) startOffset 0 endOffset 2 width 17.00: "is"
RenderSVGTSpan {tspan} at (0,0) size 74x41
RenderSVGInlineText {#text} at (62,-21) size 74x41
chunk 1 text run 3 at (95.11,11.78) startOffset 0 endOffset 5 width 65.00: " Good"
RenderSVGText {text} at (32,11) size 343x48 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 343x48
RenderSVGInlineText {#text} at (-23,-13) size 170x41
chunk 1 text run 1 at (32.09,11.82) startOffset 0 endOffset 6 width 60.00: "Batik "
RenderSVGTSpan {tspan} at (0,0) size 47x20
RenderSVGInlineText {#text} at (148,4) size 47x20
chunk 1 text run 2 at (184.39,40.17) startOffset 0 endOffset 2 width 17.00: "is"
RenderSVGTSpan {tspan} at (0,0) size 129x42
RenderSVGInlineText {#text} at (191,-7) size 129x42
chunk 1 text run 3 at (237.33,22.64) startOffset 0 endOffset 5 width 65.00: " Good"
RenderSVGInlineText {#text} at (0,0) size 0x0
fcca0c5164888e7b672cc77247cb66cb
\ No newline at end of file
98c55d902080122e04522de09b80a30a
\ No newline at end of file
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 450x500
RenderSVGRoot {svg} at (20,26) size 410x512
RenderSVGRoot {svg} at (20,26) size 410x464
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderPath {path} at (14.95,7.04) size 315.11x30.91 [transform={m=((0.15,0.00)(0.00,0.15)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [data="M100.00,200.00C200.00,100.00,300.00,0.00,400.00,100.00C500.00,200.00,600.00,300.00,700.00,200.00C800.00,100.00,900.00,0.00,1000.00,100.00C1100.00,200.00,1200.00,300.00,1300.00,200.00C1400.00,100.00,1500.00,0.00,1600.00,100.00C1700.00,200.00,1800.00,300.00,1900.00,200.00C2000.00,100.00,2100.00,0.00,2200.00,100.00"]
RenderSVGContainer {g} at (20,26) size 410x512
RenderSVGContainer {g} at (20,26) size 410x464
RenderSVGText {text} at (163,40) size 124x17 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-14) size 124x17
chunk 1 (middle anchor) text run 1 at (163.00,40.00) startOffset 0 endOffset 18 width 124.00: "Vertical Text Test"
......@@ -26,47 +26,47 @@ layer at (0,0) size 450x500
RenderPath {line} at (299.50,75) size 1x375 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M300.00,75.00L300.00,450.00"]
RenderPath {line} at (349.50,75) size 1x375 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M350.00,75.00L350.00,450.00"]
RenderPath {line} at (399.50,75) size 1x375 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M400.00,75.00L400.00,450.00"]
RenderSVGText {text} at (42,92) size 16x391 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 16x391
chunk 1 (vertical) text run 1 at (42.50,92.00) startOffset 0 endOffset 23 height 391.00: "Writing top to bottom\x{753B}\x{50CF}"
RenderSVGText {text} at (92,92) size 16x408 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 16x408
chunk 1 (vertical) text run 1 at (92.50,92.00) startOffset 0 endOffset 24 height 408.00: "Glyph Orientation:auto\x{753B}\x{50CF}"
RenderSVGText {text} at (142,92) size 16x357 contains 1 chunk(s)
RenderSVGText {text} at (33,79) size 18x165 contains 1 chunk(s)
RenderSVGInlineText {#text} at (8,0) size 18x165
chunk 1 (vertical) text run 1 at (33.00,79.00) startOffset 0 endOffset 23 height 391.00: "Writing top to bottom\x{753B}\x{50CF}"
RenderSVGText {text} at (83,79) size 18x174 contains 1 chunk(s)
RenderSVGInlineText {#text} at (8,0) size 18x174
chunk 1 (vertical) text run 1 at (83.00,79.00) startOffset 0 endOffset 24 height 408.00: "Glyph Orientation:auto\x{753B}\x{50CF}"
RenderSVGText {text} at (142,88) size 16x357 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 16x357
chunk 1 (vertical) text run 1 at (142.50,92.00) startOffset 0 endOffset 21 height 357.00: "Glyph Orientation:0\x{753B}\x{50CF}"
RenderSVGText {text} at (192,92) size 16x374 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 16x374
chunk 1 (vertical) text run 1 at (192.50,92.00) startOffset 0 endOffset 22 height 374.00: "Glyph Orientation:90\x{753B}\x{50CF}"
RenderSVGText {text} at (242,92) size 16x391 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 16x391
chunk 1 (vertical) text run 1 at (242.50,92.00) startOffset 0 endOffset 23 height 391.00: "Glyph Orientation:180\x{753B}\x{50CF}"
RenderSVGText {text} at (292,92) size 16x391 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 16x391
chunk 1 (vertical) text run 1 at (292.50,92.00) startOffset 0 endOffset 23 height 391.00: "Glyph Orientation:270\x{753B}\x{50CF}"
RenderSVGText {text} at (344,92) size 12x408 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 12x153
chunk 1 (vertical) text run 1 at (344.00,92.00) startOffset 0 endOffset 9 height 153.00: "Embedded "
RenderSVGTSpan {tspan} at (0,0) size 8x119
RenderSVGInlineText {#text} at (2,140) size 8x119
chunk 1 (vertical) text run 2 at (346.00,245.00) startOffset 0 endOffset 7 height 119.00: "<tspan>"
RenderSVGInlineText {#text} at (0,259) size 12x136
chunk 1 (vertical) text run 3 at (344.00,364.00) startOffset 0 endOffset 8 height 136.00: " element"
RenderSVGText {text} at (394,92) size 12x459 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 12x153
chunk 1 (vertical) text run 1 at (394.00,92.00) startOffset 0 endOffset 9 height 153.00: "Embedded "
chunk 1 (vertical) text run 1 at (142.50,88.00) startOffset 0 endOffset 21 height 357.00: "Glyph Orientation:0\x{753B}\x{50CF}"
RenderSVGText {text} at (183,79) size 18x163 contains 1 chunk(s)
RenderSVGInlineText {#text} at (8,0) size 18x163
chunk 1 (vertical) text run 1 at (183.00,79.00) startOffset 0 endOffset 22 height 374.00: "Glyph Orientation:90\x{753B}\x{50CF}"
RenderSVGText {text} at (250,88) size 16x392 contains 1 chunk(s)
RenderSVGInlineText {#text} at (-8,-14) size 16x392
chunk 1 (vertical) text run 1 at (250.00,88.00) startOffset 0 endOffset 23 height 391.00: "Glyph Orientation:180\x{753B}\x{50CF}"
RenderSVGText {text} at (317,79) size 17x171 contains 1 chunk(s)
RenderSVGInlineText {#text} at (-26,0) size 26x171
chunk 1 (vertical) text run 1 at (317.00,79.00) startOffset 0 endOffset 23 height 391.00: "Glyph Orientation:270\x{753B}\x{50CF}"
RenderSVGText {text} at (333,79) size 17x173 contains 1 chunk(s)
RenderSVGInlineText {#text} at (9,0) size 17x71
chunk 1 (vertical) text run 1 at (333.00,79.00) startOffset 0 endOffset 9 height 153.00: "Embedded "
RenderSVGTSpan {tspan} at (0,0) size 17x49
RenderSVGInlineText {#text} at (9,71) size 17x49
chunk 1 (vertical) text run 2 at (333.00,150.00) startOffset 0 endOffset 7 height 119.00: "<tspan>"
RenderSVGInlineText {#text} at (9,120) size 17x53
chunk 1 (vertical) text run 3 at (333.00,199.00) startOffset 0 endOffset 8 height 136.00: " element"
RenderSVGText {text} at (383,79) size 18x294 contains 1 chunk(s)
RenderSVGInlineText {#text} at (8,0) size 18x71
chunk 1 (vertical) text run 1 at (383.00,79.00) startOffset 0 endOffset 9 height 153.00: "Embedded "
RenderSVGTSpan {tspan} at (0,0) size 8x170
RenderSVGInlineText {#text} at (2,140) size 8x170
chunk 1 (vertical) text run 2 at (396.00,245.00) startOffset 0 endOffset 10 height 170.00: "orientated"
RenderSVGInlineText {#text} at (0,310) size 12x136
chunk 1 (vertical) text run 3 at (394.00,415.00) startOffset 0 endOffset 8 height 136.00: " element"
RenderSVGContainer {g} at (42,454) size 328.11x43 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,450.00)}]
RenderSVGInlineText {#text} at (13,67) size 8x170
chunk 1 (vertical) text run 2 at (396.00,159.00) startOffset 0 endOffset 10 height 170.00: "orientated"
RenderSVGInlineText {#text} at (8,241) size 18x53
chunk 1 (vertical) text run 3 at (383.00,320.00) startOffset 0 endOffset 8 height 136.00: " element"
RenderSVGContainer {g} at (51,455) size 319.11x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,450.00)}]
RenderSVGContainer {use} at (54.89,457.29) size 315.21x30.43
RenderSVGContainer {g} at (54.89,457.29) size 315.21x30.43
RenderPath {path} at (54.89,457.29) size 315.21x30.43 [transform={m=((0.15,0.00)(0.00,0.15)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF] [stroke width=2.00]}] [data="M100.00,200.00C200.00,100.00,300.00,0.00,400.00,100.00C500.00,200.00,600.00,300.00,700.00,200.00C800.00,100.00,900.00,0.00,1000.00,100.00C1100.00,200.00,1200.00,300.00,1300.00,200.00C1400.00,100.00,1500.00,0.00,1600.00,100.00C1700.00,200.00,1800.00,300.00,1900.00,200.00C2000.00,100.00,2100.00,0.00,2200.00,100.00"]
RenderSVGText {text} at (15,22) size 297x43 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 297x43
RenderSVGInlineText {#text} at (-13,-18) size 297x43
chunk 1 (vertical) text run 1 at (15.47,22.79) startOffset 0 endOffset 25 height 350.00: "Vertical text on a Path\x{753B}\x{50CF}"
RenderSVGText {text} at (19,8) size 297x35 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 297x35
RenderSVGInlineText {#text} at (-8,-3) size 297x35
chunk 1 (vertical) text run 1 at (19.97,8.79) startOffset 0 endOffset 25 height 350.00: "Vertical text on a Path\x{753B}\x{50CF}"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderSVGContainer {use} at (0,0) size 0x0
246a31a6cacaa6e149f46eb5140b9420
\ No newline at end of file
4802b5c601684a157dc9b1d00ebbdc2a
\ No newline at end of file
......@@ -2,27 +2,27 @@ layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
RenderSVGContainer {g} at (8.33,6.67) size 775x528.33
RenderSVGContainer {g} at (8.33,6.67) size 775x518.33
RenderSVGText {text} at (5,40) size 465x44 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 465x44
chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 29 width 465.00: "Test 'text-anchor' (vertical)"
RenderSVGContainer {g} at (253.33,95) size 195x440
RenderSVGContainer {g} at (253.33,95) size 195x440 [transform={m=((1.00,0.00)(0.00,1.00)) t=(160.00,150.00)}]
RenderSVGContainer {g} at (253.33,245) size 28.33x290
RenderSVGContainer {g} at (253.33,85) size 195x440
RenderSVGContainer {g} at (253.33,85) size 195x440 [transform={m=((1.00,0.00)(0.00,1.00)) t=(160.00,150.00)}]
RenderSVGContainer {g} at (253.33,245) size 28.33x280
RenderPath {circle} at (261.67,245) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L-0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,-0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
RenderSVGText {text} at (-9,33) size 17x165 contains 1 chunk(s)
RenderSVGText {text} at (-9,27) size 17x165 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 17x165
chunk 1 (vertical) text run 1 at (-8.50,33.00) startOffset 0 endOffset 5 height 165.00: "start"
RenderSVGContainer {g} at (330,95) size 41.67x330 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,0.00)}]
chunk 1 (vertical) text run 1 at (-8.50,27.00) startOffset 0 endOffset 5 height 165.00: "start"
RenderSVGContainer {g} at (330,85) size 41.67x330 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,0.00)}]
RenderPath {circle} at (345,245) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L-0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,-0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
RenderSVGText {text} at (-13,-66) size 25x198 contains 1 chunk(s)
RenderSVGText {text} at (-13,-72) size 25x198 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 25x198
chunk 1 (middle anchor, vertical) text run 1 at (-12.50,-66.00) startOffset 0 endOffset 6 height 198.00: "middle"
RenderSVGContainer {g} at (420.00,95) size 28.33x165 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
chunk 1 (middle anchor, vertical) text run 1 at (-12.50,-72.00) startOffset 0 endOffset 6 height 198.00: "middle"
RenderSVGContainer {g} at (420.00,85) size 28.33x170 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
RenderPath {circle} at (428.33,245) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L-0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,-0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
RenderSVGText {text} at (-9,-66) size 17x99 contains 1 chunk(s)
RenderSVGText {text} at (-9,-72) size 17x99 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 17x99
chunk 1 (end anchor, vertical) text run 1 at (-8.50,-66.00) startOffset 0 endOffset 3 height 99.00: "end"
chunk 1 (end anchor, vertical) text run 1 at (-8.50,-72.00) startOffset 0 endOffset 3 height 99.00: "end"
RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 264x46
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
......
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (0,0.83) size 801.67x604.17
RenderSVGContainer {g} at (0,6.67) size 801.67x598.33
RenderSVGRoot {svg} at (0,0.83) size 801.67x598.33
RenderSVGContainer {g} at (0,6.67) size 801.67x588.33
RenderSVGText {text} at (0,40) size 481x44 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 481x44
chunk 1 text run 1 at (0.00,40.00) startOffset 0 endOffset 31 width 481.00: "Test 'baseline-shift' (vertic.)"
RenderSVGContainer {g} at (136.67,110) size 488.33x495
RenderSVGContainer {g} at (136.67,110) size 488.33x495 [transform={m=((1.00,0.00)(0.00,1.00)) t=(90.00,60.00)}]
RenderSVGText {text} at (-9,33) size 24x165 contains 1 chunk(s)
RenderSVGContainer {g} at (136.67,100) size 488.33x495
RenderSVGContainer {g} at (136.67,100) size 488.33x495 [transform={m=((1.00,0.00)(0.00,1.00)) t=(90.00,60.00)}]
RenderSVGText {text} at (-9,27) size 24x165 contains 1 chunk(s)
RenderSVGInlineText {#text} at (1,-27) size 17x66
chunk 1 (vertical) text run 1 at (-8.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (-8.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 17x33
RenderSVGInlineText {#text} at (8,39) size 17x33
chunk 1 (vertical) text run 2 at (-1.50,99.00) startOffset 0 endOffset 1 height 33.00: "7"
chunk 1 (vertical) text run 2 at (-1.50,93.00) startOffset 0 endOffset 1 height 33.00: "7"
RenderSVGInlineText {#text} at (2,72) size 15x66
chunk 1 (vertical) text run 3 at (-7.50,132.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (45,33) size 44x264 contains 1 chunk(s)
chunk 1 (vertical) text run 3 at (-7.50,126.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (45,27) size 44x264 contains 1 chunk(s)
RenderSVGInlineText {#text} at (26,-27) size 18x66
chunk 1 (vertical) text run 1 at (71.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (71.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 28x132
RenderSVGInlineText {#text} at (0,39) size 28x132
chunk 1 (vertical) text run 2 at (45.50,99.00) startOffset 0 endOffset 4 height 132.00: "-70%"
chunk 1 (vertical) text run 2 at (45.50,93.00) startOffset 0 endOffset 4 height 132.00: "-70%"
RenderSVGInlineText {#text} at (27,171) size 16x66
chunk 1 (vertical) text run 3 at (72.50,231.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (155,33) size 34x231 contains 1 chunk(s)
chunk 1 (vertical) text run 3 at (72.50,225.00) startOffset 0 endOffset 2 height 66.00: "xt"
RenderSVGText {text} at (155,27) size 34x231 contains 1 chunk(s)
RenderSVGInlineText {#text} at (16,-27) size 18x66
chunk 1 (vertical) text run 1 at (171.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (171.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 17x99
RenderSVGInlineText {#text} at (0,39) size 17x99
chunk 1 (vertical) text run 2 at (155.00,99.00) startOffset 0 endOffset 3 height 99.00: "sub"
chunk 1 (vertical) text run 2 at (155.00,93.00) startOffset 0 endOffset 3 height 99.00: "sub"
RenderSVGTSpan {tspan} at (0,0) size 16x33
RenderSVGInlineText {#text} at (17,138) size 16x33
chunk 1 (vertical) text run 3 at (172.50,198.00) startOffset 0 endOffset 1 height 33.00: "x"
chunk 1 (vertical) text run 3 at (172.50,192.00) startOffset 0 endOffset 1 height 33.00: "x"
RenderSVGInlineText {#text} at (21,171) size 8x33
chunk 1 (vertical) text run 4 at (176.00,231.00) startOffset 0 endOffset 1 height 33.00: "t"
RenderSVGText {text} at (251,33) size 34x297 contains 1 chunk(s)
chunk 1 (vertical) text run 4 at (176.00,225.00) startOffset 0 endOffset 1 height 33.00: "t"
RenderSVGText {text} at (251,27) size 34x297 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-27) size 18x66
chunk 1 (vertical) text run 1 at (251.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
chunk 1 (vertical) text run 1 at (251.50,27.00) startOffset 0 endOffset 2 height 66.00: "te"
RenderSVGTSpan {tspan} at (0,0) size 17x165
RenderSVGInlineText {#text} at (17,39) size 17x165
chunk 1 (vertical) text run 2 at (268.00,99.00) startOffset 0 endOffset 5 height 165.00: "super"
chunk 1 (vertical) text run 2 at (268.00,93.00) startOffset 0 endOffset 5 height 165.00: "super"
RenderSVGTSpan {tspan} at (0,0) size 16x33
RenderSVGInlineText {#text} at (1,204) size 16x33
chunk 1 (vertical) text run 3 at (252.50,264.00) startOffset 0 endOffset 1 height 33.00: "x"
chunk 1 (vertical) text run 3 at (252.50,258.00) startOffset 0 endOffset 1 height 33.00: "x"
RenderSVGInlineText {#text} at (5,237) size 8x33
chunk 1 (vertical) text run 4 at (256.00,297.00) startOffset 0 endOffset 1 height 33.00: "t"
chunk 1 (vertical) text run 4 at (256.00,291.00) startOffset 0 endOffset 1 height 33.00: "t"
RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 264x46
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
......
1ef25584f31026a8a8473d7e34a6df93
\ No newline at end of file
3d2b7f78eb78ba2c082b02f3e05feabd
\ No newline at end of file
2007-11-10 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
* WebCore.pro: Add platform/UnicodeRange.cpp to build
* WebCore.xcodeproj/project.pbxproj: Dito.
* rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
(WebCore::SVGChar::characterTransform):
* rendering/SVGCharacterLayoutInfo.h: New variables.
(WebCore::SVGCharOnPath::SVGCharOnPath):
(WebCore::SVGChar::SVGChar):
* rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
(WebCore::glyphOrientationToAngle):
(WebCore::glyphOrientationIsMultiplyOf180Degrees):
(WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
(WebCore::cummulatedHeightOfInlineBoxCharacterRange):
(WebCore::cummulatedWidthOrHeightOfTextChunk):
(WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2007-11-10 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
......
......@@ -700,6 +700,7 @@ SOURCES += \
platform/TextEncodingRegistry.cpp \
platform/TextStream.cpp \
platform/Timer.cpp \
platform/UnicodeRange.cpp \
platform/Widget.cpp \
rendering/AutoTableLayout.cpp \
rendering/bidi.cpp \
......
......@@ -2925,6 +2925,8 @@
B27535820B053814002CE64F /* Pen.h in Headers */ = {isa = PBXBuildFile; fileRef = B27535550B053814002CE64F /* Pen.h */; };
B275358E0B053A66002CE64F /* IconMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B275358D0B053A66002CE64F /* IconMac.mm */; };
B277B4040B22F37C0004BEC6 /* GraphicsContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */; };
B287B22E0CE66A820054D390 /* UnicodeRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B287B22C0CE66A820054D390 /* UnicodeRange.cpp */; };
B287B22F0CE66A820054D390 /* UnicodeRange.h in Headers */ = {isa = PBXBuildFile; fileRef = B287B22D0CE66A820054D390 /* UnicodeRange.h */; };
B297BC700B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */; };
B2A015A80AF6CD53006BCE0E /* GraphicsContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A015920AF6CD53006BCE0E /* GraphicsContext.cpp */; };
B2A015A90AF6CD53006BCE0E /* GraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A015930AF6CD53006BCE0E /* GraphicsContext.h */; };
......@@ -6786,6 +6788,8 @@
B27535550B053814002CE64F /* Pen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pen.h; sourceTree = "<group>"; };
B275358D0B053A66002CE64F /* IconMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = IconMac.mm; sourceTree = "<group>"; };
B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = GraphicsContextMac.mm; sourceTree = "<group>"; };
B287B22C0CE66A820054D390 /* UnicodeRange.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = UnicodeRange.cpp; sourceTree = "<group>"; };
B287B22D0CE66A820054D390 /* UnicodeRange.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UnicodeRange.h; sourceTree = "<group>"; };
B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGPathSegListCustom.cpp; sourceTree = "<group>"; };
B2A015920AF6CD53006BCE0E /* GraphicsContext.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext.cpp; sourceTree = "<group>"; };
B2A015930AF6CD53006BCE0E /* GraphicsContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GraphicsContext.h; sourceTree = "<group>"; };
......@@ -11554,6 +11558,8 @@
51E1ECB20C91C55600DC255B /* Threading.h */,
93309EA1099EB78C0056E581 /* Timer.cpp */,
9305B24C098F1B6B00C28855 /* Timer.h */,
B287B22C0CE66A820054D390 /* UnicodeRange.cpp */,
B287B22D0CE66A820054D390 /* UnicodeRange.h */,
9380F47109A11AB4001FDB34 /* Widget.cpp */,
9380F47209A11AB4001FDB34 /* Widget.h */,
93B780C909B3B7FE00690162 /* WidgetClient.h */,
......@@ -13928,6 +13934,7 @@
BCB16C2D0979C3BD00467741 /* loader.h in Headers */,
93309DF8099E64920056E581 /* markup.h in Headers */,
93309E1E099E64920056E581 /* visible_units.h in Headers */,
B287B22F0CE66A820054D390 /* UnicodeRange.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -13966,7 +13973,6 @@
0867D690FE84028FC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
compatibilityVersion = "Xcode 2.4";
hasScannedForEncodings = 1;
knownRegions = (
English,
......@@ -15490,6 +15496,7 @@
BCB16C2C0979C3BD00467741 /* loader.cpp in Sources */,
93309DF7099E64920056E581 /* markup.cpp in Sources */,
93309E1D099E64920056E581 /* visible_units.cpp in Sources */,
B287B22E0CE66A820054D390 /* UnicodeRange.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -515,16 +515,13 @@ AffineTransform SVGChar::characterTransform() const
ctm.translate(x, y);
ctm.rotate(angle);
if (pathData)
if (pathData) {
ctm.scale(pathData->xScale, pathData->yScale);
ctm.translate(-x, -y);
// Apply transformations which have to be applied orthogonal to the path
// Only happens in textPath layouts.
if (pathData)
ctm.translate(pathData->xShift, pathData->yShift);
ctm.rotate(pathData->orientationAngle);
}
ctm.translate(orientationShiftX - x, orientationShiftY - y);
return ctm;
}
......
......@@ -183,6 +183,7 @@ struct SVGCharOnPath : Shared<SVGCharOnPath> {
, yScale(1.0f)
, xShift(0.0f)
, yShift(0.0f)
, orientationAngle(0.0f)
, visible(true)
{
}
......@@ -193,6 +194,8 @@ struct SVGCharOnPath : Shared<SVGCharOnPath> {
float xShift;
float yShift;
float orientationAngle;
<