* src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.

This commit is contained in:
Alexei Podtelezhnikov 2015-06-24 23:31:17 -04:00
parent 5931268eec
commit 4308b7b1af
2 changed files with 14 additions and 19 deletions

View File

@ -1,3 +1,7 @@
2015-06-24 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.
2015-06-23 Werner Lemberg <wl@gnu.org>
s/TYPEOF/FT_TYPEOF/ (#45376).

View File

@ -2346,30 +2346,21 @@
/* Check for the bits per pixel field. */
if ( p->list.used == 5 )
{
unsigned short bitcount, i, shift;
unsigned short bpp;
p->font->bpp = (unsigned short)_bdf_atos( p->list.field[4], 0, 10 );
bpp = (unsigned short)_bdf_atos( p->list.field[4], 0, 10 );
/* Only values 1, 2, 4, 8 are allowed. */
shift = p->font->bpp;
bitcount = 0;
for ( i = 0; shift > 0; i++ )
{
if ( shift & 1 )
bitcount = i;
shift >>= 1;
}
/* Only values 1, 2, 4, 8 are allowed for greymap fonts. */
if ( bpp > 4 )
p->font->bpp = 8;
else if ( bpp > 2 )
p->font->bpp = 4;
else
p->font->bpp = bpp;
shift = (unsigned short)( ( bitcount > 3 ) ? 8
: ( 1U << bitcount ) );
if ( p->font->bpp > shift || p->font->bpp != shift )
{
/* select next higher value */
p->font->bpp = (unsigned short)( shift << 1 );
if ( p->font->bpp != bpp )
FT_TRACE2(( "_bdf_parse_start: " ACMSG11, p->font->bpp ));
}
}
else
p->font->bpp = 1;