From 37b8e87454998049f8256bc76a9971202c828608 Mon Sep 17 00:00:00 2001 From: smatz Date: Sat, 21 Jun 2008 20:58:34 +0000 Subject: (svn r13602) -Codechange: little speedup for 8bpp-optimized blitter --- src/blitter/8bpp_optimized.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/blitter/8bpp_optimized.cpp b/src/blitter/8bpp_optimized.cpp index 3fb20e74b..656f910f2 100644 --- a/src/blitter/8bpp_optimized.cpp +++ b/src/blitter/8bpp_optimized.cpp @@ -71,24 +71,28 @@ void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Z /* Skip transparent pixels */ dst += trans; width -= trans; - if (width <= 0) continue; + if (width <= 0 || pixels == 0) continue; pixels = min(pixels, (uint)width); width -= pixels; switch (mode) { - case BM_COLOUR_REMAP: - for (uint x = 0; x < pixels; x++) { - if (bp->remap[*src] != 0) *dst = bp->remap[*src]; + case BM_COLOUR_REMAP: { + const uint8 *remap = bp->remap; + do { + uint m = remap[*src]; + if (m != 0) *dst = m; dst++; src++; - } - break; + } while (--pixels != 0); + } break; - case BM_TRANSPARENT: - for (uint x = 0; x < pixels; x++) { - *dst = bp->remap[*dst]; - dst++; src++; - } - break; + case BM_TRANSPARENT: { + const uint8 *remap = bp->remap; + src += pixels; + do { + *dst = remap[*dst]; + dst++; + } while (--pixels != 0); + } break; default: memcpy(dst, src, pixels); -- cgit v1.2.3-70-g09d2