]> git.tdb.fi Git - libs/gl.git/blobdiff - source/ext_draw_range_elements.cpp
Complete rewrite of extension handling
[libs/gl.git] / source / ext_draw_range_elements.cpp
diff --git a/source/ext_draw_range_elements.cpp b/source/ext_draw_range_elements.cpp
new file mode 100644 (file)
index 0000000..2bccf00
--- /dev/null
@@ -0,0 +1,26 @@
+#include "ext_draw_range_elements.h"
+
+namespace Msp {
+namespace GL {
+
+PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements = 0;
+
+Extension::SupportLevel init_ext_draw_range_elements()
+{
+       if(is_version_at_least(1, 2))
+       {
+               glDrawRangeElements = reinterpret_cast<PFNGLDRAWRANGEELEMENTSPROC>(get_proc_address("glDrawRangeElements"));
+               return Extension::CORE;
+       }
+       if(is_supported("GL_EXT_draw_range_elements"))
+       {
+               glDrawRangeElements = reinterpret_cast<PFNGLDRAWRANGEELEMENTSPROC>(get_proc_address("glDrawRangeElementsEXT"));
+               return Extension::EXTENSION;
+       }
+       return Extension::UNSUPPORTED;
+}
+
+Extension EXT_draw_range_elements("GL_EXT_draw_range_elements", init_ext_draw_range_elements);
+
+} // namespace GL
+} // namespace Msp