diff --git a/source/Irrlicht/COpenGLSLMaterialRenderer.cpp b/source/Irrlicht/COpenGLSLMaterialRenderer.cpp index 4ef1444f..6dcb369d 100644 --- a/source/Irrlicht/COpenGLSLMaterialRenderer.cpp +++ b/source/Irrlicht/COpenGLSLMaterialRenderer.cpp @@ -573,10 +573,14 @@ void COpenGLSLMaterialRenderer::startUseProgram() void COpenGLSLMaterialRenderer::stopUseProgram() { - // Not going to reset irrGlUseProgram/extGlUseProgramObject as it shouldn't really matter + // Necessary as fixed function pipeline breaks if programs are not reset to 0 + if (Program) + Driver->extGlUseProgramObject(0); + if (Program2) + Driver->irrGlUseProgram(0); // Force reset of material to ensure OnSetMaterial will be called or we can miss - // the next UseProgram call + // the next UseProgram call as stopUseProgram can be called from anywhere Driver->DoResetRenderStates(); } diff --git a/tests/tests-last-passed-at.txt b/tests/tests-last-passed-at.txt index a9989971..ebc23e54 100644 --- a/tests/tests-last-passed-at.txt +++ b/tests/tests-last-passed-at.txt @@ -1,4 +1,4 @@ Tests finished. 72 tests of 72 passed. Compiled as DEBUG -Test suite pass at GMT Sun May 07 14:26:39 2023 +Test suite pass at GMT Mon May 08 14:14:47 2023