mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 15:41:15 +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