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