1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

#177 fix 32bit colorkey blitter

This commit is contained in:
FunkyFr3sh 2022-09-29 00:17:07 +02:00
parent 2d2b8c7be6
commit 6dd5174cb8

View File

@ -291,8 +291,8 @@ void blt_colorkey(
} }
else if (bpp == 32) else if (bpp == 32)
{ {
unsigned int key_l = (unsigned int)key_low; unsigned int key_l = key_low & 0xFFFFFF;
unsigned int key_h = (unsigned int)key_high; unsigned int key_h = key_high & 0xFFFFFF;
unsigned int* d = (unsigned int*)dst; unsigned int* d = (unsigned int*)dst;
unsigned int* s = (unsigned int*)src; unsigned int* s = (unsigned int*)src;
@ -305,7 +305,7 @@ void blt_colorkey(
{ {
unsigned int c = *s++; unsigned int c = *s++;
if (c != key_l) if ((c & 0xFFFFFF) != key_l)
{ {
*d = c; *d = c;
} }
@ -325,7 +325,7 @@ void blt_colorkey(
{ {
unsigned int c = *s++; unsigned int c = *s++;
if (c < key_l || c > key_h) if ((c & 0xFFFFFF) < key_l || (c & 0xFFFFFF) > key_h)
{ {
*d = c; *d = c;
} }
@ -431,8 +431,8 @@ void blt_colorkey_mirror_stretch(
} }
else if (bpp == 32) else if (bpp == 32)
{ {
unsigned int key_l = (unsigned int)key_low; unsigned int key_l = key_low & 0xFFFFFF;
unsigned int key_h = (unsigned int)key_high; unsigned int key_h = key_high & 0xFFFFFF;
for (int y = 0; y < dst_h; y++) for (int y = 0; y < dst_h; y++)
{ {
@ -453,7 +453,7 @@ void blt_colorkey_mirror_stretch(
unsigned int c = ((unsigned int*)src)[scaled_x + src_row]; unsigned int c = ((unsigned int*)src)[scaled_x + src_row];
if (c < key_l || c > key_h) if ((c & 0xFFFFFF) < key_l || (c & 0xFFFFFF) > key_h)
{ {
((unsigned int*)dst)[x + dst_row] = c; ((unsigned int*)dst)[x + dst_row] = c;
} }