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.gl11; 8 9 import bindbc.loader; 10 import bindbc.opengl.bind.types; 11 12 version(GL_AllowDeprecated) 13 public import bindbc.opengl.bind.dep.dep11; 14 15 enum : ubyte { 16 GL_FALSE = 0, 17 GL_TRUE = 1, 18 } 19 20 enum : uint { 21 GL_DEPTH_BUFFER_BIT = 0x00000100, 22 GL_STENCIL_BUFFER_BIT = 0x00000400, 23 GL_COLOR_BUFFER_BIT = 0x00004000, 24 GL_POINTS = 0x0000, 25 GL_LINES = 0x0001, 26 GL_LINE_LOOP = 0x0002, 27 GL_LINE_STRIP = 0x0003, 28 GL_TRIANGLES = 0x0004, 29 GL_TRIANGLE_STRIP = 0x0005, 30 GL_TRIANGLE_FAN = 0x0006, 31 GL_NEVER = 0x0200, 32 GL_LESS = 0x0201, 33 GL_EQUAL = 0x0202, 34 GL_LEQUAL = 0x0203, 35 GL_GREATER = 0x0204, 36 GL_NOTEQUAL = 0x0205, 37 GL_GEQUAL = 0x0206, 38 GL_ALWAYS = 0x0207, 39 GL_ZERO = 0, 40 GL_ONE = 1, 41 GL_SRC_COLOR = 0x0300, 42 GL_ONE_MINUS_SRC_COLOR = 0x0301, 43 GL_SRC_ALPHA = 0x0302, 44 GL_ONE_MINUS_SRC_ALPHA = 0x0303, 45 GL_DST_ALPHA = 0x0304, 46 GL_ONE_MINUS_DST_ALPHA = 0x0305, 47 GL_DST_COLOR = 0x0306, 48 GL_ONE_MINUS_DST_COLOR = 0x0307, 49 GL_SRC_ALPHA_SATURATE = 0x0308, 50 GL_NONE = 0, 51 GL_FRONT_LEFT = 0x0400, 52 GL_FRONT_RIGHT = 0x0401, 53 GL_BACK_LEFT = 0x0402, 54 GL_BACK_RIGHT = 0x0403, 55 GL_FRONT = 0x0404, 56 GL_BACK = 0x0405, 57 GL_LEFT = 0x0406, 58 GL_RIGHT = 0x0407, 59 GL_FRONT_AND_BACK = 0x0408, 60 GL_NO_ERROR = 0, 61 GL_INVALID_ENUM = 0x0500, 62 GL_INVALID_VALUE = 0x0501, 63 GL_INVALID_OPERATION = 0x0502, 64 GL_OUT_OF_MEMORY = 0x0505, 65 GL_CW = 0x0900, 66 GL_CCW = 0x0901, 67 GL_POINT_SIZE = 0x0B11, 68 GL_POINT_SIZE_RANGE = 0x0B12, 69 GL_POINT_SIZE_GRANULARITY = 0x0B13, 70 GL_LINE_SMOOTH = 0x0B20, 71 GL_LINE_WIDTH = 0x0B21, 72 GL_LINE_WIDTH_RANGE = 0x0B22, 73 GL_LINE_WIDTH_GRANULARITY = 0x0B23, 74 GL_POLYGON_MODE = 0x0B40, 75 GL_POLYGON_SMOOTH = 0x0B41, 76 GL_CULL_FACE = 0x0B44, 77 GL_CULL_FACE_MODE = 0x0B45, 78 GL_FRONT_FACE = 0x0B46, 79 GL_DEPTH_RANGE = 0x0B70, 80 GL_DEPTH_TEST = 0x0B71, 81 GL_DEPTH_WRITEMASK = 0x0B72, 82 GL_DEPTH_CLEAR_VALUE = 0x0B73, 83 GL_DEPTH_FUNC = 0x0B74, 84 GL_STENCIL_TEST = 0x0B90, 85 GL_STENCIL_CLEAR_VALUE = 0x0B91, 86 GL_STENCIL_FUNC = 0x0B92, 87 GL_STENCIL_VALUE_MASK = 0x0B93, 88 GL_STENCIL_FAIL = 0x0B94, 89 GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, 90 GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, 91 GL_STENCIL_REF = 0x0B97, 92 GL_STENCIL_WRITEMASK = 0x0B98, 93 GL_VIEWPORT = 0x0BA2, 94 GL_DITHER = 0x0BD0, 95 GL_BLEND_DST = 0x0BE0, 96 GL_BLEND_SRC = 0x0BE1, 97 GL_BLEND = 0x0BE2, 98 GL_LOGIC_OP_MODE = 0x0BF0, 99 GL_COLOR_LOGIC_OP = 0x0BF2, 100 GL_DRAW_BUFFER = 0x0C01, 101 GL_READ_BUFFER = 0x0C02, 102 GL_SCISSOR_BOX = 0x0C10, 103 GL_SCISSOR_TEST = 0x0C11, 104 GL_COLOR_CLEAR_VALUE = 0x0C22, 105 GL_COLOR_WRITEMASK = 0x0C23, 106 GL_DOUBLEBUFFER = 0x0C32, 107 GL_STEREO = 0x0C33, 108 GL_LINE_SMOOTH_HINT = 0x0C52, 109 GL_POLYGON_SMOOTH_HINT = 0x0C53, 110 GL_UNPACK_SWAP_BYTES = 0x0CF0, 111 GL_UNPACK_LSB_FIRST = 0x0CF1, 112 GL_UNPACK_ROW_LENGTH = 0x0CF2, 113 GL_UNPACK_SKIP_ROWS = 0x0CF3, 114 GL_UNPACK_SKIP_PIXELS = 0x0CF4, 115 GL_UNPACK_ALIGNMENT = 0x0CF5, 116 GL_PACK_SWAP_BYTES = 0x0D00, 117 GL_PACK_LSB_FIRST = 0x0D01, 118 GL_PACK_ROW_LENGTH = 0x0D02, 119 GL_PACK_SKIP_ROWS = 0x0D03, 120 GL_PACK_SKIP_PIXELS = 0x0D04, 121 GL_PACK_ALIGNMENT = 0x0D05, 122 GL_MAX_TEXTURE_SIZE = 0x0D33, 123 GL_MAX_VIEWPORT_DIMS = 0x0D3A, 124 GL_SUBPIXEL_BITS = 0x0D50, 125 GL_TEXTURE_1D = 0x0DE0, 126 GL_TEXTURE_2D = 0x0DE1, 127 GL_POLYGON_OFFSET_UNITS = 0x2A00, 128 GL_POLYGON_OFFSET_POINT = 0x2A01, 129 GL_POLYGON_OFFSET_LINE = 0x2A02, 130 GL_POLYGON_OFFSET_FILL = 0x8037, 131 GL_POLYGON_OFFSET_FACTOR = 0x8038, 132 GL_TEXTURE_BINDING_1D = 0x8068, 133 GL_TEXTURE_BINDING_2D = 0x8069, 134 GL_TEXTURE_WIDTH = 0x1000, 135 GL_TEXTURE_HEIGHT = 0x1001, 136 GL_TEXTURE_INTERNAL_FORMAT = 0x1003, 137 GL_TEXTURE_BORDER_COLOR = 0x1004, 138 GL_TEXTURE_RED_SIZE = 0x805C, 139 GL_TEXTURE_GREEN_SIZE = 0x805D, 140 GL_TEXTURE_BLUE_SIZE = 0x805E, 141 GL_TEXTURE_ALPHA_SIZE = 0x805F, 142 GL_DONT_CARE = 0x1100, 143 GL_FASTEST = 0x1101, 144 GL_NICEST = 0x1102, 145 GL_BYTE = 0x1400, 146 GL_UNSIGNED_BYTE = 0x1401, 147 GL_SHORT = 0x1402, 148 GL_UNSIGNED_SHORT = 0x1403, 149 GL_INT = 0x1404, 150 GL_UNSIGNED_INT = 0x1405, 151 GL_FLOAT = 0x1406, 152 GL_DOUBLE = 0x140A, 153 GL_CLEAR = 0x1500, 154 GL_AND = 0x1501, 155 GL_AND_REVERSE = 0x1502, 156 GL_COPY = 0x1503, 157 GL_AND_INVERTED = 0x1504, 158 GL_NOOP = 0x1505, 159 GL_XOR = 0x1506, 160 GL_OR = 0x1507, 161 GL_NOR = 0x1508, 162 GL_EQUIV = 0x1509, 163 GL_INVERT = 0x150A, 164 GL_OR_REVERSE = 0x150B, 165 GL_COPY_INVERTED = 0x150C, 166 GL_OR_INVERTED = 0x150D, 167 GL_NAND = 0x150E, 168 GL_SET = 0x150F, 169 GL_TEXTURE = 0x1702, 170 GL_COLOR = 0x1800, 171 GL_DEPTH = 0x1801, 172 GL_STENCIL = 0x1802, 173 GL_STENCIL_INDEX = 0x1901, 174 GL_DEPTH_COMPONENT = 0x1902, 175 GL_RED = 0x1903, 176 GL_GREEN = 0x1904, 177 GL_BLUE = 0x1905, 178 GL_ALPHA = 0x1906, 179 GL_RGB = 0x1907, 180 GL_RGBA = 0x1908, 181 GL_POINT = 0x1B00, 182 GL_LINE = 0x1B01, 183 GL_FILL = 0x1B02, 184 GL_KEEP = 0x1E00, 185 GL_REPLACE = 0x1E01, 186 GL_INCR = 0x1E02, 187 GL_DECR = 0x1E03, 188 GL_VENDOR = 0x1F00, 189 GL_RENDERER = 0x1F01, 190 GL_VERSION = 0x1F02, 191 GL_EXTENSIONS = 0x1F03, 192 GL_NEAREST = 0x2600, 193 GL_LINEAR = 0x2601, 194 GL_NEAREST_MIPMAP_NEAREST = 0x2700, 195 GL_LINEAR_MIPMAP_NEAREST = 0x2701, 196 GL_NEAREST_MIPMAP_LINEAR = 0x2702, 197 GL_LINEAR_MIPMAP_LINEAR = 0x2703, 198 GL_TEXTURE_MAG_FILTER = 0x2800, 199 GL_TEXTURE_MIN_FILTER = 0x2801, 200 GL_TEXTURE_WRAP_S = 0x2802, 201 GL_TEXTURE_WRAP_T = 0x2803, 202 GL_PROXY_TEXTURE_1D = 0x8063, 203 GL_PROXY_TEXTURE_2D = 0x8064, 204 GL_REPEAT = 0x2901, 205 GL_R3_G3_B2 = 0x2A10, 206 GL_RGB4 = 0x804F, 207 GL_RGB5 = 0x8050, 208 GL_RGB8 = 0x8051, 209 GL_RGB10 = 0x8052, 210 GL_RGB12 = 0x8053, 211 GL_RGB16 = 0x8054, 212 GL_RGBA2 = 0x8055, 213 GL_RGBA4 = 0x8056, 214 GL_RGB5_A1 = 0x8057, 215 GL_RGBA8 = 0x8058, 216 GL_RGB10_A2 = 0x8059, 217 GL_RGBA12 = 0x805A, 218 GL_RGBA16 = 0x805B, 219 GL_VERTEX_ARRAY = 0x8074, 220 } 221 222 extern(System) @nogc nothrow { 223 // OpenGL 1.0 224 alias pglCullFace = void function(GLenum); 225 alias pglFrontFace = void function(GLenum); 226 alias pglHint = void function(GLenum,GLenum); 227 alias pglLineWidth = void function(GLfloat); 228 alias pglPointSize = void function(GLfloat); 229 alias pglPolygonMode = void function(GLenum,GLenum); 230 alias pglScissor = void function(GLint,GLint,GLsizei,GLsizei); 231 alias pglTexParameterf = void function(GLenum,GLenum,GLfloat); 232 alias pglTexParameterfv = void function(GLenum,GLenum,const(GLfloat)*); 233 alias pglTexParameteri = void function(GLenum,GLenum,GLint); 234 alias pglTexParameteriv = void function(GLenum,GLenum,const(GLint)*); 235 alias pglTexImage1D = void function(GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,const(GLvoid)*); 236 alias pglTexImage2D = void function(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const(GLvoid)*); 237 alias pglDrawBuffer = void function(GLenum); 238 alias pglClear = void function(GLbitfield); 239 alias pglClearColor = void function(GLclampf,GLclampf,GLclampf,GLclampf); 240 alias pglClearStencil = void function(GLint); 241 alias pglClearDepth = void function(GLclampd); 242 alias pglStencilMask = void function(GLuint); 243 alias pglColorMask = void function(GLboolean,GLboolean,GLboolean,GLboolean); 244 alias pglDepthMask = void function(GLboolean); 245 alias pglDisable = void function(GLenum); 246 alias pglEnable = void function(GLenum); 247 alias pglFinish = void function(); 248 alias pglFlush = void function(); 249 alias pglBlendFunc = void function(GLenum,GLenum); 250 alias pglLogicOp = void function(GLenum); 251 alias pglStencilFunc = void function(GLenum,GLint,GLuint); 252 alias pglStencilOp = void function(GLenum,GLenum,GLenum); 253 alias pglDepthFunc = void function(GLenum); 254 alias pglPixelStoref = void function(GLenum,GLfloat); 255 alias pglPixelStorei = void function(GLenum,GLint); 256 alias pglReadBuffer = void function(GLenum); 257 alias pglReadPixels = void function(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLvoid*); 258 alias pglGetBooleanv = void function(GLenum,GLboolean*); 259 alias pglGetDoublev = void function(GLenum,GLdouble*); 260 alias pglGetError = GLenum function(); 261 alias pglGetFloatv = void function(GLenum,GLfloat*); 262 alias pglGetIntegerv = void function(GLenum,GLint*); 263 alias pglGetString = const(char*) function(GLenum); 264 alias pglGetTexImage = void function(GLenum,GLint,GLenum,GLenum,GLvoid*); 265 alias pglGetTexParameterfv = void function(GLenum,GLenum,GLfloat*); 266 alias pglGetTexParameteriv = void function(GLenum,GLenum,GLint*); 267 alias pglGetTexLevelParameterfv = void function(GLenum,GLint,GLenum,GLfloat*); 268 alias pglGetTexLevelParameteriv = void function(GLenum,GLint,GLenum,GLint*); 269 alias pglIsEnabled = GLboolean function(GLenum); 270 alias pglDepthRange = void function(GLclampd,GLclampd); 271 alias pglViewport = void function(GLint,GLint,GLsizei,GLsizei); 272 273 // OpenGL 1.1 274 alias pglDrawArrays = void function(GLenum,GLint,GLsizei); 275 alias pglDrawElements = void function(GLenum,GLsizei,GLenum,const(GLvoid)*); 276 alias pglGetPointerv = void function(GLenum,GLvoid*); 277 alias pglPolygonOffset = void function(GLfloat,GLfloat); 278 alias pglCopyTexImage1D = void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint); 279 alias pglCopyTexImage2D = void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint); 280 alias pglCopyTexSubImage1D = void function(GLenum,GLint,GLint,GLint,GLint,GLsizei); 281 alias pglCopyTexSubImage2D = void function(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei); 282 alias pglTexSubImage1D = void function(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const(GLvoid)*); 283 alias pglTexSubImage2D = void function(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const(GLvoid)*); 284 alias pglBindTexture = void function(GLenum,GLuint); 285 alias pglDeleteTextures = void function(GLsizei,const(GLuint)*); 286 alias pglGenTextures = void function(GLsizei,GLuint*); 287 alias pglIsTexture = GLboolean function(GLuint); 288 } 289 290 __gshared { 291 pglCullFace glCullFace; 292 pglFrontFace glFrontFace; 293 pglHint glHint; 294 pglLineWidth glLineWidth; 295 pglPointSize glPointSize; 296 pglPolygonMode glPolygonMode; 297 pglScissor glScissor; 298 pglTexParameterf glTexParameterf; 299 pglTexParameterfv glTexParameterfv; 300 pglTexParameteri glTexParameteri; 301 pglTexParameteriv glTexParameteriv; 302 pglTexImage1D glTexImage1D; 303 pglTexImage2D glTexImage2D; 304 pglDrawBuffer glDrawBuffer; 305 pglClear glClear; 306 pglClearColor glClearColor; 307 pglClearStencil glClearStencil; 308 pglClearDepth glClearDepth; 309 pglStencilMask glStencilMask; 310 pglColorMask glColorMask; 311 pglDepthMask glDepthMask; 312 pglDisable glDisable; 313 pglEnable glEnable; 314 pglFinish glFinish; 315 pglFlush glFlush; 316 pglBlendFunc glBlendFunc; 317 pglLogicOp glLogicOp; 318 pglStencilFunc glStencilFunc; 319 pglStencilOp glStencilOp; 320 pglDepthFunc glDepthFunc; 321 pglPixelStoref glPixelStoref; 322 pglPixelStorei glPixelStorei; 323 pglReadBuffer glReadBuffer; 324 pglReadPixels glReadPixels; 325 pglGetBooleanv glGetBooleanv; 326 pglGetDoublev glGetDoublev; 327 pglGetError glGetError; 328 pglGetFloatv glGetFloatv; 329 pglGetIntegerv glGetIntegerv; 330 pglGetString glGetString; 331 pglGetTexImage glGetTexImage; 332 pglGetTexParameterfv glGetTexParameterfv; 333 pglGetTexParameteriv glGetTexParameteriv; 334 pglGetTexLevelParameterfv glGetTexLevelParameterfv; 335 pglGetTexLevelParameteriv glGetTexLevelParameteriv; 336 pglIsEnabled glIsEnabled; 337 pglDepthRange glDepthRange; 338 pglViewport glViewport; 339 pglDrawArrays glDrawArrays; 340 pglDrawElements glDrawElements; 341 pglGetPointerv glGetPointerv; 342 pglPolygonOffset glPolygonOffset; 343 pglCopyTexImage1D glCopyTexImage1D; 344 pglCopyTexImage2D glCopyTexImage2D; 345 pglCopyTexSubImage1D glCopyTexSubImage1D; 346 pglCopyTexSubImage2D glCopyTexSubImage2D; 347 pglTexSubImage1D glTexSubImage1D; 348 pglTexSubImage2D glTexSubImage2D; 349 pglBindTexture glBindTexture; 350 pglDeleteTextures glDeleteTextures; 351 pglGenTextures glGenTextures; 352 pglIsTexture glIsTexture; 353 } 354 355 package(bindbc.opengl) @nogc nothrow 356 bool loadGL11(SharedLib lib) 357 { 358 auto startErrorCount = errorCount(); 359 360 // OpenGL 1.0 361 lib.bindSymbol(cast(void**)&glCullFace, "glCullFace"); 362 lib.bindSymbol(cast(void**)&glFrontFace, "glFrontFace"); 363 lib.bindSymbol(cast(void**)&glHint, "glHint"); 364 lib.bindSymbol(cast(void**)&glLineWidth, "glLineWidth"); 365 lib.bindSymbol(cast(void**)&glPointSize, "glPointSize"); 366 lib.bindSymbol(cast(void**)&glPolygonMode, "glPolygonMode"); 367 lib.bindSymbol(cast(void**)&glScissor, "glScissor"); 368 lib.bindSymbol(cast(void**)&glTexParameterf, "glTexParameterf"); 369 lib.bindSymbol(cast(void**)&glTexParameterfv, "glTexParameterfv"); 370 lib.bindSymbol(cast(void**)&glTexParameteri, "glTexParameteri"); 371 lib.bindSymbol(cast(void**)&glTexParameteriv, "glTexParameteriv"); 372 lib.bindSymbol(cast(void**)&glTexImage1D, "glTexImage1D"); 373 lib.bindSymbol(cast(void**)&glTexImage2D, "glTexImage2D"); 374 lib.bindSymbol(cast(void**)&glDrawBuffer, "glDrawBuffer"); 375 lib.bindSymbol(cast(void**)&glClear, "glClear"); 376 lib.bindSymbol(cast(void**)&glClearColor, "glClearColor"); 377 lib.bindSymbol(cast(void**)&glClearStencil, "glClearStencil"); 378 lib.bindSymbol(cast(void**)&glClearDepth, "glClearDepth"); 379 lib.bindSymbol(cast(void**)&glStencilMask, "glStencilMask"); 380 lib.bindSymbol(cast(void**)&glColorMask, "glColorMask"); 381 lib.bindSymbol(cast(void**)&glDepthMask, "glDepthMask"); 382 lib.bindSymbol(cast(void**)&glDisable, "glDisable"); 383 lib.bindSymbol(cast(void**)&glEnable, "glEnable"); 384 lib.bindSymbol(cast(void**)&glFinish, "glFinish"); 385 lib.bindSymbol(cast(void**)&glFlush, "glFlush"); 386 lib.bindSymbol(cast(void**)&glBlendFunc, "glBlendFunc"); 387 lib.bindSymbol(cast(void**)&glLogicOp, "glLogicOp"); 388 lib.bindSymbol(cast(void**)&glStencilFunc, "glStencilFunc"); 389 lib.bindSymbol(cast(void**)&glStencilOp, "glStencilOp"); 390 lib.bindSymbol(cast(void**)&glDepthFunc, "glDepthFunc"); 391 lib.bindSymbol(cast(void**)&glPixelStoref, "glPixelStoref"); 392 lib.bindSymbol(cast(void**)&glPixelStorei, "glPixelStorei"); 393 lib.bindSymbol(cast(void**)&glReadBuffer, "glReadBuffer"); 394 lib.bindSymbol(cast(void**)&glReadPixels, "glReadPixels"); 395 lib.bindSymbol(cast(void**)&glGetBooleanv, "glGetBooleanv"); 396 lib.bindSymbol(cast(void**)&glGetDoublev, "glGetDoublev"); 397 lib.bindSymbol(cast(void**)&glGetError, "glGetError"); 398 lib.bindSymbol(cast(void**)&glGetFloatv, "glGetFloatv"); 399 lib.bindSymbol(cast(void**)&glGetIntegerv, "glGetIntegerv"); 400 lib.bindSymbol(cast(void**)&glGetString, "glGetString"); 401 lib.bindSymbol(cast(void**)&glGetTexImage, "glGetTexImage"); 402 lib.bindSymbol(cast(void**)&glGetTexParameterfv, "glGetTexParameterfv"); 403 lib.bindSymbol(cast(void**)&glGetTexParameteriv, "glGetTexParameteriv"); 404 lib.bindSymbol(cast(void**)&glGetTexLevelParameterfv, "glGetTexLevelParameterfv"); 405 lib.bindSymbol(cast(void**)&glGetTexLevelParameteriv, "glGetTexLevelParameteriv"); 406 lib.bindSymbol(cast(void**)&glIsEnabled, "glIsEnabled"); 407 lib.bindSymbol(cast(void**)&glDepthRange, "glDepthRange"); 408 lib.bindSymbol(cast(void**)&glViewport, "glViewport"); 409 410 // OpenGL 1.1 411 lib.bindSymbol(cast(void**)&glDrawArrays, "glDrawArrays"); 412 lib.bindSymbol(cast(void**)&glDrawElements, "glDrawElements"); 413 lib.bindSymbol(cast(void**)&glPolygonOffset, "glPolygonOffset"); 414 lib.bindSymbol(cast(void**)&glCopyTexImage1D, "glCopyTexImage1D"); 415 lib.bindSymbol(cast(void**)&glCopyTexImage2D, "glCopyTexImage2D"); 416 lib.bindSymbol(cast(void**)&glCopyTexSubImage1D, "glCopyTexSubImage1D"); 417 lib.bindSymbol(cast(void**)&glCopyTexSubImage2D, "glCopyTexSubImage2D"); 418 lib.bindSymbol(cast(void**)&glTexSubImage1D, "glTexSubImage1D"); 419 lib.bindSymbol(cast(void**)&glTexSubImage2D, "glTexSubImage2D"); 420 lib.bindSymbol(cast(void**)&glBindTexture, "glBindTexture"); 421 lib.bindSymbol(cast(void**)&glDeleteTextures, "glDeleteTextures"); 422 lib.bindSymbol(cast(void**)&glGenTextures, "glGenTextures"); 423 lib.bindSymbol(cast(void**)&glIsTexture, "glIsTexture"); 424 425 immutable ret = errorCount() == startErrorCount; 426 version(GL_AllowDeprecated) return ret && loadDeprecatedGL11(lib); 427 else return ret; 428 }