+++ /dev/null
-#include "arb_vertex_buffer_object.h"
-
-namespace Msp {
-namespace GL {
-
-PFNGLBINDBUFFERARBPROC glBindBuffer = 0;
-PFNGLBUFFERDATAARBPROC glBufferData = 0;
-PFNGLBUFFERSUBDATAARBPROC glBufferSubData = 0;
-PFNGLDELETEBUFFERSARBPROC glDeleteBuffers = 0;
-PFNGLGENBUFFERSARBPROC glGenBuffers = 0;
-PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameteriv = 0;
-PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointerv = 0;
-PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubData = 0;
-PFNGLISBUFFERARBPROC glIsBuffer = 0;
-PFNGLMAPBUFFERARBPROC glMapBuffer = 0;
-PFNGLUNMAPBUFFERARBPROC glUnmapBuffer = 0;
-
-Extension::SupportLevel init_arb_vertex_buffer_object()
-{
- if(is_version_at_least(1, 5))
- {
- glBindBuffer = reinterpret_cast<PFNGLBINDBUFFERARBPROC>(get_proc_address("glBindBuffer"));
- glBufferData = reinterpret_cast<PFNGLBUFFERDATAARBPROC>(get_proc_address("glBufferData"));
- glBufferSubData = reinterpret_cast<PFNGLBUFFERSUBDATAARBPROC>(get_proc_address("glBufferSubData"));
- glDeleteBuffers = reinterpret_cast<PFNGLDELETEBUFFERSARBPROC>(get_proc_address("glDeleteBuffers"));
- glGenBuffers = reinterpret_cast<PFNGLGENBUFFERSARBPROC>(get_proc_address("glGenBuffers"));
- glGetBufferParameteriv = reinterpret_cast<PFNGLGETBUFFERPARAMETERIVARBPROC>(get_proc_address("glGetBufferParameteriv"));
- glGetBufferPointerv = reinterpret_cast<PFNGLGETBUFFERPOINTERVARBPROC>(get_proc_address("glGetBufferPointerv"));
- glGetBufferSubData = reinterpret_cast<PFNGLGETBUFFERSUBDATAARBPROC>(get_proc_address("glGetBufferSubData"));
- glIsBuffer = reinterpret_cast<PFNGLISBUFFERARBPROC>(get_proc_address("glIsBuffer"));
- glMapBuffer = reinterpret_cast<PFNGLMAPBUFFERARBPROC>(get_proc_address("glMapBuffer"));
- glUnmapBuffer = reinterpret_cast<PFNGLUNMAPBUFFERARBPROC>(get_proc_address("glUnmapBuffer"));
- return Extension::CORE;
- }
- if(is_supported("GL_ARB_vertex_buffer_object"))
- {
- glBindBuffer = reinterpret_cast<PFNGLBINDBUFFERARBPROC>(get_proc_address("glBindBufferARB"));
- glBufferData = reinterpret_cast<PFNGLBUFFERDATAARBPROC>(get_proc_address("glBufferDataARB"));
- glBufferSubData = reinterpret_cast<PFNGLBUFFERSUBDATAARBPROC>(get_proc_address("glBufferSubDataARB"));
- glDeleteBuffers = reinterpret_cast<PFNGLDELETEBUFFERSARBPROC>(get_proc_address("glDeleteBuffersARB"));
- glGenBuffers = reinterpret_cast<PFNGLGENBUFFERSARBPROC>(get_proc_address("glGenBuffersARB"));
- glGetBufferParameteriv = reinterpret_cast<PFNGLGETBUFFERPARAMETERIVARBPROC>(get_proc_address("glGetBufferParameterivARB"));
- glGetBufferPointerv = reinterpret_cast<PFNGLGETBUFFERPOINTERVARBPROC>(get_proc_address("glGetBufferPointervARB"));
- glGetBufferSubData = reinterpret_cast<PFNGLGETBUFFERSUBDATAARBPROC>(get_proc_address("glGetBufferSubDataARB"));
- glIsBuffer = reinterpret_cast<PFNGLISBUFFERARBPROC>(get_proc_address("glIsBufferARB"));
- glMapBuffer = reinterpret_cast<PFNGLMAPBUFFERARBPROC>(get_proc_address("glMapBufferARB"));
- glUnmapBuffer = reinterpret_cast<PFNGLUNMAPBUFFERARBPROC>(get_proc_address("glUnmapBufferARB"));
- return Extension::EXTENSION;
- }
- return Extension::UNSUPPORTED;
-}
-
-Extension ARB_vertex_buffer_object("GL_ARB_vertex_buffer_object", init_arb_vertex_buffer_object);
-
-} // namespace GL
-} // namespace Msp