GBA Video: Fix windows not disabling target 1 appropriately (fixes #161)

This commit is contained in:
Jeffrey Pfau 2014-12-24 20:25:25 -08:00
parent b8076be860
commit b6d189d88b
2 changed files with 3 additions and 2 deletions

View File

@ -27,6 +27,7 @@ Bugfixes:
- GBA Video: Fix blend issues with obscured middle layers - GBA Video: Fix blend issues with obscured middle layers
- Video: Ensure FFmpeg encoder has audio frames - Video: Ensure FFmpeg encoder has audio frames
- Video: Fix uncompressed PCM audio recording - Video: Fix uncompressed PCM audio recording
- GBA Video: Fix windows not disabling target 1 appropriately (fixes #161)
Misc: Misc:
- Qt: Disable sync to video by default - Qt: Disable sync to video by default
- GBA: Exit cleanly on FATAL if the port supports it - GBA: Exit cleanly on FATAL if the port supports it

View File

@ -1276,7 +1276,7 @@ static void _drawBackgroundMode0(struct GBAVideoSoftwareRenderer* renderer, stru
unsigned xBase; unsigned xBase;
int flags = (background->priority << OFFSET_PRIORITY) | (background->index << OFFSET_INDEX) | FLAG_IS_BACKGROUND; int flags = (background->priority << OFFSET_PRIORITY) | (background->index << OFFSET_INDEX) | FLAG_IS_BACKGROUND;
flags |= FLAG_TARGET_1 * (background->target1 && renderer->blendEffect == BLEND_ALPHA); flags |= FLAG_TARGET_1 * (background->target1 && renderer->blendEffect == BLEND_ALPHA && GBAWindowControlIsBlendEnable(renderer->currentWindow.packed));
flags |= FLAG_TARGET_2 * background->target2; flags |= FLAG_TARGET_2 * background->target2;
if (renderer->blda == 0x10 && renderer->bldb == 0) { if (renderer->blda == 0x10 && renderer->bldb == 0) {
flags &= ~(FLAG_TARGET_1 | FLAG_TARGET_2); flags &= ~(FLAG_TARGET_1 | FLAG_TARGET_2);
@ -1349,7 +1349,7 @@ static void _drawBackgroundMode0(struct GBAVideoSoftwareRenderer* renderer, stru
int32_t localY; \ int32_t localY; \
\ \
int flags = (background->priority << OFFSET_PRIORITY) | (background->index << OFFSET_INDEX) | FLAG_IS_BACKGROUND; \ int flags = (background->priority << OFFSET_PRIORITY) | (background->index << OFFSET_INDEX) | FLAG_IS_BACKGROUND; \
flags |= FLAG_TARGET_1 * (background->target1 && renderer->blendEffect == BLEND_ALPHA); \ flags |= FLAG_TARGET_1 * (background->target1 && renderer->blendEffect == BLEND_ALPHA && GBAWindowControlIsBlendEnable(renderer->currentWindow.packed)); \
flags |= FLAG_TARGET_2 * background->target2; \ flags |= FLAG_TARGET_2 * background->target2; \
if (renderer->blda == 0x10 && renderer->bldb == 0) { \ if (renderer->blda == 0x10 && renderer->bldb == 0) { \
flags &= ~(FLAG_TARGET_1 | FLAG_TARGET_2); \ flags &= ~(FLAG_TARGET_1 | FLAG_TARGET_2); \