]> OCCT Git - occt.git/commitdiff
0026810: Visualization, TKOpenGl - line is shown without stipple aspect with FFP...
authorkgv <kgv@opencascade.com>
Sat, 24 Oct 2015 14:32:36 +0000 (17:32 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 29 Oct 2015 12:10:45 +0000 (15:10 +0300)
OpenGl_ShaderManager::prepareStdProgramFlat() enable stipple line GLSL program
within OpenGL 3.0+, OpenGL ES 3.0+ and OpenGL 2.0+ with GL_EXT_gpu_shader4 extension.

src/OpenGl/OpenGl_ShaderManager.cxx

index 75b7d28a608eb030989169955f4385e8310dfdfc..0e48750fe34c2c17822a596ed319de5ec4cf0126 100644 (file)
@@ -1260,22 +1260,27 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramFlat (Handle(OpenGl_Shad
   TCollection_AsciiString aSrcVertEndMain;
   if ((theBits & OpenGl_PO_StippleLine) != 0)
   {
-    bool hasCaps = false;
+    bool hasGlslBitOps = false;
   #if defined(GL_ES_VERSION_2_0)
     if (myContext->IsGlGreaterEqual (3, 0))
     {
       aProgramSrc->SetHeader ("#version 300 es");
-      hasCaps = true;
+      hasGlslBitOps = true;
     }
   #else
-    if (myContext->core32 != NULL)
+    if (myContext->IsGlGreaterEqual (3, 0))
+    {
+      aProgramSrc->SetHeader ("#version 130");
+      hasGlslBitOps = true;
+    }
+    else if(myContext->CheckExtension("GL_EXT_gpu_shader4"))
     {
-      aProgramSrc->SetHeader ("#version 150");
-      hasCaps = true;
+      aProgramSrc->SetHeader ("#extension GL_EXT_gpu_shader4 : enable");
+      hasGlslBitOps = true;
     }
   #endif
 
-    if (hasCaps)
+    if (hasGlslBitOps)
     {
       aSrcVertExtraOut +=
         EOL"THE_SHADER_OUT vec2 ScreenSpaceCoord;";