> CVT values in a TrueType font are normally modified in the `prep'
> table to adapt them to the current device resolution.  If the
> resolution changes, the `prep' table is executed again.
> 
> However, what happens if there is a WCVTP or WCVTF instruction within
> a glyph's bytecode to modify a CVT entry?
> 
> I can imagine three possible solutions.  Let's assume that we have
> WCVTP and/or WCVTF commands in glyph A.
> 
>   1. WCVTP and WCVTF are allowed and are applied globally.  As a
>      consequence, rendering glyph A might influence the shape of any
>      other glyph.
> 
>   2. WCVTP and WCVTF are allowed and are applied locally.  All
>      modified CVT entries are restored after rendering of glyph A.
> 
>   3. WCVTP and WCVTF are ignored if found outside of the `prep' table.
> 
> IMHO, option 1 is bad, and that options 2 and 3 are OK.  I favour
> option 3 since it is most convenient to implement.  Right now,
> FreeType does option 1, and we should change that...
> 
> I've just written an email to Greg Hitchcock, asking for
> clarification.

And his answer: Both Apple and MS rasterizers implement option 1!

This means that FreeType is fine and DejaVuSans's hinting at 4ppm is
buggy. :-) Due to the `gasp' table, this is a non-issue anyway.


    Werner

_______________________________________________
Freetype-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to