forked from minhngoc25a/freetype2
[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>
|
2017-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||||
|
|
||||||
[base] Improve tracing in FT_Render_Glyph.
|
[base] Improve tracing in FT_Render_Glyph.
|
||||||
|
|
|
@ -863,8 +863,8 @@
|
||||||
/* XXX: This is really a temporary hack that should disappear */
|
/* XXX: This is really a temporary hack that should disappear */
|
||||||
/* promptly with FreeType 2.1! */
|
/* promptly with FreeType 2.1! */
|
||||||
/* */
|
/* */
|
||||||
if ( FT_HAS_FIXED_SIZES( face ) &&
|
if ( FT_HAS_FIXED_SIZES( face ) &&
|
||||||
( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
|
( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
|
||||||
{
|
{
|
||||||
error = driver->clazz->load_glyph( slot, face->size,
|
error = driver->clazz->load_glyph( slot, face->size,
|
||||||
glyph_index,
|
glyph_index,
|
||||||
|
@ -932,7 +932,7 @@
|
||||||
|
|
||||||
/* compute the linear advance in 16.16 pixels */
|
/* compute the linear advance in 16.16 pixels */
|
||||||
if ( ( load_flags & FT_LOAD_LINEAR_DESIGN ) == 0 &&
|
if ( ( load_flags & FT_LOAD_LINEAR_DESIGN ) == 0 &&
|
||||||
( FT_IS_SCALABLE( face ) ) )
|
FT_IS_SCALABLE( face ) )
|
||||||
{
|
{
|
||||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
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? */
|
/* do we need to render the image or preset the bitmap now? */
|
||||||
if ( !error &&
|
if ( !error &&
|
||||||
slot->format != FT_GLYPH_FORMAT_BITMAP &&
|
slot->format != FT_GLYPH_FORMAT_BITMAP &&
|
||||||
|
@ -1004,9 +998,17 @@
|
||||||
ft_glyphslot_preset_bitmap( slot, mode, NULL );
|
ft_glyphslot_preset_bitmap( slot, mode, NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
FT_TRACE5(( " bitmap pixel_mode: %d\n" , slot->bitmap.pixel_mode ));
|
FT_TRACE5(( "FT_Load_Glyph: index %d, flags %x\n",
|
||||||
FT_TRACE5(( " bitmap dimensions: %dx%d\n" , slot->bitmap.width,
|
glyph_index, load_flags ));
|
||||||
slot->bitmap.rows ));
|
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:
|
Exit:
|
||||||
return error;
|
return error;
|
||||||
|
@ -3003,18 +3005,6 @@
|
||||||
metrics->height = bsize->height << 6;
|
metrics->height = bsize->height << 6;
|
||||||
metrics->max_advance = bsize->x_ppem;
|
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->x_scale = 1L << 16;
|
||||||
metrics->y_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_Select_Size( FT_Face face,
|
||||||
FT_Int strike_index )
|
FT_Int strike_index )
|
||||||
{
|
{
|
||||||
|
FT_Error error = FT_Err_Ok;
|
||||||
FT_Driver_Class clazz;
|
FT_Driver_Class clazz;
|
||||||
|
|
||||||
|
|
||||||
|
@ -3157,36 +3136,37 @@
|
||||||
|
|
||||||
if ( clazz->select_size )
|
if ( clazz->select_size )
|
||||||
{
|
{
|
||||||
FT_Error error;
|
|
||||||
|
|
||||||
|
|
||||||
error = clazz->select_size( face->size, (FT_ULong)strike_index );
|
error = clazz->select_size( face->size, (FT_ULong)strike_index );
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
FT_TRACE5(( "FT_Select_Size (%s driver):\n",
|
||||||
{
|
face->driver->root.clazz->module_name ));
|
||||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FT_Select_Metrics( face, (FT_ULong)strike_index );
|
||||||
|
|
||||||
|
FT_TRACE5(( "FT_Select_Size:\n" ));
|
||||||
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_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_Request_Size( FT_Face face,
|
||||||
FT_Size_Request req )
|
FT_Size_Request req )
|
||||||
{
|
{
|
||||||
|
FT_Error error = FT_Err_Ok;
|
||||||
FT_Driver_Class clazz;
|
FT_Driver_Class clazz;
|
||||||
FT_ULong strike_index;
|
FT_ULong strike_index;
|
||||||
|
|
||||||
|
@ -3215,55 +3196,52 @@
|
||||||
|
|
||||||
if ( clazz->request_size )
|
if ( clazz->request_size )
|
||||||
{
|
{
|
||||||
FT_Error error;
|
|
||||||
|
|
||||||
|
|
||||||
error = clazz->request_size( face->size, req );
|
error = clazz->request_size( face->size, req );
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
FT_TRACE5(( "FT_Request_Size (%s driver):\n",
|
||||||
{
|
face->driver->root.clazz->module_name ));
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
else if ( !FT_IS_SCALABLE( face ) && FT_HAS_FIXED_SIZES( face ) )
|
||||||
/*
|
|
||||||
* 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 ) )
|
|
||||||
{
|
{
|
||||||
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 );
|
error = FT_Match_Size( face, req, 0, &strike_index );
|
||||||
if ( error )
|
if ( error )
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
return FT_Select_Size( face, (FT_Int)strike_index );
|
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 */
|
/* we use FT_TRACE3 in this block */
|
||||||
if ( !error &&
|
if ( !error &&
|
||||||
ft_trace_levels[trace_bitmap] >= 3 &&
|
ft_trace_levels[trace_bitmap] >= 3 &&
|
||||||
slot->bitmap.buffer )
|
slot->bitmap.buffer )
|
||||||
{
|
{
|
||||||
FT_Bitmap bitmap;
|
FT_Bitmap bitmap;
|
||||||
FT_Error err;
|
FT_Error err;
|
||||||
|
@ -4604,7 +4582,7 @@
|
||||||
ft_trace_levels[trace_bitmap] >= 7 &&
|
ft_trace_levels[trace_bitmap] >= 7 &&
|
||||||
slot->bitmap.rows < 128U &&
|
slot->bitmap.rows < 128U &&
|
||||||
slot->bitmap.width < 128U &&
|
slot->bitmap.width < 128U &&
|
||||||
slot->bitmap.buffer )
|
slot->bitmap.buffer )
|
||||||
{
|
{
|
||||||
int rows = (int)slot->bitmap.rows;
|
int rows = (int)slot->bitmap.rows;
|
||||||
int width = (int)slot->bitmap.width;
|
int width = (int)slot->bitmap.width;
|
||||||
|
|
Loading…
Reference in New Issue