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.gl20; 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.gl15; 15 16 enum : uint { 17 GL_BLEND_EQUATION_RGB = 0x8009, 18 GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, 19 GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, 20 GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, 21 GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, 22 GL_CURRENT_VERTEX_ATTRIB = 0x8626, 23 GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642, 24 GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, 25 GL_STENCIL_BACK_FUNC = 0x8800, 26 GL_STENCIL_BACK_FAIL = 0x8801, 27 GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, 28 GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, 29 GL_MAX_DRAW_BUFFERS = 0x8824, 30 GL_DRAW_BUFFER0 = 0x8825, 31 GL_DRAW_BUFFER1 = 0x8826, 32 GL_DRAW_BUFFER2 = 0x8827, 33 GL_DRAW_BUFFER3 = 0x8828, 34 GL_DRAW_BUFFER4 = 0x8829, 35 GL_DRAW_BUFFER5 = 0x882A, 36 GL_DRAW_BUFFER6 = 0x882B, 37 GL_DRAW_BUFFER7 = 0x882C, 38 GL_DRAW_BUFFER8 = 0x882D, 39 GL_DRAW_BUFFER9 = 0x882E, 40 GL_DRAW_BUFFER10 = 0x882F, 41 GL_DRAW_BUFFER11 = 0x8830, 42 GL_DRAW_BUFFER12 = 0x8831, 43 GL_DRAW_BUFFER13 = 0x8832, 44 GL_DRAW_BUFFER14 = 0x8833, 45 GL_DRAW_BUFFER15 = 0x8834, 46 GL_BLEND_EQUATION_ALPHA = 0x883D, 47 GL_MAX_VERTEX_ATTRIBS = 0x8869, 48 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A, 49 GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872, 50 GL_FRAGMENT_SHADER = 0x8B30, 51 GL_VERTEX_SHADER = 0x8B31, 52 GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49, 53 GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A, 54 GL_MAX_VARYING_FLOATS = 0x8B4B, 55 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C, 56 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D, 57 GL_SHADER_TYPE = 0x8B4F, 58 GL_FLOAT_VEC2 = 0x8B50, 59 GL_FLOAT_VEC3 = 0x8B51, 60 GL_FLOAT_VEC4 = 0x8B52, 61 GL_INT_VEC2 = 0x8B53, 62 GL_INT_VEC3 = 0x8B54, 63 GL_INT_VEC4 = 0x8B55, 64 GL_BOOL = 0x8B56, 65 GL_BOOL_VEC2 = 0x8B57, 66 GL_BOOL_VEC3 = 0x8B58, 67 GL_BOOL_VEC4 = 0x8B59, 68 GL_FLOAT_MAT2 = 0x8B5A, 69 GL_FLOAT_MAT3 = 0x8B5B, 70 GL_FLOAT_MAT4 = 0x8B5C, 71 GL_SAMPLER_1D = 0x8B5D, 72 GL_SAMPLER_2D = 0x8B5E, 73 GL_SAMPLER_3D = 0x8B5F, 74 GL_SAMPLER_CUBE = 0x8B60, 75 GL_SAMPLER_1D_SHADOW = 0x8B61, 76 GL_SAMPLER_2D_SHADOW = 0x8B62, 77 GL_DELETE_STATUS = 0x8B80, 78 GL_COMPILE_STATUS = 0x8B81, 79 GL_LINK_STATUS = 0x8B82, 80 GL_VALIDATE_STATUS = 0x8B83, 81 GL_INFO_LOG_LENGTH = 0x8B84, 82 GL_ATTACHED_SHADERS = 0x8B85, 83 GL_ACTIVE_UNIFORMS = 0x8B86, 84 GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, 85 GL_SHADER_SOURCE_LENGTH = 0x8B88, 86 GL_ACTIVE_ATTRIBUTES = 0x8B89, 87 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, 88 GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B, 89 GL_SHADING_LANGUAGE_VERSION = 0x8B8C, 90 GL_CURRENT_PROGRAM = 0x8B8D, 91 GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0, 92 GL_LOWER_LEFT = 0x8CA1, 93 GL_UPPER_LEFT = 0x8CA2, 94 GL_STENCIL_BACK_REF = 0x8CA3, 95 GL_STENCIL_BACK_VALUE_MASK = 0x8CA4, 96 GL_STENCIL_BACK_WRITEMASK = 0x8CA5, 97 } 98 99 extern(System) @nogc nothrow { 100 alias pglBlendEquationSeparate = void function(GLenum,GLenum); 101 alias pglDrawBuffers = void function(GLsizei,const(GLenum)*); 102 alias pglStencilOpSeparate = void function(GLenum,GLenum,GLenum,GLenum); 103 alias pglStencilFuncSeparate = void function(GLenum,GLenum,GLint,GLuint); 104 alias pglStencilMaskSeparate = void function(GLenum,GLuint); 105 alias pglAttachShader = void function(GLuint,GLuint); 106 alias pglBindAttribLocation = void function(GLuint,GLuint,const(GLchar)*); 107 alias pglCompileShader = void function(GLuint); 108 alias pglCreateProgram = GLuint function(); 109 alias pglCreateShader = GLuint function(GLenum); 110 alias pglDeleteProgram = void function(GLuint); 111 alias pglDeleteShader = void function(GLuint); 112 alias pglDetachShader = void function(GLuint,GLuint); 113 alias pglDisableVertexAttribArray = void function(GLuint); 114 alias pglEnableVertexAttribArray = void function(GLuint); 115 alias pglGetActiveAttrib = void function(GLuint,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLchar*); 116 alias pglGetActiveUniform = void function(GLuint,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLchar*); 117 alias pglGetAttachedShaders = void function(GLuint,GLsizei,GLsizei*,GLuint*); 118 alias pglGetAttribLocation = GLint function(GLuint,const(GLchar)*); 119 alias pglGetProgramiv = void function(GLuint,GLenum,GLint*); 120 alias pglGetProgramInfoLog = void function(GLuint,GLsizei,GLsizei*,GLchar*); 121 alias pglGetShaderiv = void function(GLuint,GLenum,GLint*); 122 alias pglGetShaderInfoLog = void function(GLuint,GLsizei,GLsizei*,GLchar*); 123 alias pglGetShaderSource = void function(GLuint,GLsizei,GLsizei*,GLchar*); 124 alias pglGetUniformLocation = GLint function(GLuint,const(GLchar)*); 125 alias pglGetUniformfv = void function(GLuint,GLint,GLfloat*); 126 alias pglGetUniformiv = void function(GLuint,GLint,GLint*); 127 alias pglGetVertexAttribdv = void function(GLuint,GLenum,GLdouble*); 128 alias pglGetVertexAttribfv = void function(GLuint,GLenum,GLfloat*); 129 alias pglGetVertexAttribiv = void function(GLuint,GLenum,GLint*); 130 alias pglGetVertexAttribPointerv = void function(GLuint,GLenum,GLvoid*); 131 alias pglIsProgram = GLboolean function(GLuint); 132 alias pglIsShader = GLboolean function(GLuint); 133 alias pglLinkProgram = void function(GLuint); 134 alias pglShaderSource = void function(GLuint,GLsizei,const(GLchar*)*,const(GLint)*); 135 alias pglUseProgram = void function(GLuint); 136 alias pglUniform1f = void function(GLint,GLfloat); 137 alias pglUniform2f = void function(GLint,GLfloat,GLfloat); 138 alias pglUniform3f = void function(GLint,GLfloat,GLfloat,GLfloat); 139 alias pglUniform4f = void function(GLint,GLfloat,GLfloat,GLfloat,GLfloat); 140 alias pglUniform1i = void function(GLint,GLint); 141 alias pglUniform2i = void function(GLint,GLint,GLint); 142 alias pglUniform3i = void function(GLint,GLint,GLint,GLint); 143 alias pglUniform4i = void function(GLint,GLint,GLint,GLint,GLint); 144 alias pglUniform1fv = void function(GLint,GLsizei,const(GLfloat)*); 145 alias pglUniform2fv = void function(GLint,GLsizei,const(GLfloat)*); 146 alias pglUniform3fv = void function(GLint,GLsizei,const(GLfloat)*); 147 alias pglUniform4fv = void function(GLint,GLsizei,const(GLfloat)*); 148 alias pglUniform1iv = void function(GLint,GLsizei,const(GLint)*); 149 alias pglUniform2iv = void function(GLint,GLsizei,const(GLint)*); 150 alias pglUniform3iv = void function(GLint,GLsizei,const(GLint)*); 151 alias pglUniform4iv = void function(GLint,GLsizei,const(GLint)*); 152 alias pglUniformMatrix2fv = void function(GLint,GLsizei,GLboolean,const(GLfloat)*); 153 alias pglUniformMatrix3fv = void function(GLint,GLsizei,GLboolean,const(GLfloat)*); 154 alias pglUniformMatrix4fv = void function(GLint,GLsizei,GLboolean,const(GLfloat)*); 155 alias pglValidateProgram = void function(GLuint); 156 alias pglVertexAttrib1d = void function(GLuint,GLdouble); 157 alias pglVertexAttrib1dv = void function(GLuint,const(GLdouble)*); 158 alias pglVertexAttrib1f = void function(GLuint,GLfloat); 159 alias pglVertexAttrib1fv = void function(GLuint,const(GLfloat)*); 160 alias pglVertexAttrib1s = void function(GLuint,GLshort); 161 alias pglVertexAttrib1sv = void function(GLuint,const(GLshort)*); 162 alias pglVertexAttrib2d = void function(GLuint,GLdouble,GLdouble); 163 alias pglVertexAttrib2dv = void function(GLuint,const(GLdouble)*); 164 alias pglVertexAttrib2f = void function(GLuint,GLfloat,GLfloat); 165 alias pglVertexAttrib2fv = void function(GLuint,const(GLfloat)*); 166 alias pglVertexAttrib2s = void function(GLuint,GLshort,GLshort); 167 alias pglVertexAttrib2sv = void function(GLuint,const(GLshort)*); 168 alias pglVertexAttrib3d = void function(GLuint,GLdouble,GLdouble,GLdouble); 169 alias pglVertexAttrib3dv = void function(GLuint,const(GLdouble)*); 170 alias pglVertexAttrib3f = void function(GLuint,GLfloat,GLfloat,GLfloat); 171 alias pglVertexAttrib3fv = void function(GLuint,const(GLfloat)*); 172 alias pglVertexAttrib3s = void function(GLuint,GLshort,GLshort,GLshort); 173 alias pglVertexAttrib3sv = void function(GLuint,const(GLshort)*); 174 alias pglVertexAttrib4Nbv = void function(GLuint,const(GLbyte)*); 175 alias pglVertexAttrib4Niv = void function(GLuint,const(GLint)*); 176 alias pglVertexAttrib4Nsv = void function(GLuint,const(GLshort)*); 177 alias pglVertexAttrib4Nub = void function(GLuint,GLubyte,GLubyte,GLubyte,GLubyte); 178 alias pglVertexAttrib4Nubv = void function(GLuint,const(GLubyte)*); 179 alias pglVertexAttrib4Nuiv = void function(GLuint,const(GLuint)*); 180 alias pglVertexAttrib4Nusv = void function(GLuint,const(GLushort)*); 181 alias pglVertexAttrib4bv = void function(GLuint,const(GLbyte)*); 182 alias pglVertexAttrib4d = void function(GLuint,GLdouble,GLdouble,GLdouble,GLdouble); 183 alias pglVertexAttrib4dv = void function(GLuint,const(GLdouble)*); 184 alias pglVertexAttrib4f = void function(GLuint,GLfloat,GLfloat,GLfloat,GLfloat); 185 alias pglVertexAttrib4fv = void function(GLuint,const(GLfloat)*); 186 alias pglVertexAttrib4iv = void function(GLuint,const(GLint)*); 187 alias pglVertexAttrib4s = void function(GLuint,GLshort,GLshort,GLshort,GLshort); 188 alias pglVertexAttrib4sv = void function(GLuint,const(GLshort)*); 189 alias pglVertexAttrib4ubv = void function(GLuint,const(GLubyte)*); 190 alias pglVertexAttrib4uiv = void function(GLuint,const(GLuint)*); 191 alias pglVertexAttrib4usv = void function(GLuint,const(GLushort)*); 192 alias pglVertexAttribPointer = void function(GLuint,GLint,GLenum,GLboolean,GLsizei,const(GLvoid)*); 193 } 194 195 __gshared { 196 pglBlendEquationSeparate glBlendEquationSeparate; 197 pglDrawBuffers glDrawBuffers; 198 pglStencilOpSeparate glStencilOpSeparate; 199 pglStencilFuncSeparate glStencilFuncSeparate; 200 pglStencilMaskSeparate glStencilMaskSeparate; 201 pglAttachShader glAttachShader; 202 pglBindAttribLocation glBindAttribLocation; 203 pglCompileShader glCompileShader; 204 pglCreateProgram glCreateProgram; 205 pglCreateShader glCreateShader; 206 pglDeleteProgram glDeleteProgram; 207 pglDeleteShader glDeleteShader; 208 pglDetachShader glDetachShader; 209 pglDisableVertexAttribArray glDisableVertexAttribArray; 210 pglEnableVertexAttribArray glEnableVertexAttribArray; 211 pglGetActiveAttrib glGetActiveAttrib; 212 pglGetActiveUniform glGetActiveUniform; 213 pglGetAttachedShaders glGetAttachedShaders; 214 pglGetAttribLocation glGetAttribLocation; 215 pglGetProgramiv glGetProgramiv; 216 pglGetProgramInfoLog glGetProgramInfoLog; 217 pglGetShaderiv glGetShaderiv; 218 pglGetShaderInfoLog glGetShaderInfoLog; 219 pglGetShaderSource glGetShaderSource; 220 pglGetUniformLocation glGetUniformLocation; 221 pglGetUniformfv glGetUniformfv; 222 pglGetUniformiv glGetUniformiv; 223 pglGetVertexAttribdv glGetVertexAttribdv; 224 pglGetVertexAttribfv glGetVertexAttribfv; 225 pglGetVertexAttribiv glGetVertexAttribiv; 226 pglGetVertexAttribPointerv glGetVertexAttribPointerv; 227 pglIsProgram glIsProgram; 228 pglIsShader glIsShader; 229 pglLinkProgram glLinkProgram; 230 pglShaderSource glShaderSource; 231 pglUseProgram glUseProgram; 232 pglUniform1f glUniform1f; 233 pglUniform2f glUniform2f; 234 pglUniform3f glUniform3f; 235 pglUniform4f glUniform4f; 236 pglUniform1i glUniform1i; 237 pglUniform2i glUniform2i; 238 pglUniform3i glUniform3i; 239 pglUniform4i glUniform4i; 240 pglUniform1fv glUniform1fv; 241 pglUniform2fv glUniform2fv; 242 pglUniform3fv glUniform3fv; 243 pglUniform4fv glUniform4fv; 244 pglUniform1iv glUniform1iv; 245 pglUniform2iv glUniform2iv; 246 pglUniform3iv glUniform3iv; 247 pglUniform4iv glUniform4iv; 248 pglUniformMatrix2fv glUniformMatrix2fv; 249 pglUniformMatrix3fv glUniformMatrix3fv; 250 pglUniformMatrix4fv glUniformMatrix4fv; 251 pglValidateProgram glValidateProgram; 252 pglVertexAttrib1d glVertexAttrib1d; 253 pglVertexAttrib1dv glVertexAttrib1dv; 254 pglVertexAttrib1f glVertexAttrib1f; 255 pglVertexAttrib1fv glVertexAttrib1fv; 256 pglVertexAttrib1s glVertexAttrib1s; 257 pglVertexAttrib1sv glVertexAttrib1sv; 258 pglVertexAttrib2d glVertexAttrib2d; 259 pglVertexAttrib2dv glVertexAttrib2dv; 260 pglVertexAttrib2f glVertexAttrib2f; 261 pglVertexAttrib2fv glVertexAttrib2fv; 262 pglVertexAttrib2s glVertexAttrib2s; 263 pglVertexAttrib2sv glVertexAttrib2sv; 264 pglVertexAttrib3d glVertexAttrib3d; 265 pglVertexAttrib3dv glVertexAttrib3dv; 266 pglVertexAttrib3f glVertexAttrib3f; 267 pglVertexAttrib3fv glVertexAttrib3fv; 268 pglVertexAttrib3s glVertexAttrib3s; 269 pglVertexAttrib3sv glVertexAttrib3sv; 270 pglVertexAttrib4Nbv glVertexAttrib4Nbv; 271 pglVertexAttrib4Niv glVertexAttrib4Niv; 272 pglVertexAttrib4Nsv glVertexAttrib4Nsv; 273 pglVertexAttrib4Nub glVertexAttrib4Nub; 274 pglVertexAttrib4Nubv glVertexAttrib4Nubv; 275 pglVertexAttrib4Nuiv glVertexAttrib4Nuiv; 276 pglVertexAttrib4Nusv glVertexAttrib4Nusv; 277 pglVertexAttrib4bv glVertexAttrib4bv; 278 pglVertexAttrib4d glVertexAttrib4d; 279 pglVertexAttrib4dv glVertexAttrib4dv; 280 pglVertexAttrib4f glVertexAttrib4f; 281 pglVertexAttrib4fv glVertexAttrib4fv; 282 pglVertexAttrib4iv glVertexAttrib4iv; 283 pglVertexAttrib4s glVertexAttrib4s; 284 pglVertexAttrib4sv glVertexAttrib4sv; 285 pglVertexAttrib4ubv glVertexAttrib4ubv; 286 pglVertexAttrib4uiv glVertexAttrib4uiv; 287 pglVertexAttrib4usv glVertexAttrib4usv; 288 pglVertexAttribPointer glVertexAttribPointer; 289 } 290 291 package(bindbc.opengl) @nogc nothrow 292 GLSupport loadGL20(SharedLib lib, GLSupport contextVersion) 293 { 294 auto loadedVersion = loadGL15(lib, contextVersion); 295 if(loadedVersion == GLSupport.gl15 && contextVersion > GLSupport.gl15) { 296 lib.bindGLSymbol(cast(void**)&glBlendEquationSeparate, "glBlendEquationSeparate"); 297 lib.bindGLSymbol(cast(void**)&glDrawBuffers, "glDrawBuffers"); 298 lib.bindGLSymbol(cast(void**)&glStencilOpSeparate, "glStencilOpSeparate"); 299 lib.bindGLSymbol(cast(void**)&glStencilFuncSeparate, "glStencilFuncSeparate"); 300 lib.bindGLSymbol(cast(void**)&glStencilMaskSeparate, "glStencilMaskSeparate"); 301 lib.bindGLSymbol(cast(void**)&glAttachShader, "glAttachShader"); 302 lib.bindGLSymbol(cast(void**)&glBindAttribLocation, "glBindAttribLocation"); 303 lib.bindGLSymbol(cast(void**)&glCompileShader, "glCompileShader"); 304 lib.bindGLSymbol(cast(void**)&glCreateProgram, "glCreateProgram"); 305 lib.bindGLSymbol(cast(void**)&glCreateShader, "glCreateShader"); 306 lib.bindGLSymbol(cast(void**)&glDeleteProgram, "glDeleteProgram"); 307 lib.bindGLSymbol(cast(void**)&glDeleteShader, "glDeleteShader"); 308 lib.bindGLSymbol(cast(void**)&glDetachShader, "glDetachShader"); 309 lib.bindGLSymbol(cast(void**)&glDisableVertexAttribArray, "glDisableVertexAttribArray"); 310 lib.bindGLSymbol(cast(void**)&glEnableVertexAttribArray, "glEnableVertexAttribArray"); 311 lib.bindGLSymbol(cast(void**)&glGetActiveAttrib, "glGetActiveAttrib"); 312 lib.bindGLSymbol(cast(void**)&glGetActiveUniform, "glGetActiveUniform"); 313 lib.bindGLSymbol(cast(void**)&glGetAttachedShaders, "glGetAttachedShaders"); 314 lib.bindGLSymbol(cast(void**)&glGetAttribLocation, "glGetAttribLocation"); 315 lib.bindGLSymbol(cast(void**)&glGetProgramiv, "glGetProgramiv"); 316 lib.bindGLSymbol(cast(void**)&glGetProgramInfoLog, "glGetProgramInfoLog"); 317 lib.bindGLSymbol(cast(void**)&glGetShaderiv, "glGetShaderiv"); 318 lib.bindGLSymbol(cast(void**)&glGetShaderInfoLog, "glGetShaderInfoLog"); 319 lib.bindGLSymbol(cast(void**)&glGetShaderSource, "glGetShaderSource"); 320 lib.bindGLSymbol(cast(void**)&glGetUniformLocation, "glGetUniformLocation"); 321 lib.bindGLSymbol(cast(void**)&glGetUniformfv, "glGetUniformfv"); 322 lib.bindGLSymbol(cast(void**)&glGetUniformiv, "glGetUniformiv"); 323 lib.bindGLSymbol(cast(void**)&glGetVertexAttribdv, "glGetVertexAttribdv"); 324 lib.bindGLSymbol(cast(void**)&glGetVertexAttribfv, "glGetVertexAttribfv"); 325 lib.bindGLSymbol(cast(void**)&glGetVertexAttribiv, "glGetVertexAttribiv"); 326 lib.bindGLSymbol(cast(void**)&glGetVertexAttribPointerv, "glGetVertexAttribPointerv"); 327 lib.bindGLSymbol(cast(void**)&glIsProgram, "glIsProgram"); 328 lib.bindGLSymbol(cast(void**)&glIsShader, "glIsShader"); 329 lib.bindGLSymbol(cast(void**)&glLinkProgram, "glLinkProgram"); 330 lib.bindGLSymbol(cast(void**)&glShaderSource, "glShaderSource"); 331 lib.bindGLSymbol(cast(void**)&glUseProgram, "glUseProgram"); 332 lib.bindGLSymbol(cast(void**)&glUniform1f, "glUniform1f"); 333 lib.bindGLSymbol(cast(void**)&glUniform2f, "glUniform2f"); 334 lib.bindGLSymbol(cast(void**)&glUniform3f, "glUniform3f"); 335 lib.bindGLSymbol(cast(void**)&glUniform4f, "glUniform4f"); 336 lib.bindGLSymbol(cast(void**)&glUniform1i, "glUniform1i"); 337 lib.bindGLSymbol(cast(void**)&glUniform2i, "glUniform2i"); 338 lib.bindGLSymbol(cast(void**)&glUniform3i, "glUniform3i"); 339 lib.bindGLSymbol(cast(void**)&glUniform4i, "glUniform4i"); 340 lib.bindGLSymbol(cast(void**)&glUniform1fv, "glUniform1fv"); 341 lib.bindGLSymbol(cast(void**)&glUniform2fv, "glUniform2fv"); 342 lib.bindGLSymbol(cast(void**)&glUniform3fv, "glUniform3fv"); 343 lib.bindGLSymbol(cast(void**)&glUniform4fv, "glUniform4fv"); 344 lib.bindGLSymbol(cast(void**)&glUniform1iv, "glUniform1iv"); 345 lib.bindGLSymbol(cast(void**)&glUniform2iv, "glUniform2iv"); 346 lib.bindGLSymbol(cast(void**)&glUniform3iv, "glUniform3iv"); 347 lib.bindGLSymbol(cast(void**)&glUniform4iv, "glUniform4iv"); 348 lib.bindGLSymbol(cast(void**)&glUniformMatrix2fv, "glUniformMatrix2fv"); 349 lib.bindGLSymbol(cast(void**)&glUniformMatrix3fv, "glUniformMatrix3fv"); 350 lib.bindGLSymbol(cast(void**)&glUniformMatrix4fv, "glUniformMatrix4fv"); 351 lib.bindGLSymbol(cast(void**)&glValidateProgram, "glValidateProgram"); 352 lib.bindGLSymbol(cast(void**)&glVertexAttrib1d, "glVertexAttrib1d"); 353 lib.bindGLSymbol(cast(void**)&glVertexAttrib1dv, "glVertexAttrib1dv"); 354 lib.bindGLSymbol(cast(void**)&glVertexAttrib1f, "glVertexAttrib1f"); 355 lib.bindGLSymbol(cast(void**)&glVertexAttrib1fv, "glVertexAttrib1fv"); 356 lib.bindGLSymbol(cast(void**)&glVertexAttrib1s, "glVertexAttrib1s"); 357 lib.bindGLSymbol(cast(void**)&glVertexAttrib1sv, "glVertexAttrib1sv"); 358 lib.bindGLSymbol(cast(void**)&glVertexAttrib2d, "glVertexAttrib2d"); 359 lib.bindGLSymbol(cast(void**)&glVertexAttrib2dv, "glVertexAttrib2dv"); 360 lib.bindGLSymbol(cast(void**)&glVertexAttrib2f, "glVertexAttrib2f"); 361 lib.bindGLSymbol(cast(void**)&glVertexAttrib2fv, "glVertexAttrib2fv"); 362 lib.bindGLSymbol(cast(void**)&glVertexAttrib2s, "glVertexAttrib2s"); 363 lib.bindGLSymbol(cast(void**)&glVertexAttrib2sv, "glVertexAttrib2sv"); 364 lib.bindGLSymbol(cast(void**)&glVertexAttrib3d, "glVertexAttrib3d"); 365 lib.bindGLSymbol(cast(void**)&glVertexAttrib3dv, "glVertexAttrib3dv"); 366 lib.bindGLSymbol(cast(void**)&glVertexAttrib3f, "glVertexAttrib3f"); 367 lib.bindGLSymbol(cast(void**)&glVertexAttrib3fv, "glVertexAttrib3fv"); 368 lib.bindGLSymbol(cast(void**)&glVertexAttrib3s, "glVertexAttrib3s"); 369 lib.bindGLSymbol(cast(void**)&glVertexAttrib3sv, "glVertexAttrib3sv"); 370 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Nbv, "glVertexAttrib4Nbv"); 371 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Niv, "glVertexAttrib4Niv"); 372 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Nsv, "glVertexAttrib4Nsv"); 373 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Nub, "glVertexAttrib4Nub"); 374 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Nubv, "glVertexAttrib4Nubv"); 375 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Nuiv, "glVertexAttrib4Nuiv"); 376 lib.bindGLSymbol(cast(void**)&glVertexAttrib4Nusv, "glVertexAttrib4Nusv"); 377 lib.bindGLSymbol(cast(void**)&glVertexAttrib4bv, "glVertexAttrib4bv"); 378 lib.bindGLSymbol(cast(void**)&glVertexAttrib4d, "glVertexAttrib4d"); 379 lib.bindGLSymbol(cast(void**)&glVertexAttrib4dv, "glVertexAttrib4dv"); 380 lib.bindGLSymbol(cast(void**)&glVertexAttrib4f, "glVertexAttrib4f"); 381 lib.bindGLSymbol(cast(void**)&glVertexAttrib4fv, "glVertexAttrib4fv"); 382 lib.bindGLSymbol(cast(void**)&glVertexAttrib4iv, "glVertexAttrib4iv"); 383 lib.bindGLSymbol(cast(void**)&glVertexAttrib4s, "glVertexAttrib4s"); 384 lib.bindGLSymbol(cast(void**)&glVertexAttrib4sv, "glVertexAttrib4sv"); 385 lib.bindGLSymbol(cast(void**)&glVertexAttrib4ubv, "glVertexAttrib4ubv"); 386 lib.bindGLSymbol(cast(void**)&glVertexAttrib4uiv, "glVertexAttrib4uiv"); 387 lib.bindGLSymbol(cast(void**)&glVertexAttrib4usv, "glVertexAttrib4usv"); 388 lib.bindGLSymbol(cast(void**)&glVertexAttribPointer, "glVertexAttribPointer"); 389 if(errorCountGL() == 0) loadedVersion = GLSupport.gl20; 390 } 391 return loadedVersion; 392 }