Re: Progress update on adjustment database

Craig White <[email protected]>
Newsgroups gmane.comp.fonts.freetype.devel
Message-ID <CABKSSUec9Vn2n3T5kGDXsOOT7q5iFUBxkfX=shifeOzWDxGWjQ@mail.gmail.com>
I have an algorithm I'm testing for the tilde unflattening.  I went with
doing it before all steps, because it worked better with my idea, but the
function af_glyph_hints_align_weak_points is undoing my changes.
I can tell by measuring the height of the tilde after each step of the
latin hinting process.
Here's an example from one test:
before tilde unflattening: 109 units
after: 124 units
after af_latin_hint_edges: 124 units
after af_glyph_hints_align_edge_points: 146 units
after af_glyph_hints_align_strong_points: 146 units
after af_glyph_hints_align_weak_points: 59 units

Even setting oy = y for all the points doesn't stop it, or making
extreme changes like raising all points by 200.  How do I fix this?

On Mon, Jul 31, 2023 at 12:51 AM Werner LEMBERG <[email protected]> wrote:

> > > Just take the extrema of *all* points – for fonts this should be
> > > good enough, because it is standard to have points at the curve
> > > extrema, thus making the bounding box of the curve identical to
> > > the bounding box of the points (both on and off points).
> >
> > Ok, thanks.  This is exactly what I needed.  I was already trying
> > this, but I thought it was wrong because of off points.
>
> For your information, you might also look at FreeType's function
> `FT_Glyph_Get_CBox`, which handles the generic case.
>
> > What I mean is: my code allows the adjustment for i to be applied to
> > glyphs with more than 2 contours to also adjust accented o and a, so
> > the rules you suggested would reject around half of the characters
> > that are currently being adjusted this way.  I think your rules can
> > still be enforced by treating the contour to be moved as "A" and all
> > other contours collectively as "B".
>
> Yeah, I was especially referring to glyph 'i', since here the problem
> is most visible.
>
> >> [...] I ask you to have this in mind to find a solution that can be
> >> easily extended to cover this situation, too (for example, by using
> >> an extendable structure instead of a plain variable).
> >
> > In this case, do you mean that instead of making a codepoint a key
> > for the database directly, I should wrap it in a struct so that
> > other kind of keys can be added?
>
> Something like this, yes.  Just try to be generic, and think of
> possible extensions.
>
>
>    Werner
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.