Speed up mono bitmap drawing on horizontally packed greyscale targets (greyscale iPods). Average speedup is 80% on PP5002, and 55% on PP502x. * Simplify mono bitmap drawing in the 16 bit driver and the greylib a bit, also giving a slight speedup (3% on PP502x, 1.5% on coldfire).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21163 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2009-06-01 21:28:03 +00:00
parent aa7d43f7a6
commit c1d27d105c
3 changed files with 126 additions and 32 deletions

View file

@ -447,6 +447,7 @@ void grey_mono_bitmap_part(const unsigned char *src, int src_x, int src_y,
src_end = src + width;
dwidth = _grey_info.width;
dst = &_grey_info.buffer[_GREY_MULUQ(dwidth, y) + x];
dst_end = dst + _GREY_MULUQ(dwidth, height);
if (drmode & DRMODE_INVERSEVID)
{
@ -461,8 +462,6 @@ void grey_mono_bitmap_part(const unsigned char *src, int src_x, int src_y,
unsigned data = (*src_col ^ dmask) >> src_y;
int fg, bg;
dst_end = dst_col + _GREY_MULUQ(dwidth, height);
#define UPDATE_SRC do { \
data >>= 1; \
if (data == 0x001) { \