0030748: Visualization - Marker displayed in immediate layer ruins QT Quick view...
[occt.git] / src / OpenGl / OpenGl_VertexBuffer.lxx
index 866e573..acd5c73 100644 (file)
@@ -25,14 +25,20 @@ inline void OpenGl_VertexBuffer::bindAttribute (const Handle(OpenGl_Context)&
 {
   if (theCtx->ActiveProgram().IsNull())
   {
-    bindFixed (theCtx, theAttribute, theNbComp, theDataType, theStride, theOffset);
+  #if !defined(GL_ES_VERSION_2_0)
+    if (theCtx->core11 != NULL)
+    {
+      bindFixed (theCtx, theAttribute, theNbComp, theDataType, theStride, theOffset);
+    }
+  #endif
     return;
   }
 
   theCtx->core20fwd->glEnableVertexAttribArray (theAttribute);
-  theCtx->core20fwd->glVertexAttribPointer (theAttribute, theNbComp, theDataType, GL_FALSE, theStride, theOffset);
+  theCtx->core20fwd->glVertexAttribPointer (theAttribute, theNbComp, theDataType, theDataType != GL_FLOAT, theStride, theOffset);
 }
 
+#if !defined(GL_ES_VERSION_2_0)
 // =======================================================================
 // function : bindFixed
 // purpose  :
@@ -78,6 +84,7 @@ inline void OpenGl_VertexBuffer::bindFixed (const Handle(OpenGl_Context)&   theC
     }
   }
 }
+#endif
 
 // =======================================================================
 // function : unbindAttribute
@@ -88,15 +95,21 @@ inline void OpenGl_VertexBuffer::unbindAttribute (const Handle(OpenGl_Context)&
 {
   if (theCtx->ActiveProgram().IsNull())
   {
-    unbindFixed (theCtx, theAttribute);
+  #if !defined(GL_ES_VERSION_2_0)
+    if (theCtx->core11 != NULL)
+    {
+      unbindFixed (theCtx, theAttribute);
+    }
+  #endif
     return;
   }
 
   theCtx->core20fwd->glDisableVertexAttribArray (theAttribute);
 }
 
+#if !defined(GL_ES_VERSION_2_0)
 // =======================================================================
-// function : unbindAttribute
+// function : unbindFixed
 // purpose  :
 // =======================================================================
 inline void OpenGl_VertexBuffer::unbindFixed (const Handle(OpenGl_Context)&   theCtx,
@@ -107,15 +120,11 @@ inline void OpenGl_VertexBuffer::unbindFixed (const Handle(OpenGl_Context)&   th
     case Graphic3d_TOA_POS:   theCtx->core11->glDisableClientState (GL_VERTEX_ARRAY);        return;
     case Graphic3d_TOA_NORM:  theCtx->core11->glDisableClientState (GL_NORMAL_ARRAY);        return;
     case Graphic3d_TOA_UV:    theCtx->core11->glDisableClientState (GL_TEXTURE_COORD_ARRAY); return;
-    case Graphic3d_TOA_COLOR:
-    {
-      theCtx->core11->glDisableClientState (GL_COLOR_ARRAY);
-      theCtx->core11fwd->glDisable (GL_COLOR_MATERIAL);
-      return;
-    }
+    case Graphic3d_TOA_COLOR: unbindFixedColor (theCtx); return;
     case Graphic3d_TOA_CUSTOM:
     {
       return;
     }
   }
 }
+#endif