Update glad-gl3 to it's latest version.

This commit is contained in:
Yamagi 2023-05-14 09:55:37 +02:00
parent a5560ff3a2
commit 83fd0d092e
3 changed files with 456 additions and 451 deletions

View file

@ -2,7 +2,7 @@
#define __khrplatform_h_ #define __khrplatform_h_
/* /*
** Copyright (c) 2008-2009 The Khronos Group Inc. ** Copyright (c) 2008-2018 The Khronos Group Inc.
** **
** Permission is hereby granted, free of charge, to any person obtaining a ** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the ** copy of this software and/or associated documentation files (the
@ -26,18 +26,16 @@
/* Khronos platform-specific types and definitions. /* Khronos platform-specific types and definitions.
* *
* $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $ * The master copy of khrplatform.h is maintained in the Khronos EGL
* Registry repository at https://github.com/KhronosGroup/EGL-Registry
* The last semantic modification to khrplatform.h was at commit ID:
* 67a3e0864c2d75ea5287b9f3d2eb74a745936692
* *
* Adopters may modify this file to suit their platform. Adopters are * Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos * encouraged to submit platform specific modifications to the Khronos
* group so that they can be included in future versions of this file. * group so that they can be included in future versions of this file.
* Please submit changes by sending them to the public Khronos Bugzilla * Please submit changes by filing pull requests or issues on
* (http://khronos.org/bugzilla) by filing a bug against product * the EGL Registry repository linked above.
* "Khronos (general)" component "Registry".
*
* A predefined template which fills in some of the bug fields can be
* reached using http://tinyurl.com/khrplatform-h-bugreport, but you
* must create a Bugzilla login first.
* *
* *
* See the Implementer's Guidelines for information about where this file * See the Implementer's Guidelines for information about where this file
@ -92,18 +90,25 @@
* int arg2) KHRONOS_APIATTRIBUTES; * int arg2) KHRONOS_APIATTRIBUTES;
*/ */
#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
# define KHRONOS_STATIC 1
#endif
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Definition of KHRONOS_APICALL * Definition of KHRONOS_APICALL
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
* This precedes the return type of the function in the function prototype. * This precedes the return type of the function in the function prototype.
*/ */
#if defined(_WIN32) && !defined(__SCITECH_SNAP__) #if defined(KHRONOS_STATIC)
/* If the preprocessor constant KHRONOS_STATIC is defined, make the
* header compatible with static linking. */
# define KHRONOS_APICALL
#elif defined(_WIN32)
# define KHRONOS_APICALL __declspec(dllimport) # define KHRONOS_APICALL __declspec(dllimport)
#elif defined (__SYMBIAN32__) #elif defined (__SYMBIAN32__)
# define KHRONOS_APICALL IMPORT_C # define KHRONOS_APICALL IMPORT_C
#elif defined(__ANDROID__) #elif defined(__ANDROID__)
# include <sys/cdefs.h> # define KHRONOS_APICALL __attribute__((visibility("default")))
# define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__
#else #else
# define KHRONOS_APICALL # define KHRONOS_APICALL
#endif #endif
@ -148,6 +153,20 @@ typedef int64_t khronos_int64_t;
typedef uint64_t khronos_uint64_t; typedef uint64_t khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_INT64 1
#define KHRONOS_SUPPORT_FLOAT 1 #define KHRONOS_SUPPORT_FLOAT 1
/*
* To support platform where unsigned long cannot be used interchangeably with
* inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
* Ideally, we could just use (u)intptr_t everywhere, but this could result in
* ABI breakage if khronos_uintptr_t is changed from unsigned long to
* unsigned long long or similar (this results in different C++ name mangling).
* To avoid changes for existing platforms, we restrict usage of intptr_t to
* platforms where the size of a pointer is larger than the size of long.
*/
#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
#define KHRONOS_USE_INTPTR_T
#endif
#endif
#elif defined(__VMS ) || defined(__sgi) #elif defined(__VMS ) || defined(__sgi)
@ -230,14 +249,21 @@ typedef unsigned short int khronos_uint16_t;
* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
* to be the only LLP64 architecture in current use. * to be the only LLP64 architecture in current use.
*/ */
#ifdef _WIN64 #ifdef KHRONOS_USE_INTPTR_T
typedef intptr_t khronos_intptr_t;
typedef uintptr_t khronos_uintptr_t;
#elif defined(_WIN64)
typedef signed long long int khronos_intptr_t; typedef signed long long int khronos_intptr_t;
typedef unsigned long long int khronos_uintptr_t; typedef unsigned long long int khronos_uintptr_t;
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else #else
typedef signed long int khronos_intptr_t; typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t; typedef unsigned long int khronos_uintptr_t;
#endif
#if defined(_WIN64)
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else
typedef signed long int khronos_ssize_t; typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t; typedef unsigned long int khronos_usize_t;
#endif #endif

View file

