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.gl13; 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.gl12; 15 16 enum : uint { 17 GL_TEXTURE0 = 0x84C0, 18 GL_TEXTURE1 = 0x84C1, 19 GL_TEXTURE2 = 0x84C2, 20 GL_TEXTURE3 = 0x84C3, 21 GL_TEXTURE4 = 0x84C4, 22 GL_TEXTURE5 = 0x84C5, 23 GL_TEXTURE6 = 0x84C6, 24 GL_TEXTURE7 = 0x84C7, 25 GL_TEXTURE8 = 0x84C8, 26 GL_TEXTURE9 = 0x84C9, 27 GL_TEXTURE10 = 0x84CA, 28 GL_TEXTURE11 = 0x84CB, 29 GL_TEXTURE12 = 0x84CC, 30 GL_TEXTURE13 = 0x84CD, 31 GL_TEXTURE14 = 0x84CE, 32 GL_TEXTURE15 = 0x84CF, 33 GL_TEXTURE16 = 0x84D0, 34 GL_TEXTURE17 = 0x84D1, 35 GL_TEXTURE18 = 0x84D2, 36 GL_TEXTURE19 = 0x84D3, 37 GL_TEXTURE20 = 0x84D4, 38 GL_TEXTURE21 = 0x84D5, 39 GL_TEXTURE22 = 0x84D6, 40 GL_TEXTURE23 = 0x84D7, 41 GL_TEXTURE24 = 0x84D8, 42 GL_TEXTURE25 = 0x84D9, 43 GL_TEXTURE26 = 0x84DA, 44 GL_TEXTURE27 = 0x84DB, 45 GL_TEXTURE28 = 0x84DC, 46 GL_TEXTURE29 = 0x84DD, 47 GL_TEXTURE30 = 0x84DE, 48 GL_TEXTURE31 = 0x84DF, 49 GL_ACTIVE_TEXTURE = 0x84E0, 50 GL_MULTISAMPLE = 0x809D, 51 GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E, 52 GL_SAMPLE_ALPHA_TO_ONE = 0x809F, 53 GL_SAMPLE_COVERAGE = 0x80A0, 54 GL_SAMPLE_BUFFERS = 0x80A8, 55 GL_SAMPLES = 0x80A9, 56 GL_SAMPLE_COVERAGE_VALUE = 0x80AA, 57 GL_SAMPLE_COVERAGE_INVERT = 0x80AB, 58 GL_TEXTURE_CUBE_MAP = 0x8513, 59 GL_TEXTURE_BINDING_CUBE_MAP = 0x8514, 60 GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, 61 GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, 62 GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, 63 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, 64 GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, 65 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A, 66 GL_PROXY_TEXTURE_CUBE_MAP = 0x851B, 67 GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C, 68 GL_COMPRESSED_RGB = 0x84ED, 69 GL_COMPRESSED_RGBA = 0x84EE, 70 GL_TEXTURE_COMPRESSION_HINT = 0x84EF, 71 GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0, 72 GL_TEXTURE_COMPRESSED = 0x86A1, 73 GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2, 74 GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3, 75 GL_CLAMP_TO_BORDER = 0x812D, 76 } 77 78 extern(System) @nogc nothrow { 79 alias pglActiveTexture = void function(GLenum); 80 alias pglSampleCoverage = void function(GLclampf,GLboolean); 81 alias pglCompressedTexImage3D = void function(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const(GLvoid)*); 82 alias pglCompressedTexImage2D = void function(GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const(GLvoid)*); 83 alias pglCompressedTexImage1D = void function(GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const(GLvoid)*); 84 alias pglCompressedTexSubImage3D = void function(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const(GLvoid)*); 85 alias pglCompressedTexSubImage2D = void function(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const(GLvoid)*); 86 alias pglCompressedTexSubImage1D = void function(GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const(GLvoid)*); 87 alias pglGetCompressedTexImage = void function(GLenum,GLint,GLvoid*); 88 } 89 90 __gshared { 91 pglActiveTexture glActiveTexture; 92 pglSampleCoverage glSampleCoverage; 93 pglCompressedTexImage3D glCompressedTexImage3D; 94 pglCompressedTexImage2D glCompressedTexImage2D; 95 pglCompressedTexImage1D glCompressedTexImage1D; 96 pglCompressedTexSubImage3D glCompressedTexSubImage3D; 97 pglCompressedTexSubImage2D glCompressedTexSubImage2D; 98 pglCompressedTexSubImage1D glCompressedTexSubImage1D; 99 pglGetCompressedTexImage glGetCompressedTexImage; 100 } 101 102 package(bindbc.opengl) @nogc nothrow 103 GLSupport loadGL13(SharedLib lib, GLSupport contextVersion) 104 { 105 auto loadedVersion = loadGL12(lib, contextVersion); 106 if(loadedVersion == GLSupport.gl12 && contextVersion > GLSupport.gl12) { 107 lib.bindGLSymbol(cast(void**)&glActiveTexture, "glActiveTexture"); 108 lib.bindGLSymbol(cast(void**)&glSampleCoverage, "glSampleCoverage"); 109 lib.bindGLSymbol(cast(void**)&glCompressedTexImage3D, "glCompressedTexImage3D"); 110 lib.bindGLSymbol(cast(void**)&glCompressedTexImage2D, "glCompressedTexImage2D"); 111 lib.bindGLSymbol(cast(void**)&glCompressedTexImage1D, "glCompressedTexImage1D"); 112 lib.bindGLSymbol(cast(void**)&glCompressedTexSubImage3D, "glCompressedTexSubImage3D"); 113 lib.bindGLSymbol(cast(void**)&glCompressedTexSubImage2D, "glCompressedTexSubImage2D"); 114 lib.bindGLSymbol(cast(void**)&glCompressedTexSubImage1D, "glCompressedTexSubImage1D"); 115 lib.bindGLSymbol(cast(void**)&glGetCompressedTexImage, "glGetCompressedTexImage"); 116 if(errorCountGL() == 0) loadedVersion = GLSupport.gl13; 117 } 118 return loadedVersion; 119 }