[truetype] More preparations for MVAR support.
* src/truetype/ttobjs.c (tt_size_reset): Add argument to make function only recompute ascender, descender, and height. * src/truetype/ttobjs.h: Updated. * src/truetype/ttdriver.c (tt_size_select, tt_size_request): Updated.
This commit is contained in:
parent
7ccca6aec1
commit
8ab08cff63
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2017-01-11 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[truetype] More preparations for MVAR support.
|
||||||
|
|
||||||
|
* src/truetype/ttobjs.c (tt_size_reset): Add argument to make
|
||||||
|
function only recompute ascender, descender, and height.
|
||||||
|
|
||||||
|
* src/truetype/ttobjs.h: Updated.
|
||||||
|
|
||||||
|
* src/truetype/ttdriver.c (tt_size_select, tt_size_request):
|
||||||
|
Updated.
|
||||||
|
|
||||||
2017-01-09 Werner Lemberg <wl@gnu.org>
|
2017-01-09 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[pcf] Disable long family names by default.
|
[pcf] Disable long family names by default.
|
||||||
|
|
|
@ -304,7 +304,7 @@
|
||||||
/* use the scaled metrics, even when tt_size_reset fails */
|
/* use the scaled metrics, even when tt_size_reset fails */
|
||||||
FT_Select_Metrics( size->face, strike_index );
|
FT_Select_Metrics( size->face, strike_index );
|
||||||
|
|
||||||
tt_size_reset( ttsize ); /* ignore return value */
|
tt_size_reset( ttsize, 0 ); /* ignore return value */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -354,7 +354,7 @@
|
||||||
|
|
||||||
if ( FT_IS_SCALABLE( size->face ) )
|
if ( FT_IS_SCALABLE( size->face ) )
|
||||||
{
|
{
|
||||||
error = tt_size_reset( ttsize );
|
error = tt_size_reset( ttsize, 0 );
|
||||||
ttsize->root.metrics = ttsize->metrics;
|
ttsize->root.metrics = ttsize->metrics;
|
||||||
|
|
||||||
#ifdef TT_USE_BYTECODE_INTERPRETER
|
#ifdef TT_USE_BYTECODE_INTERPRETER
|
||||||
|
|
|
@ -1198,13 +1198,15 @@
|
||||||
/* have been changed. */
|
/* have been changed. */
|
||||||
/* */
|
/* */
|
||||||
/* <Input> */
|
/* <Input> */
|
||||||
/* size :: A handle to the target size object. */
|
/* size :: A handle to the target size object. */
|
||||||
|
/* */
|
||||||
|
/* only_height :: Only recompute ascender, descender, and height. */
|
||||||
/* */
|
/* */
|
||||||
FT_LOCAL_DEF( FT_Error )
|
FT_LOCAL_DEF( FT_Error )
|
||||||
tt_size_reset( TT_Size size )
|
tt_size_reset( TT_Size size,
|
||||||
|
FT_Bool only_height )
|
||||||
{
|
{
|
||||||
TT_Face face;
|
TT_Face face;
|
||||||
FT_Error error = FT_Err_Ok;
|
|
||||||
FT_Size_Metrics* metrics;
|
FT_Size_Metrics* metrics;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1226,17 +1228,26 @@
|
||||||
/* */
|
/* */
|
||||||
if ( face->header.Flags & 8 )
|
if ( face->header.Flags & 8 )
|
||||||
{
|
{
|
||||||
metrics->x_scale = FT_DivFix( metrics->x_ppem << 6,
|
|
||||||
face->root.units_per_EM );
|
|
||||||
metrics->y_scale = FT_DivFix( metrics->y_ppem << 6,
|
|
||||||
face->root.units_per_EM );
|
|
||||||
|
|
||||||
metrics->ascender =
|
metrics->ascender =
|
||||||
FT_PIX_ROUND( FT_MulFix( face->root.ascender, metrics->y_scale ) );
|
FT_PIX_ROUND( FT_MulFix( face->root.ascender, metrics->y_scale ) );
|
||||||
metrics->descender =
|
metrics->descender =
|
||||||
FT_PIX_ROUND( FT_MulFix( face->root.descender, metrics->y_scale ) );
|
FT_PIX_ROUND( FT_MulFix( face->root.descender, metrics->y_scale ) );
|
||||||
metrics->height =
|
metrics->height =
|
||||||
FT_PIX_ROUND( FT_MulFix( face->root.height, metrics->y_scale ) );
|
FT_PIX_ROUND( FT_MulFix( face->root.height, metrics->y_scale ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
size->ttmetrics.valid = TRUE;
|
||||||
|
|
||||||
|
if ( only_height )
|
||||||
|
return FT_Err_Ok;
|
||||||
|
|
||||||
|
if ( face->header.Flags & 8 )
|
||||||
|
{
|
||||||
|
metrics->x_scale = FT_DivFix( metrics->x_ppem << 6,
|
||||||
|
face->root.units_per_EM );
|
||||||
|
metrics->y_scale = FT_DivFix( metrics->y_ppem << 6,
|
||||||
|
face->root.units_per_EM );
|
||||||
|
|
||||||
metrics->max_advance =
|
metrics->max_advance =
|
||||||
FT_PIX_ROUND( FT_MulFix( face->root.max_advance_width,
|
FT_PIX_ROUND( FT_MulFix( face->root.max_advance_width,
|
||||||
metrics->x_scale ) );
|
metrics->x_scale ) );
|
||||||
|
@ -1264,10 +1275,7 @@
|
||||||
size->cvt_ready = -1;
|
size->cvt_ready = -1;
|
||||||
#endif /* TT_USE_BYTECODE_INTERPRETER */
|
#endif /* TT_USE_BYTECODE_INTERPRETER */
|
||||||
|
|
||||||
if ( !error )
|
return FT_Err_Ok;
|
||||||
size->ttmetrics.valid = TRUE;
|
|
||||||
|
|
||||||
return error;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -389,7 +389,8 @@ FT_BEGIN_HEADER
|
||||||
#endif /* TT_USE_BYTECODE_INTERPRETER */
|
#endif /* TT_USE_BYTECODE_INTERPRETER */
|
||||||
|
|
||||||
FT_LOCAL( FT_Error )
|
FT_LOCAL( FT_Error )
|
||||||
tt_size_reset( TT_Size size );
|
tt_size_reset( TT_Size size,
|
||||||
|
FT_Bool only_height );
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue