diff options
Diffstat (limited to 'externals/glad/src/glad.c')
| -rw-r--r-- | externals/glad/src/glad.c | 1404 |
1 files changed, 1404 insertions, 0 deletions
diff --git a/externals/glad/src/glad.c b/externals/glad/src/glad.c new file mode 100644 index 000000000..014b54383 --- /dev/null +++ b/externals/glad/src/glad.c | |||
| @@ -0,0 +1,1404 @@ | |||
| 1 | #include <stdio.h> | ||
| 2 | #include <stdlib.h> | ||
| 3 | #include <string.h> | ||
| 4 | #include <glad/glad.h> | ||
| 5 | |||
| 6 | static void* get_proc(const char *namez); | ||
| 7 | |||
| 8 | #ifdef _WIN32 | ||
| 9 | #include <windows.h> | ||
| 10 | static HMODULE libGL; | ||
| 11 | |||
| 12 | typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); | ||
| 13 | PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; | ||
| 14 | |||
| 15 | static | ||
| 16 | int open_gl(void) { | ||
| 17 | libGL = LoadLibraryA("opengl32.dll"); | ||
| 18 | if(libGL != NULL) { | ||
| 19 | gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress( | ||
| 20 | libGL, "wglGetProcAddress"); | ||
| 21 | return gladGetProcAddressPtr != NULL; | ||
| 22 | } | ||
| 23 | |||
| 24 | return 0; | ||
| 25 | } | ||
| 26 | |||
| 27 | static | ||
| 28 | void close_gl(void) { | ||
| 29 | if(libGL != NULL) { | ||
| 30 | FreeLibrary(libGL); | ||
| 31 | libGL = NULL; | ||
| 32 | } | ||
| 33 | } | ||
| 34 | #else | ||
| 35 | #include <dlfcn.h> | ||
| 36 | static void* libGL; | ||
| 37 | |||
| 38 | #ifndef __APPLE__ | ||
| 39 | typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); | ||
| 40 | PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; | ||
| 41 | #endif | ||
| 42 | |||
| 43 | static | ||
| 44 | int open_gl(void) { | ||
| 45 | #ifdef __APPLE__ | ||
| 46 | static const char *NAMES[] = { | ||
| 47 | "../Frameworks/OpenGL.framework/OpenGL", | ||
| 48 | "/Library/Frameworks/OpenGL.framework/OpenGL", | ||
| 49 | "/System/Library/Frameworks/OpenGL.framework/OpenGL", | ||
| 50 | "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL" | ||
| 51 | }; | ||
| 52 | #else | ||
| 53 | static const char *NAMES[] = {"libGL.so.1", "libGL.so"}; | ||
| 54 | #endif | ||
| 55 | |||
| 56 | unsigned int index = 0; | ||
| 57 | for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) { | ||
| 58 | libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); | ||
| 59 | |||
| 60 | if(libGL != NULL) { | ||
| 61 | #ifdef __APPLE__ | ||
| 62 | return 1; | ||
| 63 | #else | ||
| 64 | gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, | ||
| 65 | "glXGetProcAddressARB"); | ||
| 66 | return gladGetProcAddressPtr != NULL; | ||
| 67 | #endif | ||
| 68 | } | ||
| 69 | } | ||
| 70 | |||
| 71 | return 0; | ||
| 72 | } | ||
| 73 | |||
| 74 | static | ||
| 75 | void close_gl() { | ||
| 76 | if(libGL != NULL) { | ||
| 77 | dlclose(libGL); | ||
| 78 | libGL = NULL; | ||
| 79 | } | ||
| 80 | } | ||
| 81 | #endif | ||
| 82 | |||
| 83 | static | ||
| 84 | void* get_proc(const char *namez) { | ||
| 85 | void* result = NULL; | ||
| 86 | if(libGL == NULL) return NULL; | ||
| 87 | |||
| 88 | #ifndef __APPLE__ | ||
| 89 | if(gladGetProcAddressPtr != NULL) { | ||
| 90 | result = gladGetProcAddressPtr(namez); | ||
| 91 | } | ||
| 92 | #endif | ||
| 93 | if(result == NULL) { | ||
| 94 | #ifdef _WIN32 | ||
| 95 | result = (void*)GetProcAddress(libGL, namez); | ||
| 96 | #else | ||
| 97 | result = dlsym(libGL, namez); | ||
| 98 | #endif | ||
| 99 | } | ||
| 100 | |||
| 101 | return result; | ||
| 102 | } | ||
| 103 | |||
| 104 | int gladLoadGL(void) { | ||
| 105 | int status = 0; | ||
| 106 | |||
| 107 | if(open_gl()) { | ||
| 108 | status = gladLoadGLLoader(&get_proc); | ||
| 109 | close_gl(); | ||
| 110 | } | ||
| 111 | |||
| 112 | return status; | ||
| 113 | } | ||
| 114 | |||
| 115 | struct gladGLversionStruct GLVersion; | ||
| 116 | |||
| 117 | #if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) | ||
| 118 | #define _GLAD_IS_SOME_NEW_VERSION 1 | ||
| 119 | #endif | ||
| 120 | |||
| 121 | static int max_loaded_major; | ||
| 122 | static int max_loaded_minor; | ||
| 123 | |||
| 124 | static const char *exts = NULL; | ||
| 125 | static int num_exts_i = 0; | ||
| 126 | static const char **exts_i = NULL; | ||
| 127 | |||
| 128 | static void get_exts(void) { | ||
| 129 | #ifdef _GLAD_IS_SOME_NEW_VERSION | ||
| 130 | if(max_loaded_major < 3) { | ||
| 131 | #endif | ||
| 132 | exts = (const char *)glGetString(GL_EXTENSIONS); | ||
| 133 | #ifdef _GLAD_IS_SOME_NEW_VERSION | ||
| 134 | } else { | ||
| 135 | int index; | ||
| 136 | |||
| 137 | num_exts_i = 0; | ||
| 138 | glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); | ||
| 139 | if (num_exts_i > 0) { | ||
| 140 | exts_i = (const char **)realloc((void *)exts_i, num_exts_i * sizeof *exts_i); | ||
| 141 | } | ||
| 142 | |||
| 143 | for(index = 0; index < num_exts_i; index++) { | ||
| 144 | exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index); | ||
| 145 | } | ||
| 146 | } | ||
| 147 | #endif | ||
| 148 | } | ||
| 149 | |||
| 150 | static int has_ext(const char *ext) { | ||
| 151 | #ifdef _GLAD_IS_SOME_NEW_VERSION | ||
| 152 | if(max_loaded_major < 3) { | ||
| 153 | #endif | ||
| 154 | const char *extensions; | ||
| 155 | const char *loc; | ||
| 156 | const char *terminator; | ||
| 157 | extensions = exts; | ||
| 158 | if(extensions == NULL || ext == NULL) { | ||
| 159 | return 0; | ||
| 160 | } | ||
| 161 | |||
| 162 | while(1) { | ||
| 163 | loc = strstr(extensions, ext); | ||
| 164 | if(loc == NULL) { | ||
| 165 | return 0; | ||
| 166 | } | ||
| 167 | |||
| 168 | terminator = loc + strlen(ext); | ||
| 169 | if((loc == extensions || *(loc - 1) == ' ') && | ||
| 170 | (*terminator == ' ' || *terminator == '\0')) { | ||
| 171 | return 1; | ||
| 172 | } | ||
| 173 | extensions = terminator; | ||
| 174 | } | ||
| 175 | #ifdef _GLAD_IS_SOME_NEW_VERSION | ||
| 176 | } else { | ||
| 177 | int index; | ||
| 178 | |||
| 179 | for(index = 0; index < num_exts_i; index++) { | ||
| 180 | const char *e = exts_i[index]; | ||
| 181 | |||
| 182 | if(strcmp(e, ext) == 0) { | ||
| 183 | return 1; | ||
| 184 | } | ||
| 185 | } | ||
| 186 | } | ||
| 187 | #endif | ||
| 188 | |||
| 189 | return 0; | ||
| 190 | } | ||
| 191 | int GLAD_GL_VERSION_1_0; | ||
| 192 | int GLAD_GL_VERSION_1_1; | ||
| 193 | int GLAD_GL_VERSION_1_2; | ||
| 194 | int GLAD_GL_VERSION_1_3; | ||
| 195 | int GLAD_GL_VERSION_1_4; | ||
| 196 | int GLAD_GL_VERSION_1_5; | ||
| 197 | int GLAD_GL_VERSION_2_0; | ||
| 198 | int GLAD_GL_VERSION_2_1; | ||
| 199 | int GLAD_GL_VERSION_3_0; | ||
| 200 | int GLAD_GL_VERSION_3_1; | ||
| 201 | int GLAD_GL_VERSION_3_2; | ||
| 202 | int GLAD_GL_VERSION_3_3; | ||
| 203 | int GLAD_GL_ES_VERSION_2_0; | ||
| 204 | int GLAD_GL_ES_VERSION_3_0; | ||
| 205 | PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; | ||
| 206 | PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; | ||
| 207 | PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; | ||
| 208 | PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; | ||
| 209 | PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; | ||
| 210 | PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; | ||
| 211 | PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; | ||
| 212 | PFNGLBINDSAMPLERPROC glad_glBindSampler; | ||
| 213 | PFNGLLINEWIDTHPROC glad_glLineWidth; | ||
| 214 | PFNGLCOLORP3UIVPROC glad_glColorP3uiv; | ||
| 215 | PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; | ||
| 216 | PFNGLCOMPILESHADERPROC glad_glCompileShader; | ||
| 217 | PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; | ||
| 218 | PFNGLDEPTHRANGEFPROC glad_glDepthRangef; | ||
| 219 | PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; | ||
| 220 | PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; | ||
| 221 | PFNGLVERTEXP4UIPROC glad_glVertexP4ui; | ||
| 222 | PFNGLENABLEIPROC glad_glEnablei; | ||
| 223 | PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; | ||
| 224 | PFNGLCREATESHADERPROC glad_glCreateShader; | ||
| 225 | PFNGLISBUFFERPROC glad_glIsBuffer; | ||
| 226 | PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; | ||
| 227 | PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; | ||
| 228 | PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; | ||
| 229 | PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; | ||
| 230 | PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; | ||
| 231 | PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; | ||
| 232 | PFNGLHINTPROC glad_glHint; | ||
| 233 | PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; | ||
| 234 | PFNGLSAMPLEMASKIPROC glad_glSampleMaski; | ||
| 235 | PFNGLVERTEXP2UIPROC glad_glVertexP2ui; | ||
| 236 | PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; | ||
| 237 | PFNGLPOINTSIZEPROC glad_glPointSize; | ||
| 238 | PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; | ||
| 239 | PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; | ||
| 240 | PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; | ||
| 241 | PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; | ||
| 242 | PFNGLWAITSYNCPROC glad_glWaitSync; | ||
| 243 | PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; | ||
| 244 | PFNGLUNIFORM3IPROC glad_glUniform3i; | ||
| 245 | PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; | ||
| 246 | PFNGLUNIFORM3FPROC glad_glUniform3f; | ||
| 247 | PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; | ||
| 248 | PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; | ||
| 249 | PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; | ||
| 250 | PFNGLCOLORMASKIPROC glad_glColorMaski; | ||
| 251 | PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; | ||
| 252 | PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; | ||
| 253 | PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; | ||
| 254 | PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; | ||
| 255 | PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; | ||
| 256 | PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; | ||
| 257 | PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D; | ||
| 258 | PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; | ||
| 259 | PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; | ||
| 260 | PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; | ||
| 261 | PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; | ||
| 262 | PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; | ||
| 263 | PFNGLDRAWARRAYSPROC glad_glDrawArrays; | ||
| 264 | PFNGLUNIFORM1UIPROC glad_glUniform1ui; | ||
| 265 | PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; | ||
| 266 | PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; | ||
| 267 | PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; | ||
| 268 | PFNGLCLEARPROC glad_glClear; | ||
| 269 | PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; | ||
| 270 | PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; | ||
| 271 | PFNGLISENABLEDPROC glad_glIsEnabled; | ||
| 272 | PFNGLSTENCILOPPROC glad_glStencilOp; | ||
| 273 | PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; | ||
| 274 | PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; | ||
| 275 | PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; | ||
| 276 | PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; | ||
| 277 | PFNGLTEXIMAGE1DPROC glad_glTexImage1D; | ||
| 278 | PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; | ||
| 279 | PFNGLGETTEXIMAGEPROC glad_glGetTexImage; | ||
| 280 | PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; | ||
| 281 | PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; | ||
| 282 | PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; | ||
| 283 | PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; | ||
| 284 | PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; | ||
| 285 | PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; | ||
| 286 | PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; | ||
| 287 | PFNGLGETQUERYIVPROC glad_glGetQueryiv; | ||
| 288 | PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; | ||
| 289 | PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; | ||
| 290 | PFNGLISSHADERPROC glad_glIsShader; | ||
| 291 | PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; | ||
| 292 | PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; | ||
| 293 | PFNGLENABLEPROC glad_glEnable; | ||
| 294 | PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; | ||
| 295 | PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; | ||
| 296 | PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; | ||
| 297 | PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; | ||
| 298 | PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; | ||
| 299 | PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; | ||
| 300 | PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; | ||
| 301 | PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; | ||
| 302 | PFNGLDRAWBUFFERPROC glad_glDrawBuffer; | ||
| 303 | PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; | ||
| 304 | PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; | ||
| 305 | PFNGLFLUSHPROC glad_glFlush; | ||
| 306 | PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; | ||
| 307 | PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; | ||
| 308 | PFNGLFENCESYNCPROC glad_glFenceSync; | ||
| 309 | PFNGLCOLORP3UIPROC glad_glColorP3ui; | ||
| 310 | PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; | ||
| 311 | PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; | ||
| 312 | PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; | ||
| 313 | PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; | ||
| 314 | PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; | ||
| 315 | PFNGLGENSAMPLERSPROC glad_glGenSamplers; | ||
| 316 | PFNGLCLAMPCOLORPROC glad_glClampColor; | ||
| 317 | PFNGLUNIFORM4IVPROC glad_glUniform4iv; | ||
| 318 | PFNGLCLEARSTENCILPROC glad_glClearStencil; | ||
| 319 | PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; | ||
| 320 | PFNGLGENTEXTURESPROC glad_glGenTextures; | ||
| 321 | PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; | ||
| 322 | PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; | ||
| 323 | PFNGLISSYNCPROC glad_glIsSync; | ||
| 324 | PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; | ||
| 325 | PFNGLUNIFORM2IPROC glad_glUniform2i; | ||
| 326 | PFNGLUNIFORM2FPROC glad_glUniform2f; | ||
| 327 | PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; | ||
| 328 | PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; | ||
| 329 | PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; | ||
| 330 | PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; | ||
| 331 | PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; | ||
| 332 | PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D; | ||
| 333 | PFNGLGENQUERIESPROC glad_glGenQueries; | ||
| 334 | PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; | ||
| 335 | PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; | ||
| 336 | PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; | ||
| 337 | PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; | ||
| 338 | PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; | ||
| 339 | PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; | ||
| 340 | PFNGLISENABLEDIPROC glad_glIsEnabledi; | ||
| 341 | PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; | ||
| 342 | PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; | ||
| 343 | PFNGLUNIFORM2IVPROC glad_glUniform2iv; | ||
| 344 | PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; | ||
| 345 | PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; | ||
| 346 | PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; | ||
| 347 | PFNGLGETSHADERIVPROC glad_glGetShaderiv; | ||
| 348 | PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer; | ||
| 349 | PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; | ||
| 350 | PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; | ||
| 351 | PFNGLGETDOUBLEVPROC glad_glGetDoublev; | ||
| 352 | PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; | ||
| 353 | PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; | ||
| 354 | PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; | ||
| 355 | PFNGLUNIFORM3FVPROC glad_glUniform3fv; | ||
| 356 | PFNGLDEPTHRANGEPROC glad_glDepthRange; | ||
| 357 | PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer; | ||
| 358 | PFNGLMAPBUFFERPROC glad_glMapBuffer; | ||
| 359 | PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; | ||
| 360 | PFNGLDELETESYNCPROC glad_glDeleteSync; | ||
| 361 | PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; | ||
| 362 | PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; | ||
| 363 | PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; | ||
| 364 | PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; | ||
| 365 | PFNGLUNIFORM3IVPROC glad_glUniform3iv; | ||
| 366 | PFNGLPOLYGONMODEPROC glad_glPolygonMode; | ||
| 367 | PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; | ||
| 368 | PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; | ||
| 369 | PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; | ||
| 370 | PFNGLUSEPROGRAMPROC glad_glUseProgram; | ||
| 371 | PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; | ||
| 372 | PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; | ||
| 373 | PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; | ||
| 374 | PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; | ||
| 375 | PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; | ||
| 376 | PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; | ||
| 377 | PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; | ||
| 378 | PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; | ||
| 379 | PFNGLFINISHPROC glad_glFinish; | ||
| 380 | PFNGLDELETESHADERPROC glad_glDeleteShader; | ||
| 381 | PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; | ||
| 382 | PFNGLVIEWPORTPROC glad_glViewport; | ||
| 383 | PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; | ||
| 384 | PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; | ||
| 385 | PFNGLUNIFORM2UIPROC glad_glUniform2ui; | ||
| 386 | PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; | ||
| 387 | PFNGLCLEARDEPTHPROC glad_glClearDepth; | ||
| 388 | PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; | ||
| 389 | PFNGLTEXPARAMETERFPROC glad_glTexParameterf; | ||
| 390 | PFNGLTEXPARAMETERIPROC glad_glTexParameteri; | ||
| 391 | PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; | ||
| 392 | PFNGLTEXBUFFERPROC glad_glTexBuffer; | ||
| 393 | PFNGLPIXELSTOREIPROC glad_glPixelStorei; | ||
| 394 | PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; | ||
| 395 | PFNGLPIXELSTOREFPROC glad_glPixelStoref; | ||
| 396 | PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; | ||
| 397 | PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; | ||
| 398 | PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ; | ||
| 399 | PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; | ||
| 400 | PFNGLLINKPROGRAMPROC glad_glLinkProgram; | ||
| 401 | PFNGLBINDTEXTUREPROC glad_glBindTexture; | ||
| 402 | PFNGLGETSTRINGPROC glad_glGetString; | ||
| 403 | PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; | ||
| 404 | PFNGLDETACHSHADERPROC glad_glDetachShader; | ||
| 405 | PFNGLENDQUERYPROC glad_glEndQuery; | ||
| 406 | PFNGLNORMALP3UIPROC glad_glNormalP3ui; | ||
| 407 | PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; | ||
| 408 | PFNGLDELETETEXTURESPROC glad_glDeleteTextures; | ||
| 409 | PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; | ||
| 410 | PFNGLDELETEQUERIESPROC glad_glDeleteQueries; | ||
| 411 | PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; | ||
| 412 | PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; | ||
| 413 | PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; | ||
| 414 | PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; | ||
| 415 | PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; | ||
| 416 | PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; | ||
| 417 | PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; | ||
| 418 | PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; | ||
| 419 | PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; | ||
| 420 | PFNGLUNIFORM1FPROC glad_glUniform1f; | ||
| 421 | PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; | ||
| 422 | PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; | ||
| 423 | PFNGLUNIFORM1IPROC glad_glUniform1i; | ||
| 424 | PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; | ||
| 425 | PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; | ||
| 426 | PFNGLDISABLEPROC glad_glDisable; | ||
| 427 | PFNGLLOGICOPPROC glad_glLogicOp; | ||
| 428 | PFNGLUNIFORM4UIPROC glad_glUniform4ui; | ||
| 429 | PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; | ||
| 430 | PFNGLCULLFACEPROC glad_glCullFace; | ||
| 431 | PFNGLGETSTRINGIPROC glad_glGetStringi; | ||
| 432 | PFNGLATTACHSHADERPROC glad_glAttachShader; | ||
| 433 | PFNGLQUERYCOUNTERPROC glad_glQueryCounter; | ||
| 434 | PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; | ||
| 435 | PFNGLSHADERBINARYPROC glad_glShaderBinary; | ||
| 436 | PFNGLDRAWELEMENTSPROC glad_glDrawElements; | ||
| 437 | PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; | ||
| 438 | PFNGLUNIFORM1IVPROC glad_glUniform1iv; | ||
| 439 | PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; | ||
| 440 | PFNGLREADBUFFERPROC glad_glReadBuffer; | ||
| 441 | PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; | ||
| 442 | PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; | ||
| 443 | PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; | ||
| 444 | PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; | ||
| 445 | PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; | ||
| 446 | PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; | ||
| 447 | PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; | ||
| 448 | PFNGLBLENDCOLORPROC glad_glBlendColor; | ||
| 449 | PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; | ||
| 450 | PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; | ||
| 451 | PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; | ||
| 452 | PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; | ||
| 453 | PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; | ||
| 454 | PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; | ||
| 455 | PFNGLISPROGRAMPROC glad_glIsProgram; | ||
| 456 | PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; | ||
| 457 | PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; | ||
| 458 | PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; | ||
| 459 | PFNGLUNIFORM4IPROC glad_glUniform4i; | ||
| 460 | PFNGLACTIVETEXTUREPROC glad_glActiveTexture; | ||
| 461 | PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; | ||
| 462 | PFNGLREADPIXELSPROC glad_glReadPixels; | ||
| 463 | PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; | ||
| 464 | PFNGLUNIFORM4FPROC glad_glUniform4f; | ||
| 465 | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; | ||
| 466 | PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; | ||
| 467 | PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; | ||
| 468 | PFNGLSTENCILFUNCPROC glad_glStencilFunc; | ||
| 469 | PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; | ||
| 470 | PFNGLCOLORP4UIPROC glad_glColorP4ui; | ||
| 471 | PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; | ||
| 472 | PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; | ||
| 473 | PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; | ||
| 474 | PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; | ||
| 475 | PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; | ||
| 476 | PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; | ||
| 477 | PFNGLGENBUFFERSPROC glad_glGenBuffers; | ||
| 478 | PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; | ||
| 479 | PFNGLBLENDFUNCPROC glad_glBlendFunc; | ||
| 480 | PFNGLCREATEPROGRAMPROC glad_glCreateProgram; | ||
| 481 | PFNGLTEXIMAGE3DPROC glad_glTexImage3D; | ||
| 482 | PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; | ||
| 483 | PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; | ||
| 484 | PFNGLGETINTEGER64VPROC glad_glGetInteger64v; | ||
| 485 | PFNGLSCISSORPROC glad_glScissor; | ||
| 486 | PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; | ||
| 487 | PFNGLGETBOOLEANVPROC glad_glGetBooleanv; | ||
| 488 | PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; | ||
| 489 | PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; | ||
| 490 | PFNGLCLEARCOLORPROC glad_glClearColor; | ||
| 491 | PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; | ||
| 492 | PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; | ||
| 493 | PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; | ||
| 494 | PFNGLCOLORP4UIVPROC glad_glColorP4uiv; | ||
| 495 | PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; | ||
| 496 | PFNGLUNIFORM3UIPROC glad_glUniform3ui; | ||
| 497 | PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; | ||
| 498 | PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; | ||
| 499 | PFNGLUNIFORM2FVPROC glad_glUniform2fv; | ||
| 500 | PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; | ||
| 501 | PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; | ||
| 502 | PFNGLCLEARDEPTHFPROC glad_glClearDepthf; | ||
| 503 | PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; | ||
| 504 | PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; | ||
| 505 | PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; | ||
| 506 | PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; | ||
| 507 | PFNGLDEPTHFUNCPROC glad_glDepthFunc; | ||
| 508 | PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; | ||
| 509 | PFNGLPROGRAMBINARYPROC glad_glProgramBinary; | ||
| 510 | PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; | ||
| 511 | PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; | ||
| 512 | PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; | ||
| 513 | PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; | ||
| 514 | PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; | ||
| 515 | PFNGLCOLORMASKPROC glad_glColorMask; | ||
| 516 | PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; | ||
| 517 | PFNGLBLENDEQUATIONPROC glad_glBlendEquation; | ||
| 518 | PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; | ||
| 519 | PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; | ||
| 520 | PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; | ||
| 521 | PFNGLUNIFORM4FVPROC glad_glUniform4fv; | ||
| 522 | PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; | ||
| 523 | PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; | ||
| 524 | PFNGLISSAMPLERPROC glad_glIsSampler; | ||
| 525 | PFNGLVERTEXP3UIPROC glad_glVertexP3ui; | ||
| 526 | PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; | ||
| 527 | PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; | ||
| 528 | PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; | ||
| 529 | PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; | ||
| 530 | PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; | ||
| 531 | PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; | ||
| 532 | PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; | ||
| 533 | PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; | ||
| 534 | PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; | ||
| 535 | PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; | ||
| 536 | PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; | ||
| 537 | PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; | ||
| 538 | PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; | ||
| 539 | PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; | ||
| 540 | PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; | ||
| 541 | PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; | ||
| 542 | PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; | ||
| 543 | PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; | ||
| 544 | PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; | ||
| 545 | PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; | ||
| 546 | PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; | ||
| 547 | PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; | ||
| 548 | PFNGLDISABLEIPROC glad_glDisablei; | ||
| 549 | PFNGLSHADERSOURCEPROC glad_glShaderSource; | ||
| 550 | PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; | ||
| 551 | PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; | ||
| 552 | PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; | ||
| 553 | PFNGLGETSYNCIVPROC glad_glGetSynciv; | ||
| 554 | PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; | ||
| 555 | PFNGLBEGINQUERYPROC glad_glBeginQuery; | ||
| 556 | PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; | ||
| 557 | PFNGLBINDBUFFERPROC glad_glBindBuffer; | ||
| 558 | PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; | ||
| 559 | PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; | ||
| 560 | PFNGLBUFFERDATAPROC glad_glBufferData; | ||
| 561 | PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; | ||
| 562 | PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; | ||
| 563 | PFNGLGETERRORPROC glad_glGetError; | ||
| 564 | PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; | ||
| 565 | PFNGLGETFLOATVPROC glad_glGetFloatv; | ||
| 566 | PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; | ||
| 567 | PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; | ||
| 568 | PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; | ||
| 569 | PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; | ||
| 570 | PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; | ||
| 571 | PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; | ||
| 572 | PFNGLGETINTEGERVPROC glad_glGetIntegerv; | ||
| 573 | PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; | ||
| 574 | PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; | ||
| 575 | PFNGLISQUERYPROC glad_glIsQuery; | ||
| 576 | PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; | ||
| 577 | PFNGLTEXIMAGE2DPROC glad_glTexImage2D; | ||
| 578 | PFNGLSTENCILMASKPROC glad_glStencilMask; | ||
| 579 | PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; | ||
| 580 | PFNGLISTEXTUREPROC glad_glIsTexture; | ||
| 581 | PFNGLUNIFORM1FVPROC glad_glUniform1fv; | ||
| 582 | PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; | ||
| 583 | PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; | ||
| 584 | PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; | ||
| 585 | PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; | ||
| 586 | PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; | ||
| 587 | PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; | ||
| 588 | PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; | ||
| 589 | PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; | ||
| 590 | PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; | ||
| 591 | PFNGLDEPTHMASKPROC glad_glDepthMask; | ||
| 592 | PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; | ||
| 593 | PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; | ||
| 594 | PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; | ||
| 595 | PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; | ||
| 596 | PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; | ||
| 597 | PFNGLFRONTFACEPROC glad_glFrontFace; | ||
| 598 | static void load_GL_VERSION_1_0(GLADloadproc load) { | ||
| 599 | if(!GLAD_GL_VERSION_1_0) return; | ||
| 600 | glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); | ||
| 601 | glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); | ||
| 602 | glad_glHint = (PFNGLHINTPROC)load("glHint"); | ||
| 603 | glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); | ||
| 604 | glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); | ||
| 605 | glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); | ||
| 606 | glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); | ||
| 607 | glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); | ||
| 608 | glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); | ||
| 609 | glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); | ||
| 610 | glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); | ||
| 611 | glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); | ||
| 612 | glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); | ||
| 613 | glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); | ||
| 614 | glad_glClear = (PFNGLCLEARPROC)load("glClear"); | ||
| 615 | glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); | ||
| 616 | glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); | ||
| 617 | glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); | ||
| 618 | glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); | ||
| 619 | glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); | ||
| 620 | glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); | ||
| 621 | glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); | ||
| 622 | glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); | ||
| 623 | glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); | ||
| 624 | glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); | ||
| 625 | glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); | ||
| 626 | glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); | ||
| 627 | glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); | ||
| 628 | glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); | ||
| 629 | glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); | ||
| 630 | glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); | ||
| 631 | glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); | ||
| 632 | glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); | ||
| 633 | glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); | ||
| 634 | glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); | ||
| 635 | glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); | ||
| 636 | glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); | ||
| 637 | glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); | ||
| 638 | glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); | ||
| 639 | glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); | ||
| 640 | glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); | ||
| 641 | glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); | ||
| 642 | glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); | ||
| 643 | glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); | ||
| 644 | glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); | ||
| 645 | glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); | ||
| 646 | glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); | ||
| 647 | glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); | ||
| 648 | } | ||
| 649 | static void load_GL_VERSION_1_1(GLADloadproc load) { | ||
| 650 | if(!GLAD_GL_VERSION_1_1) return; | ||
| 651 | glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); | ||
| 652 | glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); | ||
| 653 | glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); | ||
| 654 | glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); | ||
| 655 | glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); | ||
| 656 | glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); | ||
| 657 | glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); | ||
| 658 | glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); | ||
| 659 | glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); | ||
| 660 | glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); | ||
| 661 | glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); | ||
| 662 | glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); | ||
| 663 | glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); | ||
| 664 | } | ||
| 665 | static void load_GL_VERSION_1_2(GLADloadproc load) { | ||
| 666 | if(!GLAD_GL_VERSION_1_2) return; | ||
| 667 | glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); | ||
| 668 | glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); | ||
| 669 | glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); | ||
| 670 | glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); | ||
| 671 | } | ||
| 672 | static void load_GL_VERSION_1_3(GLADloadproc load) { | ||
| 673 | if(!GLAD_GL_VERSION_1_3) return; | ||
| 674 | glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); | ||
| 675 | glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); | ||
| 676 | glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); | ||
| 677 | glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); | ||
| 678 | glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); | ||
| 679 | glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); | ||
| 680 | glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); | ||
| 681 | glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); | ||
| 682 | glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); | ||
| 683 | } | ||
| 684 | static void load_GL_VERSION_1_4(GLADloadproc load) { | ||
| 685 | if(!GLAD_GL_VERSION_1_4) return; | ||
| 686 | glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); | ||
| 687 | glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); | ||
| 688 | glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); | ||
| 689 | glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); | ||
| 690 | glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); | ||
| 691 | glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); | ||
| 692 | glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); | ||
| 693 | glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); | ||
| 694 | glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); | ||
| 695 | } | ||
| 696 | static void load_GL_VERSION_1_5(GLADloadproc load) { | ||
| 697 | if(!GLAD_GL_VERSION_1_5) return; | ||
| 698 | glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); | ||
| 699 | glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); | ||
| 700 | glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); | ||
| 701 | glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); | ||
| 702 | glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); | ||
| 703 | glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); | ||
| 704 | glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); | ||
| 705 | glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); | ||
| 706 | glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); | ||
| 707 | glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); | ||
| 708 | glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); | ||
| 709 | glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); | ||
| 710 | glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); | ||
| 711 | glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); | ||
| 712 | glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); | ||
| 713 | glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); | ||
| 714 | glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); | ||
| 715 | glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); | ||
| 716 | glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); | ||
| 717 | } | ||
| 718 | static void load_GL_VERSION_2_0(GLADloadproc load) { | ||
| 719 | if(!GLAD_GL_VERSION_2_0) return; | ||
| 720 | glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); | ||
| 721 | glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); | ||
| 722 | glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); | ||
| 723 | glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); | ||
| 724 | glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); | ||
| 725 | glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); | ||
| 726 | glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); | ||
| 727 | glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); | ||
| 728 | glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); | ||
| 729 | glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); | ||
| 730 | glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); | ||
| 731 | glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); | ||
| 732 | glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); | ||
| 733 | glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); | ||
| 734 | glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); | ||
| 735 | glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); | ||
| 736 | glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); | ||
| 737 | glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); | ||
| 738 | glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); | ||
| 739 | glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); | ||
| 740 | glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); | ||
| 741 | glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); | ||
| 742 | glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); | ||
| 743 | glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); | ||
| 744 | glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); | ||
| 745 | glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); | ||
| 746 | glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); | ||
| 747 | glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); | ||
| 748 | glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); | ||
| 749 | glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); | ||
| 750 | glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); | ||
| 751 | glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); | ||
| 752 | glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); | ||
| 753 | glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); | ||
| 754 | glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); | ||
| 755 | glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); | ||
| 756 | glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); | ||
| 757 | glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); | ||
| 758 | glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); | ||
| 759 | glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); | ||
| 760 | glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); | ||
| 761 | glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); | ||
| 762 | glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); | ||
| 763 | glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); | ||
| 764 | glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); | ||
| 765 | glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); | ||
| 766 | glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); | ||
| 767 | glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); | ||
| 768 | glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); | ||
| 769 | glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); | ||
| 770 | glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); | ||
| 771 | glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); | ||
| 772 | glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); | ||
| 773 | glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); | ||
| 774 | glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); | ||
| 775 | glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); | ||
| 776 | glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); | ||
| 777 | glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); | ||
| 778 | glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); | ||
| 779 | glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); | ||
| 780 | glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); | ||
| 781 | glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); | ||
| 782 | glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); | ||
| 783 | glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); | ||
| 784 | glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); | ||
| 785 | glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); | ||
| 786 | glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); | ||
| 787 | glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); | ||
| 788 | glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); | ||
| 789 | glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); | ||
| 790 | glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); | ||
| 791 | glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); | ||
| 792 | glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); | ||
| 793 | glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); | ||
| 794 | glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); | ||
| 795 | glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); | ||
| 796 | glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); | ||
| 797 | glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); | ||
| 798 | glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); | ||
| 799 | glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); | ||
| 800 | glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); | ||
| 801 | glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); | ||
| 802 | glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); | ||
| 803 | glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); | ||
| 804 | glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); | ||
| 805 | glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); | ||
| 806 | glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); | ||
| 807 | glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); | ||
| 808 | glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); | ||
| 809 | glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); | ||
| 810 | glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); | ||
| 811 | glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); | ||
| 812 | glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); | ||
| 813 | } | ||
| 814 | static void load_GL_VERSION_2_1(GLADloadproc load) { | ||
| 815 | if(!GLAD_GL_VERSION_2_1) return; | ||
| 816 | glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); | ||
| 817 | glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); | ||
| 818 | glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); | ||
| 819 | glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); | ||
| 820 | glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); | ||
| 821 | glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); | ||
| 822 | } | ||
| 823 | static void load_GL_VERSION_3_0(GLADloadproc load) { | ||
| 824 | if(!GLAD_GL_VERSION_3_0) return; | ||
| 825 | glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); | ||
| 826 | glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); | ||
| 827 | glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); | ||
| 828 | glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); | ||
| 829 | glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); | ||
| 830 | glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); | ||
| 831 | glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); | ||
| 832 | glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); | ||
| 833 | glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); | ||
| 834 | glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); | ||
| 835 | glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); | ||
| 836 | glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); | ||
| 837 | glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); | ||
| 838 | glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); | ||
| 839 | glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); | ||
| 840 | glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); | ||
| 841 | glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); | ||
| 842 | glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); | ||
| 843 | glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); | ||
| 844 | glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); | ||
| 845 | glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); | ||
| 846 | glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); | ||
| 847 | glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); | ||
| 848 | glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); | ||
| 849 | glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); | ||
| 850 | glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); | ||
| 851 | glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); | ||
| 852 | glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); | ||
| 853 | glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); | ||
| 854 | glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); | ||
| 855 | glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); | ||
| 856 | glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); | ||
| 857 | glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); | ||
| 858 | glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); | ||
| 859 | glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); | ||
| 860 | glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); | ||
| 861 | glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); | ||
| 862 | glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); | ||
| 863 | glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); | ||
| 864 | glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); | ||
| 865 | glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); | ||
| 866 | glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); | ||
| 867 | glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); | ||
| 868 | glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); | ||
| 869 | glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); | ||
| 870 | glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); | ||
| 871 | glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); | ||
| 872 | glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); | ||
| 873 | glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); | ||
| 874 | glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); | ||
| 875 | glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); | ||
| 876 | glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); | ||
| 877 | glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); | ||
| 878 | glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); | ||
| 879 | glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); | ||
| 880 | glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); | ||
| 881 | glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); | ||
| 882 | glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); | ||
| 883 | glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); | ||
| 884 | glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); | ||
| 885 | glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); | ||
| 886 | glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); | ||
| 887 | glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); | ||
| 888 | glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); | ||
| 889 | glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); | ||
| 890 | glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); | ||
| 891 | glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); | ||
| 892 | glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); | ||
| 893 | glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); | ||
| 894 | glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); | ||
| 895 | glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); | ||
| 896 | glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); | ||
| 897 | glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); | ||
| 898 | glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); | ||
| 899 | glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); | ||
| 900 | glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); | ||
| 901 | glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); | ||
| 902 | glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); | ||
| 903 | glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); | ||
| 904 | glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); | ||
| 905 | glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); | ||
| 906 | glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); | ||
| 907 | glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); | ||
| 908 | glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); | ||
| 909 | } | ||
| 910 | static void load_GL_VERSION_3_1(GLADloadproc load) { | ||
| 911 | if(!GLAD_GL_VERSION_3_1) return; | ||
| 912 | glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); | ||
| 913 | glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); | ||
| 914 | glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); | ||
| 915 | glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); | ||
| 916 | glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); | ||
| 917 | glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); | ||
| 918 | glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); | ||
| 919 | glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); | ||
| 920 | glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); | ||
| 921 | glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); | ||
| 922 | glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); | ||
| 923 | glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); | ||
| 924 | glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); | ||
| 925 | glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); | ||
| 926 | glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); | ||
| 927 | } | ||
| 928 | static void load_GL_VERSION_3_2(GLADloadproc load) { | ||
| 929 | if(!GLAD_GL_VERSION_3_2) return; | ||
| 930 | glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); | ||
| 931 | glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); | ||
| 932 | glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); | ||
| 933 | glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); | ||
| 934 | glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); | ||
| 935 | glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); | ||
| 936 | glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); | ||
| 937 | glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); | ||
| 938 | glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); | ||
| 939 | glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); | ||
| 940 | glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); | ||
| 941 | glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); | ||
| 942 | glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); | ||
| 943 | glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); | ||
| 944 | glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); | ||
| 945 | glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); | ||
| 946 | glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); | ||
| 947 | glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); | ||
| 948 | glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); | ||
| 949 | } | ||
| 950 | static void load_GL_VERSION_3_3(GLADloadproc load) { | ||
| 951 | if(!GLAD_GL_VERSION_3_3) return; | ||
| 952 | glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); | ||
| 953 | glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); | ||
| 954 | glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); | ||
| 955 | glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); | ||
| 956 | glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); | ||
| 957 | glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); | ||
| 958 | glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); | ||
| 959 | glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); | ||
| 960 | glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); | ||
| 961 | glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); | ||
| 962 | glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); | ||
| 963 | glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); | ||
| 964 | glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); | ||
| 965 | glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); | ||
| 966 | glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); | ||
| 967 | glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); | ||
| 968 | glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); | ||
| 969 | glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); | ||
| 970 | glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); | ||
| 971 | glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); | ||
| 972 | glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); | ||
| 973 | glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); | ||
| 974 | glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); | ||
| 975 | glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); | ||
| 976 | glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); | ||
| 977 | glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); | ||
| 978 | glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); | ||
| 979 | glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); | ||
| 980 | glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); | ||
| 981 | glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); | ||
| 982 | glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); | ||
| 983 | glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); | ||
| 984 | glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); | ||
| 985 | glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); | ||
| 986 | glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); | ||
| 987 | glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); | ||
| 988 | glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); | ||
| 989 | glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); | ||
| 990 | glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); | ||
| 991 | glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); | ||
| 992 | glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); | ||
| 993 | glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); | ||
| 994 | glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); | ||
| 995 | glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); | ||
| 996 | glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); | ||
| 997 | glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); | ||
| 998 | glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); | ||
| 999 | glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); | ||
| 1000 | glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); | ||
| 1001 | glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); | ||
| 1002 | glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); | ||
| 1003 | glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); | ||
| 1004 | glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); | ||
| 1005 | glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); | ||
| 1006 | glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); | ||
| 1007 | glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); | ||
| 1008 | glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); | ||
| 1009 | glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); | ||
| 1010 | } | ||
| 1011 | static void find_extensionsGL(void) { | ||
| 1012 | get_exts(); | ||
| 1013 | } | ||
| 1014 | |||
| 1015 | static void find_coreGL(void) { | ||
| 1016 | |||
| 1017 | /* Thank you @elmindreda | ||
| 1018 | * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 | ||
| 1019 | * https://github.com/glfw/glfw/blob/master/src/context.c#L36 | ||
| 1020 | */ | ||
| 1021 | int i, major, minor; | ||
| 1022 | |||
| 1023 | const char* version; | ||
| 1024 | const char* prefixes[] = { | ||
| 1025 | "OpenGL ES-CM ", | ||
| 1026 | "OpenGL ES-CL ", | ||
| 1027 | "OpenGL ES ", | ||
| 1028 | NULL | ||
| 1029 | }; | ||
| 1030 | |||
| 1031 | version = (const char*) glGetString(GL_VERSION); | ||
| 1032 | if (!version) return; | ||
| 1033 | |||
| 1034 | for (i = 0; prefixes[i]; i++) { | ||
| 1035 | const size_t length = strlen(prefixes[i]); | ||
| 1036 | if (strncmp(version, prefixes[i], length) == 0) { | ||
| 1037 | version += length; | ||
| 1038 | break; | ||
| 1039 | } | ||
| 1040 | } | ||
| 1041 | |||
| 1042 | /* PR #18 */ | ||
| 1043 | #ifdef _MSC_VER | ||
| 1044 | sscanf_s(version, "%d.%d", &major, &minor); | ||
| 1045 | #else | ||
| 1046 | sscanf(version, "%d.%d", &major, &minor); | ||
| 1047 | #endif | ||
| 1048 | |||
| 1049 | GLVersion.major = major; GLVersion.minor = minor; | ||
| 1050 | max_loaded_major = major; max_loaded_minor = minor; | ||
| 1051 | GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; | ||
| 1052 | GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; | ||
| 1053 | GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; | ||
| 1054 | GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; | ||
| 1055 | GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; | ||
| 1056 | GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; | ||
| 1057 | GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; | ||
| 1058 | GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; | ||
| 1059 | GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; | ||
| 1060 | GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; | ||
| 1061 | GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; | ||
| 1062 | GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; | ||
| 1063 | if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) { | ||
| 1064 | max_loaded_major = 3; | ||
| 1065 | max_loaded_minor = 3; | ||
| 1066 | } | ||
| 1067 | } | ||
| 1068 | |||
| 1069 | int gladLoadGLLoader(GLADloadproc load) { | ||
| 1070 | GLVersion.major = 0; GLVersion.minor = 0; | ||
| 1071 | glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); | ||
| 1072 | if(glGetString == NULL) return 0; | ||
| 1073 | if(glGetString(GL_VERSION) == NULL) return 0; | ||
| 1074 | find_coreGL(); | ||
| 1075 | load_GL_VERSION_1_0(load); | ||
| 1076 | load_GL_VERSION_1_1(load); | ||
| 1077 | load_GL_VERSION_1_2(load); | ||
| 1078 | load_GL_VERSION_1_3(load); | ||
| 1079 | load_GL_VERSION_1_4(load); | ||
| 1080 | load_GL_VERSION_1_5(load); | ||
| 1081 | load_GL_VERSION_2_0(load); | ||
| 1082 | load_GL_VERSION_2_1(load); | ||
| 1083 | load_GL_VERSION_3_0(load); | ||
| 1084 | load_GL_VERSION_3_1(load); | ||
| 1085 | load_GL_VERSION_3_2(load); | ||
| 1086 | load_GL_VERSION_3_3(load); | ||
| 1087 | |||
| 1088 | find_extensionsGL(); | ||
| 1089 | return GLVersion.major != 0 || GLVersion.minor != 0; | ||
| 1090 | } | ||
| 1091 | |||
| 1092 | static void load_GL_ES_VERSION_2_0(GLADloadproc load) { | ||
| 1093 | if(!GLAD_GL_ES_VERSION_2_0) return; | ||
| 1094 | glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); | ||
| 1095 | glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); | ||
| 1096 | glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); | ||
| 1097 | glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); | ||
| 1098 | glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); | ||
| 1099 | glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); | ||
| 1100 | glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); | ||
| 1101 | glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); | ||
| 1102 | glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); | ||
| 1103 | glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); | ||
| 1104 | glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); | ||
| 1105 | glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); | ||
| 1106 | glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); | ||
| 1107 | glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); | ||
| 1108 | glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); | ||
| 1109 | glad_glClear = (PFNGLCLEARPROC)load("glClear"); | ||
| 1110 | glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); | ||
| 1111 | glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); | ||
| 1112 | glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); | ||
| 1113 | glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); | ||
| 1114 | glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); | ||
| 1115 | glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); | ||
| 1116 | glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); | ||
| 1117 | glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); | ||
| 1118 | glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); | ||
| 1119 | glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); | ||
| 1120 | glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); | ||
| 1121 | glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); | ||
| 1122 | glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); | ||
| 1123 | glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); | ||
| 1124 | glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); | ||
| 1125 | glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); | ||
| 1126 | glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); | ||
| 1127 | glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); | ||
| 1128 | glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); | ||
| 1129 | glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); | ||
| 1130 | glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); | ||
| 1131 | glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); | ||
| 1132 | glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); | ||
| 1133 | glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); | ||
| 1134 | glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); | ||
| 1135 | glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); | ||
| 1136 | glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); | ||
| 1137 | glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); | ||
| 1138 | glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); | ||
| 1139 | glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); | ||
| 1140 | glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); | ||
| 1141 | glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); | ||
| 1142 | glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); | ||
| 1143 | glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); | ||
| 1144 | glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); | ||
| 1145 | glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); | ||
| 1146 | glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); | ||
| 1147 | glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); | ||
| 1148 | glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); | ||
| 1149 | glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); | ||
| 1150 | glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); | ||
| 1151 | glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); | ||
| 1152 | glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); | ||
| 1153 | glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); | ||
| 1154 | glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); | ||
| 1155 | glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); | ||
| 1156 | glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); | ||
| 1157 | glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); | ||
| 1158 | glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); | ||
| 1159 | glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); | ||
| 1160 | glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); | ||
| 1161 | glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); | ||
| 1162 | glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); | ||
| 1163 | glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); | ||
| 1164 | glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); | ||
| 1165 | glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); | ||
| 1166 | glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); | ||
| 1167 | glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); | ||
| 1168 | glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); | ||
| 1169 | glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); | ||
| 1170 | glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); | ||
| 1171 | glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); | ||
| 1172 | glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); | ||
| 1173 | glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); | ||
| 1174 | glad_glHint = (PFNGLHINTPROC)load("glHint"); | ||
| 1175 | glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); | ||
| 1176 | glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); | ||
| 1177 | glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); | ||
| 1178 | glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); | ||
| 1179 | glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); | ||
| 1180 | glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); | ||
| 1181 | glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); | ||
| 1182 | glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); | ||
| 1183 | glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); | ||
| 1184 | glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); | ||
| 1185 | glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); | ||
| 1186 | glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); | ||
| 1187 | glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); | ||
| 1188 | glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); | ||
| 1189 | glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); | ||
| 1190 | glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); | ||
| 1191 | glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); | ||
| 1192 | glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); | ||
| 1193 | glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); | ||
| 1194 | glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); | ||
| 1195 | glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); | ||
| 1196 | glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); | ||
| 1197 | glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); | ||
| 1198 | glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); | ||
| 1199 | glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); | ||
| 1200 | glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); | ||
| 1201 | glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); | ||
| 1202 | glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); | ||
| 1203 | glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); | ||
| 1204 | glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); | ||
| 1205 | glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); | ||
| 1206 | glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); | ||
| 1207 | glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); | ||
| 1208 | glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); | ||
| 1209 | glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); | ||
| 1210 | glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); | ||
| 1211 | glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); | ||
| 1212 | glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); | ||
| 1213 | glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); | ||
| 1214 | glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); | ||
| 1215 | glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); | ||
| 1216 | glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); | ||
| 1217 | glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); | ||
| 1218 | glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); | ||
| 1219 | glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); | ||
| 1220 | glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); | ||
| 1221 | glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); | ||
| 1222 | glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); | ||
| 1223 | glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); | ||
| 1224 | glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); | ||
| 1225 | glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); | ||
| 1226 | glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); | ||
| 1227 | glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); | ||
| 1228 | glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); | ||
| 1229 | glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); | ||
| 1230 | glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); | ||
| 1231 | glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); | ||
| 1232 | glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); | ||
| 1233 | glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); | ||
| 1234 | glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); | ||
| 1235 | glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); | ||
| 1236 | } | ||
| 1237 | static void load_GL_ES_VERSION_3_0(GLADloadproc load) { | ||
| 1238 | if(!GLAD_GL_ES_VERSION_3_0) return; | ||
| 1239 | glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); | ||
| 1240 | glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); | ||
| 1241 | glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); | ||
| 1242 | glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); | ||
| 1243 | glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); | ||
| 1244 | glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); | ||
| 1245 | glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); | ||
| 1246 | glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); | ||
| 1247 | glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); | ||
| 1248 | glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); | ||
| 1249 | glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); | ||
| 1250 | glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); | ||
| 1251 | glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); | ||
| 1252 | glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); | ||
| 1253 | glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); | ||
| 1254 | glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); | ||
| 1255 | glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); | ||
| 1256 | glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); | ||
| 1257 | glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); | ||
| 1258 | glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); | ||
| 1259 | glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); | ||
| 1260 | glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); | ||
| 1261 | glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); | ||
| 1262 | glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); | ||
| 1263 | glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); | ||
| 1264 | glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); | ||
| 1265 | glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); | ||
| 1266 | glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); | ||
| 1267 | glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); | ||
| 1268 | glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); | ||
| 1269 | glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); | ||
| 1270 | glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); | ||
| 1271 | glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); | ||
| 1272 | glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); | ||
| 1273 | glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); | ||
| 1274 | glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); | ||
| 1275 | glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); | ||
| 1276 | glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); | ||
| 1277 | glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); | ||
| 1278 | glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); | ||
| 1279 | glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); | ||
| 1280 | glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); | ||
| 1281 | glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); | ||
| 1282 | glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); | ||
| 1283 | glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); | ||
| 1284 | glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); | ||
| 1285 | glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); | ||
| 1286 | glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); | ||
| 1287 | glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); | ||
| 1288 | glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); | ||
| 1289 | glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); | ||
| 1290 | glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); | ||
| 1291 | glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); | ||
| 1292 | glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); | ||
| 1293 | glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); | ||
| 1294 | glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); | ||
| 1295 | glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); | ||
| 1296 | glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); | ||
| 1297 | glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); | ||
| 1298 | glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); | ||
| 1299 | glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); | ||
| 1300 | glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); | ||
| 1301 | glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); | ||
| 1302 | glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); | ||
| 1303 | glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); | ||
| 1304 | glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); | ||
| 1305 | glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); | ||
| 1306 | glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); | ||
| 1307 | glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); | ||
| 1308 | glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); | ||
| 1309 | glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); | ||
| 1310 | glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); | ||
| 1311 | glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); | ||
| 1312 | glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); | ||
| 1313 | glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); | ||
| 1314 | glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); | ||
| 1315 | glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); | ||
| 1316 | glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); | ||
| 1317 | glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); | ||
| 1318 | glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); | ||
| 1319 | glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); | ||
| 1320 | glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); | ||
| 1321 | glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); | ||
| 1322 | glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); | ||
| 1323 | glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); | ||
| 1324 | glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); | ||
| 1325 | glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); | ||
| 1326 | glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); | ||
| 1327 | glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); | ||
| 1328 | glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); | ||
| 1329 | glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback"); | ||
| 1330 | glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks"); | ||
| 1331 | glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks"); | ||
| 1332 | glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback"); | ||
| 1333 | glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback"); | ||
| 1334 | glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback"); | ||
| 1335 | glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary"); | ||
| 1336 | glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary"); | ||
| 1337 | glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); | ||
| 1338 | glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load("glInvalidateFramebuffer"); | ||
| 1339 | glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load("glInvalidateSubFramebuffer"); | ||
| 1340 | glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D"); | ||
| 1341 | glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D"); | ||
| 1342 | glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ"); | ||
| 1343 | } | ||
| 1344 | static void find_extensionsGLES2(void) { | ||
| 1345 | get_exts(); | ||
| 1346 | } | ||
| 1347 | |||
| 1348 | static void find_coreGLES2(void) { | ||
| 1349 | |||
| 1350 | /* Thank you @elmindreda | ||
| 1351 | * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 | ||
| 1352 | * https://github.com/glfw/glfw/blob/master/src/context.c#L36 | ||
| 1353 | */ | ||
| 1354 | int i, major, minor; | ||
| 1355 | |||
| 1356 | const char* version; | ||
| 1357 | const char* prefixes[] = { | ||
| 1358 | "OpenGL ES-CM ", | ||
| 1359 | "OpenGL ES-CL ", | ||
| 1360 | "OpenGL ES ", | ||
| 1361 | NULL | ||
| 1362 | }; | ||
| 1363 | |||
| 1364 | version = (const char*) glGetString(GL_VERSION); | ||
| 1365 | if (!version) return; | ||
| 1366 | |||
| 1367 | for (i = 0; prefixes[i]; i++) { | ||
| 1368 | const size_t length = strlen(prefixes[i]); | ||
| 1369 | if (strncmp(version, prefixes[i], length) == 0) { | ||
| 1370 | version += length; | ||
| 1371 | break; | ||
| 1372 | } | ||
| 1373 | } | ||
| 1374 | |||
| 1375 | /* PR #18 */ | ||
| 1376 | #ifdef _MSC_VER | ||
| 1377 | sscanf_s(version, "%d.%d", &major, &minor); | ||
| 1378 | #else | ||
| 1379 | sscanf(version, "%d.%d", &major, &minor); | ||
| 1380 | #endif | ||
| 1381 | |||
| 1382 | GLVersion.major = major; GLVersion.minor = minor; | ||
| 1383 | max_loaded_major = major; max_loaded_minor = minor; | ||
| 1384 | GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; | ||
| 1385 | GLAD_GL_ES_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; | ||
| 1386 | if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 0)) { | ||
| 1387 | max_loaded_major = 3; | ||
| 1388 | max_loaded_minor = 0; | ||
| 1389 | } | ||
| 1390 | } | ||
| 1391 | |||
| 1392 | int gladLoadGLES2Loader(GLADloadproc load) { | ||
| 1393 | GLVersion.major = 0; GLVersion.minor = 0; | ||
| 1394 | glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); | ||
| 1395 | if(glGetString == NULL) return 0; | ||
| 1396 | if(glGetString(GL_VERSION) == NULL) return 0; | ||
| 1397 | find_coreGLES2(); | ||
| 1398 | load_GL_ES_VERSION_2_0(load); | ||
| 1399 | load_GL_ES_VERSION_3_0(load); | ||
| 1400 | |||
| 1401 | find_extensionsGLES2(); | ||
| 1402 | return GLVersion.major != 0 || GLVersion.minor != 0; | ||
| 1403 | } | ||
| 1404 | |||