0022819: Redesign of OpenGl driver
[occt.git] / src / OpenGl / OpenGl_ResourceVBO.cxx
index 7201fe1..37ac6a4 100755 (executable)
@@ -3,43 +3,38 @@
 // Author:    Anton POLETAEV
 
 #include <OpenGl_ResourceVBO.hxx>
-#include <OpenGl_tgl_all.hxx>
-#include <OpenGl_Extension.hxx>
-
-typedef void (APIENTRY* PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
-
-extern PFNGLDELETEBUFFERSARBPROC glVBODeleteBuffersARB;  
-extern int VBOExtension;
+#include <OpenGl_Context.hxx>
 
 //=======================================================================
 //function : OpenGl_ResourceVBO
 //purpose  : Constructor
 //=======================================================================
-
-OpenGl_ResourceVBO::OpenGl_ResourceVBO(GLuint theId) 
-: OpenGl_Resource(theId) 
+OpenGl_ResourceVBO::OpenGl_ResourceVBO (GLuint theId)
+: OpenGl_Resource (theId)
 {
-
+  //
 }
 
 //=======================================================================
 //function : OpenGl_ResourceVBO
 //purpose  : Copy constructor
 //=======================================================================
-
-OpenGl_ResourceVBO::OpenGl_ResourceVBO( const OpenGl_ResourceVBO& theResource) 
-: OpenGl_Resource(theResource) 
+OpenGl_ResourceVBO::OpenGl_ResourceVBO (const OpenGl_ResourceVBO& theResource)
+: OpenGl_Resource (theResource)
 {
-
+  //
 }
 
 //=======================================================================
 //function : Clean
 //purpose  : free OpenGl memory allocated for vbo resource
 //=======================================================================
-
-void OpenGl_ResourceVBO::Clean()
+void OpenGl_ResourceVBO::Clean (const Handle(OpenGl_Context)& theGlContext)
 {
-  if (VBOExtension)
-    glVBODeleteBuffersARB( 1 , &myId );
+  if (theGlContext->arbVBO == NULL)
+  {
+    std::cerr << "OpenGl_ResourceVBO::Clean(), active GL context doesn't support VBO!\n";
+    return;
+  }
+  theGlContext->arbVBO->glDeleteBuffersARB (1 , &myId);
 }