After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 323172 - (vertical) Support rendering of vertical text
(vertical)
Support rendering of vertical text
Status: RESOLVED FIXED
Product: pango
Classification: Platform
Component: general
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: pango-maint
pango-maint
Depends on:
Blocks: 99523
 
 
Reported: 2005-12-04 02:46 UTC by Maciej Katafiasz
Modified: 2006-08-21 04:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Post-GUADEC copy of current patch (18.46 KB, patch)
2006-07-15 23:09 UTC, Maciej Katafiasz
none Details | Review
Patch 2, adding per-item gravity resolution (10.11 KB, patch)
2006-08-20 16:58 UTC, Maciej Katafiasz
none Details | Review
new patch, update on script change properly (10.90 KB, patch)
2006-08-20 17:37 UTC, Maciej Katafiasz
none Details | Review
Add data tables for script properties (1.26 KB, patch)
2006-08-21 04:38 UTC, Maciej Katafiasz
none Details | Review
Script properties table (3.26 KB, text/x-csrc)
2006-08-21 04:39 UTC, Maciej Katafiasz
  Details

Description Maciej Katafiasz 2005-12-04 02:46:05 UTC
Splitting bug 99523.

First step should be adding simple, unidirectional, no mixed anything rendering
support for vertical text. That is, native Japanese run should render correctly
in vertical.

To do that, we need:

1) Rotated cooridnates support (check)
2) Fixing characters with strong vertical orientation into correct position
(that is, undoing step 1 on per-character basis)
3) Add some extra logic here and there to flow lines RTL or LTR instead of TTB
(should be fairly trivial)
Comment 1 yydzero 2005-12-30 15:13:26 UTC
Interesting in this feature, add my self into cc list, so that got the recent status
Comment 2 Behdad Esfahbod 2006-01-22 17:43:52 UTC
The following paragraph is from the 5-year old pango/TODO.xml.  The last sentence was new to me, so copying here:

          One reason why vertical text has not been implemented in
          Pango-1.0 is that the target rendering system, X, has week
          facilities for handling text in other than a horizontal
          location. The obvious, though not the only, way of treating
          vertical writing is to keep the logic in
          <code>PangoLayout</code> the same, but to have an
          implicit transformation of the coordinate system.  Doing it
          this way, the only extra code in Pango that is needed is to
          transform glyph metrics as appropriate.  (some characters
          will rotate, some not), and also to handle selecting
          appropriate glyph variants when a font has separate variants
          for vertical and horizontal text.  (CJK punctuation being a
          common example of this.)
Comment 3 Behdad Esfahbod 2006-01-22 17:49:00 UTC
Humm, just noticed that this paragraph was the opener of the parent bug of this bug, bug #99523.
Comment 4 Maciej Katafiasz 2006-07-15 23:09:09 UTC
Created attachment 68976 [details] [review]
Post-GUADEC copy of current patch

This is the first patch as it stands currently, including the compile break on a recent commit which removed logical_rect, to track the work and allow some review of the approach taken.
Comment 5 Behdad Esfahbod 2006-07-16 01:56:28 UTC
Just about formatting of future patches you submit, please follow Pango's coding style.  Function call spaces are particularly missing ;).  Also, please use -p option for your diffs (can put it in ~/.cvsrc, oops, whatever it is in svn)
Comment 6 Maciej Katafiasz 2006-08-20 16:58:26 UTC
Created attachment 71255 [details] [review]
Patch 2, adding per-item gravity resolution
Comment 7 Maciej Katafiasz 2006-08-20 17:37:55 UTC
Created attachment 71257 [details] [review]
new patch, update on script change properly
Comment 8 Behdad Esfahbod 2006-08-21 03:15:28 UTC
Closing this as I've implemented the base for vertical now.  One can choose a vertical layout by calling pango_context_set_gravity() and a matrix rotation on the layout.

What is not working though is non-trivial vertical shaping.
Comment 9 Behdad Esfahbod 2006-08-21 03:16:25 UTC
Bug #323173 is the followup of this bug and where the rest of the discussion should go.
Comment 10 Maciej Katafiasz 2006-08-21 04:38:36 UTC
Created attachment 71271 [details] [review]
Add data tables for script properties
Comment 11 Maciej Katafiasz 2006-08-21 04:39:45 UTC
Created attachment 71272 [details]
Script properties table