]> git.tdb.fi Git - libs/gl.git/blobdiff - source/arb_vertex_shader.cpp
Function pointer typedefs for core functions are not available everywhere
[libs/gl.git] / source / arb_vertex_shader.cpp
index 918c131607bdd017829ce031c4e943614fce6a70..b201802e5bb171ed554f769e4e64efa124affc93 100644 (file)
 namespace Msp {
 namespace GL {
 
-PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation = 0;
-PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray = 0;
-PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray = 0;
-PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib = 0;
-PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation = 0;
-PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv = 0;
-PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv = 0;
-PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv = 0;
-PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv = 0;
-PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d = 0;
-PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv = 0;
-PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f = 0;
-PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv = 0;
-PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s = 0;
-PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv = 0;
-PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d = 0;
-PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv = 0;
-PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f = 0;
-PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv = 0;
-PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s = 0;
-PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv = 0;
-PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d = 0;
-PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv = 0;
-PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f = 0;
-PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv = 0;
-PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s = 0;
-PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv = 0;
-PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv = 0;
-PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv = 0;
-PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv = 0;
-PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub = 0;
-PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv = 0;
-PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv = 0;
-PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv = 0;
-PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv = 0;
-PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d = 0;
-PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv = 0;
-PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f = 0;
-PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv = 0;
-PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv = 0;
-PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s = 0;
-PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv = 0;
-PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv = 0;
-PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv = 0;
-PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv = 0;
-PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer = 0;
+PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocation = 0;
+PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArray = 0;
+PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArray = 0;
+PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttrib = 0;
+PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocation = 0;
+PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointerv = 0;
+PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdv = 0;
+PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfv = 0;
+PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribiv = 0;
+PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1d = 0;
+PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dv = 0;
+PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1f = 0;
+PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fv = 0;
+PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1s = 0;
+PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1sv = 0;
+PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2d = 0;
+PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dv = 0;
+PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2f = 0;
+PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fv = 0;
+PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2s = 0;
+PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2sv = 0;
+PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3d = 0;
+PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dv = 0;
+PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3f = 0;
+PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fv = 0;
+PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3s = 0;
+PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3sv = 0;
+PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4Nbv = 0;
+PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4Niv = 0;
+PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4Nsv = 0;
+PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4Nub = 0;
+PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4Nubv = 0;
+PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4Nuiv = 0;
+PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4Nusv = 0;
+PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bv = 0;
+PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4d = 0;
+PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dv = 0;
+PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4f = 0;
+PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fv = 0;
+PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4iv = 0;
+PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4s = 0;
+PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4sv = 0;
+PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubv = 0;
+PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uiv = 0;
+PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usv = 0;
+PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointer = 0;
 
 Extension::SupportLevel init_arb_vertex_shader()
 {
        if(is_version_at_least(2, 0))
        {
-               glBindAttribLocation = reinterpret_cast<PFNGLBINDATTRIBLOCATIONPROC>(get_proc_address("glBindAttribLocation"));
-               glDisableVertexAttribArray = reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYPROC>(get_proc_address("glDisableVertexAttribArray"));
-               glEnableVertexAttribArray = reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYPROC>(get_proc_address("glEnableVertexAttribArray"));
-               glGetActiveAttrib = reinterpret_cast<PFNGLGETACTIVEATTRIBPROC>(get_proc_address("glGetActiveAttrib"));
-               glGetAttribLocation = reinterpret_cast<PFNGLGETATTRIBLOCATIONPROC>(get_proc_address("glGetAttribLocation"));
-               glGetVertexAttribPointerv = reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVPROC>(get_proc_address("glGetVertexAttribPointerv"));
-               glGetVertexAttribdv = reinterpret_cast<PFNGLGETVERTEXATTRIBDVPROC>(get_proc_address("glGetVertexAttribdv"));
-               glGetVertexAttribfv = reinterpret_cast<PFNGLGETVERTEXATTRIBFVPROC>(get_proc_address("glGetVertexAttribfv"));
-               glGetVertexAttribiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIVPROC>(get_proc_address("glGetVertexAttribiv"));
-               glVertexAttrib1d = reinterpret_cast<PFNGLVERTEXATTRIB1DPROC>(get_proc_address("glVertexAttrib1d"));
-               glVertexAttrib1dv = reinterpret_cast<PFNGLVERTEXATTRIB1DVPROC>(get_proc_address("glVertexAttrib1dv"));
-               glVertexAttrib1f = reinterpret_cast<PFNGLVERTEXATTRIB1FPROC>(get_proc_address("glVertexAttrib1f"));
-               glVertexAttrib1fv = reinterpret_cast<PFNGLVERTEXATTRIB1FVPROC>(get_proc_address("glVertexAttrib1fv"));
-               glVertexAttrib1s = reinterpret_cast<PFNGLVERTEXATTRIB1SPROC>(get_proc_address("glVertexAttrib1s"));
-               glVertexAttrib1sv = reinterpret_cast<PFNGLVERTEXATTRIB1SVPROC>(get_proc_address("glVertexAttrib1sv"));
-               glVertexAttrib2d = reinterpret_cast<PFNGLVERTEXATTRIB2DPROC>(get_proc_address("glVertexAttrib2d"));
-               glVertexAttrib2dv = reinterpret_cast<PFNGLVERTEXATTRIB2DVPROC>(get_proc_address("glVertexAttrib2dv"));
-               glVertexAttrib2f = reinterpret_cast<PFNGLVERTEXATTRIB2FPROC>(get_proc_address("glVertexAttrib2f"));
-               glVertexAttrib2fv = reinterpret_cast<PFNGLVERTEXATTRIB2FVPROC>(get_proc_address("glVertexAttrib2fv"));
-               glVertexAttrib2s = reinterpret_cast<PFNGLVERTEXATTRIB2SPROC>(get_proc_address("glVertexAttrib2s"));
-               glVertexAttrib2sv = reinterpret_cast<PFNGLVERTEXATTRIB2SVPROC>(get_proc_address("glVertexAttrib2sv"));
-               glVertexAttrib3d = reinterpret_cast<PFNGLVERTEXATTRIB3DPROC>(get_proc_address("glVertexAttrib3d"));
-               glVertexAttrib3dv = reinterpret_cast<PFNGLVERTEXATTRIB3DVPROC>(get_proc_address("glVertexAttrib3dv"));
-               glVertexAttrib3f = reinterpret_cast<PFNGLVERTEXATTRIB3FPROC>(get_proc_address("glVertexAttrib3f"));
-               glVertexAttrib3fv = reinterpret_cast<PFNGLVERTEXATTRIB3FVPROC>(get_proc_address("glVertexAttrib3fv"));
-               glVertexAttrib3s = reinterpret_cast<PFNGLVERTEXATTRIB3SPROC>(get_proc_address("glVertexAttrib3s"));
-               glVertexAttrib3sv = reinterpret_cast<PFNGLVERTEXATTRIB3SVPROC>(get_proc_address("glVertexAttrib3sv"));
-               glVertexAttrib4Nbv = reinterpret_cast<PFNGLVERTEXATTRIB4NBVPROC>(get_proc_address("glVertexAttrib4Nbv"));
-               glVertexAttrib4Niv = reinterpret_cast<PFNGLVERTEXATTRIB4NIVPROC>(get_proc_address("glVertexAttrib4Niv"));
-               glVertexAttrib4Nsv = reinterpret_cast<PFNGLVERTEXATTRIB4NSVPROC>(get_proc_address("glVertexAttrib4Nsv"));
-               glVertexAttrib4Nub = reinterpret_cast<PFNGLVERTEXATTRIB4NUBPROC>(get_proc_address("glVertexAttrib4Nub"));
-               glVertexAttrib4Nubv = reinterpret_cast<PFNGLVERTEXATTRIB4NUBVPROC>(get_proc_address("glVertexAttrib4Nubv"));
-               glVertexAttrib4Nuiv = reinterpret_cast<PFNGLVERTEXATTRIB4NUIVPROC>(get_proc_address("glVertexAttrib4Nuiv"));
-               glVertexAttrib4Nusv = reinterpret_cast<PFNGLVERTEXATTRIB4NUSVPROC>(get_proc_address("glVertexAttrib4Nusv"));
-               glVertexAttrib4bv = reinterpret_cast<PFNGLVERTEXATTRIB4BVPROC>(get_proc_address("glVertexAttrib4bv"));
-               glVertexAttrib4d = reinterpret_cast<PFNGLVERTEXATTRIB4DPROC>(get_proc_address("glVertexAttrib4d"));
-               glVertexAttrib4dv = reinterpret_cast<PFNGLVERTEXATTRIB4DVPROC>(get_proc_address("glVertexAttrib4dv"));
-               glVertexAttrib4f = reinterpret_cast<PFNGLVERTEXATTRIB4FPROC>(get_proc_address("glVertexAttrib4f"));
-               glVertexAttrib4fv = reinterpret_cast<PFNGLVERTEXATTRIB4FVPROC>(get_proc_address("glVertexAttrib4fv"));
-               glVertexAttrib4iv = reinterpret_cast<PFNGLVERTEXATTRIB4IVPROC>(get_proc_address("glVertexAttrib4iv"));
-               glVertexAttrib4s = reinterpret_cast<PFNGLVERTEXATTRIB4SPROC>(get_proc_address("glVertexAttrib4s"));
-               glVertexAttrib4sv = reinterpret_cast<PFNGLVERTEXATTRIB4SVPROC>(get_proc_address("glVertexAttrib4sv"));
-               glVertexAttrib4ubv = reinterpret_cast<PFNGLVERTEXATTRIB4UBVPROC>(get_proc_address("glVertexAttrib4ubv"));
-               glVertexAttrib4uiv = reinterpret_cast<PFNGLVERTEXATTRIB4UIVPROC>(get_proc_address("glVertexAttrib4uiv"));
-               glVertexAttrib4usv = reinterpret_cast<PFNGLVERTEXATTRIB4USVPROC>(get_proc_address("glVertexAttrib4usv"));
-               glVertexAttribPointer = reinterpret_cast<PFNGLVERTEXATTRIBPOINTERPROC>(get_proc_address("glVertexAttribPointer"));
+               glBindAttribLocation = reinterpret_cast<PFNGLBINDATTRIBLOCATIONARBPROC>(get_proc_address("glBindAttribLocation"));
+               glDisableVertexAttribArray = reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYARBPROC>(get_proc_address("glDisableVertexAttribArray"));
+               glEnableVertexAttribArray = reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYARBPROC>(get_proc_address("glEnableVertexAttribArray"));
+               glGetActiveAttrib = reinterpret_cast<PFNGLGETACTIVEATTRIBARBPROC>(get_proc_address("glGetActiveAttrib"));
+               glGetAttribLocation = reinterpret_cast<PFNGLGETATTRIBLOCATIONARBPROC>(get_proc_address("glGetAttribLocation"));
+               glGetVertexAttribPointerv = reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVARBPROC>(get_proc_address("glGetVertexAttribPointerv"));
+               glGetVertexAttribdv = reinterpret_cast<PFNGLGETVERTEXATTRIBDVARBPROC>(get_proc_address("glGetVertexAttribdv"));
+               glGetVertexAttribfv = reinterpret_cast<PFNGLGETVERTEXATTRIBFVARBPROC>(get_proc_address("glGetVertexAttribfv"));
+               glGetVertexAttribiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIVARBPROC>(get_proc_address("glGetVertexAttribiv"));
+               glVertexAttrib1d = reinterpret_cast<PFNGLVERTEXATTRIB1DARBPROC>(get_proc_address("glVertexAttrib1d"));
+               glVertexAttrib1dv = reinterpret_cast<PFNGLVERTEXATTRIB1DVARBPROC>(get_proc_address("glVertexAttrib1dv"));
+               glVertexAttrib1f = reinterpret_cast<PFNGLVERTEXATTRIB1FARBPROC>(get_proc_address("glVertexAttrib1f"));
+               glVertexAttrib1fv = reinterpret_cast<PFNGLVERTEXATTRIB1FVARBPROC>(get_proc_address("glVertexAttrib1fv"));
+               glVertexAttrib1s = reinterpret_cast<PFNGLVERTEXATTRIB1SARBPROC>(get_proc_address("glVertexAttrib1s"));
+               glVertexAttrib1sv = reinterpret_cast<PFNGLVERTEXATTRIB1SVARBPROC>(get_proc_address("glVertexAttrib1sv"));
+               glVertexAttrib2d = reinterpret_cast<PFNGLVERTEXATTRIB2DARBPROC>(get_proc_address("glVertexAttrib2d"));
+               glVertexAttrib2dv = reinterpret_cast<PFNGLVERTEXATTRIB2DVARBPROC>(get_proc_address("glVertexAttrib2dv"));
+               glVertexAttrib2f = reinterpret_cast<PFNGLVERTEXATTRIB2FARBPROC>(get_proc_address("glVertexAttrib2f"));
+               glVertexAttrib2fv = reinterpret_cast<PFNGLVERTEXATTRIB2FVARBPROC>(get_proc_address("glVertexAttrib2fv"));
+               glVertexAttrib2s = reinterpret_cast<PFNGLVERTEXATTRIB2SARBPROC>(get_proc_address("glVertexAttrib2s"));
+               glVertexAttrib2sv = reinterpret_cast<PFNGLVERTEXATTRIB2SVARBPROC>(get_proc_address("glVertexAttrib2sv"));
+               glVertexAttrib3d = reinterpret_cast<PFNGLVERTEXATTRIB3DARBPROC>(get_proc_address("glVertexAttrib3d"));
+               glVertexAttrib3dv = reinterpret_cast<PFNGLVERTEXATTRIB3DVARBPROC>(get_proc_address("glVertexAttrib3dv"));
+               glVertexAttrib3f = reinterpret_cast<PFNGLVERTEXATTRIB3FARBPROC>(get_proc_address("glVertexAttrib3f"));
+               glVertexAttrib3fv = reinterpret_cast<PFNGLVERTEXATTRIB3FVARBPROC>(get_proc_address("glVertexAttrib3fv"));
+               glVertexAttrib3s = reinterpret_cast<PFNGLVERTEXATTRIB3SARBPROC>(get_proc_address("glVertexAttrib3s"));
+               glVertexAttrib3sv = reinterpret_cast<PFNGLVERTEXATTRIB3SVARBPROC>(get_proc_address("glVertexAttrib3sv"));
+               glVertexAttrib4Nbv = reinterpret_cast<PFNGLVERTEXATTRIB4NBVARBPROC>(get_proc_address("glVertexAttrib4Nbv"));
+               glVertexAttrib4Niv = reinterpret_cast<PFNGLVERTEXATTRIB4NIVARBPROC>(get_proc_address("glVertexAttrib4Niv"));
+               glVertexAttrib4Nsv = reinterpret_cast<PFNGLVERTEXATTRIB4NSVARBPROC>(get_proc_address("glVertexAttrib4Nsv"));
+               glVertexAttrib4Nub = reinterpret_cast<PFNGLVERTEXATTRIB4NUBARBPROC>(get_proc_address("glVertexAttrib4Nub"));
+               glVertexAttrib4Nubv = reinterpret_cast<PFNGLVERTEXATTRIB4NUBVARBPROC>(get_proc_address("glVertexAttrib4Nubv"));
+               glVertexAttrib4Nuiv = reinterpret_cast<PFNGLVERTEXATTRIB4NUIVARBPROC>(get_proc_address("glVertexAttrib4Nuiv"));
+               glVertexAttrib4Nusv = reinterpret_cast<PFNGLVERTEXATTRIB4NUSVARBPROC>(get_proc_address("glVertexAttrib4Nusv"));
+               glVertexAttrib4bv = reinterpret_cast<PFNGLVERTEXATTRIB4BVARBPROC>(get_proc_address("glVertexAttrib4bv"));
+               glVertexAttrib4d = reinterpret_cast<PFNGLVERTEXATTRIB4DARBPROC>(get_proc_address("glVertexAttrib4d"));
+               glVertexAttrib4dv = reinterpret_cast<PFNGLVERTEXATTRIB4DVARBPROC>(get_proc_address("glVertexAttrib4dv"));
+               glVertexAttrib4f = reinterpret_cast<PFNGLVERTEXATTRIB4FARBPROC>(get_proc_address("glVertexAttrib4f"));
+               glVertexAttrib4fv = reinterpret_cast<PFNGLVERTEXATTRIB4FVARBPROC>(get_proc_address("glVertexAttrib4fv"));
+               glVertexAttrib4iv = reinterpret_cast<PFNGLVERTEXATTRIB4IVARBPROC>(get_proc_address("glVertexAttrib4iv"));
+               glVertexAttrib4s = reinterpret_cast<PFNGLVERTEXATTRIB4SARBPROC>(get_proc_address("glVertexAttrib4s"));
+               glVertexAttrib4sv = reinterpret_cast<PFNGLVERTEXATTRIB4SVARBPROC>(get_proc_address("glVertexAttrib4sv"));
+               glVertexAttrib4ubv = reinterpret_cast<PFNGLVERTEXATTRIB4UBVARBPROC>(get_proc_address("glVertexAttrib4ubv"));
+               glVertexAttrib4uiv = reinterpret_cast<PFNGLVERTEXATTRIB4UIVARBPROC>(get_proc_address("glVertexAttrib4uiv"));
+               glVertexAttrib4usv = reinterpret_cast<PFNGLVERTEXATTRIB4USVARBPROC>(get_proc_address("glVertexAttrib4usv"));
+               glVertexAttribPointer = reinterpret_cast<PFNGLVERTEXATTRIBPOINTERARBPROC>(get_proc_address("glVertexAttribPointer"));
                return Extension::CORE;
        }
        if(is_supported("GL_ARB_vertex_shader"))
        {
-               glBindAttribLocation = reinterpret_cast<PFNGLBINDATTRIBLOCATIONPROC>(get_proc_address("glBindAttribLocationARB"));
-               glDisableVertexAttribArray = reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYPROC>(get_proc_address("glDisableVertexAttribArrayARB"));
-               glEnableVertexAttribArray = reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYPROC>(get_proc_address("glEnableVertexAttribArrayARB"));
-               glGetActiveAttrib = reinterpret_cast<PFNGLGETACTIVEATTRIBPROC>(get_proc_address("glGetActiveAttribARB"));
-               glGetAttribLocation = reinterpret_cast<PFNGLGETATTRIBLOCATIONPROC>(get_proc_address("glGetAttribLocationARB"));
-               glGetVertexAttribPointerv = reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVPROC>(get_proc_address("glGetVertexAttribPointervARB"));
-               glGetVertexAttribdv = reinterpret_cast<PFNGLGETVERTEXATTRIBDVPROC>(get_proc_address("glGetVertexAttribdvARB"));
-               glGetVertexAttribfv = reinterpret_cast<PFNGLGETVERTEXATTRIBFVPROC>(get_proc_address("glGetVertexAttribfvARB"));
-               glGetVertexAttribiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIVPROC>(get_proc_address("glGetVertexAttribivARB"));
-               glVertexAttrib1d = reinterpret_cast<PFNGLVERTEXATTRIB1DPROC>(get_proc_address("glVertexAttrib1dARB"));
-               glVertexAttrib1dv = reinterpret_cast<PFNGLVERTEXATTRIB1DVPROC>(get_proc_address("glVertexAttrib1dvARB"));
-               glVertexAttrib1f = reinterpret_cast<PFNGLVERTEXATTRIB1FPROC>(get_proc_address("glVertexAttrib1fARB"));
-               glVertexAttrib1fv = reinterpret_cast<PFNGLVERTEXATTRIB1FVPROC>(get_proc_address("glVertexAttrib1fvARB"));
-               glVertexAttrib1s = reinterpret_cast<PFNGLVERTEXATTRIB1SPROC>(get_proc_address("glVertexAttrib1sARB"));
-               glVertexAttrib1sv = reinterpret_cast<PFNGLVERTEXATTRIB1SVPROC>(get_proc_address("glVertexAttrib1svARB"));
-               glVertexAttrib2d = reinterpret_cast<PFNGLVERTEXATTRIB2DPROC>(get_proc_address("glVertexAttrib2dARB"));
-               glVertexAttrib2dv = reinterpret_cast<PFNGLVERTEXATTRIB2DVPROC>(get_proc_address("glVertexAttrib2dvARB"));
-               glVertexAttrib2f = reinterpret_cast<PFNGLVERTEXATTRIB2FPROC>(get_proc_address("glVertexAttrib2fARB"));
-               glVertexAttrib2fv = reinterpret_cast<PFNGLVERTEXATTRIB2FVPROC>(get_proc_address("glVertexAttrib2fvARB"));
-               glVertexAttrib2s = reinterpret_cast<PFNGLVERTEXATTRIB2SPROC>(get_proc_address("glVertexAttrib2sARB"));
-               glVertexAttrib2sv = reinterpret_cast<PFNGLVERTEXATTRIB2SVPROC>(get_proc_address("glVertexAttrib2svARB"));
-               glVertexAttrib3d = reinterpret_cast<PFNGLVERTEXATTRIB3DPROC>(get_proc_address("glVertexAttrib3dARB"));
-               glVertexAttrib3dv = reinterpret_cast<PFNGLVERTEXATTRIB3DVPROC>(get_proc_address("glVertexAttrib3dvARB"));
-               glVertexAttrib3f = reinterpret_cast<PFNGLVERTEXATTRIB3FPROC>(get_proc_address("glVertexAttrib3fARB"));
-               glVertexAttrib3fv = reinterpret_cast<PFNGLVERTEXATTRIB3FVPROC>(get_proc_address("glVertexAttrib3fvARB"));
-               glVertexAttrib3s = reinterpret_cast<PFNGLVERTEXATTRIB3SPROC>(get_proc_address("glVertexAttrib3sARB"));
-               glVertexAttrib3sv = reinterpret_cast<PFNGLVERTEXATTRIB3SVPROC>(get_proc_address("glVertexAttrib3svARB"));
-               glVertexAttrib4Nbv = reinterpret_cast<PFNGLVERTEXATTRIB4NBVPROC>(get_proc_address("glVertexAttrib4NbvARB"));
-               glVertexAttrib4Niv = reinterpret_cast<PFNGLVERTEXATTRIB4NIVPROC>(get_proc_address("glVertexAttrib4NivARB"));
-               glVertexAttrib4Nsv = reinterpret_cast<PFNGLVERTEXATTRIB4NSVPROC>(get_proc_address("glVertexAttrib4NsvARB"));
-               glVertexAttrib4Nub = reinterpret_cast<PFNGLVERTEXATTRIB4NUBPROC>(get_proc_address("glVertexAttrib4NubARB"));
-               glVertexAttrib4Nubv = reinterpret_cast<PFNGLVERTEXATTRIB4NUBVPROC>(get_proc_address("glVertexAttrib4NubvARB"));
-               glVertexAttrib4Nuiv = reinterpret_cast<PFNGLVERTEXATTRIB4NUIVPROC>(get_proc_address("glVertexAttrib4NuivARB"));
-               glVertexAttrib4Nusv = reinterpret_cast<PFNGLVERTEXATTRIB4NUSVPROC>(get_proc_address("glVertexAttrib4NusvARB"));
-               glVertexAttrib4bv = reinterpret_cast<PFNGLVERTEXATTRIB4BVPROC>(get_proc_address("glVertexAttrib4bvARB"));
-               glVertexAttrib4d = reinterpret_cast<PFNGLVERTEXATTRIB4DPROC>(get_proc_address("glVertexAttrib4dARB"));
-               glVertexAttrib4dv = reinterpret_cast<PFNGLVERTEXATTRIB4DVPROC>(get_proc_address("glVertexAttrib4dvARB"));
-               glVertexAttrib4f = reinterpret_cast<PFNGLVERTEXATTRIB4FPROC>(get_proc_address("glVertexAttrib4fARB"));
-               glVertexAttrib4fv = reinterpret_cast<PFNGLVERTEXATTRIB4FVPROC>(get_proc_address("glVertexAttrib4fvARB"));
-               glVertexAttrib4iv = reinterpret_cast<PFNGLVERTEXATTRIB4IVPROC>(get_proc_address("glVertexAttrib4ivARB"));
-               glVertexAttrib4s = reinterpret_cast<PFNGLVERTEXATTRIB4SPROC>(get_proc_address("glVertexAttrib4sARB"));
-               glVertexAttrib4sv = reinterpret_cast<PFNGLVERTEXATTRIB4SVPROC>(get_proc_address("glVertexAttrib4svARB"));
-               glVertexAttrib4ubv = reinterpret_cast<PFNGLVERTEXATTRIB4UBVPROC>(get_proc_address("glVertexAttrib4ubvARB"));
-               glVertexAttrib4uiv = reinterpret_cast<PFNGLVERTEXATTRIB4UIVPROC>(get_proc_address("glVertexAttrib4uivARB"));
-               glVertexAttrib4usv = reinterpret_cast<PFNGLVERTEXATTRIB4USVPROC>(get_proc_address("glVertexAttrib4usvARB"));
-               glVertexAttribPointer = reinterpret_cast<PFNGLVERTEXATTRIBPOINTERPROC>(get_proc_address("glVertexAttribPointerARB"));
+               glBindAttribLocation = reinterpret_cast<PFNGLBINDATTRIBLOCATIONARBPROC>(get_proc_address("glBindAttribLocationARB"));
+               glDisableVertexAttribArray = reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYARBPROC>(get_proc_address("glDisableVertexAttribArrayARB"));
+               glEnableVertexAttribArray = reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYARBPROC>(get_proc_address("glEnableVertexAttribArrayARB"));
+               glGetActiveAttrib = reinterpret_cast<PFNGLGETACTIVEATTRIBARBPROC>(get_proc_address("glGetActiveAttribARB"));
+               glGetAttribLocation = reinterpret_cast<PFNGLGETATTRIBLOCATIONARBPROC>(get_proc_address("glGetAttribLocationARB"));
+               glGetVertexAttribPointerv = reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVARBPROC>(get_proc_address("glGetVertexAttribPointervARB"));
+               glGetVertexAttribdv = reinterpret_cast<PFNGLGETVERTEXATTRIBDVARBPROC>(get_proc_address("glGetVertexAttribdvARB"));
+               glGetVertexAttribfv = reinterpret_cast<PFNGLGETVERTEXATTRIBFVARBPROC>(get_proc_address("glGetVertexAttribfvARB"));
+               glGetVertexAttribiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIVARBPROC>(get_proc_address("glGetVertexAttribivARB"));
+               glVertexAttrib1d = reinterpret_cast<PFNGLVERTEXATTRIB1DARBPROC>(get_proc_address("glVertexAttrib1dARB"));
+               glVertexAttrib1dv = reinterpret_cast<PFNGLVERTEXATTRIB1DVARBPROC>(get_proc_address("glVertexAttrib1dvARB"));
+               glVertexAttrib1f = reinterpret_cast<PFNGLVERTEXATTRIB1FARBPROC>(get_proc_address("glVertexAttrib1fARB"));
+               glVertexAttrib1fv = reinterpret_cast<PFNGLVERTEXATTRIB1FVARBPROC>(get_proc_address("glVertexAttrib1fvARB"));
+               glVertexAttrib1s = reinterpret_cast<PFNGLVERTEXATTRIB1SARBPROC>(get_proc_address("glVertexAttrib1sARB"));
+               glVertexAttrib1sv = reinterpret_cast<PFNGLVERTEXATTRIB1SVARBPROC>(get_proc_address("glVertexAttrib1svARB"));
+               glVertexAttrib2d = reinterpret_cast<PFNGLVERTEXATTRIB2DARBPROC>(get_proc_address("glVertexAttrib2dARB"));
+               glVertexAttrib2dv = reinterpret_cast<PFNGLVERTEXATTRIB2DVARBPROC>(get_proc_address("glVertexAttrib2dvARB"));
+               glVertexAttrib2f = reinterpret_cast<PFNGLVERTEXATTRIB2FARBPROC>(get_proc_address("glVertexAttrib2fARB"));
+               glVertexAttrib2fv = reinterpret_cast<PFNGLVERTEXATTRIB2FVARBPROC>(get_proc_address("glVertexAttrib2fvARB"));
+               glVertexAttrib2s = reinterpret_cast<PFNGLVERTEXATTRIB2SARBPROC>(get_proc_address("glVertexAttrib2sARB"));
+               glVertexAttrib2sv = reinterpret_cast<PFNGLVERTEXATTRIB2SVARBPROC>(get_proc_address("glVertexAttrib2svARB"));
+               glVertexAttrib3d = reinterpret_cast<PFNGLVERTEXATTRIB3DARBPROC>(get_proc_address("glVertexAttrib3dARB"));
+               glVertexAttrib3dv = reinterpret_cast<PFNGLVERTEXATTRIB3DVARBPROC>(get_proc_address("glVertexAttrib3dvARB"));
+               glVertexAttrib3f = reinterpret_cast<PFNGLVERTEXATTRIB3FARBPROC>(get_proc_address("glVertexAttrib3fARB"));
+               glVertexAttrib3fv = reinterpret_cast<PFNGLVERTEXATTRIB3FVARBPROC>(get_proc_address("glVertexAttrib3fvARB"));
+               glVertexAttrib3s = reinterpret_cast<PFNGLVERTEXATTRIB3SARBPROC>(get_proc_address("glVertexAttrib3sARB"));
+               glVertexAttrib3sv = reinterpret_cast<PFNGLVERTEXATTRIB3SVARBPROC>(get_proc_address("glVertexAttrib3svARB"));
+               glVertexAttrib4Nbv = reinterpret_cast<PFNGLVERTEXATTRIB4NBVARBPROC>(get_proc_address("glVertexAttrib4NbvARB"));
+               glVertexAttrib4Niv = reinterpret_cast<PFNGLVERTEXATTRIB4NIVARBPROC>(get_proc_address("glVertexAttrib4NivARB"));
+               glVertexAttrib4Nsv = reinterpret_cast<PFNGLVERTEXATTRIB4NSVARBPROC>(get_proc_address("glVertexAttrib4NsvARB"));
+               glVertexAttrib4Nub = reinterpret_cast<PFNGLVERTEXATTRIB4NUBARBPROC>(get_proc_address("glVertexAttrib4NubARB"));
+               glVertexAttrib4Nubv = reinterpret_cast<PFNGLVERTEXATTRIB4NUBVARBPROC>(get_proc_address("glVertexAttrib4NubvARB"));
+               glVertexAttrib4Nuiv = reinterpret_cast<PFNGLVERTEXATTRIB4NUIVARBPROC>(get_proc_address("glVertexAttrib4NuivARB"));
+               glVertexAttrib4Nusv = reinterpret_cast<PFNGLVERTEXATTRIB4NUSVARBPROC>(get_proc_address("glVertexAttrib4NusvARB"));
+               glVertexAttrib4bv = reinterpret_cast<PFNGLVERTEXATTRIB4BVARBPROC>(get_proc_address("glVertexAttrib4bvARB"));
+               glVertexAttrib4d = reinterpret_cast<PFNGLVERTEXATTRIB4DARBPROC>(get_proc_address("glVertexAttrib4dARB"));
+               glVertexAttrib4dv = reinterpret_cast<PFNGLVERTEXATTRIB4DVARBPROC>(get_proc_address("glVertexAttrib4dvARB"));
+               glVertexAttrib4f = reinterpret_cast<PFNGLVERTEXATTRIB4FARBPROC>(get_proc_address("glVertexAttrib4fARB"));
+               glVertexAttrib4fv = reinterpret_cast<PFNGLVERTEXATTRIB4FVARBPROC>(get_proc_address("glVertexAttrib4fvARB"));
+               glVertexAttrib4iv = reinterpret_cast<PFNGLVERTEXATTRIB4IVARBPROC>(get_proc_address("glVertexAttrib4ivARB"));
+               glVertexAttrib4s = reinterpret_cast<PFNGLVERTEXATTRIB4SARBPROC>(get_proc_address("glVertexAttrib4sARB"));
+               glVertexAttrib4sv = reinterpret_cast<PFNGLVERTEXATTRIB4SVARBPROC>(get_proc_address("glVertexAttrib4svARB"));
+               glVertexAttrib4ubv = reinterpret_cast<PFNGLVERTEXATTRIB4UBVARBPROC>(get_proc_address("glVertexAttrib4ubvARB"));
+               glVertexAttrib4uiv = reinterpret_cast<PFNGLVERTEXATTRIB4UIVARBPROC>(get_proc_address("glVertexAttrib4uivARB"));
+               glVertexAttrib4usv = reinterpret_cast<PFNGLVERTEXATTRIB4USVARBPROC>(get_proc_address("glVertexAttrib4usvARB"));
+               glVertexAttribPointer = reinterpret_cast<PFNGLVERTEXATTRIBPOINTERARBPROC>(get_proc_address("glVertexAttribPointerARB"));
                return Extension::EXTENSION;
        }
        return Extension::UNSUPPORTED;