mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Correct reject box implementation: add special flag for it in gDP.changed flags.
Fixed Rejection process issues #1954
This commit is contained in:
parent
29575624b9
commit
0d3c3c151d
|
@ -1553,13 +1553,14 @@ bool GraphicsDrawer::isRejected(s32 _v0, s32 _v1, s32 _v2) const
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
static gDPScissor rejectBox;
|
static gDPScissor rejectBox;
|
||||||
if (gDP.changed & CHANGED_SCISSOR) {
|
if ((gDP.changed & CHANGED_REJECT_BOX) != 0) {
|
||||||
const f32 scissorWidth2 = (gDP.scissor.lrx - gDP.scissor.ulx) * (gSP.clipRatio - 1) * 0.5f;
|
const f32 scissorWidth2 = (gDP.scissor.lrx - gDP.scissor.ulx) * (gSP.clipRatio - 1) * 0.5f;
|
||||||
const f32 scissorHeight2 = (gDP.scissor.lry - gDP.scissor.uly) * (gSP.clipRatio - 1) * 0.5f;
|
const f32 scissorHeight2 = (gDP.scissor.lry - gDP.scissor.uly) * (gSP.clipRatio - 1) * 0.5f;
|
||||||
rejectBox.ulx = gDP.scissor.ulx - scissorWidth2;
|
rejectBox.ulx = gDP.scissor.ulx - scissorWidth2;
|
||||||
rejectBox.lrx = gDP.scissor.lrx + scissorWidth2;
|
rejectBox.lrx = gDP.scissor.lrx + scissorWidth2;
|
||||||
rejectBox.uly = gDP.scissor.uly - scissorHeight2;
|
rejectBox.uly = gDP.scissor.uly - scissorHeight2;
|
||||||
rejectBox.lry = gDP.scissor.lry + scissorHeight2;
|
rejectBox.lry = gDP.scissor.lry + scissorHeight2;
|
||||||
|
gDP.changed ^= CHANGED_REJECT_BOX;
|
||||||
}
|
}
|
||||||
s32 verts[3] = { _v0, _v1, _v2 };
|
s32 verts[3] = { _v0, _v1, _v2 };
|
||||||
for (u32 i = 0; i < 3; ++i) {
|
for (u32 i = 0; i < 3; ++i) {
|
||||||
|
|
|
@ -675,7 +675,7 @@ void gDPSetScissor( u32 mode, f32 ulx, f32 uly, f32 lrx, f32 lry )
|
||||||
gDP.scissor.lrx = lrx;
|
gDP.scissor.lrx = lrx;
|
||||||
gDP.scissor.lry = lry;
|
gDP.scissor.lry = lry;
|
||||||
|
|
||||||
gDP.changed |= CHANGED_SCISSOR;
|
gDP.changed |= CHANGED_SCISSOR | CHANGED_REJECT_BOX;
|
||||||
|
|
||||||
#ifdef DEBUG_DUMP
|
#ifdef DEBUG_DUMP
|
||||||
DebugMsg( DEBUG_NORMAL, "gDPSetScissor( %s, %.2f, %.2f, %.2f, %.2f );\n",
|
DebugMsg( DEBUG_NORMAL, "gDPSetScissor( %s, %.2f, %.2f, %.2f, %.2f );\n",
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#define CHANGED_SCISSOR 0x004
|
#define CHANGED_SCISSOR 0x004
|
||||||
#define CHANGED_TMEM 0x008
|
#define CHANGED_TMEM 0x008
|
||||||
#define CHANGED_TILE 0x010
|
#define CHANGED_TILE 0x010
|
||||||
|
#define CHANGED_REJECT_BOX 0x020
|
||||||
//#define CHANGED_COMBINE_COLORS 0x020
|
//#define CHANGED_COMBINE_COLORS 0x020
|
||||||
#define CHANGED_COMBINE 0x040
|
#define CHANGED_COMBINE 0x040
|
||||||
#define CHANGED_ALPHACOMPARE 0x080
|
#define CHANGED_ALPHACOMPARE 0x080
|
||||||
|
|
Loading…
Reference in New Issue
Block a user