- use MakeVertices directly in the portal code and remove all related code from RenderWall.

This commit is contained in:
Christoph Oelckers 2016-08-25 23:02:43 +02:00
parent 8cf53f04e8
commit 8f331f56e2
4 changed files with 10 additions and 22 deletions

View file

@ -773,7 +773,7 @@ void GLWall::RenderLightsCompat(int pass)
if (PrepareLight(light, pass)) if (PrepareLight(light, pass))
{ {
vertcount = 0; vertcount = 0;
RenderWall(RWF_TEXTURED, NULL); RenderWall(RWF_TEXTURED);
} }
node = node->nextLight; node = node->nextLight;
} }

View file

@ -152,7 +152,9 @@ void GLPortal::DrawPortalStencil()
for (unsigned int i = 0; i<lines.Size(); i++) for (unsigned int i = 0; i<lines.Size(); i++)
{ {
lines[i].RenderWall(GLWall::RWF_NORENDER, &mPrimIndices[i * 2]); if (gl.buffermethod != BM_DEFERRED) lines[i].MakeVertices(false);
mPrimIndices[i * 2] = lines[i].vertindex;
mPrimIndices[i * 2 + 1] = lines[i].vertcount;
} }
if (cap) if (cap)

View file

@ -196,7 +196,7 @@ private:
void SetupLights(); void SetupLights();
bool PrepareLight(ADynamicLight * light, int pass); bool PrepareLight(ADynamicLight * light, int pass);
void MakeVertices(bool nosplit); void MakeVertices(bool nosplit);
void RenderWall(int textured, unsigned int *store = NULL); void RenderWall(int textured);
void RenderTextured(int rflags); void RenderTextured(int rflags);
void FloodPlane(int pass); void FloodPlane(int pass);

View file

@ -205,30 +205,16 @@ void GLWall::MakeVertices(bool nosplit)
// //
//========================================================================== //==========================================================================
void GLWall::RenderWall(int textured, unsigned int *store) void GLWall::RenderWall(int textured)
{
if (!(textured & RWF_NORENDER))
{ {
gl_RenderState.Apply(); gl_RenderState.Apply();
gl_RenderState.ApplyLightIndex(dynlightindex); gl_RenderState.ApplyLightIndex(dynlightindex);
}
if (gl.buffermethod != BM_DEFERRED) if (gl.buffermethod != BM_DEFERRED)
{ {
MakeVertices(!(textured&RWF_NOSPLIT)); MakeVertices(!(textured&RWF_NOSPLIT));
} }
GLRenderer->mVBO->RenderArray(GL_TRIANGLE_FAN, vertindex, vertcount);
unsigned int count = vertcount, offset = vertindex; vertexcount += vertcount;
if (!(textured & RWF_NORENDER))
{
GLRenderer->mVBO->RenderArray(GL_TRIANGLE_FAN, offset, count);
vertexcount += count;
}
if (store != NULL)
{
store[0] = offset;
store[1] = count;
}
} }
//========================================================================== //==========================================================================