mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r13602) -Codechange: little speedup for 8bpp-optimized blitter
This commit is contained in:
parent
2ca4b8b2e4
commit
37b8e87454
@ -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<uint>(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);
|
||||
|
Loading…
Reference in New Issue
Block a user