rounding glyph positions

Matthias Clasen <[email protected]> Thu, 1 Aug 2019 17:00:45 -0400
Newsgroups gmane.comp.lib.cairo
Message-ID <CAFwd_vDuwukg043WYQX1P9EhHX5_NpFJd2pYkPpcNmY4U3icng@mail.gmail.com>
--===============0626556536==
Content-Type: multipart/alternative; boundary="000000000000b7018c058f148955"

--000000000000b7018c058f148955
Content-Type: text/plain; charset="UTF-8"

I've stumbled over cairo_round_glyph_positions_t.

With subpixel positioning, it does not make a lot of sense to round glyph
extents to pixel boundaries. But cairo has a font option called
cairo_round_glyph)_positions_t, which
unfortunately gets hardcoded by the target surface with no api to override
it.

Behdad and myself have been wondering why this is separate from
cairo_hint_metrics_t
in the first place - as far as we can see, the two are more or less
synonymous. But one is
settable, and the other isn't :(

Thankfully, it may not matter much for pango, since we use harfbuzz for
glyph extents.

But I'd still like to understand what the rationale is for a) this being
separate from hint metrics
and b) this not being settable.

--000000000000b7018c058f148955
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I&#39;ve stumbled over cairo_round_glyph_positions_t.=
</div><div><br></div><div>With subpixel positioning, it does not make a lot=
 of sense to round glyph extents to pixel boundaries. But cairo has a font =
option called cairo_round_glyph)_positions_t, which</div><div>unfortunately=
 gets hardcoded by the target surface with no api to override it.</div><div=
><br></div><div>Behdad and myself have been wondering why this is separate =
from cairo_hint_metrics_t</div><div>in the first place - as far as we can s=
ee, the two are more or less synonymous. But one is <br></div><div>settable=
, and the other isn&#39;t :(</div><div><br></div><div>Thankfully, it may no=
t matter much for pango, since we use harfbuzz for glyph extents.</div><div=
><br></div><div>But I&#39;d still like to understand what the rationale is =
for a) this being separate from hint metrics</div><div>and b) this not bein=
g settable.<br></div><div><br></div></div>

--000000000000b7018c058f148955--

--===============0626556536==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

LS0gCmNhaXJvIG1haWxpbmcgbGlzdApjYWlyb0BjYWlyb2dyYXBoaWNzLm9yZwpodHRwczovL2xp
c3RzLmNhaXJvZ3JhcGhpY3Mub3JnL21haWxtYW4vbGlzdGluZm8vY2Fpcm8=

--===============0626556536==--