From a199aef53a58686bf200c3f61579bf7df0e30e7d Mon Sep 17 00:00:00 2001 From: Magnus Holmgren Date: Mon, 14 Nov 2005 19:52:04 +0000 Subject: 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 --- tools/convbdf.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'tools/convbdf.c') diff --git a/tools/convbdf.c b/tools/convbdf.c index ace2e1bd62..05f2c83209 100644 --- a/tools/convbdf.c +++ b/tools/convbdf.c @@ -528,11 +528,6 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf) maxwidth = width; pf->width[encoding-pf->firstchar] = width; - if(maxwidth > 16) { - fprintf(stderr, "Error: Too wide characters (>16 pixels)\n"); - return 0; - } - /* clear bitmap*/ memset(ch_bitmap, 0, BITMAP_BYTES(width) * pf->height); @@ -607,7 +602,7 @@ int bdf_read_bitmaps(FILE *fp, struct font* pf) encodetable = 1; break; } - l += pf->maxwidth * (pf->height + 7) / 8; + l += pf->maxwidth * ((pf->height + 7) / 8); } #else l = 0; @@ -741,15 +736,17 @@ int rotleft(unsigned char *dst, bitmap_t *src, unsigned int width, /* for each input column...*/ 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 (src[i] & src_mask) dst[j] |= dst_mask; src_mask >>= 1; /* next input bit */ - if (src_mask == 0) /* input word done? */ - { - continue; - } } dst_mask <<= 1; /* next output bit (row) */ -- cgit v1.2.3