From 8df3104cd242c8c7f008c446990d4695014d1509 Mon Sep 17 00:00:00 2001 From: kgv Date: Tue, 2 Feb 2021 00:41:01 +0300 Subject: [PATCH] 0032105: Visualization, TKOpenGl - PBR flat shading GLSL program compilation error on OpenGL ES 2.0 OpenGl_ShaderManager::defaultGlslVersion() - fixed combining two extensions in header. --- src/OpenGl/OpenGl_ShaderManager.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/OpenGl/OpenGl_ShaderManager.cxx b/src/OpenGl/OpenGl_ShaderManager.cxx index a3e6f271a2..6843f067f2 100644 --- a/src/OpenGl/OpenGl_ShaderManager.cxx +++ b/src/OpenGl/OpenGl_ShaderManager.cxx @@ -1764,6 +1764,7 @@ int OpenGl_ShaderManager::defaultGlslVersion (const Handle(Graphic3d_ShaderProgr } else { + TCollection_AsciiString aGles2Extensions; if (theProgram->IsPBR()) { if (myContext->IsGlGreaterEqual (3, 0)) @@ -1772,8 +1773,8 @@ int OpenGl_ShaderManager::defaultGlslVersion (const Handle(Graphic3d_ShaderProgr } else if (myContext->CheckExtension ("GL_EXT_shader_texture_lod")) { - theProgram->SetHeader ("#extension GL_EXT_shader_texture_lod : enable\n" - "#define textureCubeLod textureCubeLodEXT"); + aGles2Extensions += "#extension GL_EXT_shader_texture_lod : enable\n" + "#define textureCubeLod textureCubeLodEXT\n"; } } if ((theBits & OpenGl_PO_WriteOit) != 0 @@ -1802,9 +1803,14 @@ int OpenGl_ShaderManager::defaultGlslVersion (const Handle(Graphic3d_ShaderProgr } else if (myContext->oesStdDerivatives) { - theProgram->SetHeader ("#extension GL_OES_standard_derivatives : enable"); + aGles2Extensions += "#extension GL_OES_standard_derivatives : enable\n"; } } + + if (!aGles2Extensions.IsEmpty()) + { + theProgram->SetHeader (aGles2Extensions); + } } #endif