]> OCCT Git - occt.git/commitdiff
0032105: Visualization, TKOpenGl - PBR flat shading GLSL program compilation error...
authorkgv <kgv@opencascade.com>
Mon, 1 Feb 2021 21:41:01 +0000 (00:41 +0300)
committerbugmaster <bugmaster@opencascade.com>
Wed, 3 Feb 2021 15:28:17 +0000 (18:28 +0300)
OpenGl_ShaderManager::defaultGlslVersion() - fixed combining two extensions in header.

src/OpenGl/OpenGl_ShaderManager.cxx

index a3e6f271a2a239331d095a849ddbfffbc1b58fab..6843f067f2e0be55c3e112faf054c64fff87a131 100644 (file)
@@ -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