mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-10 23:02:08 +00:00
- flat rendering must check for missing vertex buffer data.
This commit is contained in:
parent
60b6dbadb2
commit
2baed338f7
1 changed files with 28 additions and 25 deletions
|
@ -210,24 +210,27 @@ void FDrawInfo::DrawSubsectors(GLFlat *flat, int pass, bool processlights, bool
|
|||
auto vcount = flat->sector->ibocount;
|
||||
|
||||
gl_RenderState.Apply();
|
||||
auto iboindex = flat->iboindex;
|
||||
if (gl.legacyMode)
|
||||
{
|
||||
processlights = false;
|
||||
goto legacy;
|
||||
iboindex = -1;
|
||||
}
|
||||
|
||||
if (iboindex >= 0)
|
||||
{
|
||||
if (vcount > 0 && !gl_RenderState.GetClipLineShouldBeActive())
|
||||
{
|
||||
if (processlights) SetupSectorLights(flat, GLPASS_ALL, &dli);
|
||||
drawcalls.Clock();
|
||||
glDrawElements(GL_TRIANGLES, vcount, GL_UNSIGNED_INT, GLRenderer->mVBO->GetIndexPointer() + flat->iboindex);
|
||||
glDrawElements(GL_TRIANGLES, vcount, GL_UNSIGNED_INT, GLRenderer->mVBO->GetIndexPointer() + iboindex);
|
||||
drawcalls.Unclock();
|
||||
flatvertices += vcount;
|
||||
flatprimitives++;
|
||||
}
|
||||
else if (flat->iboindex >= 0)
|
||||
else
|
||||
{
|
||||
int index = flat->iboindex;
|
||||
int index = iboindex;
|
||||
for (int i = 0; i < flat->sector->subsectorcount; i++)
|
||||
{
|
||||
subsector_t * sub = flat->sector->subsectors[i];
|
||||
|
@ -245,9 +248,9 @@ void FDrawInfo::DrawSubsectors(GLFlat *flat, int pass, bool processlights, bool
|
|||
index += (sub->numlines - 2) * 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
legacy:
|
||||
// Draw the subsectors belonging to this sector
|
||||
for (int i=0; i<flat->sector->subsectorcount; i++)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue