A 3D game engine from scratch.
at main 1578 lines 91 kB view raw
1/* 2 3 OpenGL loader generated by glad 0.1.34 on Sat Oct 17 11:36:37 2020. 4 5 Language/Generator: C/C++ 6 Specification: gl 7 APIs: gl=4.1 8 Profile: core 9 Extensions: 10 GL_AMD_debug_output, 11 GL_ARB_buffer_storage, 12 GL_ARB_debug_output, 13 GL_ARB_internalformat_query, 14 GL_ARB_internalformat_query2, 15 GL_ARB_texture_cube_map_array, 16 GL_ARB_texture_storage, 17 GL_ARB_texture_storage_multisample, 18 GL_EXT_debug_label, 19 GL_EXT_debug_marker, 20 GL_KHR_debug 21 Loader: True 22 Local files: False 23 Omit khrplatform: False 24 Reproducible: False 25 26 Commandline: 27 --profile="core" --api="gl=4.1" --generator="c" --spec="gl" --extensions="GL_AMD_debug_output,GL_ARB_buffer_storage,GL_ARB_debug_output,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_texture_cube_map_array,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_EXT_debug_label,GL_EXT_debug_marker,GL_KHR_debug" 28 Online: 29 https://glad.dav1d.de/#profile=core&language=c&specification=gl&loader=on&api=gl%3D4.1&extensions=GL_AMD_debug_output&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_debug_output&extensions=GL_ARB_internalformat_query&extensions=GL_ARB_internalformat_query2&extensions=GL_ARB_texture_cube_map_array&extensions=GL_ARB_texture_storage&extensions=GL_ARB_texture_storage_multisample&extensions=GL_EXT_debug_label&extensions=GL_EXT_debug_marker&extensions=GL_KHR_debug 30*/ 31 32#include <stdio.h> 33#include <stdlib.h> 34#include <string.h> 35#include "glad/glad.h" 36 37static void* get_proc(const char *namez); 38 39#if defined(_WIN32) || defined(__CYGWIN__) 40#ifndef _WINDOWS_ 41#undef APIENTRY 42#endif 43#include <windows.h> 44static HMODULE libGL; 45 46typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); 47static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; 48 49#ifdef _MSC_VER 50#ifdef __has_include 51 #if __has_include(<winapifamily.h>) 52 #define HAVE_WINAPIFAMILY 1 53 #endif 54#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_ 55 #define HAVE_WINAPIFAMILY 1 56#endif 57#endif 58 59#ifdef HAVE_WINAPIFAMILY 60 #include <winapifamily.h> 61 #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 62 #define IS_UWP 1 63 #endif 64#endif 65 66static 67int open_gl(void) { 68#ifndef IS_UWP 69 libGL = LoadLibraryW(L"opengl32.dll"); 70 if(libGL != NULL) { 71 void (* tmp)(void); 72 tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress"); 73 gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp; 74 return gladGetProcAddressPtr != NULL; 75 } 76#endif 77 78 return 0; 79} 80 81static 82void close_gl(void) { 83 if(libGL != NULL) { 84 FreeLibrary((HMODULE) libGL); 85 libGL = NULL; 86 } 87} 88#else 89#include <dlfcn.h> 90static void* libGL; 91 92#if !defined(__APPLE__) && !defined(__HAIKU__) 93typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); 94static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; 95#endif 96 97static 98int open_gl(void) { 99#ifdef __APPLE__ 100 static const char *NAMES[] = { 101 "../Frameworks/OpenGL.framework/OpenGL", 102 "/Library/Frameworks/OpenGL.framework/OpenGL", 103 "/System/Library/Frameworks/OpenGL.framework/OpenGL", 104 "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL" 105 }; 106#else 107 static const char *NAMES[] = {"libGL.so.1", "libGL.so"}; 108#endif 109 110 unsigned int index = 0; 111 for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) { 112 libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); 113 114 if(libGL != NULL) { 115#if defined(__APPLE__) || defined(__HAIKU__) 116 return 1; 117#else 118 gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, 119 "glXGetProcAddressARB"); 120 return gladGetProcAddressPtr != NULL; 121#endif 122 } 123 } 124 125 return 0; 126} 127 128static 129void close_gl(void) { 130 if(libGL != NULL) { 131 dlclose(libGL); 132 libGL = NULL; 133 } 134} 135#endif 136 137static 138void* get_proc(const char *namez) { 139 void* result = NULL; 140 if(libGL == NULL) return NULL; 141 142#if !defined(__APPLE__) && !defined(__HAIKU__) 143 if(gladGetProcAddressPtr != NULL) { 144 result = gladGetProcAddressPtr(namez); 145 } 146#endif 147 if(result == NULL) { 148#if defined(_WIN32) || defined(__CYGWIN__) 149 result = (void*)GetProcAddress((HMODULE) libGL, namez); 150#else 151 result = dlsym(libGL, namez); 152#endif 153 } 154 155 return result; 156} 157 158int gladLoadGL(void) { 159 int status = 0; 160 161 if(open_gl()) { 162 status = gladLoadGLLoader(&get_proc); 163 close_gl(); 164 } 165 166 return status; 167} 168 169struct gladGLversionStruct GLVersion = { 0, 0 }; 170 171#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) 172#define _GLAD_IS_SOME_NEW_VERSION 1 173#endif 174 175static int max_loaded_major; 176static int max_loaded_minor; 177 178static const char *exts = NULL; 179static int num_exts_i = 0; 180static char **exts_i = NULL; 181 182static int get_exts(void) { 183#ifdef _GLAD_IS_SOME_NEW_VERSION 184 if(max_loaded_major < 3) { 185#endif 186 exts = (const char *)glGetString(GL_EXTENSIONS); 187#ifdef _GLAD_IS_SOME_NEW_VERSION 188 } else { 189 unsigned int index; 190 191 num_exts_i = 0; 192 glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); 193 if (num_exts_i > 0) { 194 exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i)); 195 } 196 197 if (exts_i == NULL) { 198 return 0; 199 } 200 201 for(index = 0; index < (unsigned)num_exts_i; index++) { 202 const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index); 203 size_t len = strlen(gl_str_tmp); 204 205 char *local_str = (char*)malloc((len+1) * sizeof(char)); 206 if(local_str != NULL) { 207 memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char)); 208 } 209 exts_i[index] = local_str; 210 } 211 } 212#endif 213 return 1; 214} 215 216static void free_exts(void) { 217 if (exts_i != NULL) { 218 int index; 219 for(index = 0; index < num_exts_i; index++) { 220 free((char *)exts_i[index]); 221 } 222 free((void *)exts_i); 223 exts_i = NULL; 224 } 225} 226 227static int has_ext(const char *ext) { 228#ifdef _GLAD_IS_SOME_NEW_VERSION 229 if(max_loaded_major < 3) { 230#endif 231 const char *extensions; 232 const char *loc; 233 const char *terminator; 234 extensions = exts; 235 if(extensions == NULL || ext == NULL) { 236 return 0; 237 } 238 239 while(1) { 240 loc = strstr(extensions, ext); 241 if(loc == NULL) { 242 return 0; 243 } 244 245 terminator = loc + strlen(ext); 246 if((loc == extensions || *(loc - 1) == ' ') && 247 (*terminator == ' ' || *terminator == '\0')) { 248 return 1; 249 } 250 extensions = terminator; 251 } 252#ifdef _GLAD_IS_SOME_NEW_VERSION 253 } else { 254 int index; 255 if(exts_i == NULL) return 0; 256 for(index = 0; index < num_exts_i; index++) { 257 const char *e = exts_i[index]; 258 259 if(exts_i[index] != NULL && strcmp(e, ext) == 0) { 260 return 1; 261 } 262 } 263 } 264#endif 265 266 return 0; 267} 268int GLAD_GL_VERSION_1_0 = 0; 269int GLAD_GL_VERSION_1_1 = 0; 270int GLAD_GL_VERSION_1_2 = 0; 271int GLAD_GL_VERSION_1_3 = 0; 272int GLAD_GL_VERSION_1_4 = 0; 273int GLAD_GL_VERSION_1_5 = 0; 274int GLAD_GL_VERSION_2_0 = 0; 275int GLAD_GL_VERSION_2_1 = 0; 276int GLAD_GL_VERSION_3_0 = 0; 277int GLAD_GL_VERSION_3_1 = 0; 278int GLAD_GL_VERSION_3_2 = 0; 279int GLAD_GL_VERSION_3_3 = 0; 280int GLAD_GL_VERSION_4_0 = 0; 281int GLAD_GL_VERSION_4_1 = 0; 282PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; 283PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; 284PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; 285PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL; 286PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; 287PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL; 288PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL; 289PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL; 290PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; 291PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; 292PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; 293PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL; 294PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL; 295PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; 296PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; 297PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; 298PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; 299PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; 300PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; 301PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; 302PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; 303PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; 304PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; 305PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei = NULL; 306PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi = NULL; 307PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; 308PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL; 309PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL; 310PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL; 311PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; 312PFNGLBUFFERDATAPROC glad_glBufferData = NULL; 313PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; 314PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; 315PFNGLCLAMPCOLORPROC glad_glClampColor = NULL; 316PFNGLCLEARPROC glad_glClear = NULL; 317PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; 318PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL; 319PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL; 320PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL; 321PFNGLCLEARCOLORPROC glad_glClearColor = NULL; 322PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL; 323PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; 324PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; 325PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; 326PFNGLCOLORMASKPROC glad_glColorMask = NULL; 327PFNGLCOLORMASKIPROC glad_glColorMaski = NULL; 328PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL; 329PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL; 330PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL; 331PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL; 332PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; 333PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL; 334PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; 335PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL; 336PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL; 337PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; 338PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; 339PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; 340PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL; 341PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; 342PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL; 343PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; 344PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; 345PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; 346PFNGLCREATESHADERPROC glad_glCreateShader = NULL; 347PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; 348PFNGLCULLFACEPROC glad_glCullFace = NULL; 349PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; 350PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; 351PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; 352PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; 353PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; 354PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL; 355PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL; 356PFNGLDELETESHADERPROC glad_glDeleteShader = NULL; 357PFNGLDELETESYNCPROC glad_glDeleteSync = NULL; 358PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; 359PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL; 360PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL; 361PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; 362PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; 363PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL; 364PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv = NULL; 365PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL; 366PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; 367PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; 368PFNGLDISABLEPROC glad_glDisable = NULL; 369PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; 370PFNGLDISABLEIPROC glad_glDisablei = NULL; 371PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; 372PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL; 373PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL; 374PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL; 375PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL; 376PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; 377PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL; 378PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL; 379PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL; 380PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL; 381PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; 382PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL; 383PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL; 384PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL; 385PFNGLENABLEPROC glad_glEnable = NULL; 386PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; 387PFNGLENABLEIPROC glad_glEnablei = NULL; 388PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL; 389PFNGLENDQUERYPROC glad_glEndQuery = NULL; 390PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL; 391PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; 392PFNGLFENCESYNCPROC glad_glFenceSync = NULL; 393PFNGLFINISHPROC glad_glFinish = NULL; 394PFNGLFLUSHPROC glad_glFlush = NULL; 395PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; 396PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; 397PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL; 398PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL; 399PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL; 400PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL; 401PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; 402PFNGLFRONTFACEPROC glad_glFrontFace = NULL; 403PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; 404PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; 405PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; 406PFNGLGENQUERIESPROC glad_glGenQueries = NULL; 407PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; 408PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL; 409PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; 410PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; 411PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; 412PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; 413PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; 414PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL; 415PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName = NULL; 416PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv = NULL; 417PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL; 418PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL; 419PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL; 420PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL; 421PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL; 422PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL; 423PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL; 424PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL; 425PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; 426PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL; 427PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; 428PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; 429PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL; 430PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL; 431PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL; 432PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL; 433PFNGLGETERRORPROC glad_glGetError = NULL; 434PFNGLGETFLOATI_VPROC glad_glGetFloati_v = NULL; 435PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; 436PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL; 437PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; 438PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; 439PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; 440PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; 441PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; 442PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; 443PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; 444PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; 445PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; 446PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL; 447PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL; 448PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL; 449PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; 450PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL; 451PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL; 452PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL; 453PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL; 454PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL; 455PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL; 456PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL; 457PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL; 458PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL; 459PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL; 460PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL; 461PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL; 462PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL; 463PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL; 464PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL; 465PFNGLGETSTRINGPROC glad_glGetString = NULL; 466PFNGLGETSTRINGIPROC glad_glGetStringi = NULL; 467PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL; 468PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL; 469PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; 470PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL; 471PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; 472PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; 473PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL; 474PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL; 475PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; 476PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; 477PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; 478PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; 479PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; 480PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; 481PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv = NULL; 482PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL; 483PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; 484PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; 485PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; 486PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; 487PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; 488PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL; 489PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL; 490PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL; 491PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; 492PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; 493PFNGLHINTPROC glad_glHint = NULL; 494PFNGLISBUFFERPROC glad_glIsBuffer = NULL; 495PFNGLISENABLEDPROC glad_glIsEnabled = NULL; 496PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL; 497PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; 498PFNGLISPROGRAMPROC glad_glIsProgram = NULL; 499PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; 500PFNGLISQUERYPROC glad_glIsQuery = NULL; 501PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL; 502PFNGLISSAMPLERPROC glad_glIsSampler = NULL; 503PFNGLISSHADERPROC glad_glIsShader = NULL; 504PFNGLISSYNCPROC glad_glIsSync = NULL; 505PFNGLISTEXTUREPROC glad_glIsTexture = NULL; 506PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; 507PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; 508PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; 509PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; 510PFNGLLOGICOPPROC glad_glLogicOp = NULL; 511PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL; 512PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; 513PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL; 514PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL; 515PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL; 516PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL; 517PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL; 518PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL; 519PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL; 520PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv = NULL; 521PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui = NULL; 522PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL; 523PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL; 524PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL; 525PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL; 526PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL; 527PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL; 528PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL; 529PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; 530PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL; 531PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; 532PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; 533PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; 534PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL; 535PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL; 536PFNGLPOINTSIZEPROC glad_glPointSize = NULL; 537PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL; 538PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; 539PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL; 540PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; 541PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; 542PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL; 543PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv = NULL; 544PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL; 545PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL; 546PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL; 547PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL; 548PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL; 549PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL; 550PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d = NULL; 551PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv = NULL; 552PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL; 553PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL; 554PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL; 555PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL; 556PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL; 557PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL; 558PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d = NULL; 559PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv = NULL; 560PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL; 561PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL; 562PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL; 563PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL; 564PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL; 565PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL; 566PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d = NULL; 567PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv = NULL; 568PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL; 569PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL; 570PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL; 571PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL; 572PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL; 573PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL; 574PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL; 575PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL; 576PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL; 577PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL; 578PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv = NULL; 579PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL; 580PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv = NULL; 581PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL; 582PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv = NULL; 583PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL; 584PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv = NULL; 585PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL; 586PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv = NULL; 587PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL; 588PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv = NULL; 589PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL; 590PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL; 591PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; 592PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL; 593PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL; 594PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; 595PFNGLREADPIXELSPROC glad_glReadPixels = NULL; 596PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; 597PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; 598PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; 599PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; 600PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; 601PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; 602PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL; 603PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL; 604PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL; 605PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; 606PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; 607PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; 608PFNGLSCISSORPROC glad_glScissor = NULL; 609PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL; 610PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL; 611PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL; 612PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL; 613PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL; 614PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; 615PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; 616PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; 617PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; 618PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; 619PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL; 620PFNGLSTENCILOPPROC glad_glStencilOp = NULL; 621PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; 622PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL; 623PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL; 624PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL; 625PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL; 626PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv = NULL; 627PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui = NULL; 628PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL; 629PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL; 630PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL; 631PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL; 632PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; 633PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL; 634PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL; 635PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL; 636PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL; 637PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL; 638PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; 639PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; 640PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; 641PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; 642PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL; 643PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; 644PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; 645PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; 646PFNGLUNIFORM1DPROC glad_glUniform1d = NULL; 647PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL; 648PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; 649PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL; 650PFNGLUNIFORM1IPROC glad_glUniform1i = NULL; 651PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL; 652PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL; 653PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL; 654PFNGLUNIFORM2DPROC glad_glUniform2d = NULL; 655PFNGLUNIFORM2DVPROC glad_glUniform2dv = NULL; 656PFNGLUNIFORM2FPROC glad_glUniform2f = NULL; 657PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL; 658PFNGLUNIFORM2IPROC glad_glUniform2i = NULL; 659PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL; 660PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL; 661PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL; 662PFNGLUNIFORM3DPROC glad_glUniform3d = NULL; 663PFNGLUNIFORM3DVPROC glad_glUniform3dv = NULL; 664PFNGLUNIFORM3FPROC glad_glUniform3f = NULL; 665PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL; 666PFNGLUNIFORM3IPROC glad_glUniform3i = NULL; 667PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL; 668PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL; 669PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL; 670PFNGLUNIFORM4DPROC glad_glUniform4d = NULL; 671PFNGLUNIFORM4DVPROC glad_glUniform4dv = NULL; 672PFNGLUNIFORM4FPROC glad_glUniform4f = NULL; 673PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL; 674PFNGLUNIFORM4IPROC glad_glUniform4i = NULL; 675PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL; 676PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL; 677PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL; 678PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL; 679PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL; 680PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL; 681PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL; 682PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL; 683PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv = NULL; 684PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL; 685PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv = NULL; 686PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL; 687PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv = NULL; 688PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL; 689PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv = NULL; 690PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL; 691PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv = NULL; 692PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL; 693PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv = NULL; 694PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL; 695PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL; 696PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; 697PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL; 698PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; 699PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; 700PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; 701PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; 702PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; 703PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL; 704PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL; 705PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; 706PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL; 707PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL; 708PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL; 709PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL; 710PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL; 711PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL; 712PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL; 713PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL; 714PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL; 715PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL; 716PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL; 717PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL; 718PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL; 719PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL; 720PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL; 721PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL; 722PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL; 723PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL; 724PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL; 725PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL; 726PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL; 727PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL; 728PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL; 729PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL; 730PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL; 731PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL; 732PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL; 733PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL; 734PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL; 735PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL; 736PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL; 737PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL; 738PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL; 739PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL; 740PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL; 741PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL; 742PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL; 743PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL; 744PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL; 745PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL; 746PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL; 747PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL; 748PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL; 749PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL; 750PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL; 751PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL; 752PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL; 753PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL; 754PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL; 755PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL; 756PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL; 757PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL; 758PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL; 759PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL; 760PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL; 761PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL; 762PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL; 763PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL; 764PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL; 765PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL; 766PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv = NULL; 767PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d = NULL; 768PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv = NULL; 769PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer = NULL; 770PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL; 771PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL; 772PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL; 773PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL; 774PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL; 775PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL; 776PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL; 777PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL; 778PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL; 779PFNGLVERTEXP2UIPROC glad_glVertexP2ui = NULL; 780PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv = NULL; 781PFNGLVERTEXP3UIPROC glad_glVertexP3ui = NULL; 782PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL; 783PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL; 784PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL; 785PFNGLVIEWPORTPROC glad_glViewport = NULL; 786PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL; 787PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL; 788PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL; 789PFNGLWAITSYNCPROC glad_glWaitSync = NULL; 790int GLAD_GL_AMD_debug_output = 0; 791int GLAD_GL_ARB_buffer_storage = 0; 792int GLAD_GL_ARB_debug_output = 0; 793int GLAD_GL_ARB_internalformat_query = 0; 794int GLAD_GL_ARB_internalformat_query2 = 0; 795int GLAD_GL_ARB_texture_cube_map_array = 0; 796int GLAD_GL_ARB_texture_storage = 0; 797int GLAD_GL_ARB_texture_storage_multisample = 0; 798int GLAD_GL_EXT_debug_label = 0; 799int GLAD_GL_EXT_debug_marker = 0; 800int GLAD_GL_KHR_debug = 0; 801PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD = NULL; 802PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD = NULL; 803PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD = NULL; 804PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD = NULL; 805PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL; 806PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB = NULL; 807PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB = NULL; 808PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB = NULL; 809PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB = NULL; 810PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL; 811PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL; 812PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D = NULL; 813PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL; 814PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL; 815PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL; 816PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample = NULL; 817PFNGLLABELOBJECTEXTPROC glad_glLabelObjectEXT = NULL; 818PFNGLGETOBJECTLABELEXTPROC glad_glGetObjectLabelEXT = NULL; 819PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT = NULL; 820PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT = NULL; 821PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT = NULL; 822PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL; 823PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL; 824PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL; 825PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL; 826PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL; 827PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL; 828PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL; 829PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL; 830PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL; 831PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL; 832PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; 833PFNGLDEBUGMESSAGECONTROLKHRPROC glad_glDebugMessageControlKHR = NULL; 834PFNGLDEBUGMESSAGEINSERTKHRPROC glad_glDebugMessageInsertKHR = NULL; 835PFNGLDEBUGMESSAGECALLBACKKHRPROC glad_glDebugMessageCallbackKHR = NULL; 836PFNGLGETDEBUGMESSAGELOGKHRPROC glad_glGetDebugMessageLogKHR = NULL; 837PFNGLPUSHDEBUGGROUPKHRPROC glad_glPushDebugGroupKHR = NULL; 838PFNGLPOPDEBUGGROUPKHRPROC glad_glPopDebugGroupKHR = NULL; 839PFNGLOBJECTLABELKHRPROC glad_glObjectLabelKHR = NULL; 840PFNGLGETOBJECTLABELKHRPROC glad_glGetObjectLabelKHR = NULL; 841PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR = NULL; 842PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR = NULL; 843PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL; 844static void load_GL_VERSION_1_0(GLADloadproc load) { 845 if(!GLAD_GL_VERSION_1_0) return; 846 glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); 847 glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); 848 glad_glHint = (PFNGLHINTPROC)load("glHint"); 849 glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); 850 glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); 851 glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); 852 glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); 853 glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); 854 glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); 855 glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); 856 glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); 857 glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); 858 glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); 859 glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); 860 glad_glClear = (PFNGLCLEARPROC)load("glClear"); 861 glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); 862 glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); 863 glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); 864 glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); 865 glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); 866 glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); 867 glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); 868 glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); 869 glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); 870 glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); 871 glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); 872 glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); 873 glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); 874 glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); 875 glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); 876 glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); 877 glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); 878 glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); 879 glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); 880 glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); 881 glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); 882 glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); 883 glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); 884 glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); 885 glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); 886 glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); 887 glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); 888 glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); 889 glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); 890 glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); 891 glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); 892 glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); 893 glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); 894} 895static void load_GL_VERSION_1_1(GLADloadproc load) { 896 if(!GLAD_GL_VERSION_1_1) return; 897 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); 898 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); 899 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); 900 glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); 901 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); 902 glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); 903 glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); 904 glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); 905 glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); 906 glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); 907 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); 908 glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); 909 glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); 910} 911static void load_GL_VERSION_1_2(GLADloadproc load) { 912 if(!GLAD_GL_VERSION_1_2) return; 913 glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); 914 glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); 915 glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); 916 glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); 917} 918static void load_GL_VERSION_1_3(GLADloadproc load) { 919 if(!GLAD_GL_VERSION_1_3) return; 920 glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); 921 glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); 922 glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); 923 glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); 924 glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); 925 glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); 926 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); 927 glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); 928 glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); 929} 930static void load_GL_VERSION_1_4(GLADloadproc load) { 931 if(!GLAD_GL_VERSION_1_4) return; 932 glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); 933 glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); 934 glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); 935 glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); 936 glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); 937 glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); 938 glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); 939 glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); 940 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); 941} 942static void load_GL_VERSION_1_5(GLADloadproc load) { 943 if(!GLAD_GL_VERSION_1_5) return; 944 glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); 945 glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); 946 glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); 947 glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); 948 glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); 949 glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); 950 glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); 951 glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); 952 glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); 953 glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); 954 glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); 955 glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); 956 glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); 957 glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); 958 glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); 959 glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); 960 glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); 961 glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); 962 glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); 963} 964static void load_GL_VERSION_2_0(GLADloadproc load) { 965 if(!GLAD_GL_VERSION_2_0) return; 966 glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); 967 glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); 968 glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); 969 glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); 970 glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); 971 glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); 972 glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); 973 glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); 974 glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); 975 glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); 976 glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); 977 glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); 978 glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); 979 glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); 980 glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); 981 glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); 982 glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); 983 glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); 984 glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); 985 glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); 986 glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); 987 glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); 988 glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); 989 glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); 990 glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); 991 glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); 992 glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); 993 glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); 994 glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); 995 glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); 996 glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); 997 glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); 998 glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); 999 glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); 1000 glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); 1001 glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); 1002 glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); 1003 glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); 1004 glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); 1005 glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); 1006 glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); 1007 glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); 1008 glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); 1009 glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); 1010 glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); 1011 glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); 1012 glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); 1013 glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); 1014 glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); 1015 glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); 1016 glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); 1017 glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); 1018 glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); 1019 glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); 1020 glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); 1021 glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); 1022 glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); 1023 glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); 1024 glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); 1025 glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); 1026 glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); 1027 glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); 1028 glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); 1029 glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); 1030 glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); 1031 glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); 1032 glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); 1033 glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); 1034 glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); 1035 glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); 1036 glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); 1037 glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); 1038 glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); 1039 glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); 1040 glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); 1041 glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); 1042 glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); 1043 glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); 1044 glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); 1045 glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); 1046 glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); 1047 glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); 1048 glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); 1049 glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); 1050 glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); 1051 glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); 1052 glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); 1053 glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); 1054 glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); 1055 glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); 1056 glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); 1057 glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); 1058 glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); 1059} 1060static void load_GL_VERSION_2_1(GLADloadproc load) { 1061 if(!GLAD_GL_VERSION_2_1) return; 1062 glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); 1063 glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); 1064 glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); 1065 glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); 1066 glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); 1067 glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); 1068} 1069static void load_GL_VERSION_3_0(GLADloadproc load) { 1070 if(!GLAD_GL_VERSION_3_0) return; 1071 glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); 1072 glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); 1073 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); 1074 glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); 1075 glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); 1076 glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); 1077 glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); 1078 glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); 1079 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); 1080 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); 1081 glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); 1082 glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); 1083 glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); 1084 glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); 1085 glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); 1086 glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); 1087 glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); 1088 glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); 1089 glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); 1090 glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); 1091 glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); 1092 glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); 1093 glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); 1094 glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); 1095 glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); 1096 glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); 1097 glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); 1098 glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); 1099 glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); 1100 glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); 1101 glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); 1102 glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); 1103 glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); 1104 glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); 1105 glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); 1106 glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); 1107 glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); 1108 glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); 1109 glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); 1110 glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); 1111 glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); 1112 glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); 1113 glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); 1114 glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); 1115 glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); 1116 glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); 1117 glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); 1118 glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); 1119 glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); 1120 glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); 1121 glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); 1122 glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); 1123 glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); 1124 glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); 1125 glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); 1126 glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); 1127 glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); 1128 glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); 1129 glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); 1130 glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); 1131 glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); 1132 glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); 1133 glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); 1134 glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); 1135 glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); 1136 glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); 1137 glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); 1138 glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); 1139 glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); 1140 glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); 1141 glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); 1142 glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); 1143 glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); 1144 glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); 1145 glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); 1146 glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); 1147 glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); 1148 glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); 1149 glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); 1150 glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); 1151 glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); 1152 glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); 1153 glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); 1154 glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); 1155} 1156static void load_GL_VERSION_3_1(GLADloadproc load) { 1157 if(!GLAD_GL_VERSION_3_1) return; 1158 glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); 1159 glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); 1160 glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); 1161 glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); 1162 glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); 1163 glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); 1164 glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); 1165 glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); 1166 glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); 1167 glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); 1168 glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); 1169 glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); 1170 glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); 1171 glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); 1172 glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); 1173} 1174static void load_GL_VERSION_3_2(GLADloadproc load) { 1175 if(!GLAD_GL_VERSION_3_2) return; 1176 glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); 1177 glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); 1178 glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); 1179 glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); 1180 glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); 1181 glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); 1182 glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); 1183 glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); 1184 glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); 1185 glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); 1186 glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); 1187 glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); 1188 glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); 1189 glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); 1190 glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); 1191 glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); 1192 glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); 1193 glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); 1194 glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); 1195} 1196static void load_GL_VERSION_3_3(GLADloadproc load) { 1197 if(!GLAD_GL_VERSION_3_3) return; 1198 glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); 1199 glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); 1200 glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); 1201 glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); 1202 glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); 1203 glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); 1204 glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); 1205 glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); 1206 glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); 1207 glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); 1208 glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); 1209 glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); 1210 glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); 1211 glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); 1212 glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); 1213 glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); 1214 glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); 1215 glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); 1216 glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); 1217 glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); 1218 glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); 1219 glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); 1220 glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); 1221 glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); 1222 glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); 1223 glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); 1224 glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); 1225 glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); 1226 glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); 1227 glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); 1228 glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); 1229 glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); 1230 glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); 1231 glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); 1232 glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); 1233 glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); 1234 glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); 1235 glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); 1236 glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); 1237 glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); 1238 glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); 1239 glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); 1240 glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); 1241 glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); 1242 glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); 1243 glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); 1244 glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); 1245 glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); 1246 glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); 1247 glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); 1248 glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); 1249 glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); 1250 glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); 1251 glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); 1252 glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); 1253 glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); 1254 glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); 1255 glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); 1256} 1257static void load_GL_VERSION_4_0(GLADloadproc load) { 1258 if(!GLAD_GL_VERSION_4_0) return; 1259 glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)load("glMinSampleShading"); 1260 glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)load("glBlendEquationi"); 1261 glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)load("glBlendEquationSeparatei"); 1262 glad_glBlendFunci = (PFNGLBLENDFUNCIPROC)load("glBlendFunci"); 1263 glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)load("glBlendFuncSeparatei"); 1264 glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect"); 1265 glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect"); 1266 glad_glUniform1d = (PFNGLUNIFORM1DPROC)load("glUniform1d"); 1267 glad_glUniform2d = (PFNGLUNIFORM2DPROC)load("glUniform2d"); 1268 glad_glUniform3d = (PFNGLUNIFORM3DPROC)load("glUniform3d"); 1269 glad_glUniform4d = (PFNGLUNIFORM4DPROC)load("glUniform4d"); 1270 glad_glUniform1dv = (PFNGLUNIFORM1DVPROC)load("glUniform1dv"); 1271 glad_glUniform2dv = (PFNGLUNIFORM2DVPROC)load("glUniform2dv"); 1272 glad_glUniform3dv = (PFNGLUNIFORM3DVPROC)load("glUniform3dv"); 1273 glad_glUniform4dv = (PFNGLUNIFORM4DVPROC)load("glUniform4dv"); 1274 glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)load("glUniformMatrix2dv"); 1275 glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)load("glUniformMatrix3dv"); 1276 glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)load("glUniformMatrix4dv"); 1277 glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)load("glUniformMatrix2x3dv"); 1278 glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)load("glUniformMatrix2x4dv"); 1279 glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)load("glUniformMatrix3x2dv"); 1280 glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)load("glUniformMatrix3x4dv"); 1281 glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)load("glUniformMatrix4x2dv"); 1282 glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)load("glUniformMatrix4x3dv"); 1283 glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC)load("glGetUniformdv"); 1284 glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)load("glGetSubroutineUniformLocation"); 1285 glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)load("glGetSubroutineIndex"); 1286 glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)load("glGetActiveSubroutineUniformiv"); 1287 glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)load("glGetActiveSubroutineUniformName"); 1288 glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)load("glGetActiveSubroutineName"); 1289 glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)load("glUniformSubroutinesuiv"); 1290 glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)load("glGetUniformSubroutineuiv"); 1291 glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)load("glGetProgramStageiv"); 1292 glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)load("glPatchParameteri"); 1293 glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)load("glPatchParameterfv"); 1294 glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback"); 1295 glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks"); 1296 glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks"); 1297 glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback"); 1298 glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback"); 1299 glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback"); 1300 glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)load("glDrawTransformFeedback"); 1301 glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)load("glDrawTransformFeedbackStream"); 1302 glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)load("glBeginQueryIndexed"); 1303 glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)load("glEndQueryIndexed"); 1304 glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)load("glGetQueryIndexediv"); 1305} 1306static void load_GL_VERSION_4_1(GLADloadproc load) { 1307 if(!GLAD_GL_VERSION_4_1) return; 1308 glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); 1309 glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); 1310 glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); 1311 glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); 1312 glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); 1313 glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary"); 1314 glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary"); 1315 glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); 1316 glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages"); 1317 glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram"); 1318 glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv"); 1319 glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline"); 1320 glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines"); 1321 glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines"); 1322 glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline"); 1323 glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv"); 1324 glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); 1325 glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i"); 1326 glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv"); 1327 glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f"); 1328 glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv"); 1329 glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)load("glProgramUniform1d"); 1330 glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)load("glProgramUniform1dv"); 1331 glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui"); 1332 glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv"); 1333 glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i"); 1334 glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv"); 1335 glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f"); 1336 glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv"); 1337 glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)load("glProgramUniform2d"); 1338 glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)load("glProgramUniform2dv"); 1339 glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui"); 1340 glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv"); 1341 glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i"); 1342 glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv"); 1343 glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f"); 1344 glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv"); 1345 glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)load("glProgramUniform3d"); 1346 glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)load("glProgramUniform3dv"); 1347 glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui"); 1348 glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv"); 1349 glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i"); 1350 glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv"); 1351 glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f"); 1352 glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv"); 1353 glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)load("glProgramUniform4d"); 1354 glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)load("glProgramUniform4dv"); 1355 glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui"); 1356 glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv"); 1357 glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv"); 1358 glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv"); 1359 glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv"); 1360 glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)load("glProgramUniformMatrix2dv"); 1361 glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)load("glProgramUniformMatrix3dv"); 1362 glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)load("glProgramUniformMatrix4dv"); 1363 glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv"); 1364 glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv"); 1365 glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv"); 1366 glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv"); 1367 glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv"); 1368 glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv"); 1369 glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)load("glProgramUniformMatrix2x3dv"); 1370 glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)load("glProgramUniformMatrix3x2dv"); 1371 glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)load("glProgramUniformMatrix2x4dv"); 1372 glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)load("glProgramUniformMatrix4x2dv"); 1373 glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)load("glProgramUniformMatrix3x4dv"); 1374 glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)load("glProgramUniformMatrix4x3dv"); 1375 glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline"); 1376 glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog"); 1377 glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)load("glVertexAttribL1d"); 1378 glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)load("glVertexAttribL2d"); 1379 glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)load("glVertexAttribL3d"); 1380 glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)load("glVertexAttribL4d"); 1381 glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)load("glVertexAttribL1dv"); 1382 glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)load("glVertexAttribL2dv"); 1383 glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)load("glVertexAttribL3dv"); 1384 glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)load("glVertexAttribL4dv"); 1385 glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)load("glVertexAttribLPointer"); 1386 glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)load("glGetVertexAttribLdv"); 1387 glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)load("glViewportArrayv"); 1388 glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)load("glViewportIndexedf"); 1389 glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)load("glViewportIndexedfv"); 1390 glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC)load("glScissorArrayv"); 1391 glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)load("glScissorIndexed"); 1392 glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)load("glScissorIndexedv"); 1393 glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)load("glDepthRangeArrayv"); 1394 glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)load("glDepthRangeIndexed"); 1395 glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC)load("glGetFloati_v"); 1396 glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)load("glGetDoublei_v"); 1397} 1398static void load_GL_AMD_debug_output(GLADloadproc load) { 1399 if(!GLAD_GL_AMD_debug_output) return; 1400 glad_glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)load("glDebugMessageEnableAMD"); 1401 glad_glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)load("glDebugMessageInsertAMD"); 1402 glad_glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)load("glDebugMessageCallbackAMD"); 1403 glad_glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)load("glGetDebugMessageLogAMD"); 1404} 1405static void load_GL_ARB_buffer_storage(GLADloadproc load) { 1406 if(!GLAD_GL_ARB_buffer_storage) return; 1407 glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage"); 1408} 1409static void load_GL_ARB_debug_output(GLADloadproc load) { 1410 if(!GLAD_GL_ARB_debug_output) return; 1411 glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)load("glDebugMessageControlARB"); 1412 glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)load("glDebugMessageInsertARB"); 1413 glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)load("glDebugMessageCallbackARB"); 1414 glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)load("glGetDebugMessageLogARB"); 1415} 1416static void load_GL_ARB_internalformat_query(GLADloadproc load) { 1417 if(!GLAD_GL_ARB_internalformat_query) return; 1418 glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ"); 1419} 1420static void load_GL_ARB_internalformat_query2(GLADloadproc load) { 1421 if(!GLAD_GL_ARB_internalformat_query2) return; 1422 glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)load("glGetInternalformati64v"); 1423} 1424static void load_GL_ARB_texture_storage(GLADloadproc load) { 1425 if(!GLAD_GL_ARB_texture_storage) return; 1426 glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)load("glTexStorage1D"); 1427 glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D"); 1428 glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D"); 1429} 1430static void load_GL_ARB_texture_storage_multisample(GLADloadproc load) { 1431 if(!GLAD_GL_ARB_texture_storage_multisample) return; 1432 glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load("glTexStorage2DMultisample"); 1433 glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)load("glTexStorage3DMultisample"); 1434} 1435static void load_GL_EXT_debug_label(GLADloadproc load) { 1436 if(!GLAD_GL_EXT_debug_label) return; 1437 glad_glLabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)load("glLabelObjectEXT"); 1438 glad_glGetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)load("glGetObjectLabelEXT"); 1439} 1440static void load_GL_EXT_debug_marker(GLADloadproc load) { 1441 if(!GLAD_GL_EXT_debug_marker) return; 1442 glad_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)load("glInsertEventMarkerEXT"); 1443 glad_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)load("glPushGroupMarkerEXT"); 1444 glad_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)load("glPopGroupMarkerEXT"); 1445} 1446static void load_GL_KHR_debug(GLADloadproc load) { 1447 if(!GLAD_GL_KHR_debug) return; 1448 glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)load("glDebugMessageControl"); 1449 glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)load("glDebugMessageInsert"); 1450 glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)load("glDebugMessageCallback"); 1451 glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)load("glGetDebugMessageLog"); 1452 glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)load("glPushDebugGroup"); 1453 glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)load("glPopDebugGroup"); 1454 glad_glObjectLabel = (PFNGLOBJECTLABELPROC)load("glObjectLabel"); 1455 glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)load("glGetObjectLabel"); 1456 glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)load("glObjectPtrLabel"); 1457 glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel"); 1458 glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); 1459 glad_glDebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC)load("glDebugMessageControlKHR"); 1460 glad_glDebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC)load("glDebugMessageInsertKHR"); 1461 glad_glDebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC)load("glDebugMessageCallbackKHR"); 1462 glad_glGetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC)load("glGetDebugMessageLogKHR"); 1463 glad_glPushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC)load("glPushDebugGroupKHR"); 1464 glad_glPopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC)load("glPopDebugGroupKHR"); 1465 glad_glObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC)load("glObjectLabelKHR"); 1466 glad_glGetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC)load("glGetObjectLabelKHR"); 1467 glad_glObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC)load("glObjectPtrLabelKHR"); 1468 glad_glGetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC)load("glGetObjectPtrLabelKHR"); 1469 glad_glGetPointervKHR = (PFNGLGETPOINTERVKHRPROC)load("glGetPointervKHR"); 1470} 1471static int find_extensionsGL(void) { 1472 if (!get_exts()) return 0; 1473 GLAD_GL_AMD_debug_output = has_ext("GL_AMD_debug_output"); 1474 GLAD_GL_ARB_buffer_storage = has_ext("GL_ARB_buffer_storage"); 1475 GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output"); 1476 GLAD_GL_ARB_internalformat_query = has_ext("GL_ARB_internalformat_query"); 1477 GLAD_GL_ARB_internalformat_query2 = has_ext("GL_ARB_internalformat_query2"); 1478 GLAD_GL_ARB_texture_cube_map_array = has_ext("GL_ARB_texture_cube_map_array"); 1479 GLAD_GL_ARB_texture_storage = has_ext("GL_ARB_texture_storage"); 1480 GLAD_GL_ARB_texture_storage_multisample = has_ext("GL_ARB_texture_storage_multisample"); 1481 GLAD_GL_EXT_debug_label = has_ext("GL_EXT_debug_label"); 1482 GLAD_GL_EXT_debug_marker = has_ext("GL_EXT_debug_marker"); 1483 GLAD_GL_KHR_debug = has_ext("GL_KHR_debug"); 1484 free_exts(); 1485 return 1; 1486} 1487 1488static void find_coreGL(void) { 1489 1490 /* Thank you @elmindreda 1491 * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 1492 * https://github.com/glfw/glfw/blob/master/src/context.c#L36 1493 */ 1494 int i, major, minor; 1495 1496 const char* version; 1497 const char* prefixes[] = { 1498 "OpenGL ES-CM ", 1499 "OpenGL ES-CL ", 1500 "OpenGL ES ", 1501 NULL 1502 }; 1503 1504 version = (const char*) glGetString(GL_VERSION); 1505 if (!version) return; 1506 1507 for (i = 0; prefixes[i]; i++) { 1508 const size_t length = strlen(prefixes[i]); 1509 if (strncmp(version, prefixes[i], length) == 0) { 1510 version += length; 1511 break; 1512 } 1513 } 1514 1515/* PR #18 */ 1516#ifdef _MSC_VER 1517 sscanf_s(version, "%d.%d", &major, &minor); 1518#else 1519 sscanf(version, "%d.%d", &major, &minor); 1520#endif 1521 1522 GLVersion.major = major; GLVersion.minor = minor; 1523 max_loaded_major = major; max_loaded_minor = minor; 1524 GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; 1525 GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; 1526 GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; 1527 GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; 1528 GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; 1529 GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; 1530 GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; 1531 GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; 1532 GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; 1533 GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; 1534 GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; 1535 GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; 1536 GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4; 1537 GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; 1538 if (GLVersion.major > 4 || (GLVersion.major >= 4 && GLVersion.minor >= 1)) { 1539 max_loaded_major = 4; 1540 max_loaded_minor = 1; 1541 } 1542} 1543 1544int gladLoadGLLoader(GLADloadproc load) { 1545 GLVersion.major = 0; GLVersion.minor = 0; 1546 glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); 1547 if(glGetString == NULL) return 0; 1548 if(glGetString(GL_VERSION) == NULL) return 0; 1549 find_coreGL(); 1550 load_GL_VERSION_1_0(load); 1551 load_GL_VERSION_1_1(load); 1552 load_GL_VERSION_1_2(load); 1553 load_GL_VERSION_1_3(load); 1554 load_GL_VERSION_1_4(load); 1555 load_GL_VERSION_1_5(load); 1556 load_GL_VERSION_2_0(load); 1557 load_GL_VERSION_2_1(load); 1558 load_GL_VERSION_3_0(load); 1559 load_GL_VERSION_3_1(load); 1560 load_GL_VERSION_3_2(load); 1561 load_GL_VERSION_3_3(load); 1562 load_GL_VERSION_4_0(load); 1563 load_GL_VERSION_4_1(load); 1564 1565 if (!find_extensionsGL()) return 0; 1566 load_GL_AMD_debug_output(load); 1567 load_GL_ARB_buffer_storage(load); 1568 load_GL_ARB_debug_output(load); 1569 load_GL_ARB_internalformat_query(load); 1570 load_GL_ARB_internalformat_query2(load); 1571 load_GL_ARB_texture_storage(load); 1572 load_GL_ARB_texture_storage_multisample(load); 1573 load_GL_EXT_debug_label(load); 1574 load_GL_EXT_debug_marker(load); 1575 load_GL_KHR_debug(load); 1576 return GLVersion.major != 0 || GLVersion.minor != 0; 1577} 1578