Index: ps/trunk/source/renderer/backend/gl/ShaderProgram.cpp =================================================================== --- ps/trunk/source/renderer/backend/gl/ShaderProgram.cpp +++ ps/trunk/source/renderer/backend/gl/ShaderProgram.cpp @@ -362,20 +362,11 @@ void Bind(CShaderProgram* previousShaderProgram) override { - CShaderProgramARB* previousShaderProgramARB = nullptr; if (previousShaderProgram) - previousShaderProgramARB = static_cast(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(); }