@ -1,6 +1,6 @@
/* /*
OpenGL loader generated by glad 0.1.12a0 on Wed Dec 21 00:44:13 2016. OpenGL loader generated by glad 0.1.36 on Sun May 14 07:53:38 2023.
Language/Generator: C/C++ Language/Generator: C/C++
Specification: gl Specification: gl
@ -12,11 +12,12 @@
Loader: False Loader: False
Local files: False Local files: False
Omit khrplatform: False Omit khrplatform: False
Reproducible: False
Commandline: Commandline:
--profile="core" --api="gl=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_debug_output,GL_EXT_texture_filter_anisotropic" --profile="core" --api="gl=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_debug_output,GL_EXT_texture_filter_anisotropic"
Online: Online:
http://glad.dav1d.de/#profile=core&language=c&specification=gl&api=gl%3D3.2&extensions=GL_ARB_debug_output&extensions=GL_EXT_texture_filter_anisotropic https://glad.dav1d.de/#profile=core&language=c&specification=gl&api=gl%3D3.2&extensions=GL_ARB_debug_output&extensions=GL_EXT_texture_filter_anisotropic
*/ */
@ -29,10 +30,7 @@
#define __gl_h_ #define __gl_h_
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
#ifndef WIN32_LEAN_AND_MEAN #define APIENTRY __stdcall
#define WIN32_LEAN_AND_MEAN 1
#endif
#include <windows.h>
#endif #endif
#ifndef APIENTRY #ifndef APIENTRY
@ -42,6 +40,10 @@
#define APIENTRYP APIENTRY * #define APIENTRYP APIENTRY *
#endif #endif
#ifndef GLAPIENTRY
#define GLAPIENTRY APIENTRY
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -55,7 +57,7 @@ typedef void* (* GLADloadproc)(const char *name);
#ifndef GLAPI #ifndef GLAPI
# if defined(GLAD_GLAPI_EXPORT) # if defined(GLAD_GLAPI_EXPORT)
# if defined(WIN32) || defined(__CYGWIN__) # if defined(_WIN32) || defined(__CYGWIN__)
# if defined(GLAD_GLAPI_EXPORT_BUILD) # if defined(GLAD_GLAPI_EXPORT_BUILD)
# if defined(__GNUC__) # if defined(__GNUC__)
# define GLAPI __attribute__ ((dllexport)) extern # define GLAPI __attribute__ ((dllexport)) extern
@ -82,61 +84,24 @@ typedef void* (* GLADloadproc)(const char *name);
GLAPI struct gladGLversionStruct GLVersion; GLAPI struct gladGLversionStruct GLVersion;
GLAPI int gladLoadGLLoader(GLADloadproc); GLAPI int gladLoadGLLoader(GLADloadproc);
#include <stddef.h>
#include <KHR/khrplatform.h> #include <KHR/khrplatform.h>
#ifndef GLEXT_64_TYPES_DEFINED
/* This code block is duplicated in glxext.h, so must be protected */
#define GLEXT_64_TYPES_DEFINED
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
/* (as used in the GL_EXT_timer_query extension). */
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#include <inttypes.h>
#elif defined(__sun__) || defined(__digital__)
#include <inttypes.h>
#if defined(__STDC__)
#if defined(__arch64__) || defined(_LP64)
typedef long int int64_t;
typedef unsigned long int uint64_t;
#else
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#endif /* __arch64__ */
#endif /* __STDC__ */
#elif defined( __VMS ) || defined(__sgi)
#include <inttypes.h>
#elif defined(__SCO__) || defined(__USLC__)
#include <stdint.h>
#elif defined(__UNIXOS2__) || defined(__SOL64__)
typedef long int int32_t;
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#elif defined(_WIN32) && defined(__GNUC__)
#include <stdint.h>
#elif defined(_WIN32)
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
/* Fallback if nothing above works */
#include <inttypes.h>
#endif
#endif
typedef unsigned int GLenum; typedef unsigned int GLenum;
typedef unsigned char GLboolean; typedef unsigned char GLboolean;
typedef unsigned int GLbitfield; typedef unsigned int GLbitfield;
typedef void GLvoid; typedef void GLvoid;
typedef signed char GLbyte; typedef khronos_int8_t GLbyte;
typedef short GLshort; typedef khronos_uint8_t GLubyte;
typedef khronos_int16_t GLshort;
typedef khronos_uint16_t GLushort;
typedef int GLint; typedef int GLint;
typedef int GLclampx;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint; typedef unsigned int GLuint;
typedef khronos_int32_t GLclampx;
typedef int GLsizei; typedef int GLsizei;
typedef float GLfloat; typedef khronos_float_t GLfloat;
typedef float GLclampf; typedef khronos_float_t GLclampf;
typedef double GLdouble; typedef double GLdouble;
typedef double GLclampd; typedef double GLclampd;
typedef void *GLeglClientBufferEXT;
typedef void *GLeglImageOES; typedef void *GLeglImageOES;
typedef char GLchar; typedef char GLchar;
typedef char GLcharARB; typedef char GLcharARB;
@ -145,17 +110,17 @@ typedef void *GLhandleARB;
#else #else
typedef unsigned int GLhandleARB; typedef unsigned int GLhandleARB;
#endif #endif
typedef unsigned short GLhalfARB; typedef khronos_uint16_t GLhalf;
typedef unsigned short GLhalf; typedef khronos_uint16_t GLhalfARB;
typedef GLint GLfixed; typedef khronos_int32_t GLfixed;
typedef ptrdiff_t GLintptr; typedef khronos_intptr_t GLintptr;
typedef ptrdiff_t GLsizeiptr; typedef khronos_intptr_t GLintptrARB;
typedef int64_t GLint64; typedef khronos_ssize_t GLsizeiptr;
typedef uint64_t GLuint64; typedef khronos_ssize_t GLsizeiptrARB;
typedef ptrdiff_t GLintptrARB; typedef khronos_int64_t GLint64;
typedef ptrdiff_t GLsizeiptrARB; typedef khronos_int64_t GLint64EXT;
typedef int64_t GLint64EXT; typedef khronos_uint64_t GLuint64;
typedef uint64_t GLuint64EXT; typedef khronos_uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync; typedef struct __GLsync *GLsync;
struct _cl_context; struct _cl_context;
struct _cl_event; struct _cl_event;
@ -165,6 +130,7 @@ typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLen
typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef unsigned short GLhalfNV; typedef unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV; typedef GLintptr GLvdpauSurfaceNV;
typedef void (APIENTRY *GLVULKANPROCNV)(void);
#define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_DEPTH_BUFFER_BIT 0x00000100
#define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_STENCIL_BUFFER_BIT 0x00000400
#define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_COLOR_BUFFER_BIT 0x00004000
@ -245,7 +211,6 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_BLEND_SRC 0x0BE1 #define GL_BLEND_SRC 0x0BE1
#define GL_BLEND 0x0BE2 #define GL_BLEND 0x0BE2
#define GL_LOGIC_OP_MODE 0x0BF0 #define GL_LOGIC_OP_MODE 0x0BF0
#define GL_COLOR_LOGIC_OP 0x0BF2
#define GL_DRAW_BUFFER 0x0C01 #define GL_DRAW_BUFFER 0x0C01
#define GL_READ_BUFFER 0x0C02 #define GL_READ_BUFFER 0x0C02
#define GL_SCISSOR_BOX 0x0C10 #define GL_SCISSOR_BOX 0x0C10
@ -273,21 +238,9 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_SUBPIXEL_BITS 0x0D50 #define GL_SUBPIXEL_BITS 0x0D50
#define GL_TEXTURE_1D 0x0DE0 #define GL_TEXTURE_1D 0x0DE0
#define GL_TEXTURE_2D 0x0DE1 #define GL_TEXTURE_2D 0x0DE1
#define GL_POLYGON_OFFSET_UNITS 0x2A00
#define GL_POLYGON_OFFSET_POINT 0x2A01
#define GL_POLYGON_OFFSET_LINE 0x2A02
#define GL_POLYGON_OFFSET_FILL 0x8037
#define GL_POLYGON_OFFSET_FACTOR 0x8038
#define GL_TEXTURE_BINDING_1D 0x8068
#define GL_TEXTURE_BINDING_2D 0x8069
#define GL_TEXTURE_WIDTH 0x1000 #define GL_TEXTURE_WIDTH 0x1000
#define GL_TEXTURE_HEIGHT 0x1001 #define GL_TEXTURE_HEIGHT 0x1001
#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
#define GL_TEXTURE_BORDER_COLOR 0x1004 #define GL_TEXTURE_BORDER_COLOR 0x1004
#define GL_TEXTURE_RED_SIZE 0x805C
#define GL_TEXTURE_GREEN_SIZE 0x805D
#define GL_TEXTURE_BLUE_SIZE 0x805E
#define GL_TEXTURE_ALPHA_SIZE 0x805F
#define GL_DONT_CARE 0x1100 #define GL_DONT_CARE 0x1100
#define GL_FASTEST 0x1101 #define GL_FASTEST 0x1101
#define GL_NICEST 0x1102 #define GL_NICEST 0x1102
@ -298,7 +251,6 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_INT 0x1404 #define GL_INT 0x1404
#define GL_UNSIGNED_INT 0x1405 #define GL_UNSIGNED_INT 0x1405
#define GL_FLOAT 0x1406 #define GL_FLOAT 0x1406
#define GL_DOUBLE 0x140A
#define GL_CLEAR 0x1500 #define GL_CLEAR 0x1500
#define GL_AND 0x1501 #define GL_AND 0x1501
#define GL_AND_REVERSE 0x1502 #define GL_AND_REVERSE 0x1502
@ -348,9 +300,23 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_MIN_FILTER 0x2801
#define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_S 0x2802
#define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE_WRAP_T 0x2803
#define GL_REPEAT 0x2901
#define GL_COLOR_LOGIC_OP 0x0BF2
#define GL_POLYGON_OFFSET_UNITS 0x2A00
#define GL_POLYGON_OFFSET_POINT 0x2A01
#define GL_POLYGON_OFFSET_LINE 0x2A02
#define GL_POLYGON_OFFSET_FILL 0x8037
#define GL_POLYGON_OFFSET_FACTOR 0x8038
#define GL_TEXTURE_BINDING_1D 0x8068
#define GL_TEXTURE_BINDING_2D 0x8069
#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
#define GL_TEXTURE_RED_SIZE 0x805C
#define GL_TEXTURE_GREEN_SIZE 0x805D
#define GL_TEXTURE_BLUE_SIZE 0x805E
#define GL_TEXTURE_ALPHA_SIZE 0x805F
#define GL_DOUBLE 0x140A
#define GL_PROXY_TEXTURE_1D 0x8063 #define GL_PROXY_TEXTURE_1D 0x8063
#define GL_PROXY_TEXTURE_2D 0x8064 #define GL_PROXY_TEXTURE_2D 0x8064
#define GL_REPEAT 0x2901
#define GL_R3_G3_B2 0x2A10 #define GL_R3_G3_B2 0x2A10
#define GL_RGB4 0x804F #define GL_RGB4 0x804F
#define GL_RGB5 0x8050 #define GL_RGB5 0x8050
@ -476,15 +442,17 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_TEXTURE_DEPTH_SIZE 0x884A #define GL_TEXTURE_DEPTH_SIZE 0x884A
#define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_MODE 0x884C
#define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_TEXTURE_COMPARE_FUNC 0x884D
#define GL_FUNC_ADD 0x8006 #define GL_BLEND_COLOR 0x8005
#define GL_FUNC_SUBTRACT 0x800A #define GL_BLEND_EQUATION 0x8009
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
#define GL_MIN 0x8007
#define GL_MAX 0x8008
#define GL_CONSTANT_COLOR 0x8001 #define GL_CONSTANT_COLOR 0x8001
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
#define GL_CONSTANT_ALPHA 0x8003 #define GL_CONSTANT_ALPHA 0x8003
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
#define GL_FUNC_ADD 0x8006
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
#define GL_FUNC_SUBTRACT 0x800A
#define GL_MIN 0x8007
#define GL_MAX 0x8008
#define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_SIZE 0x8764
#define GL_BUFFER_USAGE 0x8765 #define GL_BUFFER_USAGE 0x8765
#define GL_QUERY_COUNTER_BITS 0x8864 #define GL_QUERY_COUNTER_BITS 0x8864
@ -805,7 +773,6 @@ typedef GLintptr GLvdpauSurfaceNV;
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
#define GL_MAX_SAMPLES 0x8D57 #define GL_MAX_SAMPLES 0x8D57
#define GL_INDEX 0x8222
#define GL_FRAMEBUFFER_SRGB 0x8DB9 #define GL_FRAMEBUFFER_SRGB 0x8DB9
#define GL_HALF_FLOAT 0x140B #define GL_HALF_FLOAT 0x140B
#define GL_MAP_READ_BIT 0x0001 #define GL_MAP_READ_BIT 0x0001
@ -1038,10 +1005,10 @@ GLAPI PFNGLDISABLEPROC glad_glDisable;
typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap); typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap);
GLAPI PFNGLENABLEPROC glad_glEnable; GLAPI PFNGLENABLEPROC glad_glEnable;
#define glEnable glad_glEnable #define glEnable glad_glEnable
typedef void (APIENTRYP PFNGLFINISHPROC)(); typedef void (APIENTRYP PFNGLFINISHPROC)(void);
GLAPI PFNGLFINISHPROC glad_glFinish; GLAPI PFNGLFINISHPROC glad_glFinish;
#define glFinish glad_glFinish #define glFinish glad_glFinish
typedef void (APIENTRYP PFNGLFLUSHPROC)(); typedef void (APIENTRYP PFNGLFLUSHPROC)(void);
GLAPI PFNGLFLUSHPROC glad_glFlush; GLAPI PFNGLFLUSHPROC glad_glFlush;
#define glFlush glad_glFlush #define glFlush glad_glFlush
typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
@ -1077,7 +1044,7 @@ GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data); typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data);
GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev; GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev;
#define glGetDoublev glad_glGetDoublev #define glGetDoublev glad_glGetDoublev
typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(); typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(void);
GLAPI PFNGLGETERRORPROC glad_glGetError; GLAPI PFNGLGETERRORPROC glad_glGetError;
#define glGetError glad_glGetError #define glGetError glad_glGetError
typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data); typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data);
@ -1107,7 +1074,7 @@ GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap);
GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; GLAPI PFNGLISENABLEDPROC glad_glIsEnabled;
#define glIsEnabled glad_glIsEnabled #define glIsEnabled glad_glIsEnabled
typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble near, GLdouble far); typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange; GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange;
#define glDepthRange glad_glDepthRange #define glDepthRange glad_glDepthRange
typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
@ -1323,7 +1290,7 @@ GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader); typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader);
GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader; GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader;
#define glCompileShader glad_glCompileShader #define glCompileShader glad_glCompileShader
typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(); typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(void);
GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram; GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
#define glCreateProgram glad_glCreateProgram #define glCreateProgram glad_glCreateProgram
typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type); typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type);
@ -1625,7 +1592,7 @@ GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi;
typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
#define glBeginTransformFeedback glad_glBeginTransformFeedback #define glBeginTransformFeedback glad_glBeginTransformFeedback
typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(); typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(void);
GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
#define glEndTransformFeedback glad_glEndTransformFeedback #define glEndTransformFeedback glad_glEndTransformFeedback
typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
@ -1646,7 +1613,7 @@ GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor;
typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
#define glBeginConditionalRender glad_glBeginConditionalRender #define glBeginConditionalRender glad_glBeginConditionalRender
typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(); typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(void);
GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
#define glEndConditionalRender glad_glEndConditionalRender #define glEndConditionalRender glad_glEndConditionalRender
typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
@ -1933,7 +1900,7 @@ GLAPI PFNGLWAITSYNCPROC glad_glWaitSync;
typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data); typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data);
GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v; GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
#define glGetInteger64v glad_glGetInteger64v #define glGetInteger64v glad_glGetInteger64v
typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values);
GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv; GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv;
#define glGetSynciv glad_glGetSynciv #define glGetSynciv glad_glGetSynciv
typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data);

View file

@ -1,6 +1,6 @@
/* /*
OpenGL loader generated by glad 0.1.12a0 on Wed Dec 21 00:44:13 2016. OpenGL loader generated by glad 0.1.36 on Sun May 14 07:53:38 2023.
Language/Generator: C/C++ Language/Generator: C/C++
Specification: gl Specification: gl
@ -12,11 +12,12 @@
Loader: False Loader: False
Local files: False Local files: False
Omit khrplatform: False Omit khrplatform: False
Reproducible: False
Commandline: Commandline:
--profile="core" --api="gl=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_debug_output,GL_EXT_texture_filter_anisotropic" --profile="core" --api="gl=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_debug_output,GL_EXT_texture_filter_anisotropic"
Online: Online:
http://glad.dav1d.de/#profile=core&language=c&specification=gl&api=gl%3D3.2&extensions=GL_ARB_debug_output&extensions=GL_EXT_texture_filter_anisotropic https://glad.dav1d.de/#profile=core&language=c&specification=gl&api=gl%3D3.2&extensions=GL_ARB_debug_output&extensions=GL_EXT_texture_filter_anisotropic
*/ */
#include <stdio.h> #include <stdio.h>
@ -24,7 +25,7 @@
#include <string.h> #include <string.h>
#include <glad/glad.h> #include <glad/glad.h>
struct gladGLversionStruct GLVersion; struct gladGLversionStruct GLVersion = { 0, 0 };
#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) #if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
#define _GLAD_IS_SOME_NEW_VERSION 1 #define _GLAD_IS_SOME_NEW_VERSION 1
@ -35,7 +36,7 @@ static int max_loaded_minor;
static const char *exts = NULL; static const char *exts = NULL;
static int num_exts_i = 0; static int num_exts_i = 0;
static const char **exts_i = NULL; static char **exts_i = NULL;
static int get_exts(void) { static int get_exts(void) {
#ifdef _GLAD_IS_SOME_NEW_VERSION #ifdef _GLAD_IS_SOME_NEW_VERSION
@ -44,20 +45,27 @@ static int get_exts(void) {
exts = (const char *)glGetString(GL_EXTENSIONS); exts = (const char *)glGetString(GL_EXTENSIONS);
#ifdef _GLAD_IS_SOME_NEW_VERSION #ifdef _GLAD_IS_SOME_NEW_VERSION
} else { } else {
int index; unsigned int index;
num_exts_i = 0; num_exts_i = 0;
glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
if (num_exts_i > 0) { if (num_exts_i > 0) {
exts_i = (const char **)realloc((void *)exts_i, num_exts_i * sizeof *exts_i); exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i));
} }
if (exts_i == NULL) { if (exts_i == NULL) {
return 0; return 0;
} }
for(index = 0; index < num_exts_i; index++) { for(index = 0; index < (unsigned)num_exts_i; index++) {
exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index); const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index);
size_t len = strlen(gl_str_tmp);
char *local_str = (char*)malloc((len+1) * sizeof(char));
if(local_str != NULL) {
memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char));
}
exts_i[index] = local_str;
} }
} }
#endif #endif
@ -66,7 +74,11 @@ static int get_exts(void) {
static void free_exts(void) { static void free_exts(void) {
if (exts_i != NULL) { if (exts_i != NULL) {
free((char **)exts_i); int index;
for(index = 0; index < num_exts_i; index++) {
free((char *)exts_i[index]);
}
free((void *)exts_i);
exts_i = NULL; exts_i = NULL;
} }
} }
@ -99,11 +111,11 @@ static int has_ext(const char *ext) {
#ifdef _GLAD_IS_SOME_NEW_VERSION #ifdef _GLAD_IS_SOME_NEW_VERSION
} else { } else {
int index; int index;
if(exts_i == NULL) return 0;
for(index = 0; index < num_exts_i; index++) { for(index = 0; index < num_exts_i; index++) {
const char *e = exts_i[index]; const char *e = exts_i[index];
if(strcmp(e, ext) == 0) { if(exts_i[index] != NULL && strcmp(e, ext) == 0) {
return 1; return 1;
} }
} }
@ -112,339 +124,339 @@ static int has_ext(const char *ext) {
return 0; return 0;
} }
int GLAD_GL_VERSION_1_0; int GLAD_GL_VERSION_1_0 = 0;
int GLAD_GL_VERSION_1_1; int GLAD_GL_VERSION_1_1 = 0;
int GLAD_GL_VERSION_1_2; int GLAD_GL_VERSION_1_2 = 0;
int GLAD_GL_VERSION_1_3; int GLAD_GL_VERSION_1_3 = 0;
int GLAD_GL_VERSION_1_4; int GLAD_GL_VERSION_1_4 = 0;
int GLAD_GL_VERSION_1_5; int GLAD_GL_VERSION_1_5 = 0;
int GLAD_GL_VERSION_2_0; int GLAD_GL_VERSION_2_0 = 0;
int GLAD_GL_VERSION_2_1; int GLAD_GL_VERSION_2_1 = 0;
int GLAD_GL_VERSION_3_0; int GLAD_GL_VERSION_3_0 = 0;
int GLAD_GL_VERSION_3_1; int GLAD_GL_VERSION_3_1 = 0;
int GLAD_GL_VERSION_3_2; int GLAD_GL_VERSION_3_2 = 0;
PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
PFNGLFLUSHPROC glad_glFlush; PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL;
PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL;
PFNGLCLEARCOLORPROC glad_glClearColor; PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL;
PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL;
PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL;
PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL;
PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
PFNGLLINKPROGRAMPROC glad_glLinkProgram; PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL;
PFNGLBINDTEXTUREPROC glad_glBindTexture; PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
PFNGLFENCESYNCPROC glad_glFenceSync; PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
PFNGLUNIFORM3UIPROC glad_glUniform3ui; PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL;
PFNGLGETSTRINGPROC glad_glGetString; PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
PFNGLDETACHSHADERPROC glad_glDetachShader; PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; PFNGLCLAMPCOLORPROC glad_glClampColor = NULL;
PFNGLGENBUFFERSPROC glad_glGenBuffers; PFNGLCLEARPROC glad_glClear = NULL;
PFNGLENDQUERYPROC glad_glEndQuery; PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL;
PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL;
PFNGLLINEWIDTHPROC glad_glLineWidth; PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL;
PFNGLUNIFORM2FVPROC glad_glUniform2fv; PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL;
PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL;
PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
PFNGLCOMPILESHADERPROC glad_glCompileShader; PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL;
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; PFNGLCOLORMASKPROC glad_glColorMask = NULL;
PFNGLDELETETEXTURESPROC glad_glDeleteTextures; PFNGLCOLORMASKIPROC glad_glColorMaski = NULL;
PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL;
PFNGLPOLYGONMODEPROC glad_glPolygonMode; PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL;
PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL;
PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL;
PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL;
PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL;
PFNGLISSYNCPROC glad_glIsSync; PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
PFNGLCLAMPCOLORPROC glad_glClampColor; PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL;
PFNGLUNIFORM4IVPROC glad_glUniform4iv; PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL;
PFNGLCLEARSTENCILPROC glad_glClearStencil; PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; PFNGLCULLFACEPROC glad_glCullFace = NULL;
PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
PFNGLENABLEIPROC glad_glEnablei; PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL;
PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
PFNGLGENTEXTURESPROC glad_glGenTextures; PFNGLDELETESYNCPROC glad_glDeleteSync = NULL;
PFNGLDEPTHFUNCPROC glad_glDepthFunc; PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL;
PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
PFNGLUNIFORM1FPROC glad_glUniform1f; PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL;
PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; PFNGLDISABLEPROC glad_glDisable = NULL;
PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; PFNGLDISABLEIPROC glad_glDisablei = NULL;
PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
PFNGLCREATESHADERPROC glad_glCreateShader; PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL;
PFNGLISBUFFERPROC glad_glIsBuffer; PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL;
PFNGLUNIFORM1IPROC glad_glUniform1i; PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL;
PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL;
PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL;
PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL;
PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL;
PFNGLDISABLEPROC glad_glDisable; PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL;
PFNGLUNIFORM2IPROC glad_glUniform2i; PFNGLENABLEPROC glad_glEnable = NULL;
PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
PFNGLLOGICOPPROC glad_glLogicOp; PFNGLENABLEIPROC glad_glEnablei = NULL;
PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL;
PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; PFNGLENDQUERYPROC glad_glEndQuery = NULL;
PFNGLCOLORMASKPROC glad_glColorMask; PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL;
PFNGLHINTPROC glad_glHint; PFNGLFENCESYNCPROC glad_glFenceSync = NULL;
PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; PFNGLFINISHPROC glad_glFinish = NULL;
PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; PFNGLFLUSHPROC glad_glFlush = NULL;
PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL;
PFNGLBLENDEQUATIONPROC glad_glBlendEquation; PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL;
PFNGLSAMPLEMASKIPROC glad_glSampleMaski; PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL;
PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL;
PFNGLCULLFACEPROC glad_glCullFace; PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL;
PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
PFNGLUNIFORM4FVPROC glad_glUniform4fv; PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; PFNGLGENQUERIESPROC glad_glGenQueries = NULL;
PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
PFNGLPOINTSIZEPROC glad_glPointSize; PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL;
PFNGLGETSTRINGIPROC glad_glGetStringi; PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL;
PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL;
PFNGLGENQUERIESPROC glad_glGenQueries; PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL;
PFNGLWAITSYNCPROC glad_glWaitSync; PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL;
PFNGLATTACHSHADERPROC glad_glAttachShader; PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL;
PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
PFNGLUNIFORM3IPROC glad_glUniform3i; PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL;
PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL;
PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL;
PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL;
PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL;
PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; PFNGLGETERRORPROC glad_glGetError = NULL;
PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL;
PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
PFNGLUNIFORM3FPROC glad_glUniform3f; PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL;
PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL;
PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL;
PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL;
PFNGLDRAWELEMENTSPROC glad_glDrawElements; PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
PFNGLCOLORMASKIPROC glad_glColorMaski; PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
PFNGLISENABLEDIPROC glad_glIsEnabledi; PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL;
PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL;
PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL;
PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
PFNGLUNIFORM1IVPROC glad_glUniform1iv; PFNGLGETSTRINGPROC glad_glGetString = NULL;
PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; PFNGLGETSTRINGIPROC glad_glGetStringi = NULL;
PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL;
PFNGLREADBUFFERPROC glad_glReadBuffer; PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL;
PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL;
PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL;
PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL;
PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL;
PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL;
PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL;
PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL;
PFNGLGETSHADERIVPROC glad_glGetShaderiv; PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL;
PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL;
PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL;
PFNGLBLENDCOLORPROC glad_glBlendColor; PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL;
PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
PFNGLDEPTHMASKPROC glad_glDepthMask; PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; PFNGLHINTPROC glad_glHint = NULL;
PFNGLDISABLEIPROC glad_glDisablei; PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
PFNGLGETDOUBLEVPROC glad_glGetDoublev; PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL;
PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
PFNGLSHADERSOURCEPROC glad_glShaderSource; PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; PFNGLISQUERYPROC glad_glIsQuery = NULL;
PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; PFNGLISSHADERPROC glad_glIsShader = NULL;
PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; PFNGLISSYNCPROC glad_glIsSync = NULL;
PFNGLDRAWARRAYSPROC glad_glDrawArrays; PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
PFNGLUNIFORM1UIPROC glad_glUniform1ui; PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL;
PFNGLISPROGRAMPROC glad_glIsProgram; PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; PFNGLLOGICOPPROC glad_glLogicOp = NULL;
PFNGLGETSYNCIVPROC glad_glGetSynciv; PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL;
PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL;
PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL;
PFNGLUNIFORM4IPROC glad_glUniform4i; PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL;
PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL;
PFNGLCLEARPROC glad_glClear; PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL;
PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL;
PFNGLUNIFORM2FPROC glad_glUniform2f; PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL;
PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL;
PFNGLACTIVETEXTUREPROC glad_glActiveTexture; PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL;
PFNGLBEGINQUERYPROC glad_glBeginQuery; PFNGLPOINTSIZEPROC glad_glPointSize = NULL;
PFNGLUNIFORM2IVPROC glad_glUniform2iv; PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL;
PFNGLBINDBUFFERPROC glad_glBindBuffer; PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
PFNGLISENABLEDPROC glad_glIsEnabled; PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL;
PFNGLSTENCILOPPROC glad_glStencilOp; PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL;
PFNGLREADPIXELSPROC glad_glReadPixels; PFNGLREADBUFFERPROC glad_glReadBuffer = NULL;
PFNGLCLEARDEPTHPROC glad_glClearDepth; PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
PFNGLUNIFORM4FPROC glad_glUniform4f; PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL;
PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
PFNGLMAPBUFFERPROC glad_glMapBuffer; PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL;
PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; PFNGLSCISSORPROC glad_glScissor = NULL;
PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
PFNGLUNIFORM3FVPROC glad_glUniform3fv; PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
PFNGLBUFFERDATAPROC glad_glBufferData; PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
PFNGLTEXIMAGE1DPROC glad_glTexImage1D; PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
PFNGLDELETESYNCPROC glad_glDeleteSync; PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL;
PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL;
PFNGLGETERRORPROC glad_glGetError; PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL;
PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL;
PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL;
PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL;
PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL;
PFNGLGETFLOATVPROC glad_glGetFloatv; PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
PFNGLUNIFORM3IVPROC glad_glUniform3iv; PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
PFNGLGETTEXIMAGEPROC glad_glGetTexImage; PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL;
PFNGLUSEPROGRAMPROC glad_glUseProgram; PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL;
PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL;
PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL;
PFNGLSTENCILFUNCPROC glad_glStencilFunc; PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL;
PFNGLGETINTEGERVPROC glad_glGetIntegerv; PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL;
PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL;
PFNGLDRAWBUFFERPROC glad_glDrawBuffer; PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
PFNGLUNIFORM1FVPROC glad_glUniform1fv; PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL;
PFNGLISQUERYPROC glad_glIsQuery; PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL;
PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
PFNGLGETQUERYIVPROC glad_glGetQueryiv; PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL;
PFNGLTEXIMAGE2DPROC glad_glTexImage2D; PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL;
PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL;
PFNGLSTENCILMASKPROC glad_glStencilMask; PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
PFNGLUNIFORM4UIPROC glad_glUniform4ui; PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL;
PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL;
PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
PFNGLISTEXTUREPROC glad_glIsTexture; PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL;
PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL;
PFNGLISSHADERPROC glad_glIsShader; PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL;
PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL;
PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL;
PFNGLGETINTEGER64VPROC glad_glGetInteger64v; PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL;
PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL;
PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
PFNGLENABLEPROC glad_glEnable; PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL;
PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL;
PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL;
PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL;
PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
PFNGLDELETEQUERIESPROC glad_glDeleteQueries; PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL;
PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL;
PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL;
PFNGLFINISHPROC glad_glFinish; PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL;
PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL;
PFNGLDELETESHADERPROC glad_glDeleteShader; PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL;
PFNGLBLENDFUNCPROC glad_glBlendFunc; PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL;
PFNGLCREATEPROGRAMPROC glad_glCreateProgram; PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL;
PFNGLTEXIMAGE3DPROC glad_glTexImage3D; PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL;
PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL;
PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL;
PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL;
PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL;
PFNGLVIEWPORTPROC glad_glViewport; PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL;
PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL;
PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL;
PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL;
PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL;
PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL;
PFNGLUNIFORM2UIPROC glad_glUniform2ui; PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL;
PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL;
PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL;
PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL;
PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL;
PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL;
PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL;
PFNGLDEPTHRANGEPROC glad_glDepthRange; PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL;
PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL;
PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL;
PFNGLTEXPARAMETERFPROC glad_glTexParameterf; PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL;
PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL;
PFNGLTEXPARAMETERIPROC glad_glTexParameteri; PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL;
PFNGLFRONTFACEPROC glad_glFrontFace; PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL;
PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL;
PFNGLSCISSORPROC glad_glScissor; PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL;
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL;
PFNGLGETBOOLEANVPROC glad_glGetBooleanv; PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL;
PFNGLTEXBUFFERPROC glad_glTexBuffer; PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL;
PFNGLPIXELSTOREIPROC glad_glPixelStorei; PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL;
PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL;
PFNGLPIXELSTOREFPROC glad_glPixelStoref; PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL;
PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL;
PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; PFNGLVIEWPORTPROC glad_glViewport = NULL;
PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; PFNGLWAITSYNCPROC glad_glWaitSync = NULL;
int GLAD_GL_ARB_debug_output; int GLAD_GL_ARB_debug_output = 0;
int GLAD_GL_EXT_texture_filter_anisotropic; int GLAD_GL_EXT_texture_filter_anisotropic = 0;
PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB; PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB = NULL;
PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB; PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB = NULL;
PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB; PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB = NULL;
PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB; PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB = NULL;
static void load_GL_VERSION_1_0(GLADloadproc load) { static void load_GL_VERSION_1_0(GLADloadproc load) {
if(!GLAD_GL_VERSION_1_0) return; if(!GLAD_GL_VERSION_1_0) return;
glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");