DS GX: Fix stencil buffer
Vicki Pfau vi@endrift.com
Wed, 22 Mar 2017 15:40:14 -0700
1 files changed,
2 insertions(+),
2 deletions(-)
jump to
M
src/ds/gx/software.c
→
src/ds/gx/software.c
@@ -616,7 +616,7 @@ if (b > ab) {
ab = b; } if (a == 0x1F) { - if (!(s == 0x40 || (stencil[x] & 0x40))) { + if (!(s & 0x40) || (s & 0x3F && !(stencil[x] & 0x40))) { depth[x] = span->ep[0].coord[softwareRenderer->sort]; scanline[x] = color; s &= ~0x40;@@ -629,7 +629,7 @@ color = _mix32(a, color, 0x1F - a, current);
color |= ab << 27; } if (stencil[x] != s) { - if (!(s == 0x40 || (stencil[x] & 0x40))) { + if (!(s & 0x40) || (s & 0x3F && !(stencil[x] & 0x40))) { if (DSGXPolygonAttrsIsUpdateDepth(span->poly->poly->polyParams)) { depth[x] = span->ep[0].coord[softwareRenderer->sort]; }