WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
12698
CharLayout
SVG text needs a special per-character layout mode.
https://bugs.webkit.org/show_bug.cgi?id=12698
Summary
SVG text needs a special per-character layout mode.
Nikolas Zimmermann
Reported
2007-02-08 09:18:59 PST
To be able to implement mutliple x/y, dx/dy, rotate values properly, SVG text needs a special layout mode. vertical text & textPath can be built upon that - once it's done. Attaching patch, which implements a new hot per-character layout mode. x/y, dx/dy lists seem to work fine in all combinations. rotate lists work fine, too. text seletion is _DISABLED_ for per character layout mode and needs discussion - not yet sure how to properly implement that. vertical text is not yet "hooked in" - but you can switch a variable "isVerticalText" in the code to "true" to actually see vertical text :-) Another problem is the width/height calculation of our InlineText/Flow boxes: - rotate changes the size of the boxes - not taken into account yet. - y lists may enlarge the size of the boxes - not taken into account yet. (only x lists are handled so far in the patch - see SVGInlineFlowBox) These size calculations are easy to fix - just don't have time atm. Please comment.
Attachments
Initial patch
(27.35 KB, patch)
2007-02-08 09:23 PST
,
Nikolas Zimmermann
no flags
Details
Formatted Diff
Diff
Updated patch
(74.21 KB, patch)
2007-03-04 04:36 PST
,
Nikolas Zimmermann
no flags
Details
Formatted Diff
Diff
First complete patch
(94.52 KB, patch)
2007-03-06 17:30 PST
,
Nikolas Zimmermann
no flags
Details
Formatted Diff
Diff
Updated patch to work against current ToT
(99.77 KB, patch)
2007-04-30 02:02 PDT
,
Oliver Hunt
no flags
Details
Formatted Diff
Diff
Updated patch including text selection
(121.58 KB, patch)
2007-05-16 17:08 PDT
,
Nikolas Zimmermann
no flags
Details
Formatted Diff
Diff
Layout test results (new directory: svg/batik)
(473.41 KB, patch)
2007-05-16 17:18 PDT
,
Nikolas Zimmermann
no flags
Details
Formatted Diff
Diff
Updated patch including text selection
(138.39 KB, patch)
2007-05-19 17:23 PDT
,
Nikolas Zimmermann
oliver
: review+
Details
Formatted Diff
Diff
Show Obsolete
(6)
View All
Add attachment
proposed patch, testcase, etc.
Nikolas Zimmermann
Comment 1
2007-02-08 09:19:56 PST
***
Bug 6420
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 2
2007-02-08 09:21:35 PST
***
Bug 12376
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 3
2007-02-08 09:22:26 PST
***
Bug 12377
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 4
2007-02-08 09:23:36 PST
Created
attachment 13058
[details]
Initial patch Initial - not yet complete (see bug description) - patch.
Nikolas Zimmermann
Comment 5
2007-02-08 14:12:03 PST
(In reply to
comment #4
)
> Created an attachment (id=13058) [edit] > Initial patch > > Initial - not yet complete (see bug description) - patch. >
Hm I am not sure anymore wheter we should do the actual width/height/xPos/yPos calculation in SVGInlineFlowBox for the per-character layout mode. We could easily do this in "layoutSingleObject" in SVGRootInlineBox, and don't use the placeSVGFlowHorizontally/placeSVGFlowVertically logic at all for per-character layout mode situations. Though I won't waste time in trying out this stuff before talking to Oliver/Eric/Rob... We need to discuss a masterplan on how to go on here - as it's just too important to get that right :-) I'm blocked by exams until next week Wednesday - and well it's "stabilization spree" anyway, so we don't need to hurry at all. Have a nice week(end)! Niko
Nikolas Zimmermann
Comment 6
2007-03-04 04:35:08 PST
Uploading a new patch soon, showing how far I got so far: baseline-shift is implemented, x/y/dx/dy lists work perfectly (even all Batik examples for this!) text-anchor now works "per text chunks", and fixes lots of misrenderings. text on path layout, as well as vertical text are implemented. Still a lot of TODO: text-anchor on text path, kerning property, letter-spacing/word-spacing has to be done manually to also work in path layouts, textLength/textAdjust etc.. etc.. Some screenshots:
http://www.flickr.com/photos/43532360@N00/409816149/
(text-on-path)
http://www.flickr.com/photos/43532360@N00/409816151/
(text-on-path)
http://www.flickr.com/photos/43532360@N00/409303358/
(vertical text)
http://www.flickr.com/photos/43532360@N00/409308387/
(vertical text)
http://www.flickr.com/photos/43532360@N00/381107759/
(per character layout, shows one misplaced character though: the "," in Cute and Fuzzy is misplaced - fixed locally since a week) Stay tuned!
Nikolas Zimmermann
Comment 7
2007-03-04 04:36:29 PST
Created
attachment 13471
[details]
Updated patch Show some progress to the world! :-)
Nikolas Zimmermann
Comment 8
2007-03-04 04:37:23 PST
***
Bug 6425
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 9
2007-03-04 04:37:36 PST
***
Bug 6481
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 10
2007-03-04 04:39:09 PST
***
Bug 12574
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 11
2007-03-06 17:30:50 PST
Created
attachment 13500
[details]
First complete patch No ChangeLog yet, as this is probably not the last patch before the commit :-) Added the new text engine as experimental feature, aka. can be build with build-webkit --svg-experimental...
Oliver Hunt
Comment 12
2007-03-20 22:45:40 PDT
Comment on
attachment 13500
[details]
First complete patch
> FIXME - svgChar.x/y are absolute positions, need to respect ctm here!
This (and similar) should have bugs filed if they still exist when this is landed This looks good, i'm hesitant to r=me-ify it as someone will probably land it. Finally -- I take it IDL has no enunmerated type equivalent?
Dave Hyatt
Comment 13
2007-04-19 02:05:59 PDT
I think we should get this into the tree now. I think things have stabilized sufficiently to go ahead and take it.
Oliver Hunt
Comment 14
2007-04-30 02:02:58 PDT
Created
attachment 14273
[details]
Updated patch to work against current ToT
Nikolas Zimmermann
Comment 15
2007-05-16 15:22:37 PDT
***
Bug 11941
has been marked as a duplicate of this bug. ***
Nikolas Zimmermann
Comment 16
2007-05-16 17:08:51 PDT
Created
attachment 14586
[details]
Updated patch including text selection Finally a new patch including the text selection work of the last months. I have been very busy - so finally after ~ 5 months a first comitable patch. Have fun reviewing :-)
Nikolas Zimmermann
Comment 17
2007-05-16 17:18:00 PDT
Created
attachment 14587
[details]
Layout test results (new directory: svg/batik)
Oliver Hunt
Comment 18
2007-05-16 17:35:43 PDT
Comment on
attachment 14586
[details]
Updated patch including text selection You will hate me for this: class and struct fields should have the m_ prefix Do you really want to retain the debug code in applyTextAnchorToTextChunk? why does totalAdvanceOfInlineBox take a ref paramter instead of just returning the length? Or is this a preexisting method?
Nikolas Zimmermann
Comment 19
2007-05-17 04:55:59 PDT
(In reply to
comment #18
)
> (From update of
attachment 14586
[details]
[edit]) > You will hate me for this:
Definately ;-)
> class and struct fields should have the m_ prefix
I guess I can do that before landing - aka. not upload a new patch just for this.
> Do you really want to retain the debug code in applyTextAnchorToTextChunk?
Yeah, it is essential for finding the corner cases for text selection.
> why does totalAdvanceOfInlineBox take a ref paramter instead of just returning > the length? Or is this a preexisting method?
totalAdvanceOfInlineBox is a recursive method? I need to pass around a ref. Only the totalAdvanceOfInlineTextBox could be modified as you said.. Greetings, Niko
Maciej Stachowiak
Comment 20
2007-05-17 17:49:04 PDT
Maybe it would make more sense to land this on the feature branch for now.
Nikolas Zimmermann
Comment 21
2007-05-19 04:22:56 PDT
(In reply to
comment #20
)
> Maybe it would make more sense to land this on the feature branch for now. >
Hi Maciej, I've discussed this with Oliver - and we both find the option: land in trunk as experimental feature best. Because it's a) all prepared in this patch (builds flawlessly in experimental/non-experimental mode) and b) easiest way to merge in the normal build in the future and c) easy way for ppl to try out (just get trunk, and set the right build flags) What do you think? Greetings, Niko
Nikolas Zimmermann
Comment 22
2007-05-19 17:23:39 PDT
Created
attachment 14632
[details]
Updated patch including text selection Final version that should be comittable.
Nikolas Zimmermann
Comment 23
2007-05-19 18:45:19 PDT
Landed in the new feature-branch in
r21607
.
Bruce Rindahl
Comment 24
2007-07-18 08:40:07 PDT
I would love to see this land on the trunk soon.
Andreas Neumann
Comment 25
2007-07-19 03:14:11 PDT
yes, I also think that the functionality from this patch is essential to the final release (main trunk). Please prioritize and move it to the main trunk. I use the functionality provided by this patch in many SVG projects. Thanks a lot, Andreas
Bruce Rindahl
Comment 26
2007-10-13 14:45:12 PDT
I hate to be annoying ;) but could the feature-branch be available as a special nightly? You would have lots of potential testers on some of these advanced but must have features. Please consider this ASAP. Thanks again. Bruce
Eric Seidel (no email)
Comment 27
2007-10-13 16:23:59 PDT
Well, I have good news for you: 1. It was available as a special nightly:
http://nightly.webkit.org/builds/overview/feature-branch
2. BUT, even better: feature-branch just got rolled into trunk last night. So:
http://nightly.webkit.org/
should have these changes tomorrow (if it doesn't already today).
Oliver Hunt
Comment 28
2007-10-13 18:01:20 PDT
The feature-branch no longer exists, it was merged into trunk yesterday. Feature-branch has been available as a nightly for a few weeks now :D *Theoretically* a nightly should be available shortly which will be post merge (you're looking for a version >
r26552
Bruce Rindahl
Comment 29
2007-10-18 12:37:08 PDT
Thanks! Great news Bruce
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug