Skip to content

Commit

Permalink
#5893: Particle rendering is working in lighting mode again.
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Feb 25, 2022
1 parent a16ef9a commit 0475759
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 1 deletion.
21 changes: 20 additions & 1 deletion radiantcore/rendersystem/OpenGLRenderSystem.cpp
Expand Up @@ -257,6 +257,12 @@ void OpenGLRenderSystem::finishRendering()
glUseProgramObjectARB(0);
}

glDisableVertexAttribArrayARB(GLProgramAttribute::Position);
glDisableVertexAttribArrayARB(GLProgramAttribute::TexCoord);
glDisableVertexAttribArrayARB(GLProgramAttribute::Tangent);
glDisableVertexAttribArrayARB(GLProgramAttribute::Bitangent);
glDisableVertexAttribArrayARB(GLProgramAttribute::Normal);

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
Expand Down Expand Up @@ -350,7 +356,7 @@ IRenderResult::Ptr OpenGLRenderSystem::renderLitScene(RenderStateFlags globalFla

interactionLists.emplace_back(std::move(interaction));
}

// Run the depth fill pass
for (auto& interactionList : interactionLists)
{
Expand All @@ -364,7 +370,20 @@ IRenderResult::Ptr OpenGLRenderSystem::renderLitScene(RenderStateFlags globalFla
result->drawCalls += interactionList.getDrawCalls();
}

glUseProgram(0);
glActiveTexture(GL_TEXTURE0);
glClientActiveTexture(GL_TEXTURE0);

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);

glEnableVertexAttribArrayARB(GLProgramAttribute::Position);
glEnableVertexAttribArrayARB(GLProgramAttribute::TexCoord);
glEnableVertexAttribArrayARB(GLProgramAttribute::Tangent);
glEnableVertexAttribArrayARB(GLProgramAttribute::Bitangent);
glEnableVertexAttribArrayARB(GLProgramAttribute::Normal);

// Draw non-interaction passes (like skyboxes or blend stages)
for (const auto& entity : _entities)
Expand Down
1 change: 1 addition & 0 deletions radiantcore/rendersystem/backend/LightInteractions.cpp
Expand Up @@ -182,6 +182,7 @@ void LightInteractions::SubmitObject(IRenderableObject& object, IGeometryStore&
glMultMatrixd(object.getObjectTransform());

glVertexPointer(3, GL_DOUBLE, sizeof(ArbitraryMeshVertex), &renderParams.bufferStart->vertex);
glColorPointer(4, GL_DOUBLE, sizeof(ArbitraryMeshVertex), &renderParams.bufferStart->colour);

glVertexAttribPointer(GLProgramAttribute::Position, 3, GL_DOUBLE, 0, sizeof(ArbitraryMeshVertex), &renderParams.bufferStart->vertex);
glVertexAttribPointer(GLProgramAttribute::Normal, 3, GL_DOUBLE, 0, sizeof(ArbitraryMeshVertex), &renderParams.bufferStart->normal);
Expand Down
Expand Up @@ -113,6 +113,10 @@ void GLSLBumpProgram::disable()
glDisableVertexAttribArrayARB(GLProgramAttribute::Bitangent);
glDisableVertexAttribArrayARB(GLProgramAttribute::Normal);

// Switch back to texture unit 0
glActiveTexture(GL_TEXTURE0);
glClientActiveTexture(GL_TEXTURE0);

debug::assertNoGlErrors();
}

Expand Down

0 comments on commit 0475759

Please sign in to comment.