GPU3D: swap vin and vout during clipping, giving results that are closer to hardware.
fixes #598 and also fixes #379
This commit is contained in:
parent
d412630a49
commit
4c560f3324
|
@ -888,7 +888,7 @@ void StallPolygonPipeline(s32 delay, s32 nonstalldelay)
|
||||||
|
|
||||||
|
|
||||||
template<int comp, s32 plane, bool attribs>
|
template<int comp, s32 plane, bool attribs>
|
||||||
void ClipSegment(Vertex* outbuf, Vertex* vout, Vertex* vin)
|
void ClipSegment(Vertex* outbuf, Vertex* vin, Vertex* vout)
|
||||||
{
|
{
|
||||||
s64 factor_num = vin->Position[3] - (plane*vin->Position[comp]);
|
s64 factor_num = vin->Position[3] - (plane*vin->Position[comp]);
|
||||||
s32 factor_den = factor_num - (vout->Position[3] - (plane*vout->Position[comp]));
|
s32 factor_den = factor_num - (vout->Position[3] - (plane*vout->Position[comp]));
|
||||||
|
|
|
@ -336,8 +336,8 @@ void Update()
|
||||||
colA &= mask;
|
colA &= mask;
|
||||||
colB &= mask;
|
colB &= mask;
|
||||||
|
|
||||||
if (colA == colB) WinBitmapData[(y*768) + x + 512] = 0xFF00FF00;
|
if (colA == colB) WinBitmapData[(y*768) + x + 512] = 0xFF000000;//0xFF00FF00;
|
||||||
else WinBitmapData[(y*768) + x + 512] = 0xFFFF0000;
|
else WinBitmapData[(y*768) + x + 512] = 0xFFFFFFFF;//0xFFFF0000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue