--- /dev/null
+#include "ext_texture3d.h"
+
+namespace Msp {
+namespace GL {
+
+PFNGLTEXIMAGE3DPROC glTexImage3D = 0;
+PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D = 0;
+
+Extension::SupportLevel init_ext_texture3d()
+{
+ if(is_version_at_least(1, 2))
+ {
+ glTexImage3D = reinterpret_cast<PFNGLTEXIMAGE3DPROC>(get_proc_address("glTexImage3D"));
+ glTexSubImage3D = reinterpret_cast<PFNGLTEXSUBIMAGE3DPROC>(get_proc_address("glTexSubImage3D"));
+ return Extension::CORE;
+ }
+ if(is_supported("GL_EXT_texture3D"))
+ {
+ glTexImage3D = reinterpret_cast<PFNGLTEXIMAGE3DPROC>(get_proc_address("glTexImage3DEXT"));
+ glTexSubImage3D = reinterpret_cast<PFNGLTEXSUBIMAGE3DPROC>(get_proc_address("glTexSubImage3DEXT"));
+ return Extension::EXTENSION;
+ }
+ return Extension::UNSUPPORTED;
+}
+
+Extension EXT_texture3D("GL_EXT_texture3D", init_ext_texture3d);
+
+} // namespace GL
+} // namespace Msp