Re: HarfBuzz API design
- From: Behdad Esfahbod <behdad behdad org>
- To: Martin Sevior <msevior gmail com>
- Cc: Ralph Giles <giles ghostscript com>, Carl Worth <cworth cworth org>, Chris Wilson <chris chris-wilson co uk>, "gtk-i18n-list gnome org" <gtk-i18n-list gnome org>, Harfbuzz <harfbuzz lists freedesktop org>
- Subject: Re: HarfBuzz API design
- Date: Wed, 19 Aug 2009 21:06:22 -0400
On 08/19/2009 08:42 PM, Martin Sevior wrote:
Hi Behdad,
Thanks very much for this.
Hi Martin,
One issue that we've talked about is highlighting selected text. Is
there some way to change the font colour/background and draw between
clusters after shaping? The draw should keep the shaped characters at
the offsets they would have had the draw been over the complete set of
text.
The right way to do this indeed is to not reshape the selected text. The
cluster mapping should give you the clusters you need to highlight. The main
problem however is what to do when only part of a cluster is selected. For
now, what one can do (and indeed what GTK+/Pango do) is to distribute the
cluster width evenly among the characters comprising it. OpenType does
provide some further information about how wide individual components of a
ligature are. That information is exposed by HarfBuzz using the
OpenType-specific API. As I was saying in reply to Adam, I'm waiting to see
how other systems handle this before adding a generic API for that.
We're implementing a work around that involves drawing selected text
twice in AbiWord.
That's actually not that bad.
I didn't see selections mentioned in your API but they're an important
part of interactive text manipulation. It would be great if they could
be addressed in a high level API.
Yes, that's something I do have in mind. However, the shaper is way lower
than when actual selection and rendering happens, so it's natural to expect
the higher level to have to walk the clusters manually. At least for now.
Cheers,
behdad
Cheers
Martin
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]