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