Applied patch 1342470: Support fonts wider than 16 pixels in convbdf.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7874 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Magnus Holmgren 2005-11-14 19:52:04 +00:00
parent 3b0e8f89ab
commit a199aef53a

View file

@ -528,11 +528,6 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf)
maxwidth = width; maxwidth = width;
pf->width[encoding-pf->firstchar] = width; pf->width[encoding-pf->firstchar] = width;
if(maxwidth > 16) {
fprintf(stderr, "Error: Too wide characters (>16 pixels)\n");
return 0;
}
/* clear bitmap*/ /* clear bitmap*/
memset(ch_bitmap, 0, BITMAP_BYTES(width) * pf->height); memset(ch_bitmap, 0, BITMAP_BYTES(width) * pf->height);
@ -607,7 +602,7 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf)
encodetable = 1; encodetable = 1;
break; break;
} }
l += pf->maxwidth * (pf->height + 7) / 8; l += pf->maxwidth * ((pf->height + 7) / 8);
} }
#else #else
l = 0; l = 0;
@ -741,15 +736,17 @@ int rotleft(unsigned char *dst, bitmap_t *src, unsigned int width,
/* for each input column...*/ /* for each input column...*/
for(j=0; j < width; j++) { for(j=0; j < width; j++) {
if (src_mask == 0) /* input word done? */
{
src_mask = 1 << (sizeof (bitmap_t) * 8 - 1);
i++; /* next input word */
}
/* if set in input, set in rotated output */ /* if set in input, set in rotated output */
if (src[i] & src_mask) if (src[i] & src_mask)
dst[j] |= dst_mask; dst[j] |= dst_mask;
src_mask >>= 1; /* next input bit */ src_mask >>= 1; /* next input bit */
if (src_mask == 0) /* input word done? */
{
continue;
}
} }
dst_mask <<= 1; /* next output bit (row) */ dst_mask <<= 1; /* next output bit (row) */