1 2 // Copyright Michael D. Parker 2018. 3 // Distributed under the Boost Software License, Version 1.0. 4 // (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 module bindbc.opengl.bind.gl12; 8 9 import bindbc.loader : SharedLib; 10 import bindbc.opengl.config, 11 bindbc.opengl.context; 12 import bindbc.opengl.bind.types; 13 14 public import bindbc.opengl.bind.gl11; 15 16 enum : uint { 17 GL_UNSIGNED_BYTE_3_3_2 = 0x8032, 18 GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, 19 GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, 20 GL_UNSIGNED_INT_8_8_8_8 = 0x8035, 21 GL_UNSIGNED_INT_10_10_10_2 = 0x8036, 22 GL_TEXTURE_BINDING_3D = 0x806A, 23 GL_PACK_SKIP_IMAGES = 0x806B, 24 GL_PACK_IMAGE_HEIGHT = 0x806C, 25 GL_UNPACK_SKIP_IMAGES = 0x806D, 26 GL_UNPACK_IMAGE_HEIGHT = 0x806E, 27 GL_TEXTURE_3D = 0x806F, 28 GL_PROXY_TEXTURE_3D = 0x8070, 29 GL_TEXTURE_DEPTH = 0x8071, 30 GL_TEXTURE_WRAP_R = 0x8072, 31 GL_MAX_3D_TEXTURE_SIZE = 0x8073, 32 GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362, 33 GL_UNSIGNED_SHORT_5_6_5 = 0x8363, 34 GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364, 35 GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365, 36 GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366, 37 GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367, 38 GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, 39 GL_BGR = 0x80E0, 40 GL_BGRA = 0x80E1, 41 GL_MAX_ELEMENTS_VERTICES = 0x80E8, 42 GL_MAX_ELEMENTS_INDICES = 0x80E9, 43 GL_CLAMP_TO_EDGE = 0x812F, 44 GL_TEXTURE_MIN_LOD = 0x813A, 45 GL_TEXTURE_MAX_LOD = 0x813B, 46 GL_TEXTURE_BASE_LEVEL = 0x813C, 47 GL_TEXTURE_MAX_LEVEL = 0x813D, 48 GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12, 49 GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13, 50 GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22, 51 GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23, 52 GL_ALIASED_LINE_WIDTH_RANGE = 0x846E, 53 } 54 55 extern(System) @nogc nothrow { 56 alias pglDrawRangeElements = void function(GLenum,GLuint,GLuint,GLsizei,GLenum,const(GLvoid)*); 57 alias pglTexImage3D = void function(GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const(GLvoid)*); 58 alias pglTexSubImage3D = void function(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const(GLvoid)*); 59 alias pglCopyTexSubImage3D = void function(GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei); 60 } 61 62 __gshared { 63 pglDrawRangeElements glDrawRangeElements; 64 pglTexImage3D glTexImage3D; 65 pglTexSubImage3D glTexSubImage3D; 66 pglCopyTexSubImage3D glCopyTexSubImage3D; 67 } 68 69 package(bindbc.opengl) @nogc nothrow 70 GLSupport loadGL12(SharedLib lib, GLSupport contextVersion) 71 { 72 if(contextVersion > GLSupport.gl11) { 73 lib.bindGLSymbol(cast(void**)&glDrawRangeElements, "glDrawRangeElements"); 74 lib.bindGLSymbol(cast(void**)&glTexImage3D, "glTexImage3D"); 75 lib.bindGLSymbol(cast(void**)&glTexSubImage3D, "glTexSubImage3D"); 76 lib.bindGLSymbol(cast(void**)&glCopyTexSubImage3D, "glCopyTexSubImage3D"); 77 if(errorCountGL() == 0) return GLSupport.gl12; 78 } 79 return GLSupport.gl11; 80 }