[HarfBuzz] hangul shaper for harfbuzz-ng

Behdad Esfahbod behdad at behdad.org
Wed Apr 11 14:44:30 PDT 2012

Replying to a *very* old email:

On 02/16/2011 11:20 AM, Jonathan Kew wrote:
> I've just been starting to look at what would be needed to support Hangul (Korean) in hb-ng. There are a couple of aspects to this: first, composition of Hangul syllables from sequences of jamo (so that decomposed text will display well, without requiring fonts to implement all the compositions themselves); and second, application of the ljmo/vjmo/tjmo features to the appropriate positions, for the benefit of fonts with advanced support for Old Korean.

So, with the recent changes (the one-line Hangul module I added), this is
being handled by the normalizer.

> As a first step, here is a patch to add a Korean shaping module with canonical composition of decomposed jamo sequences. It does *not* yet do anything about the *jmo features, only the generic features will be applied. But with this patch, I see much better results for modern Korean text that happens to be in decomposed form.

I couldn't figure out how those features are supposed to work either.  I see
that the malgun font from Windows supports them.  Maybe someone can shed some
light on how they are supposed to work?

> Behdad, to connect this to the shaping code path, I added a new hb_preprocess_chars() function that is called on the buffer before hb_substitute_default(), so that it can manipulate the character codes. Please see what you think of this as an approach, and if you see a better way to approach it, let me know.

That's probably a better approach.  For now, we're abusing setup_masks().
That said, the functionality of setup_masks() and preprocess_chars() is better
not decoupled since for example Arabic setup_masks() and fallback shaping work
best as one function.  So I'm leaving it as is for now.


> JK
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/harfbuzz

More information about the HarfBuzz mailing list