[HarfBuzz] How to increase harfbuzz numerical precision

Khaled Hosny khaledhosny at eglug.org
Wed Jun 29 00:28:42 UTC 2016


Device tables affect glyph positioning which is done by HarfBuzz to
Cairo.

On Tue, Jun 28, 2016 at 07:50:51PM -0400, Kelvin Ma wrote:
> The rendering is separate from harfbuzz i thought, the glyphs get passed to
> cairo’s cr.show_glyphs() and it uses its own font structure that has to be
> loaded separately from harfbuzz’s fonts. So any value set on the harfbuzz
> font is not known by the renderer
> 
> On Tue, Jun 28, 2016 at 7:48 PM, Khaled Hosny <khaledhosny at eglug.org> wrote:
> 
> > For device tables (as I said in my first reply) and I think hinting
> > (though I don’t think hinting stuff affects HarfBuzz right now).
> >
> > On Tue, Jun 28, 2016 at 07:25:27PM -0400, Kelvin Ma wrote:
> > > ok this might be a dumb question but what is ppem used for anyway? I
> > > thought it was a font value that harfbuzz just lets you read off of the
> > > font (like upem, advance width, or glyph index) so you can do your own
> > math
> > > on the font outside of harfbuzz.
> > >
> > > On Tue, Jun 28, 2016 at 7:18 PM, Khaled Hosny <khaledhosny at eglug.org>
> > wrote:
> > >
> > > > It is, but you have to set it separately, and then you can set the font
> > > > scale to whatever value you need without both being interdependent.
> > > >
> > > > On Tue, Jun 28, 2016 at 07:15:23PM -0400, Kelvin Ma wrote:
> > > > > I thought ppem was dependent on UPEM and font scale, is it not?
> > > > >
> > > > > On Tue, Jun 28, 2016 at 7:12 PM, Khaled Hosny <khaledhosny at eglug.org
> > >
> > > > wrote:
> > > > >
> > > > > > Device tables depend on ppem, so despite the scale being set
> > > > > > on the font, you should still set the exact ppem.
> > > > > >
> > > > > > On Tue, Jun 28, 2016 at 06:43:58PM -0400, Kelvin Ma wrote:
> > > > > > > so that’s the only way huh…
> > > > > > > doesn’t that kind of defeat the purpose of hb.font_create() and
> > > > having
> > > > > > many
> > > > > > > scaled versions of the same font? You would only ever need one
> > font
> > > > of
> > > > > > each
> > > > > > > face, scaled to the UPEM, if the fontsize was to be applied
> > > > externally
> > > > > > > after shaping already occurred.
> > > > > > >
> > > > > > > On Tue, Jun 28, 2016 at 5:51 PM, Behdad Esfahbod <
> > behdad at behdad.org>
> > > > > > wrote:
> > > > > > >
> > > > > > > > HarfBuzz coordinates work in a int32 space.  You are free to
> > set
> > > > > > whatever
> > > > > > > > scales you want on the font.  For example, use 6 or 8 or 10 or
> > 16
> > > > bits
> > > > > > of
> > > > > > > > sub-pixel precision by multiplying your scale by a number.
> > > > > > > >
> > > > > > > > On Tue, Jun 28, 2016 at 4:57 PM, Kelvin Ma <
> > > > kelvinsthirteen at gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > >> It appears that harfbuzz rounds all decimals to integers when
> > > > giving
> > > > > > > >> glyph advances and offsets. This is causing some ugly
> > misalignment
> > > > > > problems
> > > > > > > >> in arabic shaping, as well as latin cursive fonts. (see
> > pictures)
> > > > > > > >>
> > > > > > > >> [image: Inline image 1]
> > > > > > > >>
> > > > > > > >> [image: Inline image 2]
> > > > > > > >>
> > > > > > > >> [image: Inline image 3]
> > > > > > > >> How do I get harfbuzz to preserve the floats?
> > > > > > > >>
> > > > > > > >> _______________________________________________
> > > > > > > >> HarfBuzz mailing list
> > > > > > > >> HarfBuzz at lists.freedesktop.org
> > > > > > > >> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
> > > > > > > >>
> > > > > > > >>
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > behdad
> > > > > > > > http://behdad.org/
> > > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > _______________________________________________
> > > > > > > HarfBuzz mailing list
> > > > > > > HarfBuzz at lists.freedesktop.org
> > > > > > > https://lists.freedesktop.org/mailman/listinfo/harfbuzz
> > > > > >
> > > > > >
> > > >
> >


More information about the HarfBuzz mailing list