@ -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 ) ;
FT_TRACE5 ( ( " FT_Select_Size (%s driver): \n " ,
face - > driver - > root . clazz - > module_name ) ) ;
}
else
{
FT_Select_Metrics ( face , ( FT_ULong ) strike_index ) ;
error = clazz - > select_size ( face - > size , ( FT_ULong ) strike_index ) ;
FT_TRACE5 ( ( " FT_Select_Size: \n " ) ) ;
}
# ifdef FT_DEBUG_LEVEL_TRACE
{
FT_Size_Metrics * metrics = & face - > size - > metrics ;
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
{
FT_Size_Metrics * metrics = & face - > size - > metrics ;
return error ;
}
FT_Select_Metrics ( face , ( FT_ULong ) strike_index ) ;
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 FT_Err_Ok ;
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_TRACE5 ( ( " FT_Request_Size: \n " ) ) ;
}
# ifdef FT_DEBUG_LEVEL_TRACE
{
FT_Size_Metrics * metrics = & face - > size - > metrics ;
FT_Request_Metrics ( face , req ) ;
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 ;
}
@ -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 ;