]> OCCT Git - occt-copy.git/commitdiff
0029125: Visualization, OpenGl_Text - fix access violation within OpenGL1.1 context
authorkgv <kgv@opencascade.com>
Tue, 19 Sep 2017 09:53:15 +0000 (12:53 +0300)
committerkgv <kgv@opencascade.com>
Mon, 4 Dec 2017 18:06:06 +0000 (21:06 +0300)
OpenGl_Context::DiagnosticInformation() - added OpenGL version check before retrieving GL_SHADING_LANGUAGE_VERSION string.

src/OpenGl/OpenGl_Context.cxx
src/OpenGl/OpenGl_Text.cxx

index fc6760788ed726ced52cb9c38106a5814eba0ce3..790be6e2ce427f36f5fa33b034e8c327136814b0 100644 (file)
@@ -2818,7 +2818,10 @@ void OpenGl_Context::DiagnosticInformation (TColStd_IndexedDataMapOfStringString
     addInfo (theDict, "GLvendor",    (const char*)::glGetString (GL_VENDOR));
     addInfo (theDict, "GLdevice",    (const char*)::glGetString (GL_RENDERER));
     addInfo (theDict, "GLversion",   (const char*)::glGetString (GL_VERSION));
-    addInfo (theDict, "GLSLversion", (const char*)::glGetString (GL_SHADING_LANGUAGE_VERSION));
+    if (IsGlGreaterEqual (2, 0))
+    {
+      addInfo (theDict, "GLSLversion", (const char*)::glGetString (GL_SHADING_LANGUAGE_VERSION));
+    }
     if (myIsGlDebugCtx)
     {
       addInfo (theDict, "GLdebug", "ON");
index 9a8633fe99be79bf49828eb56f2362d391b08a5b..a7ee8eb005e12ed5078a1062ae4364eef817cb21 100644 (file)
@@ -22,6 +22,7 @@
 #include <OpenGl_Text.hxx>
 #include <OpenGl_Workspace.hxx>
 #include <OpenGl_View.hxx>
+#include <OpenGl_VertexBufferCompat.hxx>
 
 #include <Font_FontMgr.hxx>
 #include <Font_FTFont.hxx>
@@ -720,7 +721,14 @@ void OpenGl_Text::drawRect (const Handle(OpenGl_Context)& theCtx,
       OpenGl_Vec2(myBndBox.Left,  myBndBox.Bottom),
       OpenGl_Vec2(myBndBox.Left,  myBndBox.Top)
     };
-    myBndVertsVbo = new OpenGl_VertexBuffer();
+    if (theCtx->ToUseVbo())
+    {
+      myBndVertsVbo = new OpenGl_VertexBuffer();
+    }
+    else
+    {
+      myBndVertsVbo = new OpenGl_VertexBufferCompat();
+    }
     myBndVertsVbo->Init (theCtx, 2, 4, aQuad[0].GetData());
   }