* src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'

and fix incorrect computation of `available_sizes'.
This commit is contained in:
Werner Lemberg 2001-12-23 01:38:53 +00:00
parent 3681e37db9
commit f891f91113
2 changed files with 36 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2001-12-22 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
* src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
and fix incorrect computation of `available_sizes'.
2001-12-22 David Turner <david@freetype.org>
* src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an

View File

@ -920,6 +920,7 @@ THE SOFTWARE.
{
FT_Face root = FT_FACE( face );
PCF_Property prop;
int size_set = 0;
root->num_faces = 1;
@ -981,25 +982,42 @@ THE SOFTWARE.
prop = find_property( face, "PIXEL_SIZE" );
if ( prop != NULL )
{
PCF_Property xres = 0, yres = 0;
xres = find_property( face, "RESOLUTION_X" );
yres = find_property( face, "RESOLUTION_Y" );
if ( ( xres != NULL ) && ( yres != NULL ) )
root->available_sizes->width = (FT_Short)( prop->value.integer );
root->available_sizes->height = (FT_Short)( prop->value.integer );
size_set = 1;
}
else
{
prop = find_property( face, "POINT_SIZE" );
if ( prop != NULL )
{
root->available_sizes->width =
(FT_Short)( prop->value.integer * 75 / xres->value.integer );
root->available_sizes->height =
(FT_Short)( prop->value.integer * 75 / yres->value.integer );
PCF_Property xres = 0, yres = 0;
xres = find_property( face, "RESOLUTION_X" );
yres = find_property( face, "RESOLUTION_Y" );
if ( ( xres != NULL ) && ( yres != NULL ) )
{
root->available_sizes->width =
(FT_Short)( prop->value.integer *
xres->value.integer / 720 );
root->available_sizes->height =
(FT_Short)( prop->value.integer *
yres->value.integer / 720 );
size_set = 1;
}
}
}
else
{ /* XXX */
if (size_set == 0 )
{
#if 0
printf( "PCF Warning: Pixel Size undefined, assuming 12\n");
#endif
root->available_sizes->width = 12;
root->available_sizes->width = 12;
root->available_sizes->height = 12;
}