[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with function name, glyph index, and load flags. (FT_Select_Metrics, FT_Request_Metrics): Remove all tracing. (FT_Select_Size, FT_Request_Size): Improve tracing.
This commit is contained in:
parent
c10e7800d7
commit
d74440a327
@ -1,3 +1,12 @@
|
||||
2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||
|
||||
[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
|
||||
|
||||
* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
|
||||
function name, glyph index, and load flags.
|
||||
(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing.
|
||||
(FT_Select_Size, FT_Request_Size): Improve tracing.
|
||||
|
||||
2017-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||
|
||||
[base] Improve tracing in FT_Render_Glyph.
|
||||
|
@ -863,8 +863,8 @@
|
||||
/* XXX: This is really a temporary hack that should disappear */
|
||||
/* promptly with FreeType 2.1! */
|
||||
/* */
|
||||
if ( FT_HAS_FIXED_SIZES( face ) &&
|
||||
( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
|
||||
if ( FT_HAS_FIXED_SIZES( face ) &&
|
||||
( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
|
||||
{
|
||||
error = driver->clazz->load_glyph( slot, face->size,
|
||||
glyph_index,
|
||||
@ -932,7 +932,7 @@
|
||||
|
||||
/* compute the linear advance in 16.16 pixels */
|
||||
if ( ( load_flags & FT_LOAD_LINEAR_DESIGN ) == 0 &&
|
||||
( FT_IS_SCALABLE( face ) ) )
|
||||
FT_IS_SCALABLE( face ) )
|
||||
{
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
|
||||
@ -980,12 +980,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
FT_TRACE5(( " x advance: %d\n" , slot->advance.x ));
|
||||
FT_TRACE5(( " y advance: %d\n" , slot->advance.y ));
|
||||
|
||||
FT_TRACE5(( " linear x advance: %d\n" , slot->linearHoriAdvance ));
|
||||
FT_TRACE5(( " linear y advance: %d\n" , slot->linearVertAdvance ));
|
||||
|
||||
/* do we need to render the image or preset the bitmap now? */
|
||||
if ( !error &&
|
||||
slot->format != FT_GLYPH_FORMAT_BITMAP &&
|
||||
@ -1004,9 +998,17 @@
|
||||
ft_glyphslot_preset_bitmap( slot, mode, NULL );
|
||||
}
|
||||
|
||||
FT_TRACE5(( " bitmap pixel_mode: %d\n" , slot->bitmap.pixel_mode ));
|
||||
FT_TRACE5(( " bitmap dimensions: %dx%d\n" , slot->bitmap.width,
|
||||
slot->bitmap.rows ));
|
||||
FT_TRACE5(( "FT_Load_Glyph: index %d, flags %x\n",
|
||||
glyph_index, load_flags ));
|
||||
FT_TRACE5(( " x advance: %f\n", slot->advance.x / 64.0 ));
|
||||
FT_TRACE5(( " y advance: %f\n", slot->advance.y / 64.0 ));
|
||||
FT_TRACE5(( " linear x advance: %f\n",
|
||||
slot->linearHoriAdvance / 65536.0 ));
|
||||
FT_TRACE5(( " linear y advance: %f\n",
|
||||
slot->linearVertAdvance / 65536.0 ));
|
||||
FT_TRACE5(( " bitmap %dx%d, mode %d\n",
|
||||
slot->bitmap.width, slot->bitmap.rows,
|
||||
slot->bitmap.pixel_mode ));
|
||||
|
||||
Exit:
|
||||
return error;
|
||||
@ -3003,18 +3005,6 @@
|
||||
metrics->height = bsize->height << 6;
|
||||
metrics->max_advance = bsize->x_ppem;
|
||||
}
|
||||
|
||||
FT_TRACE5(( "FT_Select_Metrics:\n" ));
|
||||
FT_TRACE5(( " x scale: %d (%f)\n",
|
||||
metrics->x_scale, metrics->x_scale / 65536.0 ));
|
||||
FT_TRACE5(( " y scale: %d (%f)\n",
|
||||
metrics->y_scale, metrics->y_scale / 65536.0 ));
|
||||
FT_TRACE5(( " ascender: %f\n", metrics->ascender / 64.0 ));
|
||||
FT_TRACE5(( " descender: %f\n", metrics->descender / 64.0 ));
|
||||
FT_TRACE5(( " height: %f\n", metrics->height / 64.0 ));
|
||||
FT_TRACE5(( " max advance: %f\n", metrics->max_advance / 64.0 ));
|
||||
FT_TRACE5(( " x ppem: %d\n", metrics->x_ppem ));
|
||||
FT_TRACE5(( " y ppem: %d\n", metrics->y_ppem ));
|
||||
}
|
||||
|
||||
|
||||
@ -3123,18 +3113,6 @@
|
||||
metrics->x_scale = 1L << 16;
|
||||
metrics->y_scale = 1L << 16;
|
||||
}
|
||||
|
||||
FT_TRACE5(( "FT_Request_Metrics:\n" ));
|
||||
FT_TRACE5(( " x scale: %d (%f)\n",
|
||||
metrics->x_scale, metrics->x_scale / 65536.0 ));
|
||||
FT_TRACE5(( " y scale: %d (%f)\n",
|
||||
metrics->y_scale, metrics->y_scale / 65536.0 ));
|
||||
FT_TRACE5(( " ascender: %f\n", metrics->ascender / 64.0 ));
|
||||
FT_TRACE5(( " descender: %f\n", metrics->descender / 64.0 ));
|
||||
FT_TRACE5(( " height: %f\n", metrics->height / 64.0 ));
|
||||
FT_TRACE5(( " max advance: %f\n", metrics->max_advance / 64.0 ));
|
||||
FT_TRACE5(( " x ppem: %d\n", metrics->x_ppem ));
|
||||
FT_TRACE5(( " y ppem: %d\n", metrics->y_ppem ));
|
||||
}
|
||||
|
||||
|
||||
@ -3144,6 +3122,7 @@
|
||||
FT_Select_Size( FT_Face face,
|
||||
FT_Int strike_index )
|
||||
{
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_Driver_Class clazz;
|
||||
|
||||
|
||||
@ -3157,36 +3136,37 @@
|
||||
|
||||
if ( clazz->select_size )
|
||||
{
|
||||
FT_Error error;
|
||||
|
||||
|
||||
error = clazz->select_size( face->size, (FT_ULong)strike_index );
|
||||
|
||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||
{
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
FT_TRACE5(( "FT_Select_Size (%s driver):\n",
|
||||
face->driver->root.clazz->module_name ));
|
||||
}
|
||||
else
|
||||
{
|
||||
FT_Select_Metrics( face, (FT_ULong)strike_index );
|
||||
|
||||
|
||||
FT_TRACE5(( "FT_Select_Size (font driver's `select_size'):\n" ));
|
||||
FT_TRACE5(( " x scale: %d (%f)\n",
|
||||
metrics->x_scale, metrics->x_scale / 65536.0 ));
|
||||
FT_TRACE5(( " y scale: %d (%f)\n",
|
||||
metrics->y_scale, metrics->y_scale / 65536.0 ));
|
||||
FT_TRACE5(( " ascender: %f\n", metrics->ascender / 64.0 ));
|
||||
FT_TRACE5(( " descender: %f\n", metrics->descender / 64.0 ));
|
||||
FT_TRACE5(( " height: %f\n", metrics->height / 64.0 ));
|
||||
FT_TRACE5(( " max advance: %f\n", metrics->max_advance / 64.0 ));
|
||||
FT_TRACE5(( " x ppem: %d\n", metrics->x_ppem ));
|
||||
FT_TRACE5(( " y ppem: %d\n", metrics->y_ppem ));
|
||||
}
|
||||
#endif
|
||||
|
||||
return error;
|
||||
FT_TRACE5(( "FT_Select_Size:\n" ));
|
||||
}
|
||||
|
||||
FT_Select_Metrics( face, (FT_ULong)strike_index );
|
||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||
{
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
|
||||
return FT_Err_Ok;
|
||||
|
||||
FT_TRACE5(( " x scale: %d (%f)\n",
|
||||
metrics->x_scale, metrics->x_scale / 65536.0 ));
|
||||
FT_TRACE5(( " y scale: %d (%f)\n",
|
||||
metrics->y_scale, metrics->y_scale / 65536.0 ));
|
||||
FT_TRACE5(( " ascender: %f\n", metrics->ascender / 64.0 ));
|
||||
FT_TRACE5(( " descender: %f\n", metrics->descender / 64.0 ));
|
||||
FT_TRACE5(( " height: %f\n", metrics->height / 64.0 ));
|
||||
FT_TRACE5(( " max advance: %f\n", metrics->max_advance / 64.0 ));
|
||||
FT_TRACE5(( " x ppem: %d\n", metrics->x_ppem ));
|
||||
FT_TRACE5(( " y ppem: %d\n", metrics->y_ppem ));
|
||||
}
|
||||
#endif
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
@ -3196,6 +3176,7 @@
|
||||
FT_Request_Size( FT_Face face,
|
||||
FT_Size_Request req )
|
||||
{
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_Driver_Class clazz;
|
||||
FT_ULong strike_index;
|
||||
|
||||
@ -3215,55 +3196,52 @@
|
||||
|
||||
if ( clazz->request_size )
|
||||
{
|
||||
FT_Error error;
|
||||
|
||||
|
||||
error = clazz->request_size( face->size, req );
|
||||
|
||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||
{
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
|
||||
|
||||
FT_TRACE5(( "FT_Request_Size (font driver's `request_size'):\n" ));
|
||||
FT_TRACE5(( " x scale: %d (%f)\n",
|
||||
metrics->x_scale, metrics->x_scale / 65536.0 ));
|
||||
FT_TRACE5(( " y scale: %d (%f)\n",
|
||||
metrics->y_scale, metrics->y_scale / 65536.0 ));
|
||||
FT_TRACE5(( " ascender: %f\n", metrics->ascender / 64.0 ));
|
||||
FT_TRACE5(( " descender: %f\n", metrics->descender / 64.0 ));
|
||||
FT_TRACE5(( " height: %f\n", metrics->height / 64.0 ));
|
||||
FT_TRACE5(( " max advance: %f\n", metrics->max_advance / 64.0 ));
|
||||
FT_TRACE5(( " x ppem: %d\n", metrics->x_ppem ));
|
||||
FT_TRACE5(( " y ppem: %d\n", metrics->y_ppem ));
|
||||
}
|
||||
#endif
|
||||
|
||||
return error;
|
||||
FT_TRACE5(( "FT_Request_Size (%s driver):\n",
|
||||
face->driver->root.clazz->module_name ));
|
||||
}
|
||||
|
||||
/*
|
||||
* The reason that a driver doesn't have `request_size' defined is
|
||||
* either that the scaling here suffices or that the supported formats
|
||||
* are bitmap-only and size matching is not implemented.
|
||||
*
|
||||
* In the latter case, a simple size matching is done.
|
||||
*/
|
||||
if ( !FT_IS_SCALABLE( face ) && FT_HAS_FIXED_SIZES( face ) )
|
||||
else if ( !FT_IS_SCALABLE( face ) && FT_HAS_FIXED_SIZES( face ) )
|
||||
{
|
||||
FT_Error error;
|
||||
|
||||
|
||||
/*
|
||||
* The reason that a driver doesn't have `request_size' defined is
|
||||
* either that the scaling here suffices or that the supported formats
|
||||
* are bitmap-only and size matching is not implemented.
|
||||
*
|
||||
* In the latter case, a simple size matching is done.
|
||||
*/
|
||||
error = FT_Match_Size( face, req, 0, &strike_index );
|
||||
if ( error )
|
||||
return error;
|
||||
|
||||
return FT_Select_Size( face, (FT_Int)strike_index );
|
||||
}
|
||||
else
|
||||
{
|
||||
FT_Request_Metrics( face, req );
|
||||
|
||||
FT_Request_Metrics( face, req );
|
||||
FT_TRACE5(( "FT_Request_Size:\n" ));
|
||||
}
|
||||
|
||||
return FT_Err_Ok;
|
||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||
{
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
|
||||
|
||||
FT_TRACE5(( " x scale: %d (%f)\n",
|
||||
metrics->x_scale, metrics->x_scale / 65536.0 ));
|
||||
FT_TRACE5(( " y scale: %d (%f)\n",
|
||||
metrics->y_scale, metrics->y_scale / 65536.0 ));
|
||||
FT_TRACE5(( " ascender: %f\n", metrics->ascender / 64.0 ));
|
||||
FT_TRACE5(( " descender: %f\n", metrics->descender / 64.0 ));
|
||||
FT_TRACE5(( " height: %f\n", metrics->height / 64.0 ));
|
||||
FT_TRACE5(( " max advance: %f\n", metrics->max_advance / 64.0 ));
|
||||
FT_TRACE5(( " x ppem: %d\n", metrics->x_ppem ));
|
||||
FT_TRACE5(( " y ppem: %d\n", metrics->y_ppem ));
|
||||
}
|
||||
#endif
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
@ -4550,7 +4528,7 @@
|
||||
/* we use FT_TRACE3 in this block */
|
||||
if ( !error &&
|
||||
ft_trace_levels[trace_bitmap] >= 3 &&
|
||||
slot->bitmap.buffer )
|
||||
slot->bitmap.buffer )
|
||||
{
|
||||
FT_Bitmap bitmap;
|
||||
FT_Error err;
|
||||
@ -4604,7 +4582,7 @@
|
||||
ft_trace_levels[trace_bitmap] >= 7 &&
|
||||
slot->bitmap.rows < 128U &&
|
||||
slot->bitmap.width < 128U &&
|
||||
slot->bitmap.buffer )
|
||||
slot->bitmap.buffer )
|
||||
{
|
||||
int rows = (int)slot->bitmap.rows;
|
||||
int width = (int)slot->bitmap.width;
|
||||
|
Loading…
Reference in New Issue
Block a user