Skip to content

Commit

Permalink
#5584: Fix WindingRenderer client state
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Jan 7, 2022
1 parent 18bd4f5 commit 0f7847a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
12 changes: 10 additions & 2 deletions libs/render/WindingRenderer.h
Expand Up @@ -187,6 +187,13 @@ class WindingRenderer :

void renderAllWindings() override
{
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

glFrontFace(GL_CCW);

for (auto bucketIndex = 0; bucketIndex < _buckets.size(); ++bucketIndex)
{
auto& bucket = _buckets[bucketIndex];
Expand All @@ -197,8 +204,6 @@ class WindingRenderer :
const auto& vertices = bucket.buffer.getVertices();
const auto& indices = bucket.buffer.getIndices();

glDisableClientState(GL_COLOR_ARRAY);

glVertexPointer(3, GL_DOUBLE, sizeof(ArbitraryMeshVertex), &vertices.front().vertex);
glTexCoordPointer(2, GL_DOUBLE, sizeof(ArbitraryMeshVertex), &vertices.front().texcoord);
glNormalPointer(GL_DOUBLE, sizeof(ArbitraryMeshVertex), &vertices.front().normal);
Expand All @@ -208,6 +213,9 @@ class WindingRenderer :

debug::checkGLErrors();
}

glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
}

void renderWinding(IWindingRenderer::RenderMode mode, IWindingRenderer::Slot slot) override
Expand Down
1 change: 0 additions & 1 deletion radiantcore/rendersystem/backend/OpenGLShader.cpp
Expand Up @@ -171,7 +171,6 @@ void OpenGLShader::drawSurfaces()
}

// Render all windings
glFrontFace(GL_CCW);
_windingRenderer->renderAllWindings();

#ifdef RENDERABLE_GEOMETRY
Expand Down

0 comments on commit 0f7847a

Please sign in to comment.