]> git.tdb.fi Git - libs/gl.git/blobdiff - source/nv_primitive_restart.cpp
Complete rewrite of extension handling
[libs/gl.git] / source / nv_primitive_restart.cpp
index b685e340740f91ee03dc7ffd08c489d4d59c4161..ed5a2664604c34c7282a7697758457e28c516c1f 100644 (file)
@@ -1,17 +1,23 @@
-#include "extension.h"
 #include "nv_primitive_restart.h"
 
 namespace Msp {
 namespace GL {
 
-PFNGLPRIMITIVERESTARTNVPROC glPrimitiveRestartNV = 0;
 PFNGLPRIMITIVERESTARTINDEXNVPROC glPrimitiveRestartIndexNV = 0;
+PFNGLPRIMITIVERESTARTNVPROC glPrimitiveRestartNV = 0;
 
-void init_nv_primitive_restart()
+Extension::SupportLevel init_nv_primitive_restart()
 {
-       glPrimitiveRestartNV = reinterpret_cast<PFNGLPRIMITIVERESTARTNVPROC>(get_proc_address("glPrimitiveRestartNV"));
-       glPrimitiveRestartIndexNV = reinterpret_cast<PFNGLPRIMITIVERESTARTINDEXNVPROC>(get_proc_address("glPrimitiveRestartIndexNV"));
+       if(is_supported("GL_NV_primitive_restart"))
+       {
+               glPrimitiveRestartIndexNV = reinterpret_cast<PFNGLPRIMITIVERESTARTINDEXNVPROC>(get_proc_address("glPrimitiveRestartIndexNV"));
+               glPrimitiveRestartNV = reinterpret_cast<PFNGLPRIMITIVERESTARTNVPROC>(get_proc_address("glPrimitiveRestartNV"));
+               return Extension::EXTENSION;
+       }
+       return Extension::UNSUPPORTED;
 }
 
+Extension NV_primitive_restart("GL_NV_primitive_restart", init_nv_primitive_restart);
+
 } // namespace GL
 } // namespace Msp