mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
Hopefully work around more Polymost polygon leakages
Patch from Nuke.YKT. git-svn-id: https://svn.eduke32.com/eduke32@7867 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
acc0b527a9
commit
0f4ccaf970
1 changed files with 41 additions and 31 deletions
|
@ -2783,9 +2783,6 @@ static void polymost_domost(float x0, float y0, float x1, float y1, float y0top
|
|||
y1 += DOMOST_OFFSET; //necessary?
|
||||
}
|
||||
|
||||
x0 -= DOMOST_OFFSET;
|
||||
x1 += DOMOST_OFFSET;
|
||||
|
||||
// Test if span is outside screen bounds
|
||||
if (x1 < xbl || x0 > xbr)
|
||||
{
|
||||
|
@ -2793,8 +2790,8 @@ static void polymost_domost(float x0, float y0, float x1, float y1, float y0top
|
|||
return;
|
||||
}
|
||||
|
||||
vec2f_t dm0 = { x0, y0 };
|
||||
vec2f_t dm1 = { x1, y1 };
|
||||
vec2f_t dm0 = { x0 - DOMOST_OFFSET, y0 };
|
||||
vec2f_t dm1 = { x1 + DOMOST_OFFSET, y1 };
|
||||
|
||||
float const slop = (dm1.y - dm0.y) / (dm1.x - dm0.x);
|
||||
|
||||
|
@ -3166,8 +3163,9 @@ skip: ;
|
|||
int const ni = vsp[i].n;
|
||||
|
||||
//POGO: specially treat the viewport nodes so that we will never end up in a situation where we accidentally access the sentinel node
|
||||
if (ni >= viewportNodeCount &&
|
||||
(vsp[i].ctag == vsp[ni].ctag) && (vsp[i].ftag == vsp[ni].ftag))
|
||||
if (ni >= viewportNodeCount)
|
||||
{
|
||||
if ((vsp[i].ctag == vsp[ni].ctag) && (vsp[i].ftag == vsp[ni].ftag))
|
||||
{
|
||||
MERGE_NODES(i, ni);
|
||||
#if 0
|
||||
|
@ -3197,8 +3195,20 @@ skip: ;
|
|||
glStencilFunc(GL_EQUAL, 0, 0xFF);
|
||||
glColor4f(1.f, 1.f, 1.f, 1.f);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
else i = ni;
|
||||
if (vsp[ni].x - vsp[i].x < DOMOST_OFFSET)
|
||||
{
|
||||
vsp[i].x = vsp[ni].x;
|
||||
vsp[i].cy[0] = vsp[ni].cy[0];
|
||||
vsp[i].fy[0] = vsp[ni].fy[0];
|
||||
vsp[i].ctag = vsp[ni].ctag;
|
||||
vsp[i].ftag = vsp[ni].ftag;
|
||||
MERGE_NODES(i, ni);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
i = ni;
|
||||
}
|
||||
while (i);
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue