GBA Video: Fix another blending regression

This commit is contained in:
Jeffrey Pfau 2015-09-26 01:03:38 -07:00
parent 8e4a79a17f
commit c1082ae67f
2 changed files with 5 additions and 5 deletions

View File

@ -42,7 +42,7 @@ static inline void _compositeBlendObjwin(struct GBAVideoSoftwareRenderer* render
if (current & FLAG_TARGET_1 && color & FLAG_TARGET_2) { if (current & FLAG_TARGET_1 && color & FLAG_TARGET_2) {
color = _mix(renderer->blda, current, renderer->bldb, color); color = _mix(renderer->blda, current, renderer->bldb, color);
} else { } else {
color = (current & 0x00FFFFFF) | ((current >> 1) & FLAG_REBLEND); color = (current & 0x00FFFFFF) | ((current << 1) & FLAG_REBLEND);
} }
} else { } else {
color = (color & ~FLAG_TARGET_2) | (current & FLAG_OBJWIN); color = (color & ~FLAG_TARGET_2) | (current & FLAG_OBJWIN);
@ -55,7 +55,7 @@ static inline void _compositeBlendNoObjwin(struct GBAVideoSoftwareRenderer* rend
if (current & FLAG_TARGET_1 && color & FLAG_TARGET_2) { if (current & FLAG_TARGET_1 && color & FLAG_TARGET_2) {
color = _mix(renderer->blda, current, renderer->bldb, color); color = _mix(renderer->blda, current, renderer->bldb, color);
} else { } else {
color = (current & 0x00FFFFFF) | ((current >> 1) & FLAG_REBLEND); color = (current & 0x00FFFFFF) | ((current << 1) & FLAG_REBLEND);
} }
} else { } else {
color = color & ~FLAG_TARGET_2; color = color & ~FLAG_TARGET_2;
@ -69,7 +69,7 @@ static inline void _compositeNoBlendObjwin(struct GBAVideoSoftwareRenderer* rend
if (color < current) { if (color < current) {
color |= (current & FLAG_OBJWIN); color |= (current & FLAG_OBJWIN);
} else { } else {
color = (current & 0x00FFFFFF) | ((current >> 1) & FLAG_REBLEND); color = (current & 0x00FFFFFF) | ((current << 1) & FLAG_REBLEND);
} }
*pixel = color; *pixel = color;
} }
@ -78,7 +78,7 @@ static inline void _compositeNoBlendNoObjwin(struct GBAVideoSoftwareRenderer* re
uint32_t current) { uint32_t current) {
UNUSED(renderer); UNUSED(renderer);
if (color >= current) { if (color >= current) {
color = (current & 0x00FFFFFF) | ((current >> 1) & FLAG_REBLEND); color = (current & 0x00FFFFFF) | ((current << 1) & FLAG_REBLEND);
} }
*pixel = color; *pixel = color;
} }

View File

@ -71,10 +71,10 @@ enum {
#define FLAG_INDEX 0x30000000 #define FLAG_INDEX 0x30000000
#define FLAG_IS_BACKGROUND 0x08000000 #define FLAG_IS_BACKGROUND 0x08000000
#define FLAG_UNWRITTEN 0xFC000000 #define FLAG_UNWRITTEN 0xFC000000
#define FLAG_REBLEND 0x04000000
#define FLAG_TARGET_1 0x02000000 #define FLAG_TARGET_1 0x02000000
#define FLAG_TARGET_2 0x01000000 #define FLAG_TARGET_2 0x01000000
#define FLAG_OBJWIN 0x01000000 #define FLAG_OBJWIN 0x01000000
#define FLAG_REBLEND 0x01000000
#define FLAG_ORDER_MASK 0xF8000000 #define FLAG_ORDER_MASK 0xF8000000
#define IS_WRITABLE(PIXEL) ((PIXEL) & 0xFE000000) #define IS_WRITABLE(PIXEL) ((PIXEL) & 0xFE000000)