DS Video: Blend 3D layer as needed

This commit is contained in:
Vicki Pfau 2017-03-01 23:13:40 -08:00
parent 80ff9596b9
commit 7cd72f3519
1 changed files with 3 additions and 1 deletions

View File

@ -386,10 +386,12 @@ static void DSVideoSoftwareRendererDrawGBAScanline(struct GBAVideoRenderer* rend
color_t* scanline;
gx->renderer->getScanline(gx->renderer, y, &scanline);
uint32_t flags = (softwareRenderer->bg[0].priority << OFFSET_PRIORITY) | FLAG_IS_BACKGROUND;
flags |= FLAG_TARGET_2 * softwareRenderer->bg[0].target2;
flags |= FLAG_TARGET_1 * (softwareRenderer->bg[0].target1 && softwareRenderer->blendEffect == BLEND_ALPHA && GBAWindowControlIsBlendEnable(softwareRenderer->currentWindow.packed));
int x;
for (x = softwareRenderer->start; x < softwareRenderer->end; ++x) {
if ((scanline[x] & FLAG_UNWRITTEN) != FLAG_UNWRITTEN) {
_compositeNoBlendNoObjwin(softwareRenderer, &softwareRenderer->row[x], scanline[x] | flags, softwareRenderer->row[x]);
_compositeBlendNoObjwin(softwareRenderer, &softwareRenderer->row[x], scanline[x] | flags, softwareRenderer->row[x]);
}
}
} else {