[HarfBuzz] hb-view and beyond

Behdad Esfahbod behdad at behdad.org
Tue Sep 20 10:36:39 PDT 2011


Hi all,

Those paying attention may have noticed that hb-view got quite a lift:

  - hb-view now has a full --help output and reworked options (major break was
changing --output to --output-file),

  - hb-view can generate PDF, PS, EPS, and SVG now, assuming your cairo
supports these,

  - The --text-file and --font-file (or its implicit substitutes) can be "-"
for stdin.  And both stdin and stdout functions work on Windows too (this was
a challenge to make work!)

  - Of note, also, is the --shapers option.  If you pass only one shaper to
--shapers and that shaper fails, hb-view will fail.

Note: There's still problems reading Unicode text from the command-line
arguments.  You can use --text-file to work around that.


Moreover, there is now an hb-shape binary also, which outputs shape results in
a (cryptic) human-readable way.  I plan to add more verbose formats as well as
JSON and XML too.  But for now, this is how it looks like:


<uni0905=0+1602|uni092C=3+1228|uni0942=3 at 1,-174>

That is:

  - Glyphs are separated using '|'

  - The cluster value comes after '='

  - If there's X or Y offset, they come after '@'

  - If there is advance, they come after '+'.  Maybe I should change this one
to '>' or something.

There are options to disable outputing the cluster value or the positions, or
use glyph indices instead of glyph names.


Finally, there is a Python program called hb-diff, which can compare the
output of hb-shape from two different backends and visualize the differences
colorfully.  Give it a try!


So, as you can see, I'm much closer o having a measurable definition of Indic
correctness.  Preliminary results look promising.

Cheers,
behdad



More information about the HarfBuzz mailing list