It's pushed. If you're testing this yourself, keep in mind that the adjustment will only be applied to n with tilde. Any other letter with a tilde can be used as a control group.
The commit also has the vertical adjustment mode that pushes the bottom contour down, which I haven't found characters to test on yet. On Wed, Aug 2, 2023 at 6:29 PM Craig White <gerzy...@gmail.com> wrote: > Thanks for your help. I fixed the issue by marking all on-curve points > that I moved as touched (and letting IUP do the rest), setting oy = y, and > applying the stretch to fy as well. I also had some calculation errors in > the height measurement the debug prints used and the algorithm itself. > > The next problem is that I relied on an assumption that if the original > height of the tilde was about 2 pixels tall, the grid-fitted position would > probably be 2 pixels. My method estimates the width of the tilde by > looking for the points at the tips of the tilde curves and measuring their > distance to the bounding box (see the attached image for a visualization), > then adding 1 pixel and scaling the contour vertically, anchored at its > lowest point, until it is at least that tall. > > Testing with Liberation Sans, the sizes that had flat tildes before still > have flat tildes. I can add more than 1 pixel to the measurement to > unflatten them, but that causes unnecessarily tall tildes at other sizes. > I have confirmed by commenting/uncommenting steps of the hinting process > that af_glyph_hints_align_edge_points is the function that snaps the tilde > back to flat, so if my understanding is correct, the points at the top and > bottom of the tilde are forming edges and are being rounded towards each > other, causing the tilde to remain flat. How should I proceed? > > I'll also push the code I have after removing the dead code and debug > prints that have built up. > > On Mon, Jul 31, 2023 at 6:23 PM Werner LEMBERG <w...@gnu.org> wrote: > >> >> > 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. >> >> Hmm. Have you checked the OpenType specification how the IUP >> instruction works? >> >> >> https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#interpolate-untouched-points-through-the-outline >> >> Have you 'touched' the points you move (i.e., setting >> `AF_FLAG_TOUCH_Y`) so that `af_glyph_hints_align_weak_points` doesn't >> move them again? >> >> >> Werner >> >