[truetype] Round offsets of glyph components only if hinting is on.
* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement it.
This commit is contained in:
parent
55d6abea5d
commit
029c9b2391
@ -1,3 +1,10 @@
|
||||
2018-01-03 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[truetype] Round offsets of glyph components only if hinting is on.
|
||||
|
||||
* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
|
||||
it.
|
||||
|
||||
2018-01-03 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
|
||||
|
@ -1206,8 +1206,28 @@
|
||||
|
||||
if ( subglyph->flags & ROUND_XY_TO_GRID )
|
||||
{
|
||||
x = FT_PIX_ROUND( x );
|
||||
y = FT_PIX_ROUND( y );
|
||||
TT_Face face = loader->face;
|
||||
TT_Driver driver = (TT_Driver)FT_FACE_DRIVER( face );
|
||||
|
||||
|
||||
if ( IS_HINTED( loader->load_flags ) )
|
||||
{
|
||||
/*
|
||||
* We round the horizontal offset only if there is hinting along
|
||||
* the x axis; this corresponds to integer advance width values.
|
||||
*
|
||||
* Theoretically, a glyph's bytecode can toggle ClearType's
|
||||
* `backward compatibility' mode, which would allow modification
|
||||
* of the advance width. In reality, however, applications
|
||||
* neither allow nor expect modified advance widths if sub-pixel
|
||||
* rendering is active.
|
||||
*
|
||||
*/
|
||||
if ( driver->interpreter_version == TT_INTERPRETER_VERSION_35 )
|
||||
x = FT_PIX_ROUND( x );
|
||||
|
||||
y = FT_PIX_ROUND( y );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user