1
0
forked from 0ad/0ad

Removes ARB switch optimization as it triggers slow down. Fixes #6525

Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4635
This was SVN commit r26849.
This commit is contained in:
Vladislav Belov 2022-05-02 21:25:13 +00:00
parent 04bd96cee0
commit a493a9f07f

View File

@ -362,20 +362,11 @@ public:
void Bind(CShaderProgram* previousShaderProgram) override
{
CShaderProgramARB* previousShaderProgramARB = nullptr;
if (previousShaderProgram)
previousShaderProgramARB = static_cast<CShaderProgramARB*>(previousShaderProgramARB);
previousShaderProgram->Unbind();
if (previousShaderProgramARB)
previousShaderProgramARB->UnbindClientStates();
if (!previousShaderProgramARB ||
previousShaderProgramARB->m_VertexProgram != m_VertexProgram ||
previousShaderProgramARB->m_FragmentProgram != m_FragmentProgram)
{
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_VertexProgram);
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_FragmentProgram);
}
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_VertexProgram);
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_FragmentProgram);
BindClientStates();
}