#endif // _WIN32
-#ifdef _WIN32
-
-typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
-typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
-PFNWGLSWAPINTERVALEXTPROC pwglSwapIntervalEXT = 0;
-PFNWGLGETSWAPINTERVALEXTPROC pwglGetSwapIntervalEXT = 0;
-#define wglSwapIntervalEXT pwglSwapIntervalEXT
-#define wglGetSwapIntervalEXT pwglGetSwapIntervalEXT
-
-#endif // _WIN32
-
// some definitions for what the polydata has in it
#define CPPLUGINS_VTK_PDM_NORMALS 0x0001
#define CPPLUGINS_VTK_PDM_COLORS 0x0002
if( input == NULL )
return( false );
+#ifdef _WIN32
+ // Get pointers to GL functions
+ glGenBuffers = reinterpret_cast< PFNGLGENBUFFERSARBPROC >
+ ( wglGetProcAddress( "glGenBuffers" ) );
+ glBindBuffer = reinterpret_cast< PFNGLBINDBUFFERARBPROC >
+ ( wglGetProcAddress( "glBindBuffer" ) );
+ glBufferData = reinterpret_cast< PFNGLBUFFERDATAARBPROC >
+ ( wglGetProcAddress( "glBufferData" ) );
+ glBufferSubData = reinterpret_cast< PFNGLBUFFERSUBDATAARBPROC >
+ ( wglGetProcAddress( "glBufferSubData" ) );
+ glDeleteBuffers = reinterpret_cast< PFNGLDELETEBUFFERSARBPROC >
+ ( wglGetProcAddress( "glDeleteBuffers" ) );
+ glGetBufferParameteriv =
+ reinterpret_cast< PFNGLGETBUFFERPARAMETERIVARBPROC >
+ ( wglGetProcAddress( "glGetBufferParameteriv" ) );
+ glMapBuffer = reinterpret_cast< PFNGLMAPBUFFERARBPROC >
+ ( wglGetProcAddress( "glMapBuffer" ) );
+ glUnmapBuffer = reinterpret_cast< PFNGLUNMAPBUFFERARBPROC >
+ ( wglGetProcAddress( "glUnmapBuffer" ) );
+
+ // Check once again VBO extension
+ if(
+ glGenBuffers != NULL &&
+ glBindBuffer != NULL &&
+ glBufferData != NULL &&
+ glBufferSubData != NULL &&
+ glMapBuffer != NULL &&
+ glUnmapBuffer != NULL &&
+ glDeleteBuffers != NULL &&
+ glGetBufferParameteriv != NULL
+ )
+ this->VBOSupported = true;
+ else
+ this->VBOSupported = false;
+#else // _WIN32
// Check if VBO ( Vertex Buffer Object ) is supported
std::string str = ( const char* )( glGetString( GL_EXTENSIONS ) );
this->VBOSupported =
( str.find( "GL_ARB_vertex_buffer_object" ) != std::string::npos );
+#endif // _WIN32
if( this->VBOSupported )
{