mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2024-11-14 05:17:40 -07:00
Compare commits
2 Commits
e9d061eaca
...
8c2213e75b
Author | SHA1 | Date | |
---|---|---|---|
|
8c2213e75b | ||
|
a371c8f1e0 |
@ -849,6 +849,8 @@ int ClipAgainstPlane(const GPU3D& gpu, Vertex* vertices, int nverts, int clipsta
|
||||
temp[1] = vertices[1];
|
||||
}
|
||||
|
||||
Vertex holdit;
|
||||
bool heldit = false;
|
||||
for (int i = clipstart; i < nverts; i++)
|
||||
{
|
||||
prev = i-1; if (prev < 0) prev = nverts-1;
|
||||
@ -862,8 +864,16 @@ int ClipAgainstPlane(const GPU3D& gpu, Vertex* vertices, int nverts, int clipsta
|
||||
Vertex* vprev = &vertices[prev];
|
||||
if (vprev->Position[comp] <= vprev->Position[3])
|
||||
{
|
||||
ClipSegment<comp, 1, attribs>(&temp[c], &vtx, vprev);
|
||||
c++;
|
||||
if (i == 0)
|
||||
{
|
||||
ClipSegment<comp, 1, attribs>(&holdit, &vtx, vprev);
|
||||
heldit = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ClipSegment<comp, 1, attribs>(&temp[c], &vtx, vprev);
|
||||
c++;
|
||||
}
|
||||
}
|
||||
|
||||
Vertex* vnext = &vertices[next];
|
||||
@ -877,6 +887,12 @@ int ClipAgainstPlane(const GPU3D& gpu, Vertex* vertices, int nverts, int clipsta
|
||||
temp[c++] = vtx;
|
||||
}
|
||||
|
||||
if (heldit)
|
||||
{
|
||||
temp[c++] = holdit;
|
||||
}
|
||||
heldit = false;
|
||||
|
||||
nverts = c; c = clipstart;
|
||||
for (int i = clipstart; i < nverts; i++)
|
||||
{
|
||||
@ -889,8 +905,17 @@ int ClipAgainstPlane(const GPU3D& gpu, Vertex* vertices, int nverts, int clipsta
|
||||
Vertex* vprev = &temp[prev];
|
||||
if (vprev->Position[comp] >= -vprev->Position[3])
|
||||
{
|
||||
ClipSegment<comp, -1, attribs>(&vertices[c], &vtx, vprev);
|
||||
c++;
|
||||
|
||||
if (i == 0)
|
||||
{
|
||||
ClipSegment<comp, -1, attribs>(&holdit, &vtx, vprev);
|
||||
heldit = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ClipSegment<comp, -1, attribs>(&vertices[c], &vtx, vprev);
|
||||
c++;
|
||||
}
|
||||
}
|
||||
|
||||
Vertex* vnext = &temp[next];
|
||||
@ -903,6 +928,11 @@ int ClipAgainstPlane(const GPU3D& gpu, Vertex* vertices, int nverts, int clipsta
|
||||
else
|
||||
vertices[c++] = vtx;
|
||||
}
|
||||
|
||||
if (heldit)
|
||||
{
|
||||
vertices[c++] = holdit;
|
||||
}
|
||||
|
||||
// checkme
|
||||
for (int i = 0; i < c; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user