Skip to content

Instantly share code, notes, and snippets.

@Borgleader
Created August 24, 2015 00:25
Show Gist options
  • Save Borgleader/92330652b0ee8288fb9f to your computer and use it in GitHub Desktop.
Save Borgleader/92330652b0ee8288fb9f to your computer and use it in GitHub Desktop.
#include <algorithm>
#include <string.h>
#include <stddef.h>
#include "opengl.hpp"
#if defined(__APPLE__)
#include <mach-o/dyld.h>
static void* AppleGLGetProcAddress (const GLubyte *name)
{
static const struct mach_header* image = NULL;
NSSymbol symbol;
char* symbolName;
if (NULL == image)
{
image = NSAddImage("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", NSADDIMAGE_OPTION_RETURN_ON_ERROR);
}
/* prepend a '_' for the Unix C symbol mangling convention */
symbolName = malloc(strlen((const char*)name) + 2);
strcpy(symbolName+1, (const char*)name);
symbolName[0] = '_';
symbol = NULL;
/* if (NSIsSymbolNameDefined(symbolName))
symbol = NSLookupAndBindSymbol(symbolName); */
symbol = image ? NSLookupSymbolInImage(image, symbolName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) : NULL;
free(symbolName);
return symbol ? NSAddressOfSymbol(symbol) : NULL;
}
#endif /* __APPLE__ */
#if defined(__sgi) || defined (__sun)
#include <dlfcn.h>
#include <stdio.h>
static void* SunGetProcAddress (const GLubyte* name)
{
static void* h = NULL;
static void* gpa;
if (h == NULL)
{
if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
gpa = dlsym(h, "glXGetProcAddress");
}
if (gpa != NULL)
return ((void*(*)(const GLubyte*))gpa)(name);
else
return dlsym(h, (const char*)name);
}
#endif /* __sgi || __sun */
#if defined(_WIN32)
#ifdef _MSC_VER
#pragma warning(disable: 4055)
#pragma warning(disable: 4054)
#endif
static int TestPointer(const PROC pTest)
{
ptrdiff_t iTest;
if(!pTest) return 0;
iTest = (ptrdiff_t)pTest;
if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
return 1;
}
static PROC WinGetProcAddress(const char *name)
{
HMODULE glMod = NULL;
PROC pFunc = wglGetProcAddress((LPCSTR)name);
if(TestPointer(pFunc))
{
return pFunc;
}
glMod = GetModuleHandleA("OpenGL32.dll");
return (PROC)GetProcAddress(glMod, (LPCSTR)name);
}
#define IntGetProcAddress(name) WinGetProcAddress(name)
#else
#if defined(__APPLE__)
#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
#else
#if defined(__sgi) || defined(__sun)
#define IntGetProcAddress(name) SunGetProcAddress(name)
#else /* GLX */
#include <GL/glx.h>
#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
#endif
#endif
#endif
namespace gl
{
namespace exts
{
bool var_EXT_texture_compression_s3tc = false;
bool var_EXT_texture_sRGB = false;
bool var_EXT_texture_filter_anisotropic = false;
bool var_ARB_compressed_texture_pixel_storage = false;
bool var_ARB_conservative_depth = false;
bool var_ARB_ES2_compatibility = false;
bool var_ARB_get_program_binary = false;
bool var_ARB_explicit_uniform_location = false;
bool var_ARB_internalformat_query = false;
bool var_ARB_internalformat_query2 = false;
bool var_ARB_map_buffer_alignment = false;
bool var_ARB_program_interface_query = false;
bool var_ARB_separate_shader_objects = false;
bool var_ARB_shading_language_420pack = false;
bool var_ARB_shading_language_packing = false;
bool var_ARB_texture_buffer_range = false;
bool var_ARB_texture_storage = false;
bool var_ARB_texture_view = false;
bool var_ARB_vertex_attrib_binding = false;
bool var_ARB_viewport_array = false;
bool var_ARB_arrays_of_arrays = false;
bool var_ARB_clear_buffer_object = false;
bool var_ARB_copy_image = false;
bool var_ARB_ES3_compatibility = false;
bool var_ARB_fragment_layer_viewport = false;
bool var_ARB_framebuffer_no_attachments = false;
bool var_ARB_invalidate_subdata = false;
bool var_ARB_robust_buffer_access_behavior = false;
bool var_ARB_stencil_texturing = false;
bool var_ARB_texture_query_levels = false;
bool var_ARB_texture_storage_multisample = false;
bool var_KHR_debug = false;
}
// Extension: ARB_ES2_compatibility
typedef void (CODEGEN_FUNCPTR *PFNCLEARDEPTHFPROC)(GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEFPROC)(GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERPRECISIONFORMATPROC)(GLenum, GLenum, GLint *, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNRELEASESHADERCOMPILERPROC)();
typedef void (CODEGEN_FUNCPTR *PFNSHADERBINARYPROC)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei);
// Extension: ARB_get_program_binary
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMBINARYPROC)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMBINARYPROC)(GLuint, GLenum, const GLvoid *, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMPARAMETERIPROC)(GLuint, GLenum, GLint);
// Extension: ARB_internalformat_query
typedef void (CODEGEN_FUNCPTR *PFNGETINTERNALFORMATIVPROC)(GLenum, GLenum, GLenum, GLsizei, GLint *);
// Extension: ARB_internalformat_query2
typedef void (CODEGEN_FUNCPTR *PFNGETINTERNALFORMATI64VPROC)(GLenum, GLenum, GLenum, GLsizei, GLint64 *);
// Extension: ARB_program_interface_query
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMINTERFACEIVPROC)(GLuint, GLenum, GLenum, GLint *);
typedef GLuint (CODEGEN_FUNCPTR *PFNGETPROGRAMRESOURCEINDEXPROC)(GLuint, GLenum, const GLchar *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETPROGRAMRESOURCELOCATIONPROC)(GLuint, GLenum, const GLchar *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint, GLenum, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMRESOURCENAMEPROC)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMRESOURCEIVPROC)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *);
// Extension: ARB_separate_shader_objects
typedef void (CODEGEN_FUNCPTR *PFNACTIVESHADERPROGRAMPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDPROGRAMPIPELINEPROC)(GLuint);
typedef GLuint (CODEGEN_FUNCPTR *PFNCREATESHADERPROGRAMVPROC)(GLenum, GLsizei, const GLchar *const*);
typedef void (CODEGEN_FUNCPTR *PFNDELETEPROGRAMPIPELINESPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGENPROGRAMPIPELINESPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMPIPELINEINFOLOGPROC)(GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMPIPELINEIVPROC)(GLuint, GLenum, GLint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISPROGRAMPIPELINEPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1DPROC)(GLuint, GLint, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1DVPROC)(GLuint, GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1FPROC)(GLuint, GLint, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1FVPROC)(GLuint, GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1IPROC)(GLuint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1IVPROC)(GLuint, GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1UIPROC)(GLuint, GLint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM1UIVPROC)(GLuint, GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2DPROC)(GLuint, GLint, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2DVPROC)(GLuint, GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2FPROC)(GLuint, GLint, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2FVPROC)(GLuint, GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2IPROC)(GLuint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2IVPROC)(GLuint, GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2UIPROC)(GLuint, GLint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM2UIVPROC)(GLuint, GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3DPROC)(GLuint, GLint, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3DVPROC)(GLuint, GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3FPROC)(GLuint, GLint, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3FVPROC)(GLuint, GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3IPROC)(GLuint, GLint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3IVPROC)(GLuint, GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3UIPROC)(GLuint, GLint, GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM3UIVPROC)(GLuint, GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4DPROC)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4DVPROC)(GLuint, GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4FPROC)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4FVPROC)(GLuint, GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4IPROC)(GLuint, GLint, GLint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4IVPROC)(GLuint, GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4UIPROC)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORM4UIVPROC)(GLuint, GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX3DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX3FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX4DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX4FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUSEPROGRAMSTAGESPROC)(GLuint, GLbitfield, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVALIDATEPROGRAMPIPELINEPROC)(GLuint);
// Extension: ARB_texture_buffer_range
typedef void (CODEGEN_FUNCPTR *PFNTEXBUFFERRANGEPROC)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
// Extension: ARB_texture_storage
typedef void (CODEGEN_FUNCPTR *PFNTEXSTORAGE1DPROC)(GLenum, GLsizei, GLenum, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNTEXSTORAGE2DPROC)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNTEXSTORAGE3DPROC)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
// Extension: ARB_texture_view
typedef void (CODEGEN_FUNCPTR *PFNTEXTUREVIEWPROC)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint);
// Extension: ARB_vertex_attrib_binding
typedef void (CODEGEN_FUNCPTR *PFNBINDVERTEXBUFFERPROC)(GLuint, GLuint, GLintptr, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBBINDINGPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBFORMATPROC)(GLuint, GLint, GLenum, GLboolean, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBIFORMATPROC)(GLuint, GLint, GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBLFORMATPROC)(GLuint, GLint, GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXBINDINGDIVISORPROC)(GLuint, GLuint);
// Extension: ARB_viewport_array
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEARRAYVPROC)(GLuint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEINDEXEDPROC)(GLuint, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNGETDOUBLEI_VPROC)(GLenum, GLuint, GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNGETFLOATI_VPROC)(GLenum, GLuint, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNSCISSORARRAYVPROC)(GLuint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNSCISSORINDEXEDPROC)(GLuint, GLint, GLint, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNSCISSORINDEXEDVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVIEWPORTARRAYVPROC)(GLuint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNVIEWPORTINDEXEDFPROC)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNVIEWPORTINDEXEDFVPROC)(GLuint, const GLfloat *);
// Extension: ARB_clear_buffer_object
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERDATAPROC)(GLenum, GLenum, GLenum, GLenum, const void *);
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERSUBDATAPROC)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *);
// Extension: ARB_copy_image
typedef void (CODEGEN_FUNCPTR *PFNCOPYIMAGESUBDATAPROC)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
// Extension: ARB_framebuffer_no_attachments
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERPARAMETERIPROC)(GLenum, GLenum, GLint);
typedef void (CODEGEN_FUNCPTR *PFNGETFRAMEBUFFERPARAMETERIVPROC)(GLenum, GLenum, GLint *);
// Extension: ARB_invalidate_subdata
typedef void (CODEGEN_FUNCPTR *PFNINVALIDATEBUFFERDATAPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNINVALIDATEBUFFERSUBDATAPROC)(GLuint, GLintptr, GLsizeiptr);
typedef void (CODEGEN_FUNCPTR *PFNINVALIDATEFRAMEBUFFERPROC)(GLenum, GLsizei, const GLenum *);
typedef void (CODEGEN_FUNCPTR *PFNINVALIDATESUBFRAMEBUFFERPROC)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNINVALIDATETEXIMAGEPROC)(GLuint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNINVALIDATETEXSUBIMAGEPROC)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
// Extension: ARB_texture_storage_multisample
typedef void (CODEGEN_FUNCPTR *PFNTEXSTORAGE2DMULTISAMPLEPROC)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNTEXSTORAGE3DMULTISAMPLEPROC)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean);
// Extension: KHR_debug
typedef void (CODEGEN_FUNCPTR *PFNDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC, const void *);
typedef void (CODEGEN_FUNCPTR *PFNDEBUGMESSAGECONTROLPROC)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNDEBUGMESSAGEINSERTPROC)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *);
typedef GLuint (CODEGEN_FUNCPTR *PFNGETDEBUGMESSAGELOGPROC)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETOBJECTLABELPROC)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETOBJECTPTRLABELPROC)(const void *, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETPOINTERVPROC)(GLenum, GLvoid **);
typedef void (CODEGEN_FUNCPTR *PFNOBJECTLABELPROC)(GLenum, GLuint, GLsizei, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNOBJECTPTRLABELPROC)(const void *, GLsizei, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNPOPDEBUGGROUPPROC)();
typedef void (CODEGEN_FUNCPTR *PFNPUSHDEBUGGROUPPROC)(GLenum, GLuint, GLsizei, const GLchar *);
// Extension: 1.0
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCPROC)(GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNCLEARPROC)(GLbitfield);
typedef void (CODEGEN_FUNCPTR *PFNCLEARCOLORPROC)(GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNCLEARDEPTHPROC)(GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNCLEARSTENCILPROC)(GLint);
typedef void (CODEGEN_FUNCPTR *PFNCOLORMASKPROC)(GLboolean, GLboolean, GLboolean, GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNCULLFACEPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNDEPTHFUNCPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNDEPTHMASKPROC)(GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNDEPTHRANGEPROC)(GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNDISABLEPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNDRAWBUFFERPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNENABLEPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNFINISHPROC)();
typedef void (CODEGEN_FUNCPTR *PFNFLUSHPROC)();
typedef void (CODEGEN_FUNCPTR *PFNFRONTFACEPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNGETBOOLEANVPROC)(GLenum, GLboolean *);
typedef void (CODEGEN_FUNCPTR *PFNGETDOUBLEVPROC)(GLenum, GLdouble *);
typedef GLenum (CODEGEN_FUNCPTR *PFNGETERRORPROC)();
typedef void (CODEGEN_FUNCPTR *PFNGETFLOATVPROC)(GLenum, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGERVPROC)(GLenum, GLint *);
typedef const GLubyte * (CODEGEN_FUNCPTR *PFNGETSTRINGPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXIMAGEPROC)(GLenum, GLint, GLenum, GLenum, GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXLEVELPARAMETERFVPROC)(GLenum, GLint, GLenum, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXLEVELPARAMETERIVPROC)(GLenum, GLint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERFVPROC)(GLenum, GLenum, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERIVPROC)(GLenum, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNHINTPROC)(GLenum, GLenum);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISENABLEDPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNLINEWIDTHPROC)(GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNLOGICOPPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNPIXELSTOREFPROC)(GLenum, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPIXELSTOREIPROC)(GLenum, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPOINTSIZEPROC)(GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPOLYGONMODEPROC)(GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNREADBUFFERPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNREADPIXELSPROC)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNSCISSORPROC)(GLint, GLint, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNSTENCILFUNCPROC)(GLenum, GLint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNSTENCILMASKPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNSTENCILOPPROC)(GLenum, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE1DPROC)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE2DPROC)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERFPROC)(GLenum, GLenum, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERFVPROC)(GLenum, GLenum, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIPROC)(GLenum, GLenum, GLint);
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIVPROC)(GLenum, GLenum, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVIEWPORTPROC)(GLint, GLint, GLsizei, GLsizei);
// Extension: 1.1
typedef void (CODEGEN_FUNCPTR *PFNBINDTEXTUREPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXIMAGE1DPROC)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXIMAGE2DPROC)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXSUBIMAGE1DPROC)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXSUBIMAGE2DPROC)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNDELETETEXTURESPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYSPROC)(GLenum, GLint, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSPROC)(GLenum, GLsizei, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNGENTEXTURESPROC)(GLsizei, GLuint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISTEXTUREPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNPOLYGONOFFSETPROC)(GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNTEXSUBIMAGE1DPROC)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNTEXSUBIMAGE2DPROC)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
// Extension: 1.2
typedef void (CODEGEN_FUNCPTR *PFNBLENDCOLORPROC)(GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNCOPYTEXSUBIMAGE3DPROC)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNDRAWRANGEELEMENTSPROC)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE3DPROC)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNTEXSUBIMAGE3DPROC)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
// Extension: 1.3
typedef void (CODEGEN_FUNCPTR *PFNACTIVETEXTUREPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXIMAGE1DPROC)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXIMAGE2DPROC)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXIMAGE3DPROC)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNGETCOMPRESSEDTEXIMAGEPROC)(GLenum, GLint, GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLECOVERAGEPROC)(GLfloat, GLboolean);
// Extension: 1.4
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCSEPARATEPROC)(GLenum, GLenum, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWARRAYSPROC)(GLenum, const GLint *, const GLsizei *, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWELEMENTSPROC)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERFPROC)(GLenum, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERFVPROC)(GLenum, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERIPROC)(GLenum, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPOINTPARAMETERIVPROC)(GLenum, const GLint *);
// Extension: 1.5
typedef void (CODEGEN_FUNCPTR *PFNBEGINQUERYPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBUFFERDATAPROC)(GLenum, GLsizeiptr, const GLvoid *, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNBUFFERSUBDATAPROC)(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNDELETEBUFFERSPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNDELETEQUERIESPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNENDQUERYPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNGENBUFFERSPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGENQUERIESPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERPARAMETERIVPROC)(GLenum, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERPOINTERVPROC)(GLenum, GLenum, GLvoid **);
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERSUBDATAPROC)(GLenum, GLintptr, GLsizeiptr, GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTIVPROC)(GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTUIVPROC)(GLuint, GLenum, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYIVPROC)(GLenum, GLenum, GLint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISBUFFERPROC)(GLuint);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISQUERYPROC)(GLuint);
typedef void * (CODEGEN_FUNCPTR *PFNMAPBUFFERPROC)(GLenum, GLenum);
typedef GLboolean (CODEGEN_FUNCPTR *PFNUNMAPBUFFERPROC)(GLenum);
// Extension: 2.0
typedef void (CODEGEN_FUNCPTR *PFNATTACHSHADERPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDATTRIBLOCATIONPROC)(GLuint, GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONSEPARATEPROC)(GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNCOMPILESHADERPROC)(GLuint);
typedef GLuint (CODEGEN_FUNCPTR *PFNCREATEPROGRAMPROC)();
typedef GLuint (CODEGEN_FUNCPTR *PFNCREATESHADERPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNDELETEPROGRAMPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDELETESHADERPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDETACHSHADERPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDISABLEVERTEXATTRIBARRAYPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWBUFFERSPROC)(GLsizei, const GLenum *);
typedef void (CODEGEN_FUNCPTR *PFNENABLEVERTEXATTRIBARRAYPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEATTRIBPROC)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMPROC)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETATTACHEDSHADERSPROC)(GLuint, GLsizei, GLsizei *, GLuint *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETATTRIBLOCATIONPROC)(GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMINFOLOGPROC)(GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMIVPROC)(GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERINFOLOGPROC)(GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERSOURCEPROC)(GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETSHADERIVPROC)(GLuint, GLenum, GLint *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETUNIFORMLOCATIONPROC)(GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMFVPROC)(GLuint, GLint, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMIVPROC)(GLuint, GLint, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBPOINTERVPROC)(GLuint, GLenum, GLvoid **);
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBDVPROC)(GLuint, GLenum, GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBFVPROC)(GLuint, GLenum, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBIVPROC)(GLuint, GLenum, GLint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISPROGRAMPROC)(GLuint);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISSHADERPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNLINKPROGRAMPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNSHADERSOURCEPROC)(GLuint, GLsizei, const GLchar *const*, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNSTENCILFUNCSEPARATEPROC)(GLenum, GLenum, GLint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNSTENCILMASKSEPARATEPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNSTENCILOPSEPARATEPROC)(GLenum, GLenum, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1FPROC)(GLint, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1FVPROC)(GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1IPROC)(GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1IVPROC)(GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2FPROC)(GLint, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2FVPROC)(GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2IPROC)(GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2IVPROC)(GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3FPROC)(GLint, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3FVPROC)(GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3IPROC)(GLint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3IVPROC)(GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4FPROC)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4FVPROC)(GLint, GLsizei, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4IPROC)(GLint, GLint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4IVPROC)(GLint, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUSEPROGRAMPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVALIDATEPROGRAMPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1DPROC)(GLuint, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1FPROC)(GLuint, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1FVPROC)(GLuint, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1SPROC)(GLuint, GLshort);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB1SVPROC)(GLuint, const GLshort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2DPROC)(GLuint, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2FPROC)(GLuint, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2FVPROC)(GLuint, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2SPROC)(GLuint, GLshort, GLshort);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB2SVPROC)(GLuint, const GLshort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3DPROC)(GLuint, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3FPROC)(GLuint, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3FVPROC)(GLuint, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3SPROC)(GLuint, GLshort, GLshort, GLshort);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB3SVPROC)(GLuint, const GLshort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NBVPROC)(GLuint, const GLbyte *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NIVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NSVPROC)(GLuint, const GLshort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUBPROC)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUBVPROC)(GLuint, const GLubyte *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUIVPROC)(GLuint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4NUSVPROC)(GLuint, const GLushort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4BVPROC)(GLuint, const GLbyte *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4DPROC)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4FPROC)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4FVPROC)(GLuint, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4IVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4SPROC)(GLuint, GLshort, GLshort, GLshort, GLshort);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4SVPROC)(GLuint, const GLshort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4UBVPROC)(GLuint, const GLubyte *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4UIVPROC)(GLuint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIB4USVPROC)(GLuint, const GLushort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBPOINTERPROC)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
// Extension: 2.1
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X3FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X4FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X2FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X4FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X2FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X3FVPROC)(GLint, GLsizei, GLboolean, const GLfloat *);
// Extension: 3.0
typedef void (CODEGEN_FUNCPTR *PFNBEGINCONDITIONALRENDERPROC)(GLuint, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNBEGINTRANSFORMFEEDBACKPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERBASEPROC)(GLenum, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERRANGEPROC)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
typedef void (CODEGEN_FUNCPTR *PFNBINDFRAGDATALOCATIONPROC)(GLuint, GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNBINDFRAMEBUFFERPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDRENDERBUFFERPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDVERTEXARRAYPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBLITFRAMEBUFFERPROC)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
typedef GLenum (CODEGEN_FUNCPTR *PFNCHECKFRAMEBUFFERSTATUSPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNCLAMPCOLORPROC)(GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERFIPROC)(GLenum, GLint, GLfloat, GLint);
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERFVPROC)(GLenum, GLint, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERIVPROC)(GLenum, GLint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNCLEARBUFFERUIVPROC)(GLenum, GLint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNCOLORMASKIPROC)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNDELETEFRAMEBUFFERSPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNDELETERENDERBUFFERSPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNDELETEVERTEXARRAYSPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNDISABLEIPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNENABLEIPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNENDCONDITIONALRENDERPROC)();
typedef void (CODEGEN_FUNCPTR *PFNENDTRANSFORMFEEDBACKPROC)();
typedef void (CODEGEN_FUNCPTR *PFNFLUSHMAPPEDBUFFERRANGEPROC)(GLenum, GLintptr, GLsizeiptr);
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERRENDERBUFFERPROC)(GLenum, GLenum, GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE1DPROC)(GLenum, GLenum, GLenum, GLuint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE2DPROC)(GLenum, GLenum, GLenum, GLuint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURE3DPROC)(GLenum, GLenum, GLenum, GLuint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTURELAYERPROC)(GLenum, GLenum, GLuint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNGENFRAMEBUFFERSPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGENRENDERBUFFERSPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGENVERTEXARRAYSPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGENERATEMIPMAPPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNGETBOOLEANI_VPROC)(GLenum, GLuint, GLboolean *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETFRAGDATALOCATIONPROC)(GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum, GLenum, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGERI_VPROC)(GLenum, GLuint, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETRENDERBUFFERPARAMETERIVPROC)(GLenum, GLenum, GLint *);
typedef const GLubyte * (CODEGEN_FUNCPTR *PFNGETSTRINGIPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERIIVPROC)(GLenum, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETTEXPARAMETERIUIVPROC)(GLenum, GLenum, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMUIVPROC)(GLuint, GLint, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBIIVPROC)(GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBIUIVPROC)(GLuint, GLenum, GLuint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISENABLEDIPROC)(GLenum, GLuint);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISFRAMEBUFFERPROC)(GLuint);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISRENDERBUFFERPROC)(GLuint);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISVERTEXARRAYPROC)(GLuint);
typedef void * (CODEGEN_FUNCPTR *PFNMAPBUFFERRANGEPROC)(GLenum, GLintptr, GLsizeiptr, GLbitfield);
typedef void (CODEGEN_FUNCPTR *PFNRENDERBUFFERSTORAGEPROC)(GLenum, GLenum, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIIVPROC)(GLenum, GLenum, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNTEXPARAMETERIUIVPROC)(GLenum, GLenum, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNTRANSFORMFEEDBACKVARYINGSPROC)(GLuint, GLsizei, const GLchar *const*, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1UIPROC)(GLint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1UIVPROC)(GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2UIPROC)(GLint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2UIVPROC)(GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3UIPROC)(GLint, GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3UIVPROC)(GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4UIPROC)(GLint, GLuint, GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4UIVPROC)(GLint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1IPROC)(GLuint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1IVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1UIPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI1UIVPROC)(GLuint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2IPROC)(GLuint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2IVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2UIPROC)(GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI2UIVPROC)(GLuint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3IPROC)(GLuint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3IVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3UIPROC)(GLuint, GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI3UIVPROC)(GLuint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4BVPROC)(GLuint, const GLbyte *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4IPROC)(GLuint, GLint, GLint, GLint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4IVPROC)(GLuint, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4SVPROC)(GLuint, const GLshort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4UBVPROC)(GLuint, const GLubyte *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4UIPROC)(GLuint, GLuint, GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4UIVPROC)(GLuint, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBI4USVPROC)(GLuint, const GLushort *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBIPOINTERPROC)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
// Extension: 3.1
typedef void (CODEGEN_FUNCPTR *PFNCOPYBUFFERSUBDATAPROC)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYSINSTANCEDPROC)(GLenum, GLint, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINSTANCEDPROC)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMBLOCKIVPROC)(GLuint, GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMNAMEPROC)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEUNIFORMSIVPROC)(GLuint, GLsizei, const GLuint *, GLenum, GLint *);
typedef GLuint (CODEGEN_FUNCPTR *PFNGETUNIFORMBLOCKINDEXPROC)(GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMINDICESPROC)(GLuint, GLsizei, const GLchar *const*, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNPRIMITIVERESTARTINDEXPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNTEXBUFFERPROC)(GLenum, GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMBLOCKBINDINGPROC)(GLuint, GLuint, GLuint);
// Extension: 3.2
typedef GLenum (CODEGEN_FUNCPTR *PFNCLIENTWAITSYNCPROC)(GLsync, GLbitfield, GLuint64);
typedef void (CODEGEN_FUNCPTR *PFNDELETESYNCPROC)(GLsync);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSBASEVERTEXPROC)(GLenum, GLsizei, GLenum, const GLvoid *, GLint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint);
typedef GLsync (CODEGEN_FUNCPTR *PFNFENCESYNCPROC)(GLenum, GLbitfield);
typedef void (CODEGEN_FUNCPTR *PFNFRAMEBUFFERTEXTUREPROC)(GLenum, GLenum, GLuint, GLint);
typedef void (CODEGEN_FUNCPTR *PFNGETBUFFERPARAMETERI64VPROC)(GLenum, GLenum, GLint64 *);
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGER64I_VPROC)(GLenum, GLuint, GLint64 *);
typedef void (CODEGEN_FUNCPTR *PFNGETINTEGER64VPROC)(GLenum, GLint64 *);
typedef void (CODEGEN_FUNCPTR *PFNGETMULTISAMPLEFVPROC)(GLenum, GLuint, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETSYNCIVPROC)(GLsync, GLenum, GLsizei, GLsizei *, GLint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISSYNCPROC)(GLsync);
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNPROVOKINGVERTEXPROC)(GLenum);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLEMASKIPROC)(GLuint, GLbitfield);
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE2DMULTISAMPLEPROC)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNTEXIMAGE3DMULTISAMPLEPROC)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean);
typedef void (CODEGEN_FUNCPTR *PFNWAITSYNCPROC)(GLsync, GLbitfield, GLuint64);
// Extension: 3.3
typedef void (CODEGEN_FUNCPTR *PFNBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint, GLuint, GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNBINDSAMPLERPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDELETESAMPLERSPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGENSAMPLERSPROC)(GLsizei, GLuint *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETFRAGDATAINDEXPROC)(GLuint, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTI64VPROC)(GLuint, GLenum, GLint64 *);
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYOBJECTUI64VPROC)(GLuint, GLenum, GLuint64 *);
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERIIVPROC)(GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERIUIVPROC)(GLuint, GLenum, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERFVPROC)(GLuint, GLenum, GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNGETSAMPLERPARAMETERIVPROC)(GLuint, GLenum, GLint *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISSAMPLERPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNQUERYCOUNTERPROC)(GLuint, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIIVPROC)(GLuint, GLenum, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIUIVPROC)(GLuint, GLenum, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERFPROC)(GLuint, GLenum, GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERFVPROC)(GLuint, GLenum, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIPROC)(GLuint, GLenum, GLint);
typedef void (CODEGEN_FUNCPTR *PFNSAMPLERPARAMETERIVPROC)(GLuint, GLenum, const GLint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBDIVISORPROC)(GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP1UIPROC)(GLuint, GLenum, GLboolean, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP1UIVPROC)(GLuint, GLenum, GLboolean, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP2UIPROC)(GLuint, GLenum, GLboolean, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP2UIVPROC)(GLuint, GLenum, GLboolean, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP3UIPROC)(GLuint, GLenum, GLboolean, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP3UIVPROC)(GLuint, GLenum, GLboolean, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP4UIPROC)(GLuint, GLenum, GLboolean, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBP4UIVPROC)(GLuint, GLenum, GLboolean, const GLuint *);
// Extension: 4.0
typedef void (CODEGEN_FUNCPTR *PFNBEGINQUERYINDEXEDPROC)(GLenum, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBINDTRANSFORMFEEDBACKPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONSEPARATEIPROC)(GLuint, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNBLENDEQUATIONIPROC)(GLuint, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCSEPARATEIPROC)(GLuint, GLenum, GLenum, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNBLENDFUNCIPROC)(GLuint, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNDELETETRANSFORMFEEDBACKSPROC)(GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYSINDIRECTPROC)(GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINDIRECTPROC)(GLenum, GLenum, const GLvoid *);
typedef void (CODEGEN_FUNCPTR *PFNDRAWTRANSFORMFEEDBACKPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNENDQUERYINDEXEDPROC)(GLenum, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNGENTRANSFORMFEEDBACKSPROC)(GLsizei, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVESUBROUTINENAMEPROC)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint, GLenum, GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETPROGRAMSTAGEIVPROC)(GLuint, GLenum, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNGETQUERYINDEXEDIVPROC)(GLenum, GLuint, GLenum, GLint *);
typedef GLuint (CODEGEN_FUNCPTR *PFNGETSUBROUTINEINDEXPROC)(GLuint, GLenum, const GLchar *);
typedef GLint (CODEGEN_FUNCPTR *PFNGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint, GLenum, const GLchar *);
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMSUBROUTINEUIVPROC)(GLenum, GLint, GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNGETUNIFORMDVPROC)(GLuint, GLint, GLdouble *);
typedef GLboolean (CODEGEN_FUNCPTR *PFNISTRANSFORMFEEDBACKPROC)(GLuint);
typedef void (CODEGEN_FUNCPTR *PFNMINSAMPLESHADINGPROC)(GLfloat);
typedef void (CODEGEN_FUNCPTR *PFNPATCHPARAMETERFVPROC)(GLenum, const GLfloat *);
typedef void (CODEGEN_FUNCPTR *PFNPATCHPARAMETERIPROC)(GLenum, GLint);
typedef void (CODEGEN_FUNCPTR *PFNPAUSETRANSFORMFEEDBACKPROC)();
typedef void (CODEGEN_FUNCPTR *PFNRESUMETRANSFORMFEEDBACKPROC)();
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1DPROC)(GLint, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM1DVPROC)(GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2DPROC)(GLint, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM2DVPROC)(GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3DPROC)(GLint, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM3DVPROC)(GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4DPROC)(GLint, GLdouble, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORM4DVPROC)(GLint, GLsizei, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X3DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX2X4DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X2DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX3X4DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X2DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMMATRIX4X3DVPROC)(GLint, GLsizei, GLboolean, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNUNIFORMSUBROUTINESUIVPROC)(GLenum, GLsizei, const GLuint *);
// Extension: 4.1
typedef void (CODEGEN_FUNCPTR *PFNGETVERTEXATTRIBLDVPROC)(GLuint, GLenum, GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL1DPROC)(GLuint, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL1DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL2DPROC)(GLuint, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL2DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL3DPROC)(GLuint, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL3DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL4DPROC)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBL4DVPROC)(GLuint, const GLdouble *);
typedef void (CODEGEN_FUNCPTR *PFNVERTEXATTRIBLPOINTERPROC)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
// Extension: 4.2
typedef void (CODEGEN_FUNCPTR *PFNBINDIMAGETEXTUREPROC)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum);
typedef void (CODEGEN_FUNCPTR *PFNDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum, GLint, GLsizei, GLsizei, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum, GLuint, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum, GLuint, GLuint, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint, GLuint, GLenum, GLint *);
typedef void (CODEGEN_FUNCPTR *PFNMEMORYBARRIERPROC)(GLbitfield);
// Extension: 4.3
typedef void (CODEGEN_FUNCPTR *PFNDISPATCHCOMPUTEPROC)(GLuint, GLuint, GLuint);
typedef void (CODEGEN_FUNCPTR *PFNDISPATCHCOMPUTEINDIRECTPROC)(GLintptr);
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWARRAYSINDIRECTPROC)(GLenum, const void *, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNMULTIDRAWELEMENTSINDIRECTPROC)(GLenum, GLenum, const void *, GLsizei, GLsizei);
typedef void (CODEGEN_FUNCPTR *PFNSHADERSTORAGEBLOCKBINDINGPROC)(GLuint, GLuint, GLuint);
// Extension: 4.4
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERSBASEPROC)(GLenum, GLuint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNBINDBUFFERSRANGEPROC)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *);
typedef void (CODEGEN_FUNCPTR *PFNBINDIMAGETEXTURESPROC)(GLuint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNBINDSAMPLERSPROC)(GLuint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNBINDTEXTURESPROC)(GLuint, GLsizei, const GLuint *);
typedef void (CODEGEN_FUNCPTR *PFNBINDVERTEXBUFFERSPROC)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *);
typedef void (CODEGEN_FUNCPTR *PFNBUFFERSTORAGEPROC)(GLenum, GLsizeiptr, const void *, GLbitfield);
typedef void (CODEGEN_FUNCPTR *PFNCLEARTEXIMAGEPROC)(GLuint, GLint, GLenum, GLenum, const void *);
typedef void (CODEGEN_FUNCPTR *PFNCLEARTEXSUBIMAGEPROC)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *);
// Extension: ARB_ES2_compatibility
PFNCLEARDEPTHFPROC ClearDepthf;
PFNDEPTHRANGEFPROC DepthRangef;
PFNGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat;
PFNRELEASESHADERCOMPILERPROC ReleaseShaderCompiler;
PFNSHADERBINARYPROC ShaderBinary;
// Extension: ARB_get_program_binary
PFNGETPROGRAMBINARYPROC GetProgramBinary;
PFNPROGRAMBINARYPROC ProgramBinary;
PFNPROGRAMPARAMETERIPROC ProgramParameteri;
// Extension: ARB_internalformat_query
PFNGETINTERNALFORMATIVPROC GetInternalformativ;
// Extension: ARB_internalformat_query2
PFNGETINTERNALFORMATI64VPROC GetInternalformati64v;
// Extension: ARB_program_interface_query
PFNGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv;
PFNGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex;
PFNGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation;
PFNGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex;
PFNGETPROGRAMRESOURCENAMEPROC GetProgramResourceName;
PFNGETPROGRAMRESOURCEIVPROC GetProgramResourceiv;
// Extension: ARB_separate_shader_objects
PFNACTIVESHADERPROGRAMPROC ActiveShaderProgram;
PFNBINDPROGRAMPIPELINEPROC BindProgramPipeline;
PFNCREATESHADERPROGRAMVPROC CreateShaderProgramv;
PFNDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines;
PFNGENPROGRAMPIPELINESPROC GenProgramPipelines;
PFNGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog;
PFNGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv;
PFNISPROGRAMPIPELINEPROC IsProgramPipeline;
PFNPROGRAMUNIFORM1DPROC ProgramUniform1d;
PFNPROGRAMUNIFORM1DVPROC ProgramUniform1dv;
PFNPROGRAMUNIFORM1FPROC ProgramUniform1f;
PFNPROGRAMUNIFORM1FVPROC ProgramUniform1fv;
PFNPROGRAMUNIFORM1IPROC ProgramUniform1i;
PFNPROGRAMUNIFORM1IVPROC ProgramUniform1iv;
PFNPROGRAMUNIFORM1UIPROC ProgramUniform1ui;
PFNPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv;
PFNPROGRAMUNIFORM2DPROC ProgramUniform2d;
PFNPROGRAMUNIFORM2DVPROC ProgramUniform2dv;
PFNPROGRAMUNIFORM2FPROC ProgramUniform2f;
PFNPROGRAMUNIFORM2FVPROC ProgramUniform2fv;
PFNPROGRAMUNIFORM2IPROC ProgramUniform2i;
PFNPROGRAMUNIFORM2IVPROC ProgramUniform2iv;
PFNPROGRAMUNIFORM2UIPROC ProgramUniform2ui;
PFNPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv;
PFNPROGRAMUNIFORM3DPROC ProgramUniform3d;
PFNPROGRAMUNIFORM3DVPROC ProgramUniform3dv;
PFNPROGRAMUNIFORM3FPROC ProgramUniform3f;
PFNPROGRAMUNIFORM3FVPROC ProgramUniform3fv;
PFNPROGRAMUNIFORM3IPROC ProgramUniform3i;
PFNPROGRAMUNIFORM3IVPROC ProgramUniform3iv;
PFNPROGRAMUNIFORM3UIPROC ProgramUniform3ui;
PFNPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv;
PFNPROGRAMUNIFORM4DPROC ProgramUniform4d;
PFNPROGRAMUNIFORM4DVPROC ProgramUniform4dv;
PFNPROGRAMUNIFORM4FPROC ProgramUniform4f;
PFNPROGRAMUNIFORM4FVPROC ProgramUniform4fv;
PFNPROGRAMUNIFORM4IPROC ProgramUniform4i;
PFNPROGRAMUNIFORM4IVPROC ProgramUniform4iv;
PFNPROGRAMUNIFORM4UIPROC ProgramUniform4ui;
PFNPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv;
PFNPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv;
PFNPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv;
PFNPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv;
PFNPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv;
PFNPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv;
PFNPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv;
PFNPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv;
PFNPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv;
PFNPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv;
PFNPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv;
PFNPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv;
PFNPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv;
PFNPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv;
PFNPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv;
PFNPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv;
PFNPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv;
PFNPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv;
PFNPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv;
PFNUSEPROGRAMSTAGESPROC UseProgramStages;
PFNVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline;
// Extension: ARB_texture_buffer_range
PFNTEXBUFFERRANGEPROC TexBufferRange;
// Extension: ARB_texture_storage
PFNTEXSTORAGE1DPROC TexStorage1D;
PFNTEXSTORAGE2DPROC TexStorage2D;
PFNTEXSTORAGE3DPROC TexStorage3D;
// Extension: ARB_texture_view
PFNTEXTUREVIEWPROC TextureView;
// Extension: ARB_vertex_attrib_binding
PFNBINDVERTEXBUFFERPROC BindVertexBuffer;
PFNVERTEXATTRIBBINDINGPROC VertexAttribBinding;
PFNVERTEXATTRIBFORMATPROC VertexAttribFormat;
PFNVERTEXATTRIBIFORMATPROC VertexAttribIFormat;
PFNVERTEXATTRIBLFORMATPROC VertexAttribLFormat;
PFNVERTEXBINDINGDIVISORPROC VertexBindingDivisor;
// Extension: ARB_viewport_array
PFNDEPTHRANGEARRAYVPROC DepthRangeArrayv;
PFNDEPTHRANGEINDEXEDPROC DepthRangeIndexed;
PFNGETDOUBLEI_VPROC GetDoublei_v;
PFNGETFLOATI_VPROC GetFloati_v;
PFNSCISSORARRAYVPROC ScissorArrayv;
PFNSCISSORINDEXEDPROC ScissorIndexed;
PFNSCISSORINDEXEDVPROC ScissorIndexedv;
PFNVIEWPORTARRAYVPROC ViewportArrayv;
PFNVIEWPORTINDEXEDFPROC ViewportIndexedf;
PFNVIEWPORTINDEXEDFVPROC ViewportIndexedfv;
// Extension: ARB_clear_buffer_object
PFNCLEARBUFFERDATAPROC ClearBufferData;
PFNCLEARBUFFERSUBDATAPROC ClearBufferSubData;
// Extension: ARB_copy_image
PFNCOPYIMAGESUBDATAPROC CopyImageSubData;
// Extension: ARB_framebuffer_no_attachments
PFNFRAMEBUFFERPARAMETERIPROC FramebufferParameteri;
PFNGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv;
// Extension: ARB_invalidate_subdata
PFNINVALIDATEBUFFERDATAPROC InvalidateBufferData;
PFNINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData;
PFNINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer;
PFNINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer;
PFNINVALIDATETEXIMAGEPROC InvalidateTexImage;
PFNINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage;
// Extension: ARB_texture_storage_multisample
PFNTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample;
PFNTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample;
// Extension: KHR_debug
PFNDEBUGMESSAGECALLBACKPROC DebugMessageCallback;
PFNDEBUGMESSAGECONTROLPROC DebugMessageControl;
PFNDEBUGMESSAGEINSERTPROC DebugMessageInsert;
PFNGETDEBUGMESSAGELOGPROC GetDebugMessageLog;
PFNGETOBJECTLABELPROC GetObjectLabel;
PFNGETOBJECTPTRLABELPROC GetObjectPtrLabel;
PFNGETPOINTERVPROC GetPointerv;
PFNOBJECTLABELPROC ObjectLabel;
PFNOBJECTPTRLABELPROC ObjectPtrLabel;
PFNPOPDEBUGGROUPPROC PopDebugGroup;
PFNPUSHDEBUGGROUPPROC PushDebugGroup;
// Extension: 1.0
PFNBLENDFUNCPROC BlendFunc;
PFNCLEARPROC Clear;
PFNCLEARCOLORPROC ClearColor;
PFNCLEARDEPTHPROC ClearDepth;
PFNCLEARSTENCILPROC ClearStencil;
PFNCOLORMASKPROC ColorMask;
PFNCULLFACEPROC CullFace;
PFNDEPTHFUNCPROC DepthFunc;
PFNDEPTHMASKPROC DepthMask;
PFNDEPTHRANGEPROC DepthRange;
PFNDISABLEPROC Disable;
PFNDRAWBUFFERPROC DrawBuffer;
PFNENABLEPROC Enable;
PFNFINISHPROC Finish;
PFNFLUSHPROC Flush;
PFNFRONTFACEPROC FrontFace;
PFNGETBOOLEANVPROC GetBooleanv;
PFNGETDOUBLEVPROC GetDoublev;
PFNGETERRORPROC GetError;
PFNGETFLOATVPROC GetFloatv;
PFNGETINTEGERVPROC GetIntegerv;
PFNGETSTRINGPROC GetString;
PFNGETTEXIMAGEPROC GetTexImage;
PFNGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv;
PFNGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv;
PFNGETTEXPARAMETERFVPROC GetTexParameterfv;
PFNGETTEXPARAMETERIVPROC GetTexParameteriv;
PFNHINTPROC Hint;
PFNISENABLEDPROC IsEnabled;
PFNLINEWIDTHPROC LineWidth;
PFNLOGICOPPROC LogicOp;
PFNPIXELSTOREFPROC PixelStoref;
PFNPIXELSTOREIPROC PixelStorei;
PFNPOINTSIZEPROC PointSize;
PFNPOLYGONMODEPROC PolygonMode;
PFNREADBUFFERPROC ReadBuffer;
PFNREADPIXELSPROC ReadPixels;
PFNSCISSORPROC Scissor;
PFNSTENCILFUNCPROC StencilFunc;
PFNSTENCILMASKPROC StencilMask;
PFNSTENCILOPPROC StencilOp;
PFNTEXIMAGE1DPROC TexImage1D;
PFNTEXIMAGE2DPROC TexImage2D;
PFNTEXPARAMETERFPROC TexParameterf;
PFNTEXPARAMETERFVPROC TexParameterfv;
PFNTEXPARAMETERIPROC TexParameteri;
PFNTEXPARAMETERIVPROC TexParameteriv;
PFNVIEWPORTPROC Viewport;
// Extension: 1.1
PFNBINDTEXTUREPROC BindTexture;
PFNCOPYTEXIMAGE1DPROC CopyTexImage1D;
PFNCOPYTEXIMAGE2DPROC CopyTexImage2D;
PFNCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D;
PFNCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D;
PFNDELETETEXTURESPROC DeleteTextures;
PFNDRAWARRAYSPROC DrawArrays;
PFNDRAWELEMENTSPROC DrawElements;
PFNGENTEXTURESPROC GenTextures;
PFNISTEXTUREPROC IsTexture;
PFNPOLYGONOFFSETPROC PolygonOffset;
PFNTEXSUBIMAGE1DPROC TexSubImage1D;
PFNTEXSUBIMAGE2DPROC TexSubImage2D;
// Extension: 1.2
PFNBLENDCOLORPROC BlendColor;
PFNBLENDEQUATIONPROC BlendEquation;
PFNCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D;
PFNDRAWRANGEELEMENTSPROC DrawRangeElements;
PFNTEXIMAGE3DPROC TexImage3D;
PFNTEXSUBIMAGE3DPROC TexSubImage3D;
// Extension: 1.3
PFNACTIVETEXTUREPROC ActiveTexture;
PFNCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D;
PFNCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D;
PFNCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D;
PFNCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D;
PFNCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D;
PFNCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D;
PFNGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage;
PFNSAMPLECOVERAGEPROC SampleCoverage;
// Extension: 1.4
PFNBLENDFUNCSEPARATEPROC BlendFuncSeparate;
PFNMULTIDRAWARRAYSPROC MultiDrawArrays;
PFNMULTIDRAWELEMENTSPROC MultiDrawElements;
PFNPOINTPARAMETERFPROC PointParameterf;
PFNPOINTPARAMETERFVPROC PointParameterfv;
PFNPOINTPARAMETERIPROC PointParameteri;
PFNPOINTPARAMETERIVPROC PointParameteriv;
// Extension: 1.5
PFNBEGINQUERYPROC BeginQuery;
PFNBINDBUFFERPROC BindBuffer;
PFNBUFFERDATAPROC BufferData;
PFNBUFFERSUBDATAPROC BufferSubData;
PFNDELETEBUFFERSPROC DeleteBuffers;
PFNDELETEQUERIESPROC DeleteQueries;
PFNENDQUERYPROC EndQuery;
PFNGENBUFFERSPROC GenBuffers;
PFNGENQUERIESPROC GenQueries;
PFNGETBUFFERPARAMETERIVPROC GetBufferParameteriv;
PFNGETBUFFERPOINTERVPROC GetBufferPointerv;
PFNGETBUFFERSUBDATAPROC GetBufferSubData;
PFNGETQUERYOBJECTIVPROC GetQueryObjectiv;
PFNGETQUERYOBJECTUIVPROC GetQueryObjectuiv;
PFNGETQUERYIVPROC GetQueryiv;
PFNISBUFFERPROC IsBuffer;
PFNISQUERYPROC IsQuery;
PFNMAPBUFFERPROC MapBuffer;
PFNUNMAPBUFFERPROC UnmapBuffer;
// Extension: 2.0
PFNATTACHSHADERPROC AttachShader;
PFNBINDATTRIBLOCATIONPROC BindAttribLocation;
PFNBLENDEQUATIONSEPARATEPROC BlendEquationSeparate;
PFNCOMPILESHADERPROC CompileShader;
PFNCREATEPROGRAMPROC CreateProgram;
PFNCREATESHADERPROC CreateShader;
PFNDELETEPROGRAMPROC DeleteProgram;
PFNDELETESHADERPROC DeleteShader;
PFNDETACHSHADERPROC DetachShader;
PFNDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray;
PFNDRAWBUFFERSPROC DrawBuffers;
PFNENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray;
PFNGETACTIVEATTRIBPROC GetActiveAttrib;
PFNGETACTIVEUNIFORMPROC GetActiveUniform;
PFNGETATTACHEDSHADERSPROC GetAttachedShaders;
PFNGETATTRIBLOCATIONPROC GetAttribLocation;
PFNGETPROGRAMINFOLOGPROC GetProgramInfoLog;
PFNGETPROGRAMIVPROC GetProgramiv;
PFNGETSHADERINFOLOGPROC GetShaderInfoLog;
PFNGETSHADERSOURCEPROC GetShaderSource;
PFNGETSHADERIVPROC GetShaderiv;
PFNGETUNIFORMLOCATIONPROC GetUniformLocation;
PFNGETUNIFORMFVPROC GetUniformfv;
PFNGETUNIFORMIVPROC GetUniformiv;
PFNGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv;
PFNGETVERTEXATTRIBDVPROC GetVertexAttribdv;
PFNGETVERTEXATTRIBFVPROC GetVertexAttribfv;
PFNGETVERTEXATTRIBIVPROC GetVertexAttribiv;
PFNISPROGRAMPROC IsProgram;
PFNISSHADERPROC IsShader;
PFNLINKPROGRAMPROC LinkProgram;
PFNSHADERSOURCEPROC ShaderSource;
PFNSTENCILFUNCSEPARATEPROC StencilFuncSeparate;
PFNSTENCILMASKSEPARATEPROC StencilMaskSeparate;
PFNSTENCILOPSEPARATEPROC StencilOpSeparate;
PFNUNIFORM1FPROC Uniform1f;
PFNUNIFORM1FVPROC Uniform1fv;
PFNUNIFORM1IPROC Uniform1i;
PFNUNIFORM1IVPROC Uniform1iv;
PFNUNIFORM2FPROC Uniform2f;
PFNUNIFORM2FVPROC Uniform2fv;
PFNUNIFORM2IPROC Uniform2i;
PFNUNIFORM2IVPROC Uniform2iv;
PFNUNIFORM3FPROC Uniform3f;
PFNUNIFORM3FVPROC Uniform3fv;
PFNUNIFORM3IPROC Uniform3i;
PFNUNIFORM3IVPROC Uniform3iv;
PFNUNIFORM4FPROC Uniform4f;
PFNUNIFORM4FVPROC Uniform4fv;
PFNUNIFORM4IPROC Uniform4i;
PFNUNIFORM4IVPROC Uniform4iv;
PFNUNIFORMMATRIX2FVPROC UniformMatrix2fv;
PFNUNIFORMMATRIX3FVPROC UniformMatrix3fv;
PFNUNIFORMMATRIX4FVPROC UniformMatrix4fv;
PFNUSEPROGRAMPROC UseProgram;
PFNVALIDATEPROGRAMPROC ValidateProgram;
PFNVERTEXATTRIB1DPROC VertexAttrib1d;
PFNVERTEXATTRIB1DVPROC VertexAttrib1dv;
PFNVERTEXATTRIB1FPROC VertexAttrib1f;
PFNVERTEXATTRIB1FVPROC VertexAttrib1fv;
PFNVERTEXATTRIB1SPROC VertexAttrib1s;
PFNVERTEXATTRIB1SVPROC VertexAttrib1sv;
PFNVERTEXATTRIB2DPROC VertexAttrib2d;
PFNVERTEXATTRIB2DVPROC VertexAttrib2dv;
PFNVERTEXATTRIB2FPROC VertexAttrib2f;
PFNVERTEXATTRIB2FVPROC VertexAttrib2fv;
PFNVERTEXATTRIB2SPROC VertexAttrib2s;
PFNVERTEXATTRIB2SVPROC VertexAttrib2sv;
PFNVERTEXATTRIB3DPROC VertexAttrib3d;
PFNVERTEXATTRIB3DVPROC VertexAttrib3dv;
PFNVERTEXATTRIB3FPROC VertexAttrib3f;
PFNVERTEXATTRIB3FVPROC VertexAttrib3fv;
PFNVERTEXATTRIB3SPROC VertexAttrib3s;
PFNVERTEXATTRIB3SVPROC VertexAttrib3sv;
PFNVERTEXATTRIB4NBVPROC VertexAttrib4Nbv;
PFNVERTEXATTRIB4NIVPROC VertexAttrib4Niv;
PFNVERTEXATTRIB4NSVPROC VertexAttrib4Nsv;
PFNVERTEXATTRIB4NUBPROC VertexAttrib4Nub;
PFNVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv;
PFNVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv;
PFNVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv;
PFNVERTEXATTRIB4BVPROC VertexAttrib4bv;
PFNVERTEXATTRIB4DPROC VertexAttrib4d;
PFNVERTEXATTRIB4DVPROC VertexAttrib4dv;
PFNVERTEXATTRIB4FPROC VertexAttrib4f;
PFNVERTEXATTRIB4FVPROC VertexAttrib4fv;
PFNVERTEXATTRIB4IVPROC VertexAttrib4iv;
PFNVERTEXATTRIB4SPROC VertexAttrib4s;
PFNVERTEXATTRIB4SVPROC VertexAttrib4sv;
PFNVERTEXATTRIB4UBVPROC VertexAttrib4ubv;
PFNVERTEXATTRIB4UIVPROC VertexAttrib4uiv;
PFNVERTEXATTRIB4USVPROC VertexAttrib4usv;
PFNVERTEXATTRIBPOINTERPROC VertexAttribPointer;
// Extension: 2.1
PFNUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv;
PFNUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv;
PFNUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv;
PFNUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv;
PFNUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv;
PFNUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv;
// Extension: 3.0
PFNBEGINCONDITIONALRENDERPROC BeginConditionalRender;
PFNBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback;
PFNBINDBUFFERBASEPROC BindBufferBase;
PFNBINDBUFFERRANGEPROC BindBufferRange;
PFNBINDFRAGDATALOCATIONPROC BindFragDataLocation;
PFNBINDFRAMEBUFFERPROC BindFramebuffer;
PFNBINDRENDERBUFFERPROC BindRenderbuffer;
PFNBINDVERTEXARRAYPROC BindVertexArray;
PFNBLITFRAMEBUFFERPROC BlitFramebuffer;
PFNCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus;
PFNCLAMPCOLORPROC ClampColor;
PFNCLEARBUFFERFIPROC ClearBufferfi;
PFNCLEARBUFFERFVPROC ClearBufferfv;
PFNCLEARBUFFERIVPROC ClearBufferiv;
PFNCLEARBUFFERUIVPROC ClearBufferuiv;
PFNCOLORMASKIPROC ColorMaski;
PFNDELETEFRAMEBUFFERSPROC DeleteFramebuffers;
PFNDELETERENDERBUFFERSPROC DeleteRenderbuffers;
PFNDELETEVERTEXARRAYSPROC DeleteVertexArrays;
PFNDISABLEIPROC Disablei;
PFNENABLEIPROC Enablei;
PFNENDCONDITIONALRENDERPROC EndConditionalRender;
PFNENDTRANSFORMFEEDBACKPROC EndTransformFeedback;
PFNFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange;
PFNFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer;
PFNFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D;
PFNFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D;
PFNFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D;
PFNFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer;
PFNGENFRAMEBUFFERSPROC GenFramebuffers;
PFNGENRENDERBUFFERSPROC GenRenderbuffers;
PFNGENVERTEXARRAYSPROC GenVertexArrays;
PFNGENERATEMIPMAPPROC GenerateMipmap;
PFNGETBOOLEANI_VPROC GetBooleani_v;
PFNGETFRAGDATALOCATIONPROC GetFragDataLocation;
PFNGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv;
PFNGETINTEGERI_VPROC GetIntegeri_v;
PFNGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv;
PFNGETSTRINGIPROC GetStringi;
PFNGETTEXPARAMETERIIVPROC GetTexParameterIiv;
PFNGETTEXPARAMETERIUIVPROC GetTexParameterIuiv;
PFNGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying;
PFNGETUNIFORMUIVPROC GetUniformuiv;
PFNGETVERTEXATTRIBIIVPROC GetVertexAttribIiv;
PFNGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv;
PFNISENABLEDIPROC IsEnabledi;
PFNISFRAMEBUFFERPROC IsFramebuffer;
PFNISRENDERBUFFERPROC IsRenderbuffer;
PFNISVERTEXARRAYPROC IsVertexArray;
PFNMAPBUFFERRANGEPROC MapBufferRange;
PFNRENDERBUFFERSTORAGEPROC RenderbufferStorage;
PFNRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample;
PFNTEXPARAMETERIIVPROC TexParameterIiv;
PFNTEXPARAMETERIUIVPROC TexParameterIuiv;
PFNTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings;
PFNUNIFORM1UIPROC Uniform1ui;
PFNUNIFORM1UIVPROC Uniform1uiv;
PFNUNIFORM2UIPROC Uniform2ui;
PFNUNIFORM2UIVPROC Uniform2uiv;
PFNUNIFORM3UIPROC Uniform3ui;
PFNUNIFORM3UIVPROC Uniform3uiv;
PFNUNIFORM4UIPROC Uniform4ui;
PFNUNIFORM4UIVPROC Uniform4uiv;
PFNVERTEXATTRIBI1IPROC VertexAttribI1i;
PFNVERTEXATTRIBI1IVPROC VertexAttribI1iv;
PFNVERTEXATTRIBI1UIPROC VertexAttribI1ui;
PFNVERTEXATTRIBI1UIVPROC VertexAttribI1uiv;
PFNVERTEXATTRIBI2IPROC VertexAttribI2i;
PFNVERTEXATTRIBI2IVPROC VertexAttribI2iv;
PFNVERTEXATTRIBI2UIPROC VertexAttribI2ui;
PFNVERTEXATTRIBI2UIVPROC VertexAttribI2uiv;
PFNVERTEXATTRIBI3IPROC VertexAttribI3i;
PFNVERTEXATTRIBI3IVPROC VertexAttribI3iv;
PFNVERTEXATTRIBI3UIPROC VertexAttribI3ui;
PFNVERTEXATTRIBI3UIVPROC VertexAttribI3uiv;
PFNVERTEXATTRIBI4BVPROC VertexAttribI4bv;
PFNVERTEXATTRIBI4IPROC VertexAttribI4i;
PFNVERTEXATTRIBI4IVPROC VertexAttribI4iv;
PFNVERTEXATTRIBI4SVPROC VertexAttribI4sv;
PFNVERTEXATTRIBI4UBVPROC VertexAttribI4ubv;
PFNVERTEXATTRIBI4UIPROC VertexAttribI4ui;
PFNVERTEXATTRIBI4UIVPROC VertexAttribI4uiv;
PFNVERTEXATTRIBI4USVPROC VertexAttribI4usv;
PFNVERTEXATTRIBIPOINTERPROC VertexAttribIPointer;
// Extension: 3.1
PFNCOPYBUFFERSUBDATAPROC CopyBufferSubData;
PFNDRAWARRAYSINSTANCEDPROC DrawArraysInstanced;
PFNDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced;
PFNGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName;
PFNGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv;
PFNGETACTIVEUNIFORMNAMEPROC GetActiveUniformName;
PFNGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv;
PFNGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex;
PFNGETUNIFORMINDICESPROC GetUniformIndices;
PFNPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex;
PFNTEXBUFFERPROC TexBuffer;
PFNUNIFORMBLOCKBINDINGPROC UniformBlockBinding;
// Extension: 3.2
PFNCLIENTWAITSYNCPROC ClientWaitSync;
PFNDELETESYNCPROC DeleteSync;
PFNDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex;
PFNDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex;
PFNDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex;
PFNFENCESYNCPROC FenceSync;
PFNFRAMEBUFFERTEXTUREPROC FramebufferTexture;
PFNGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v;
PFNGETINTEGER64I_VPROC GetInteger64i_v;
PFNGETINTEGER64VPROC GetInteger64v;
PFNGETMULTISAMPLEFVPROC GetMultisamplefv;
PFNGETSYNCIVPROC GetSynciv;
PFNISSYNCPROC IsSync;
PFNMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex;
PFNPROVOKINGVERTEXPROC ProvokingVertex;
PFNSAMPLEMASKIPROC SampleMaski;
PFNTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample;
PFNTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample;
PFNWAITSYNCPROC WaitSync;
// Extension: 3.3
PFNBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed;
PFNBINDSAMPLERPROC BindSampler;
PFNDELETESAMPLERSPROC DeleteSamplers;
PFNGENSAMPLERSPROC GenSamplers;
PFNGETFRAGDATAINDEXPROC GetFragDataIndex;
PFNGETQUERYOBJECTI64VPROC GetQueryObjecti64v;
PFNGETQUERYOBJECTUI64VPROC GetQueryObjectui64v;
PFNGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv;
PFNGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv;
PFNGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv;
PFNGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv;
PFNISSAMPLERPROC IsSampler;
PFNQUERYCOUNTERPROC QueryCounter;
PFNSAMPLERPARAMETERIIVPROC SamplerParameterIiv;
PFNSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv;
PFNSAMPLERPARAMETERFPROC SamplerParameterf;
PFNSAMPLERPARAMETERFVPROC SamplerParameterfv;
PFNSAMPLERPARAMETERIPROC SamplerParameteri;
PFNSAMPLERPARAMETERIVPROC SamplerParameteriv;
PFNVERTEXATTRIBDIVISORPROC VertexAttribDivisor;
PFNVERTEXATTRIBP1UIPROC VertexAttribP1ui;
PFNVERTEXATTRIBP1UIVPROC VertexAttribP1uiv;
PFNVERTEXATTRIBP2UIPROC VertexAttribP2ui;
PFNVERTEXATTRIBP2UIVPROC VertexAttribP2uiv;
PFNVERTEXATTRIBP3UIPROC VertexAttribP3ui;
PFNVERTEXATTRIBP3UIVPROC VertexAttribP3uiv;
PFNVERTEXATTRIBP4UIPROC VertexAttribP4ui;
PFNVERTEXATTRIBP4UIVPROC VertexAttribP4uiv;
// Extension: 4.0
PFNBEGINQUERYINDEXEDPROC BeginQueryIndexed;
PFNBINDTRANSFORMFEEDBACKPROC BindTransformFeedback;
PFNBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei;
PFNBLENDEQUATIONIPROC BlendEquationi;
PFNBLENDFUNCSEPARATEIPROC BlendFuncSeparatei;
PFNBLENDFUNCIPROC BlendFunci;
PFNDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks;
PFNDRAWARRAYSINDIRECTPROC DrawArraysIndirect;
PFNDRAWELEMENTSINDIRECTPROC DrawElementsIndirect;
PFNDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback;
PFNDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream;
PFNENDQUERYINDEXEDPROC EndQueryIndexed;
PFNGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks;
PFNGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName;
PFNGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName;
PFNGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv;
PFNGETPROGRAMSTAGEIVPROC GetProgramStageiv;
PFNGETQUERYINDEXEDIVPROC GetQueryIndexediv;
PFNGETSUBROUTINEINDEXPROC GetSubroutineIndex;
PFNGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation;
PFNGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv;
PFNGETUNIFORMDVPROC GetUniformdv;
PFNISTRANSFORMFEEDBACKPROC IsTransformFeedback;
PFNMINSAMPLESHADINGPROC MinSampleShading;
PFNPATCHPARAMETERFVPROC PatchParameterfv;
PFNPATCHPARAMETERIPROC PatchParameteri;
PFNPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback;
PFNRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback;
PFNUNIFORM1DPROC Uniform1d;
PFNUNIFORM1DVPROC Uniform1dv;
PFNUNIFORM2DPROC Uniform2d;
PFNUNIFORM2DVPROC Uniform2dv;
PFNUNIFORM3DPROC Uniform3d;
PFNUNIFORM3DVPROC Uniform3dv;
PFNUNIFORM4DPROC Uniform4d;
PFNUNIFORM4DVPROC Uniform4dv;
PFNUNIFORMMATRIX2DVPROC UniformMatrix2dv;
PFNUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv;
PFNUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv;
PFNUNIFORMMATRIX3DVPROC UniformMatrix3dv;
PFNUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv;
PFNUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv;
PFNUNIFORMMATRIX4DVPROC UniformMatrix4dv;
PFNUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv;
PFNUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv;
PFNUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv;
// Extension: 4.1
PFNGETVERTEXATTRIBLDVPROC GetVertexAttribLdv;
PFNVERTEXATTRIBL1DPROC VertexAttribL1d;
PFNVERTEXATTRIBL1DVPROC VertexAttribL1dv;
PFNVERTEXATTRIBL2DPROC VertexAttribL2d;
PFNVERTEXATTRIBL2DVPROC VertexAttribL2dv;
PFNVERTEXATTRIBL3DPROC VertexAttribL3d;
PFNVERTEXATTRIBL3DVPROC VertexAttribL3dv;
PFNVERTEXATTRIBL4DPROC VertexAttribL4d;
PFNVERTEXATTRIBL4DVPROC VertexAttribL4dv;
PFNVERTEXATTRIBLPOINTERPROC VertexAttribLPointer;
// Extension: 4.2
PFNBINDIMAGETEXTUREPROC BindImageTexture;
PFNDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance;
PFNDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance;
PFNDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance;
PFNDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced;
PFNDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced;
PFNGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv;
PFNMEMORYBARRIERPROC MemoryBarrier;
// Extension: 4.3
PFNDISPATCHCOMPUTEPROC DispatchCompute;
PFNDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect;
PFNMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect;
PFNMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect;
PFNSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding;
// Extension: 4.4
PFNBINDBUFFERSBASEPROC BindBuffersBase;
PFNBINDBUFFERSRANGEPROC BindBuffersRange;
PFNBINDIMAGETEXTURESPROC BindImageTextures;
PFNBINDSAMPLERSPROC BindSamplers;
PFNBINDTEXTURESPROC BindTextures;
PFNBINDVERTEXBUFFERSPROC BindVertexBuffers;
PFNBUFFERSTORAGEPROC BufferStorage;
PFNCLEARTEXIMAGEPROC ClearTexImage;
PFNCLEARTEXSUBIMAGEPROC ClearTexSubImage;
// Extension: ARB_ES2_compatibility
static void CODEGEN_FUNCPTR Switch_ClearDepthf(GLfloat d)
{
ClearDepthf = (PFNCLEARDEPTHFPROC)IntGetProcAddress("glClearDepthf");
ClearDepthf(d);
}
static void CODEGEN_FUNCPTR Switch_DepthRangef(GLfloat n, GLfloat f)
{
DepthRangef = (PFNDEPTHRANGEFPROC)IntGetProcAddress("glDepthRangef");
DepthRangef(n, f);
}
static void CODEGEN_FUNCPTR Switch_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision)
{
GetShaderPrecisionFormat = (PFNGETSHADERPRECISIONFORMATPROC)IntGetProcAddress("glGetShaderPrecisionFormat");
GetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
}
static void CODEGEN_FUNCPTR Switch_ReleaseShaderCompiler()
{
ReleaseShaderCompiler = (PFNRELEASESHADERCOMPILERPROC)IntGetProcAddress("glReleaseShaderCompiler");
ReleaseShaderCompiler();
}
static void CODEGEN_FUNCPTR Switch_ShaderBinary(GLsizei count, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length)
{
ShaderBinary = (PFNSHADERBINARYPROC)IntGetProcAddress("glShaderBinary");
ShaderBinary(count, shaders, binaryformat, binary, length);
}
// Extension: ARB_get_program_binary
static void CODEGEN_FUNCPTR Switch_GetProgramBinary(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, GLvoid * binary)
{
GetProgramBinary = (PFNGETPROGRAMBINARYPROC)IntGetProcAddress("glGetProgramBinary");
GetProgramBinary(program, bufSize, length, binaryFormat, binary);
}
static void CODEGEN_FUNCPTR Switch_ProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid * binary, GLsizei length)
{
ProgramBinary = (PFNPROGRAMBINARYPROC)IntGetProcAddress("glProgramBinary");
ProgramBinary(program, binaryFormat, binary, length);
}
static void CODEGEN_FUNCPTR Switch_ProgramParameteri(GLuint program, GLenum pname, GLint value)
{
ProgramParameteri = (PFNPROGRAMPARAMETERIPROC)IntGetProcAddress("glProgramParameteri");
ProgramParameteri(program, pname, value);
}
// Extension: ARB_internalformat_query
static void CODEGEN_FUNCPTR Switch_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params)
{
GetInternalformativ = (PFNGETINTERNALFORMATIVPROC)IntGetProcAddress("glGetInternalformativ");
GetInternalformativ(target, internalformat, pname, bufSize, params);
}
// Extension: ARB_internalformat_query2
static void CODEGEN_FUNCPTR Switch_GetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 * params)
{
GetInternalformati64v = (PFNGETINTERNALFORMATI64VPROC)IntGetProcAddress("glGetInternalformati64v");
GetInternalformati64v(target, internalformat, pname, bufSize, params);
}
// Extension: ARB_program_interface_query
static void CODEGEN_FUNCPTR Switch_GetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint * params)
{
GetProgramInterfaceiv = (PFNGETPROGRAMINTERFACEIVPROC)IntGetProcAddress("glGetProgramInterfaceiv");
GetProgramInterfaceiv(program, programInterface, pname, params);
}
static GLuint CODEGEN_FUNCPTR Switch_GetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar * name)
{
GetProgramResourceIndex = (PFNGETPROGRAMRESOURCEINDEXPROC)IntGetProcAddress("glGetProgramResourceIndex");
return GetProgramResourceIndex(program, programInterface, name);
}
static GLint CODEGEN_FUNCPTR Switch_GetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar * name)
{
GetProgramResourceLocation = (PFNGETPROGRAMRESOURCELOCATIONPROC)IntGetProcAddress("glGetProgramResourceLocation");
return GetProgramResourceLocation(program, programInterface, name);
}
static GLint CODEGEN_FUNCPTR Switch_GetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar * name)
{
GetProgramResourceLocationIndex = (PFNGETPROGRAMRESOURCELOCATIONINDEXPROC)IntGetProcAddress("glGetProgramResourceLocationIndex");
return GetProgramResourceLocationIndex(program, programInterface, name);
}
static void CODEGEN_FUNCPTR Switch_GetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name)
{
GetProgramResourceName = (PFNGETPROGRAMRESOURCENAMEPROC)IntGetProcAddress("glGetProgramResourceName");
GetProgramResourceName(program, programInterface, index, bufSize, length, name);
}
static void CODEGEN_FUNCPTR Switch_GetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLint * params)
{
GetProgramResourceiv = (PFNGETPROGRAMRESOURCEIVPROC)IntGetProcAddress("glGetProgramResourceiv");
GetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
}
// Extension: ARB_separate_shader_objects
static void CODEGEN_FUNCPTR Switch_ActiveShaderProgram(GLuint pipeline, GLuint program)
{
ActiveShaderProgram = (PFNACTIVESHADERPROGRAMPROC)IntGetProcAddress("glActiveShaderProgram");
ActiveShaderProgram(pipeline, program);
}
static void CODEGEN_FUNCPTR Switch_BindProgramPipeline(GLuint pipeline)
{
BindProgramPipeline = (PFNBINDPROGRAMPIPELINEPROC)IntGetProcAddress("glBindProgramPipeline");
BindProgramPipeline(pipeline);
}
static GLuint CODEGEN_FUNCPTR Switch_CreateShaderProgramv(GLenum type, GLsizei count, const GLchar *const* strings)
{
CreateShaderProgramv = (PFNCREATESHADERPROGRAMVPROC)IntGetProcAddress("glCreateShaderProgramv");
return CreateShaderProgramv(type, count, strings);
}
static void CODEGEN_FUNCPTR Switch_DeleteProgramPipelines(GLsizei n, const GLuint * pipelines)
{
DeleteProgramPipelines = (PFNDELETEPROGRAMPIPELINESPROC)IntGetProcAddress("glDeleteProgramPipelines");
DeleteProgramPipelines(n, pipelines);
}
static void CODEGEN_FUNCPTR Switch_GenProgramPipelines(GLsizei n, GLuint * pipelines)
{
GenProgramPipelines = (PFNGENPROGRAMPIPELINESPROC)IntGetProcAddress("glGenProgramPipelines");
GenProgramPipelines(n, pipelines);
}
static void CODEGEN_FUNCPTR Switch_GetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog)
{
GetProgramPipelineInfoLog = (PFNGETPROGRAMPIPELINEINFOLOGPROC)IntGetProcAddress("glGetProgramPipelineInfoLog");
GetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
}
static void CODEGEN_FUNCPTR Switch_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint * params)
{
GetProgramPipelineiv = (PFNGETPROGRAMPIPELINEIVPROC)IntGetProcAddress("glGetProgramPipelineiv");
GetProgramPipelineiv(pipeline, pname, params);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsProgramPipeline(GLuint pipeline)
{
IsProgramPipeline = (PFNISPROGRAMPIPELINEPROC)IntGetProcAddress("glIsProgramPipeline");
return IsProgramPipeline(pipeline);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1d(GLuint program, GLint location, GLdouble v0)
{
ProgramUniform1d = (PFNPROGRAMUNIFORM1DPROC)IntGetProcAddress("glProgramUniform1d");
ProgramUniform1d(program, location, v0);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble * value)
{
ProgramUniform1dv = (PFNPROGRAMUNIFORM1DVPROC)IntGetProcAddress("glProgramUniform1dv");
ProgramUniform1dv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1f(GLuint program, GLint location, GLfloat v0)
{
ProgramUniform1f = (PFNPROGRAMUNIFORM1FPROC)IntGetProcAddress("glProgramUniform1f");
ProgramUniform1f(program, location, v0);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat * value)
{
ProgramUniform1fv = (PFNPROGRAMUNIFORM1FVPROC)IntGetProcAddress("glProgramUniform1fv");
ProgramUniform1fv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1i(GLuint program, GLint location, GLint v0)
{
ProgramUniform1i = (PFNPROGRAMUNIFORM1IPROC)IntGetProcAddress("glProgramUniform1i");
ProgramUniform1i(program, location, v0);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint * value)
{
ProgramUniform1iv = (PFNPROGRAMUNIFORM1IVPROC)IntGetProcAddress("glProgramUniform1iv");
ProgramUniform1iv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1ui(GLuint program, GLint location, GLuint v0)
{
ProgramUniform1ui = (PFNPROGRAMUNIFORM1UIPROC)IntGetProcAddress("glProgramUniform1ui");
ProgramUniform1ui(program, location, v0);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint * value)
{
ProgramUniform1uiv = (PFNPROGRAMUNIFORM1UIVPROC)IntGetProcAddress("glProgramUniform1uiv");
ProgramUniform1uiv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1)
{
ProgramUniform2d = (PFNPROGRAMUNIFORM2DPROC)IntGetProcAddress("glProgramUniform2d");
ProgramUniform2d(program, location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble * value)
{
ProgramUniform2dv = (PFNPROGRAMUNIFORM2DVPROC)IntGetProcAddress("glProgramUniform2dv");
ProgramUniform2dv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1)
{
ProgramUniform2f = (PFNPROGRAMUNIFORM2FPROC)IntGetProcAddress("glProgramUniform2f");
ProgramUniform2f(program, location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat * value)
{
ProgramUniform2fv = (PFNPROGRAMUNIFORM2FVPROC)IntGetProcAddress("glProgramUniform2fv");
ProgramUniform2fv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1)
{
ProgramUniform2i = (PFNPROGRAMUNIFORM2IPROC)IntGetProcAddress("glProgramUniform2i");
ProgramUniform2i(program, location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint * value)
{
ProgramUniform2iv = (PFNPROGRAMUNIFORM2IVPROC)IntGetProcAddress("glProgramUniform2iv");
ProgramUniform2iv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1)
{
ProgramUniform2ui = (PFNPROGRAMUNIFORM2UIPROC)IntGetProcAddress("glProgramUniform2ui");
ProgramUniform2ui(program, location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint * value)
{
ProgramUniform2uiv = (PFNPROGRAMUNIFORM2UIVPROC)IntGetProcAddress("glProgramUniform2uiv");
ProgramUniform2uiv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
{
ProgramUniform3d = (PFNPROGRAMUNIFORM3DPROC)IntGetProcAddress("glProgramUniform3d");
ProgramUniform3d(program, location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble * value)
{
ProgramUniform3dv = (PFNPROGRAMUNIFORM3DVPROC)IntGetProcAddress("glProgramUniform3dv");
ProgramUniform3dv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
{
ProgramUniform3f = (PFNPROGRAMUNIFORM3FPROC)IntGetProcAddress("glProgramUniform3f");
ProgramUniform3f(program, location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat * value)
{
ProgramUniform3fv = (PFNPROGRAMUNIFORM3FVPROC)IntGetProcAddress("glProgramUniform3fv");
ProgramUniform3fv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
{
ProgramUniform3i = (PFNPROGRAMUNIFORM3IPROC)IntGetProcAddress("glProgramUniform3i");
ProgramUniform3i(program, location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint * value)
{
ProgramUniform3iv = (PFNPROGRAMUNIFORM3IVPROC)IntGetProcAddress("glProgramUniform3iv");
ProgramUniform3iv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
{
ProgramUniform3ui = (PFNPROGRAMUNIFORM3UIPROC)IntGetProcAddress("glProgramUniform3ui");
ProgramUniform3ui(program, location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint * value)
{
ProgramUniform3uiv = (PFNPROGRAMUNIFORM3UIVPROC)IntGetProcAddress("glProgramUniform3uiv");
ProgramUniform3uiv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
{
ProgramUniform4d = (PFNPROGRAMUNIFORM4DPROC)IntGetProcAddress("glProgramUniform4d");
ProgramUniform4d(program, location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble * value)
{
ProgramUniform4dv = (PFNPROGRAMUNIFORM4DVPROC)IntGetProcAddress("glProgramUniform4dv");
ProgramUniform4dv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
{
ProgramUniform4f = (PFNPROGRAMUNIFORM4FPROC)IntGetProcAddress("glProgramUniform4f");
ProgramUniform4f(program, location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat * value)
{
ProgramUniform4fv = (PFNPROGRAMUNIFORM4FVPROC)IntGetProcAddress("glProgramUniform4fv");
ProgramUniform4fv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
{
ProgramUniform4i = (PFNPROGRAMUNIFORM4IPROC)IntGetProcAddress("glProgramUniform4i");
ProgramUniform4i(program, location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint * value)
{
ProgramUniform4iv = (PFNPROGRAMUNIFORM4IVPROC)IntGetProcAddress("glProgramUniform4iv");
ProgramUniform4iv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
{
ProgramUniform4ui = (PFNPROGRAMUNIFORM4UIPROC)IntGetProcAddress("glProgramUniform4ui");
ProgramUniform4ui(program, location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint * value)
{
ProgramUniform4uiv = (PFNPROGRAMUNIFORM4UIVPROC)IntGetProcAddress("glProgramUniform4uiv");
ProgramUniform4uiv(program, location, count, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix2dv = (PFNPROGRAMUNIFORMMATRIX2DVPROC)IntGetProcAddress("glProgramUniformMatrix2dv");
ProgramUniformMatrix2dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix2fv = (PFNPROGRAMUNIFORMMATRIX2FVPROC)IntGetProcAddress("glProgramUniformMatrix2fv");
ProgramUniformMatrix2fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix2x3dv = (PFNPROGRAMUNIFORMMATRIX2X3DVPROC)IntGetProcAddress("glProgramUniformMatrix2x3dv");
ProgramUniformMatrix2x3dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix2x3fv = (PFNPROGRAMUNIFORMMATRIX2X3FVPROC)IntGetProcAddress("glProgramUniformMatrix2x3fv");
ProgramUniformMatrix2x3fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix2x4dv = (PFNPROGRAMUNIFORMMATRIX2X4DVPROC)IntGetProcAddress("glProgramUniformMatrix2x4dv");
ProgramUniformMatrix2x4dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix2x4fv = (PFNPROGRAMUNIFORMMATRIX2X4FVPROC)IntGetProcAddress("glProgramUniformMatrix2x4fv");
ProgramUniformMatrix2x4fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix3dv = (PFNPROGRAMUNIFORMMATRIX3DVPROC)IntGetProcAddress("glProgramUniformMatrix3dv");
ProgramUniformMatrix3dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix3fv = (PFNPROGRAMUNIFORMMATRIX3FVPROC)IntGetProcAddress("glProgramUniformMatrix3fv");
ProgramUniformMatrix3fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix3x2dv = (PFNPROGRAMUNIFORMMATRIX3X2DVPROC)IntGetProcAddress("glProgramUniformMatrix3x2dv");
ProgramUniformMatrix3x2dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix3x2fv = (PFNPROGRAMUNIFORMMATRIX3X2FVPROC)IntGetProcAddress("glProgramUniformMatrix3x2fv");
ProgramUniformMatrix3x2fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix3x4dv = (PFNPROGRAMUNIFORMMATRIX3X4DVPROC)IntGetProcAddress("glProgramUniformMatrix3x4dv");
ProgramUniformMatrix3x4dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix3x4fv = (PFNPROGRAMUNIFORMMATRIX3X4FVPROC)IntGetProcAddress("glProgramUniformMatrix3x4fv");
ProgramUniformMatrix3x4fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix4dv = (PFNPROGRAMUNIFORMMATRIX4DVPROC)IntGetProcAddress("glProgramUniformMatrix4dv");
ProgramUniformMatrix4dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix4fv = (PFNPROGRAMUNIFORMMATRIX4FVPROC)IntGetProcAddress("glProgramUniformMatrix4fv");
ProgramUniformMatrix4fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix4x2dv = (PFNPROGRAMUNIFORMMATRIX4X2DVPROC)IntGetProcAddress("glProgramUniformMatrix4x2dv");
ProgramUniformMatrix4x2dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix4x2fv = (PFNPROGRAMUNIFORMMATRIX4X2FVPROC)IntGetProcAddress("glProgramUniformMatrix4x2fv");
ProgramUniformMatrix4x2fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
ProgramUniformMatrix4x3dv = (PFNPROGRAMUNIFORMMATRIX4X3DVPROC)IntGetProcAddress("glProgramUniformMatrix4x3dv");
ProgramUniformMatrix4x3dv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_ProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
ProgramUniformMatrix4x3fv = (PFNPROGRAMUNIFORMMATRIX4X3FVPROC)IntGetProcAddress("glProgramUniformMatrix4x3fv");
ProgramUniformMatrix4x3fv(program, location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
{
UseProgramStages = (PFNUSEPROGRAMSTAGESPROC)IntGetProcAddress("glUseProgramStages");
UseProgramStages(pipeline, stages, program);
}
static void CODEGEN_FUNCPTR Switch_ValidateProgramPipeline(GLuint pipeline)
{
ValidateProgramPipeline = (PFNVALIDATEPROGRAMPIPELINEPROC)IntGetProcAddress("glValidateProgramPipeline");
ValidateProgramPipeline(pipeline);
}
// Extension: ARB_texture_buffer_range
static void CODEGEN_FUNCPTR Switch_TexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
{
TexBufferRange = (PFNTEXBUFFERRANGEPROC)IntGetProcAddress("glTexBufferRange");
TexBufferRange(target, internalformat, buffer, offset, size);
}
// Extension: ARB_texture_storage
static void CODEGEN_FUNCPTR Switch_TexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
{
TexStorage1D = (PFNTEXSTORAGE1DPROC)IntGetProcAddress("glTexStorage1D");
TexStorage1D(target, levels, internalformat, width);
}
static void CODEGEN_FUNCPTR Switch_TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
{
TexStorage2D = (PFNTEXSTORAGE2DPROC)IntGetProcAddress("glTexStorage2D");
TexStorage2D(target, levels, internalformat, width, height);
}
static void CODEGEN_FUNCPTR Switch_TexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
{
TexStorage3D = (PFNTEXSTORAGE3DPROC)IntGetProcAddress("glTexStorage3D");
TexStorage3D(target, levels, internalformat, width, height, depth);
}
// Extension: ARB_texture_view
static void CODEGEN_FUNCPTR Switch_TextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
{
TextureView = (PFNTEXTUREVIEWPROC)IntGetProcAddress("glTextureView");
TextureView(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
}
// Extension: ARB_vertex_attrib_binding
static void CODEGEN_FUNCPTR Switch_BindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
{
BindVertexBuffer = (PFNBINDVERTEXBUFFERPROC)IntGetProcAddress("glBindVertexBuffer");
BindVertexBuffer(bindingindex, buffer, offset, stride);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribBinding(GLuint attribindex, GLuint bindingindex)
{
VertexAttribBinding = (PFNVERTEXATTRIBBINDINGPROC)IntGetProcAddress("glVertexAttribBinding");
VertexAttribBinding(attribindex, bindingindex);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
{
VertexAttribFormat = (PFNVERTEXATTRIBFORMATPROC)IntGetProcAddress("glVertexAttribFormat");
VertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
{
VertexAttribIFormat = (PFNVERTEXATTRIBIFORMATPROC)IntGetProcAddress("glVertexAttribIFormat");
VertexAttribIFormat(attribindex, size, type, relativeoffset);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
{
VertexAttribLFormat = (PFNVERTEXATTRIBLFORMATPROC)IntGetProcAddress("glVertexAttribLFormat");
VertexAttribLFormat(attribindex, size, type, relativeoffset);
}
static void CODEGEN_FUNCPTR Switch_VertexBindingDivisor(GLuint bindingindex, GLuint divisor)
{
VertexBindingDivisor = (PFNVERTEXBINDINGDIVISORPROC)IntGetProcAddress("glVertexBindingDivisor");
VertexBindingDivisor(bindingindex, divisor);
}
// Extension: ARB_viewport_array
static void CODEGEN_FUNCPTR Switch_DepthRangeArrayv(GLuint first, GLsizei count, const GLdouble * v)
{
DepthRangeArrayv = (PFNDEPTHRANGEARRAYVPROC)IntGetProcAddress("glDepthRangeArrayv");
DepthRangeArrayv(first, count, v);
}
static void CODEGEN_FUNCPTR Switch_DepthRangeIndexed(GLuint index, GLdouble n, GLdouble f)
{
DepthRangeIndexed = (PFNDEPTHRANGEINDEXEDPROC)IntGetProcAddress("glDepthRangeIndexed");
DepthRangeIndexed(index, n, f);
}
static void CODEGEN_FUNCPTR Switch_GetDoublei_v(GLenum target, GLuint index, GLdouble * data)
{
GetDoublei_v = (PFNGETDOUBLEI_VPROC)IntGetProcAddress("glGetDoublei_v");
GetDoublei_v(target, index, data);
}
static void CODEGEN_FUNCPTR Switch_GetFloati_v(GLenum target, GLuint index, GLfloat * data)
{
GetFloati_v = (PFNGETFLOATI_VPROC)IntGetProcAddress("glGetFloati_v");
GetFloati_v(target, index, data);
}
static void CODEGEN_FUNCPTR Switch_ScissorArrayv(GLuint first, GLsizei count, const GLint * v)
{
ScissorArrayv = (PFNSCISSORARRAYVPROC)IntGetProcAddress("glScissorArrayv");
ScissorArrayv(first, count, v);
}
static void CODEGEN_FUNCPTR Switch_ScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
{
ScissorIndexed = (PFNSCISSORINDEXEDPROC)IntGetProcAddress("glScissorIndexed");
ScissorIndexed(index, left, bottom, width, height);
}
static void CODEGEN_FUNCPTR Switch_ScissorIndexedv(GLuint index, const GLint * v)
{
ScissorIndexedv = (PFNSCISSORINDEXEDVPROC)IntGetProcAddress("glScissorIndexedv");
ScissorIndexedv(index, v);
}
static void CODEGEN_FUNCPTR Switch_ViewportArrayv(GLuint first, GLsizei count, const GLfloat * v)
{
ViewportArrayv = (PFNVIEWPORTARRAYVPROC)IntGetProcAddress("glViewportArrayv");
ViewportArrayv(first, count, v);
}
static void CODEGEN_FUNCPTR Switch_ViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
{
ViewportIndexedf = (PFNVIEWPORTINDEXEDFPROC)IntGetProcAddress("glViewportIndexedf");
ViewportIndexedf(index, x, y, w, h);
}
static void CODEGEN_FUNCPTR Switch_ViewportIndexedfv(GLuint index, const GLfloat * v)
{
ViewportIndexedfv = (PFNVIEWPORTINDEXEDFVPROC)IntGetProcAddress("glViewportIndexedfv");
ViewportIndexedfv(index, v);
}
// Extension: ARB_clear_buffer_object
static void CODEGEN_FUNCPTR Switch_ClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data)
{
ClearBufferData = (PFNCLEARBUFFERDATAPROC)IntGetProcAddress("glClearBufferData");
ClearBufferData(target, internalformat, format, type, data);
}
static void CODEGEN_FUNCPTR Switch_ClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data)
{
ClearBufferSubData = (PFNCLEARBUFFERSUBDATAPROC)IntGetProcAddress("glClearBufferSubData");
ClearBufferSubData(target, internalformat, offset, size, format, type, data);
}
// Extension: ARB_copy_image
static void CODEGEN_FUNCPTR Switch_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
{
CopyImageSubData = (PFNCOPYIMAGESUBDATAPROC)IntGetProcAddress("glCopyImageSubData");
CopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
}
// Extension: ARB_framebuffer_no_attachments
static void CODEGEN_FUNCPTR Switch_FramebufferParameteri(GLenum target, GLenum pname, GLint param)
{
FramebufferParameteri = (PFNFRAMEBUFFERPARAMETERIPROC)IntGetProcAddress("glFramebufferParameteri");
FramebufferParameteri(target, pname, param);
}
static void CODEGEN_FUNCPTR Switch_GetFramebufferParameteriv(GLenum target, GLenum pname, GLint * params)
{
GetFramebufferParameteriv = (PFNGETFRAMEBUFFERPARAMETERIVPROC)IntGetProcAddress("glGetFramebufferParameteriv");
GetFramebufferParameteriv(target, pname, params);
}
// Extension: ARB_invalidate_subdata
static void CODEGEN_FUNCPTR Switch_InvalidateBufferData(GLuint buffer)
{
InvalidateBufferData = (PFNINVALIDATEBUFFERDATAPROC)IntGetProcAddress("glInvalidateBufferData");
InvalidateBufferData(buffer);
}
static void CODEGEN_FUNCPTR Switch_InvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length)
{
InvalidateBufferSubData = (PFNINVALIDATEBUFFERSUBDATAPROC)IntGetProcAddress("glInvalidateBufferSubData");
InvalidateBufferSubData(buffer, offset, length);
}
static void CODEGEN_FUNCPTR Switch_InvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum * attachments)
{
InvalidateFramebuffer = (PFNINVALIDATEFRAMEBUFFERPROC)IntGetProcAddress("glInvalidateFramebuffer");
InvalidateFramebuffer(target, numAttachments, attachments);
}
static void CODEGEN_FUNCPTR Switch_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height)
{
InvalidateSubFramebuffer = (PFNINVALIDATESUBFRAMEBUFFERPROC)IntGetProcAddress("glInvalidateSubFramebuffer");
InvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
}
static void CODEGEN_FUNCPTR Switch_InvalidateTexImage(GLuint texture, GLint level)
{
InvalidateTexImage = (PFNINVALIDATETEXIMAGEPROC)IntGetProcAddress("glInvalidateTexImage");
InvalidateTexImage(texture, level);
}
static void CODEGEN_FUNCPTR Switch_InvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)
{
InvalidateTexSubImage = (PFNINVALIDATETEXSUBIMAGEPROC)IntGetProcAddress("glInvalidateTexSubImage");
InvalidateTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth);
}
// Extension: ARB_texture_storage_multisample
static void CODEGEN_FUNCPTR Switch_TexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
{
TexStorage2DMultisample = (PFNTEXSTORAGE2DMULTISAMPLEPROC)IntGetProcAddress("glTexStorage2DMultisample");
TexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
}
static void CODEGEN_FUNCPTR Switch_TexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
{
TexStorage3DMultisample = (PFNTEXSTORAGE3DMULTISAMPLEPROC)IntGetProcAddress("glTexStorage3DMultisample");
TexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
}
// Extension: KHR_debug
static void CODEGEN_FUNCPTR Switch_DebugMessageCallback(GLDEBUGPROC callback, const void * userParam)
{
DebugMessageCallback = (PFNDEBUGMESSAGECALLBACKPROC)IntGetProcAddress("glDebugMessageCallback");
DebugMessageCallback(callback, userParam);
}
static void CODEGEN_FUNCPTR Switch_DebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled)
{
DebugMessageControl = (PFNDEBUGMESSAGECONTROLPROC)IntGetProcAddress("glDebugMessageControl");
DebugMessageControl(source, type, severity, count, ids, enabled);
}
static void CODEGEN_FUNCPTR Switch_DebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf)
{
DebugMessageInsert = (PFNDEBUGMESSAGEINSERTPROC)IntGetProcAddress("glDebugMessageInsert");
DebugMessageInsert(source, type, id, severity, length, buf);
}
static GLuint CODEGEN_FUNCPTR Switch_GetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog)
{
GetDebugMessageLog = (PFNGETDEBUGMESSAGELOGPROC)IntGetProcAddress("glGetDebugMessageLog");
return GetDebugMessageLog(count, bufsize, sources, types, ids, severities, lengths, messageLog);
}
static void CODEGEN_FUNCPTR Switch_GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label)
{
GetObjectLabel = (PFNGETOBJECTLABELPROC)IntGetProcAddress("glGetObjectLabel");
GetObjectLabel(identifier, name, bufSize, length, label);
}
static void CODEGEN_FUNCPTR Switch_GetObjectPtrLabel(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label)
{
GetObjectPtrLabel = (PFNGETOBJECTPTRLABELPROC)IntGetProcAddress("glGetObjectPtrLabel");
GetObjectPtrLabel(ptr, bufSize, length, label);
}
static void CODEGEN_FUNCPTR Switch_GetPointerv(GLenum pname, GLvoid ** params)
{
GetPointerv = (PFNGETPOINTERVPROC)IntGetProcAddress("glGetPointerv");
GetPointerv(pname, params);
}
static void CODEGEN_FUNCPTR Switch_ObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar * label)
{
ObjectLabel = (PFNOBJECTLABELPROC)IntGetProcAddress("glObjectLabel");
ObjectLabel(identifier, name, length, label);
}
static void CODEGEN_FUNCPTR Switch_ObjectPtrLabel(const void * ptr, GLsizei length, const GLchar * label)
{
ObjectPtrLabel = (PFNOBJECTPTRLABELPROC)IntGetProcAddress("glObjectPtrLabel");
ObjectPtrLabel(ptr, length, label);
}
static void CODEGEN_FUNCPTR Switch_PopDebugGroup()
{
PopDebugGroup = (PFNPOPDEBUGGROUPPROC)IntGetProcAddress("glPopDebugGroup");
PopDebugGroup();
}
static void CODEGEN_FUNCPTR Switch_PushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar * message)
{
PushDebugGroup = (PFNPUSHDEBUGGROUPPROC)IntGetProcAddress("glPushDebugGroup");
PushDebugGroup(source, id, length, message);
}
// Extension: 1.0
static void CODEGEN_FUNCPTR Switch_BlendFunc(GLenum sfactor, GLenum dfactor)
{
BlendFunc = (PFNBLENDFUNCPROC)IntGetProcAddress("glBlendFunc");
BlendFunc(sfactor, dfactor);
}
static void CODEGEN_FUNCPTR Switch_Clear(GLbitfield mask)
{
Clear = (PFNCLEARPROC)IntGetProcAddress("glClear");
Clear(mask);
}
static void CODEGEN_FUNCPTR Switch_ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
ClearColor = (PFNCLEARCOLORPROC)IntGetProcAddress("glClearColor");
ClearColor(red, green, blue, alpha);
}
static void CODEGEN_FUNCPTR Switch_ClearDepth(GLdouble depth)
{
ClearDepth = (PFNCLEARDEPTHPROC)IntGetProcAddress("glClearDepth");
ClearDepth(depth);
}
static void CODEGEN_FUNCPTR Switch_ClearStencil(GLint s)
{
ClearStencil = (PFNCLEARSTENCILPROC)IntGetProcAddress("glClearStencil");
ClearStencil(s);
}
static void CODEGEN_FUNCPTR Switch_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
{
ColorMask = (PFNCOLORMASKPROC)IntGetProcAddress("glColorMask");
ColorMask(red, green, blue, alpha);
}
static void CODEGEN_FUNCPTR Switch_CullFace(GLenum mode)
{
CullFace = (PFNCULLFACEPROC)IntGetProcAddress("glCullFace");
CullFace(mode);
}
static void CODEGEN_FUNCPTR Switch_DepthFunc(GLenum func)
{
DepthFunc = (PFNDEPTHFUNCPROC)IntGetProcAddress("glDepthFunc");
DepthFunc(func);
}
static void CODEGEN_FUNCPTR Switch_DepthMask(GLboolean flag)
{
DepthMask = (PFNDEPTHMASKPROC)IntGetProcAddress("glDepthMask");
DepthMask(flag);
}
static void CODEGEN_FUNCPTR Switch_DepthRange(GLdouble ren_near, GLdouble ren_far)
{
DepthRange = (PFNDEPTHRANGEPROC)IntGetProcAddress("glDepthRange");
DepthRange(ren_near, ren_far);
}
static void CODEGEN_FUNCPTR Switch_Disable(GLenum cap)
{
Disable = (PFNDISABLEPROC)IntGetProcAddress("glDisable");
Disable(cap);
}
static void CODEGEN_FUNCPTR Switch_DrawBuffer(GLenum mode)
{
DrawBuffer = (PFNDRAWBUFFERPROC)IntGetProcAddress("glDrawBuffer");
DrawBuffer(mode);
}
static void CODEGEN_FUNCPTR Switch_Enable(GLenum cap)
{
Enable = (PFNENABLEPROC)IntGetProcAddress("glEnable");
Enable(cap);
}
static void CODEGEN_FUNCPTR Switch_Finish()
{
Finish = (PFNFINISHPROC)IntGetProcAddress("glFinish");
Finish();
}
static void CODEGEN_FUNCPTR Switch_Flush()
{
Flush = (PFNFLUSHPROC)IntGetProcAddress("glFlush");
Flush();
}
static void CODEGEN_FUNCPTR Switch_FrontFace(GLenum mode)
{
FrontFace = (PFNFRONTFACEPROC)IntGetProcAddress("glFrontFace");
FrontFace(mode);
}
static void CODEGEN_FUNCPTR Switch_GetBooleanv(GLenum pname, GLboolean * params)
{
GetBooleanv = (PFNGETBOOLEANVPROC)IntGetProcAddress("glGetBooleanv");
GetBooleanv(pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetDoublev(GLenum pname, GLdouble * params)
{
GetDoublev = (PFNGETDOUBLEVPROC)IntGetProcAddress("glGetDoublev");
GetDoublev(pname, params);
}
static GLenum CODEGEN_FUNCPTR Switch_GetError()
{
GetError = (PFNGETERRORPROC)IntGetProcAddress("glGetError");
return GetError();
}
static void CODEGEN_FUNCPTR Switch_GetFloatv(GLenum pname, GLfloat * params)
{
GetFloatv = (PFNGETFLOATVPROC)IntGetProcAddress("glGetFloatv");
GetFloatv(pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetIntegerv(GLenum pname, GLint * params)
{
GetIntegerv = (PFNGETINTEGERVPROC)IntGetProcAddress("glGetIntegerv");
GetIntegerv(pname, params);
}
static const GLubyte * CODEGEN_FUNCPTR Switch_GetString(GLenum name)
{
GetString = (PFNGETSTRINGPROC)IntGetProcAddress("glGetString");
return GetString(name);
}
static void CODEGEN_FUNCPTR Switch_GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels)
{
GetTexImage = (PFNGETTEXIMAGEPROC)IntGetProcAddress("glGetTexImage");
GetTexImage(target, level, format, type, pixels);
}
static void CODEGEN_FUNCPTR Switch_GetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params)
{
GetTexLevelParameterfv = (PFNGETTEXLEVELPARAMETERFVPROC)IntGetProcAddress("glGetTexLevelParameterfv");
GetTexLevelParameterfv(target, level, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params)
{
GetTexLevelParameteriv = (PFNGETTEXLEVELPARAMETERIVPROC)IntGetProcAddress("glGetTexLevelParameteriv");
GetTexLevelParameteriv(target, level, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetTexParameterfv(GLenum target, GLenum pname, GLfloat * params)
{
GetTexParameterfv = (PFNGETTEXPARAMETERFVPROC)IntGetProcAddress("glGetTexParameterfv");
GetTexParameterfv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetTexParameteriv(GLenum target, GLenum pname, GLint * params)
{
GetTexParameteriv = (PFNGETTEXPARAMETERIVPROC)IntGetProcAddress("glGetTexParameteriv");
GetTexParameteriv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_Hint(GLenum target, GLenum mode)
{
Hint = (PFNHINTPROC)IntGetProcAddress("glHint");
Hint(target, mode);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsEnabled(GLenum cap)
{
IsEnabled = (PFNISENABLEDPROC)IntGetProcAddress("glIsEnabled");
return IsEnabled(cap);
}
static void CODEGEN_FUNCPTR Switch_LineWidth(GLfloat width)
{
LineWidth = (PFNLINEWIDTHPROC)IntGetProcAddress("glLineWidth");
LineWidth(width);
}
static void CODEGEN_FUNCPTR Switch_LogicOp(GLenum opcode)
{
LogicOp = (PFNLOGICOPPROC)IntGetProcAddress("glLogicOp");
LogicOp(opcode);
}
static void CODEGEN_FUNCPTR Switch_PixelStoref(GLenum pname, GLfloat param)
{
PixelStoref = (PFNPIXELSTOREFPROC)IntGetProcAddress("glPixelStoref");
PixelStoref(pname, param);
}
static void CODEGEN_FUNCPTR Switch_PixelStorei(GLenum pname, GLint param)
{
PixelStorei = (PFNPIXELSTOREIPROC)IntGetProcAddress("glPixelStorei");
PixelStorei(pname, param);
}
static void CODEGEN_FUNCPTR Switch_PointSize(GLfloat size)
{
PointSize = (PFNPOINTSIZEPROC)IntGetProcAddress("glPointSize");
PointSize(size);
}
static void CODEGEN_FUNCPTR Switch_PolygonMode(GLenum face, GLenum mode)
{
PolygonMode = (PFNPOLYGONMODEPROC)IntGetProcAddress("glPolygonMode");
PolygonMode(face, mode);
}
static void CODEGEN_FUNCPTR Switch_ReadBuffer(GLenum mode)
{
ReadBuffer = (PFNREADBUFFERPROC)IntGetProcAddress("glReadBuffer");
ReadBuffer(mode);
}
static void CODEGEN_FUNCPTR Switch_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels)
{
ReadPixels = (PFNREADPIXELSPROC)IntGetProcAddress("glReadPixels");
ReadPixels(x, y, width, height, format, type, pixels);
}
static void CODEGEN_FUNCPTR Switch_Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
{
Scissor = (PFNSCISSORPROC)IntGetProcAddress("glScissor");
Scissor(x, y, width, height);
}
static void CODEGEN_FUNCPTR Switch_StencilFunc(GLenum func, GLint ref, GLuint mask)
{
StencilFunc = (PFNSTENCILFUNCPROC)IntGetProcAddress("glStencilFunc");
StencilFunc(func, ref, mask);
}
static void CODEGEN_FUNCPTR Switch_StencilMask(GLuint mask)
{
StencilMask = (PFNSTENCILMASKPROC)IntGetProcAddress("glStencilMask");
StencilMask(mask);
}
static void CODEGEN_FUNCPTR Switch_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
{
StencilOp = (PFNSTENCILOPPROC)IntGetProcAddress("glStencilOp");
StencilOp(fail, zfail, zpass);
}
static void CODEGEN_FUNCPTR Switch_TexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
{
TexImage1D = (PFNTEXIMAGE1DPROC)IntGetProcAddress("glTexImage1D");
TexImage1D(target, level, internalformat, width, border, format, type, pixels);
}
static void CODEGEN_FUNCPTR Switch_TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
{
TexImage2D = (PFNTEXIMAGE2DPROC)IntGetProcAddress("glTexImage2D");
TexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
}
static void CODEGEN_FUNCPTR Switch_TexParameterf(GLenum target, GLenum pname, GLfloat param)
{
TexParameterf = (PFNTEXPARAMETERFPROC)IntGetProcAddress("glTexParameterf");
TexParameterf(target, pname, param);
}
static void CODEGEN_FUNCPTR Switch_TexParameterfv(GLenum target, GLenum pname, const GLfloat * params)
{
TexParameterfv = (PFNTEXPARAMETERFVPROC)IntGetProcAddress("glTexParameterfv");
TexParameterfv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_TexParameteri(GLenum target, GLenum pname, GLint param)
{
TexParameteri = (PFNTEXPARAMETERIPROC)IntGetProcAddress("glTexParameteri");
TexParameteri(target, pname, param);
}
static void CODEGEN_FUNCPTR Switch_TexParameteriv(GLenum target, GLenum pname, const GLint * params)
{
TexParameteriv = (PFNTEXPARAMETERIVPROC)IntGetProcAddress("glTexParameteriv");
TexParameteriv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
{
Viewport = (PFNVIEWPORTPROC)IntGetProcAddress("glViewport");
Viewport(x, y, width, height);
}
// Extension: 1.1
static void CODEGEN_FUNCPTR Switch_BindTexture(GLenum target, GLuint texture)
{
BindTexture = (PFNBINDTEXTUREPROC)IntGetProcAddress("glBindTexture");
BindTexture(target, texture);
}
static void CODEGEN_FUNCPTR Switch_CopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
{
CopyTexImage1D = (PFNCOPYTEXIMAGE1DPROC)IntGetProcAddress("glCopyTexImage1D");
CopyTexImage1D(target, level, internalformat, x, y, width, border);
}
static void CODEGEN_FUNCPTR Switch_CopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
{
CopyTexImage2D = (PFNCOPYTEXIMAGE2DPROC)IntGetProcAddress("glCopyTexImage2D");
CopyTexImage2D(target, level, internalformat, x, y, width, height, border);
}
static void CODEGEN_FUNCPTR Switch_CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
{
CopyTexSubImage1D = (PFNCOPYTEXSUBIMAGE1DPROC)IntGetProcAddress("glCopyTexSubImage1D");
CopyTexSubImage1D(target, level, xoffset, x, y, width);
}
static void CODEGEN_FUNCPTR Switch_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
CopyTexSubImage2D = (PFNCOPYTEXSUBIMAGE2DPROC)IntGetProcAddress("glCopyTexSubImage2D");
CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
}
static void CODEGEN_FUNCPTR Switch_DeleteTextures(GLsizei n, const GLuint * textures)
{
DeleteTextures = (PFNDELETETEXTURESPROC)IntGetProcAddress("glDeleteTextures");
DeleteTextures(n, textures);
}
static void CODEGEN_FUNCPTR Switch_DrawArrays(GLenum mode, GLint first, GLsizei count)
{
DrawArrays = (PFNDRAWARRAYSPROC)IntGetProcAddress("glDrawArrays");
DrawArrays(mode, first, count);
}
static void CODEGEN_FUNCPTR Switch_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices)
{
DrawElements = (PFNDRAWELEMENTSPROC)IntGetProcAddress("glDrawElements");
DrawElements(mode, count, type, indices);
}
static void CODEGEN_FUNCPTR Switch_GenTextures(GLsizei n, GLuint * textures)
{
GenTextures = (PFNGENTEXTURESPROC)IntGetProcAddress("glGenTextures");
GenTextures(n, textures);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsTexture(GLuint texture)
{
IsTexture = (PFNISTEXTUREPROC)IntGetProcAddress("glIsTexture");
return IsTexture(texture);
}
static void CODEGEN_FUNCPTR Switch_PolygonOffset(GLfloat factor, GLfloat units)
{
PolygonOffset = (PFNPOLYGONOFFSETPROC)IntGetProcAddress("glPolygonOffset");
PolygonOffset(factor, units);
}
static void CODEGEN_FUNCPTR Switch_TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels)
{
TexSubImage1D = (PFNTEXSUBIMAGE1DPROC)IntGetProcAddress("glTexSubImage1D");
TexSubImage1D(target, level, xoffset, width, format, type, pixels);
}
static void CODEGEN_FUNCPTR Switch_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
{
TexSubImage2D = (PFNTEXSUBIMAGE2DPROC)IntGetProcAddress("glTexSubImage2D");
TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
}
// Extension: 1.2
static void CODEGEN_FUNCPTR Switch_BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
BlendColor = (PFNBLENDCOLORPROC)IntGetProcAddress("glBlendColor");
BlendColor(red, green, blue, alpha);
}
static void CODEGEN_FUNCPTR Switch_BlendEquation(GLenum mode)
{
BlendEquation = (PFNBLENDEQUATIONPROC)IntGetProcAddress("glBlendEquation");
BlendEquation(mode);
}
static void CODEGEN_FUNCPTR Switch_CopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
CopyTexSubImage3D = (PFNCOPYTEXSUBIMAGE3DPROC)IntGetProcAddress("glCopyTexSubImage3D");
CopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
}
static void CODEGEN_FUNCPTR Switch_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices)
{
DrawRangeElements = (PFNDRAWRANGEELEMENTSPROC)IntGetProcAddress("glDrawRangeElements");
DrawRangeElements(mode, start, end, count, type, indices);
}
static void CODEGEN_FUNCPTR Switch_TexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels)
{
TexImage3D = (PFNTEXIMAGE3DPROC)IntGetProcAddress("glTexImage3D");
TexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
}
static void CODEGEN_FUNCPTR Switch_TexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels)
{
TexSubImage3D = (PFNTEXSUBIMAGE3DPROC)IntGetProcAddress("glTexSubImage3D");
TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
}
// Extension: 1.3
static void CODEGEN_FUNCPTR Switch_ActiveTexture(GLenum texture)
{
ActiveTexture = (PFNACTIVETEXTUREPROC)IntGetProcAddress("glActiveTexture");
ActiveTexture(texture);
}
static void CODEGEN_FUNCPTR Switch_CompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data)
{
CompressedTexImage1D = (PFNCOMPRESSEDTEXIMAGE1DPROC)IntGetProcAddress("glCompressedTexImage1D");
CompressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
}
static void CODEGEN_FUNCPTR Switch_CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data)
{
CompressedTexImage2D = (PFNCOMPRESSEDTEXIMAGE2DPROC)IntGetProcAddress("glCompressedTexImage2D");
CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
}
static void CODEGEN_FUNCPTR Switch_CompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data)
{
CompressedTexImage3D = (PFNCOMPRESSEDTEXIMAGE3DPROC)IntGetProcAddress("glCompressedTexImage3D");
CompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
}
static void CODEGEN_FUNCPTR Switch_CompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data)
{
CompressedTexSubImage1D = (PFNCOMPRESSEDTEXSUBIMAGE1DPROC)IntGetProcAddress("glCompressedTexSubImage1D");
CompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
}
static void CODEGEN_FUNCPTR Switch_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data)
{
CompressedTexSubImage2D = (PFNCOMPRESSEDTEXSUBIMAGE2DPROC)IntGetProcAddress("glCompressedTexSubImage2D");
CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
}
static void CODEGEN_FUNCPTR Switch_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data)
{
CompressedTexSubImage3D = (PFNCOMPRESSEDTEXSUBIMAGE3DPROC)IntGetProcAddress("glCompressedTexSubImage3D");
CompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
}
static void CODEGEN_FUNCPTR Switch_GetCompressedTexImage(GLenum target, GLint level, GLvoid * img)
{
GetCompressedTexImage = (PFNGETCOMPRESSEDTEXIMAGEPROC)IntGetProcAddress("glGetCompressedTexImage");
GetCompressedTexImage(target, level, img);
}
static void CODEGEN_FUNCPTR Switch_SampleCoverage(GLfloat value, GLboolean invert)
{
SampleCoverage = (PFNSAMPLECOVERAGEPROC)IntGetProcAddress("glSampleCoverage");
SampleCoverage(value, invert);
}
// Extension: 1.4
static void CODEGEN_FUNCPTR Switch_BlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
{
BlendFuncSeparate = (PFNBLENDFUNCSEPARATEPROC)IntGetProcAddress("glBlendFuncSeparate");
BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
}
static void CODEGEN_FUNCPTR Switch_MultiDrawArrays(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount)
{
MultiDrawArrays = (PFNMULTIDRAWARRAYSPROC)IntGetProcAddress("glMultiDrawArrays");
MultiDrawArrays(mode, first, count, drawcount);
}
static void CODEGEN_FUNCPTR Switch_MultiDrawElements(GLenum mode, const GLsizei * count, GLenum type, const GLvoid *const* indices, GLsizei drawcount)
{
MultiDrawElements = (PFNMULTIDRAWELEMENTSPROC)IntGetProcAddress("glMultiDrawElements");
MultiDrawElements(mode, count, type, indices, drawcount);
}
static void CODEGEN_FUNCPTR Switch_PointParameterf(GLenum pname, GLfloat param)
{
PointParameterf = (PFNPOINTPARAMETERFPROC)IntGetProcAddress("glPointParameterf");
PointParameterf(pname, param);
}
static void CODEGEN_FUNCPTR Switch_PointParameterfv(GLenum pname, const GLfloat * params)
{
PointParameterfv = (PFNPOINTPARAMETERFVPROC)IntGetProcAddress("glPointParameterfv");
PointParameterfv(pname, params);
}
static void CODEGEN_FUNCPTR Switch_PointParameteri(GLenum pname, GLint param)
{
PointParameteri = (PFNPOINTPARAMETERIPROC)IntGetProcAddress("glPointParameteri");
PointParameteri(pname, param);
}
static void CODEGEN_FUNCPTR Switch_PointParameteriv(GLenum pname, const GLint * params)
{
PointParameteriv = (PFNPOINTPARAMETERIVPROC)IntGetProcAddress("glPointParameteriv");
PointParameteriv(pname, params);
}
// Extension: 1.5
static void CODEGEN_FUNCPTR Switch_BeginQuery(GLenum target, GLuint id)
{
BeginQuery = (PFNBEGINQUERYPROC)IntGetProcAddress("glBeginQuery");
BeginQuery(target, id);
}
static void CODEGEN_FUNCPTR Switch_BindBuffer(GLenum target, GLuint buffer)
{
BindBuffer = (PFNBINDBUFFERPROC)IntGetProcAddress("glBindBuffer");
BindBuffer(target, buffer);
}
static void CODEGEN_FUNCPTR Switch_BufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage)
{
BufferData = (PFNBUFFERDATAPROC)IntGetProcAddress("glBufferData");
BufferData(target, size, data, usage);
}
static void CODEGEN_FUNCPTR Switch_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data)
{
BufferSubData = (PFNBUFFERSUBDATAPROC)IntGetProcAddress("glBufferSubData");
BufferSubData(target, offset, size, data);
}
static void CODEGEN_FUNCPTR Switch_DeleteBuffers(GLsizei n, const GLuint * buffers)
{
DeleteBuffers = (PFNDELETEBUFFERSPROC)IntGetProcAddress("glDeleteBuffers");
DeleteBuffers(n, buffers);
}
static void CODEGEN_FUNCPTR Switch_DeleteQueries(GLsizei n, const GLuint * ids)
{
DeleteQueries = (PFNDELETEQUERIESPROC)IntGetProcAddress("glDeleteQueries");
DeleteQueries(n, ids);
}
static void CODEGEN_FUNCPTR Switch_EndQuery(GLenum target)
{
EndQuery = (PFNENDQUERYPROC)IntGetProcAddress("glEndQuery");
EndQuery(target);
}
static void CODEGEN_FUNCPTR Switch_GenBuffers(GLsizei n, GLuint * buffers)
{
GenBuffers = (PFNGENBUFFERSPROC)IntGetProcAddress("glGenBuffers");
GenBuffers(n, buffers);
}
static void CODEGEN_FUNCPTR Switch_GenQueries(GLsizei n, GLuint * ids)
{
GenQueries = (PFNGENQUERIESPROC)IntGetProcAddress("glGenQueries");
GenQueries(n, ids);
}
static void CODEGEN_FUNCPTR Switch_GetBufferParameteriv(GLenum target, GLenum pname, GLint * params)
{
GetBufferParameteriv = (PFNGETBUFFERPARAMETERIVPROC)IntGetProcAddress("glGetBufferParameteriv");
GetBufferParameteriv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetBufferPointerv(GLenum target, GLenum pname, GLvoid ** params)
{
GetBufferPointerv = (PFNGETBUFFERPOINTERVPROC)IntGetProcAddress("glGetBufferPointerv");
GetBufferPointerv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid * data)
{
GetBufferSubData = (PFNGETBUFFERSUBDATAPROC)IntGetProcAddress("glGetBufferSubData");
GetBufferSubData(target, offset, size, data);
}
static void CODEGEN_FUNCPTR Switch_GetQueryObjectiv(GLuint id, GLenum pname, GLint * params)
{
GetQueryObjectiv = (PFNGETQUERYOBJECTIVPROC)IntGetProcAddress("glGetQueryObjectiv");
GetQueryObjectiv(id, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetQueryObjectuiv(GLuint id, GLenum pname, GLuint * params)
{
GetQueryObjectuiv = (PFNGETQUERYOBJECTUIVPROC)IntGetProcAddress("glGetQueryObjectuiv");
GetQueryObjectuiv(id, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetQueryiv(GLenum target, GLenum pname, GLint * params)
{
GetQueryiv = (PFNGETQUERYIVPROC)IntGetProcAddress("glGetQueryiv");
GetQueryiv(target, pname, params);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsBuffer(GLuint buffer)
{
IsBuffer = (PFNISBUFFERPROC)IntGetProcAddress("glIsBuffer");
return IsBuffer(buffer);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsQuery(GLuint id)
{
IsQuery = (PFNISQUERYPROC)IntGetProcAddress("glIsQuery");
return IsQuery(id);
}
static void * CODEGEN_FUNCPTR Switch_MapBuffer(GLenum target, GLenum access)
{
MapBuffer = (PFNMAPBUFFERPROC)IntGetProcAddress("glMapBuffer");
return MapBuffer(target, access);
}
static GLboolean CODEGEN_FUNCPTR Switch_UnmapBuffer(GLenum target)
{
UnmapBuffer = (PFNUNMAPBUFFERPROC)IntGetProcAddress("glUnmapBuffer");
return UnmapBuffer(target);
}
// Extension: 2.0
static void CODEGEN_FUNCPTR Switch_AttachShader(GLuint program, GLuint shader)
{
AttachShader = (PFNATTACHSHADERPROC)IntGetProcAddress("glAttachShader");
AttachShader(program, shader);
}
static void CODEGEN_FUNCPTR Switch_BindAttribLocation(GLuint program, GLuint index, const GLchar * name)
{
BindAttribLocation = (PFNBINDATTRIBLOCATIONPROC)IntGetProcAddress("glBindAttribLocation");
BindAttribLocation(program, index, name);
}
static void CODEGEN_FUNCPTR Switch_BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
{
BlendEquationSeparate = (PFNBLENDEQUATIONSEPARATEPROC)IntGetProcAddress("glBlendEquationSeparate");
BlendEquationSeparate(modeRGB, modeAlpha);
}
static void CODEGEN_FUNCPTR Switch_CompileShader(GLuint shader)
{
CompileShader = (PFNCOMPILESHADERPROC)IntGetProcAddress("glCompileShader");
CompileShader(shader);
}
static GLuint CODEGEN_FUNCPTR Switch_CreateProgram()
{
CreateProgram = (PFNCREATEPROGRAMPROC)IntGetProcAddress("glCreateProgram");
return CreateProgram();
}
static GLuint CODEGEN_FUNCPTR Switch_CreateShader(GLenum type)
{
CreateShader = (PFNCREATESHADERPROC)IntGetProcAddress("glCreateShader");
return CreateShader(type);
}
static void CODEGEN_FUNCPTR Switch_DeleteProgram(GLuint program)
{
DeleteProgram = (PFNDELETEPROGRAMPROC)IntGetProcAddress("glDeleteProgram");
DeleteProgram(program);
}
static void CODEGEN_FUNCPTR Switch_DeleteShader(GLuint shader)
{
DeleteShader = (PFNDELETESHADERPROC)IntGetProcAddress("glDeleteShader");
DeleteShader(shader);
}
static void CODEGEN_FUNCPTR Switch_DetachShader(GLuint program, GLuint shader)
{
DetachShader = (PFNDETACHSHADERPROC)IntGetProcAddress("glDetachShader");
DetachShader(program, shader);
}
static void CODEGEN_FUNCPTR Switch_DisableVertexAttribArray(GLuint index)
{
DisableVertexAttribArray = (PFNDISABLEVERTEXATTRIBARRAYPROC)IntGetProcAddress("glDisableVertexAttribArray");
DisableVertexAttribArray(index);
}
static void CODEGEN_FUNCPTR Switch_DrawBuffers(GLsizei n, const GLenum * bufs)
{
DrawBuffers = (PFNDRAWBUFFERSPROC)IntGetProcAddress("glDrawBuffers");
DrawBuffers(n, bufs);
}
static void CODEGEN_FUNCPTR Switch_EnableVertexAttribArray(GLuint index)
{
EnableVertexAttribArray = (PFNENABLEVERTEXATTRIBARRAYPROC)IntGetProcAddress("glEnableVertexAttribArray");
EnableVertexAttribArray(index);
}
static void CODEGEN_FUNCPTR Switch_GetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name)
{
GetActiveAttrib = (PFNGETACTIVEATTRIBPROC)IntGetProcAddress("glGetActiveAttrib");
GetActiveAttrib(program, index, bufSize, length, size, type, name);
}
static void CODEGEN_FUNCPTR Switch_GetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name)
{
GetActiveUniform = (PFNGETACTIVEUNIFORMPROC)IntGetProcAddress("glGetActiveUniform");
GetActiveUniform(program, index, bufSize, length, size, type, name);
}
static void CODEGEN_FUNCPTR Switch_GetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders)
{
GetAttachedShaders = (PFNGETATTACHEDSHADERSPROC)IntGetProcAddress("glGetAttachedShaders");
GetAttachedShaders(program, maxCount, count, shaders);
}
static GLint CODEGEN_FUNCPTR Switch_GetAttribLocation(GLuint program, const GLchar * name)
{
GetAttribLocation = (PFNGETATTRIBLOCATIONPROC)IntGetProcAddress("glGetAttribLocation");
return GetAttribLocation(program, name);
}
static void CODEGEN_FUNCPTR Switch_GetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog)
{
GetProgramInfoLog = (PFNGETPROGRAMINFOLOGPROC)IntGetProcAddress("glGetProgramInfoLog");
GetProgramInfoLog(program, bufSize, length, infoLog);
}
static void CODEGEN_FUNCPTR Switch_GetProgramiv(GLuint program, GLenum pname, GLint * params)
{
GetProgramiv = (PFNGETPROGRAMIVPROC)IntGetProcAddress("glGetProgramiv");
GetProgramiv(program, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog)
{
GetShaderInfoLog = (PFNGETSHADERINFOLOGPROC)IntGetProcAddress("glGetShaderInfoLog");
GetShaderInfoLog(shader, bufSize, length, infoLog);
}
static void CODEGEN_FUNCPTR Switch_GetShaderSource(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source)
{
GetShaderSource = (PFNGETSHADERSOURCEPROC)IntGetProcAddress("glGetShaderSource");
GetShaderSource(shader, bufSize, length, source);
}
static void CODEGEN_FUNCPTR Switch_GetShaderiv(GLuint shader, GLenum pname, GLint * params)
{
GetShaderiv = (PFNGETSHADERIVPROC)IntGetProcAddress("glGetShaderiv");
GetShaderiv(shader, pname, params);
}
static GLint CODEGEN_FUNCPTR Switch_GetUniformLocation(GLuint program, const GLchar * name)
{
GetUniformLocation = (PFNGETUNIFORMLOCATIONPROC)IntGetProcAddress("glGetUniformLocation");
return GetUniformLocation(program, name);
}
static void CODEGEN_FUNCPTR Switch_GetUniformfv(GLuint program, GLint location, GLfloat * params)
{
GetUniformfv = (PFNGETUNIFORMFVPROC)IntGetProcAddress("glGetUniformfv");
GetUniformfv(program, location, params);
}
static void CODEGEN_FUNCPTR Switch_GetUniformiv(GLuint program, GLint location, GLint * params)
{
GetUniformiv = (PFNGETUNIFORMIVPROC)IntGetProcAddress("glGetUniformiv");
GetUniformiv(program, location, params);
}
static void CODEGEN_FUNCPTR Switch_GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid ** pointer)
{
GetVertexAttribPointerv = (PFNGETVERTEXATTRIBPOINTERVPROC)IntGetProcAddress("glGetVertexAttribPointerv");
GetVertexAttribPointerv(index, pname, pointer);
}
static void CODEGEN_FUNCPTR Switch_GetVertexAttribdv(GLuint index, GLenum pname, GLdouble * params)
{
GetVertexAttribdv = (PFNGETVERTEXATTRIBDVPROC)IntGetProcAddress("glGetVertexAttribdv");
GetVertexAttribdv(index, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetVertexAttribfv(GLuint index, GLenum pname, GLfloat * params)
{
GetVertexAttribfv = (PFNGETVERTEXATTRIBFVPROC)IntGetProcAddress("glGetVertexAttribfv");
GetVertexAttribfv(index, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetVertexAttribiv(GLuint index, GLenum pname, GLint * params)
{
GetVertexAttribiv = (PFNGETVERTEXATTRIBIVPROC)IntGetProcAddress("glGetVertexAttribiv");
GetVertexAttribiv(index, pname, params);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsProgram(GLuint program)
{
IsProgram = (PFNISPROGRAMPROC)IntGetProcAddress("glIsProgram");
return IsProgram(program);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsShader(GLuint shader)
{
IsShader = (PFNISSHADERPROC)IntGetProcAddress("glIsShader");
return IsShader(shader);
}
static void CODEGEN_FUNCPTR Switch_LinkProgram(GLuint program)
{
LinkProgram = (PFNLINKPROGRAMPROC)IntGetProcAddress("glLinkProgram");
LinkProgram(program);
}
static void CODEGEN_FUNCPTR Switch_ShaderSource(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length)
{
ShaderSource = (PFNSHADERSOURCEPROC)IntGetProcAddress("glShaderSource");
ShaderSource(shader, count, string, length);
}
static void CODEGEN_FUNCPTR Switch_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
{
StencilFuncSeparate = (PFNSTENCILFUNCSEPARATEPROC)IntGetProcAddress("glStencilFuncSeparate");
StencilFuncSeparate(face, func, ref, mask);
}
static void CODEGEN_FUNCPTR Switch_StencilMaskSeparate(GLenum face, GLuint mask)
{
StencilMaskSeparate = (PFNSTENCILMASKSEPARATEPROC)IntGetProcAddress("glStencilMaskSeparate");
StencilMaskSeparate(face, mask);
}
static void CODEGEN_FUNCPTR Switch_StencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
{
StencilOpSeparate = (PFNSTENCILOPSEPARATEPROC)IntGetProcAddress("glStencilOpSeparate");
StencilOpSeparate(face, sfail, dpfail, dppass);
}
static void CODEGEN_FUNCPTR Switch_Uniform1f(GLint location, GLfloat v0)
{
Uniform1f = (PFNUNIFORM1FPROC)IntGetProcAddress("glUniform1f");
Uniform1f(location, v0);
}
static void CODEGEN_FUNCPTR Switch_Uniform1fv(GLint location, GLsizei count, const GLfloat * value)
{
Uniform1fv = (PFNUNIFORM1FVPROC)IntGetProcAddress("glUniform1fv");
Uniform1fv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform1i(GLint location, GLint v0)
{
Uniform1i = (PFNUNIFORM1IPROC)IntGetProcAddress("glUniform1i");
Uniform1i(location, v0);
}
static void CODEGEN_FUNCPTR Switch_Uniform1iv(GLint location, GLsizei count, const GLint * value)
{
Uniform1iv = (PFNUNIFORM1IVPROC)IntGetProcAddress("glUniform1iv");
Uniform1iv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform2f(GLint location, GLfloat v0, GLfloat v1)
{
Uniform2f = (PFNUNIFORM2FPROC)IntGetProcAddress("glUniform2f");
Uniform2f(location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_Uniform2fv(GLint location, GLsizei count, const GLfloat * value)
{
Uniform2fv = (PFNUNIFORM2FVPROC)IntGetProcAddress("glUniform2fv");
Uniform2fv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform2i(GLint location, GLint v0, GLint v1)
{
Uniform2i = (PFNUNIFORM2IPROC)IntGetProcAddress("glUniform2i");
Uniform2i(location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_Uniform2iv(GLint location, GLsizei count, const GLint * value)
{
Uniform2iv = (PFNUNIFORM2IVPROC)IntGetProcAddress("glUniform2iv");
Uniform2iv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
{
Uniform3f = (PFNUNIFORM3FPROC)IntGetProcAddress("glUniform3f");
Uniform3f(location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_Uniform3fv(GLint location, GLsizei count, const GLfloat * value)
{
Uniform3fv = (PFNUNIFORM3FVPROC)IntGetProcAddress("glUniform3fv");
Uniform3fv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform3i(GLint location, GLint v0, GLint v1, GLint v2)
{
Uniform3i = (PFNUNIFORM3IPROC)IntGetProcAddress("glUniform3i");
Uniform3i(location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_Uniform3iv(GLint location, GLsizei count, const GLint * value)
{
Uniform3iv = (PFNUNIFORM3IVPROC)IntGetProcAddress("glUniform3iv");
Uniform3iv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
{
Uniform4f = (PFNUNIFORM4FPROC)IntGetProcAddress("glUniform4f");
Uniform4f(location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_Uniform4fv(GLint location, GLsizei count, const GLfloat * value)
{
Uniform4fv = (PFNUNIFORM4FVPROC)IntGetProcAddress("glUniform4fv");
Uniform4fv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
{
Uniform4i = (PFNUNIFORM4IPROC)IntGetProcAddress("glUniform4i");
Uniform4i(location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_Uniform4iv(GLint location, GLsizei count, const GLint * value)
{
Uniform4iv = (PFNUNIFORM4IVPROC)IntGetProcAddress("glUniform4iv");
Uniform4iv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix2fv = (PFNUNIFORMMATRIX2FVPROC)IntGetProcAddress("glUniformMatrix2fv");
UniformMatrix2fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix3fv = (PFNUNIFORMMATRIX3FVPROC)IntGetProcAddress("glUniformMatrix3fv");
UniformMatrix3fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix4fv = (PFNUNIFORMMATRIX4FVPROC)IntGetProcAddress("glUniformMatrix4fv");
UniformMatrix4fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UseProgram(GLuint program)
{
UseProgram = (PFNUSEPROGRAMPROC)IntGetProcAddress("glUseProgram");
UseProgram(program);
}
static void CODEGEN_FUNCPTR Switch_ValidateProgram(GLuint program)
{
ValidateProgram = (PFNVALIDATEPROGRAMPROC)IntGetProcAddress("glValidateProgram");
ValidateProgram(program);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib1d(GLuint index, GLdouble x)
{
VertexAttrib1d = (PFNVERTEXATTRIB1DPROC)IntGetProcAddress("glVertexAttrib1d");
VertexAttrib1d(index, x);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib1dv(GLuint index, const GLdouble * v)
{
VertexAttrib1dv = (PFNVERTEXATTRIB1DVPROC)IntGetProcAddress("glVertexAttrib1dv");
VertexAttrib1dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib1f(GLuint index, GLfloat x)
{
VertexAttrib1f = (PFNVERTEXATTRIB1FPROC)IntGetProcAddress("glVertexAttrib1f");
VertexAttrib1f(index, x);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib1fv(GLuint index, const GLfloat * v)
{
VertexAttrib1fv = (PFNVERTEXATTRIB1FVPROC)IntGetProcAddress("glVertexAttrib1fv");
VertexAttrib1fv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib1s(GLuint index, GLshort x)
{
VertexAttrib1s = (PFNVERTEXATTRIB1SPROC)IntGetProcAddress("glVertexAttrib1s");
VertexAttrib1s(index, x);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib1sv(GLuint index, const GLshort * v)
{
VertexAttrib1sv = (PFNVERTEXATTRIB1SVPROC)IntGetProcAddress("glVertexAttrib1sv");
VertexAttrib1sv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y)
{
VertexAttrib2d = (PFNVERTEXATTRIB2DPROC)IntGetProcAddress("glVertexAttrib2d");
VertexAttrib2d(index, x, y);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib2dv(GLuint index, const GLdouble * v)
{
VertexAttrib2dv = (PFNVERTEXATTRIB2DVPROC)IntGetProcAddress("glVertexAttrib2dv");
VertexAttrib2dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib2f(GLuint index, GLfloat x, GLfloat y)
{
VertexAttrib2f = (PFNVERTEXATTRIB2FPROC)IntGetProcAddress("glVertexAttrib2f");
VertexAttrib2f(index, x, y);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib2fv(GLuint index, const GLfloat * v)
{
VertexAttrib2fv = (PFNVERTEXATTRIB2FVPROC)IntGetProcAddress("glVertexAttrib2fv");
VertexAttrib2fv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib2s(GLuint index, GLshort x, GLshort y)
{
VertexAttrib2s = (PFNVERTEXATTRIB2SPROC)IntGetProcAddress("glVertexAttrib2s");
VertexAttrib2s(index, x, y);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib2sv(GLuint index, const GLshort * v)
{
VertexAttrib2sv = (PFNVERTEXATTRIB2SVPROC)IntGetProcAddress("glVertexAttrib2sv");
VertexAttrib2sv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z)
{
VertexAttrib3d = (PFNVERTEXATTRIB3DPROC)IntGetProcAddress("glVertexAttrib3d");
VertexAttrib3d(index, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib3dv(GLuint index, const GLdouble * v)
{
VertexAttrib3dv = (PFNVERTEXATTRIB3DVPROC)IntGetProcAddress("glVertexAttrib3dv");
VertexAttrib3dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z)
{
VertexAttrib3f = (PFNVERTEXATTRIB3FPROC)IntGetProcAddress("glVertexAttrib3f");
VertexAttrib3f(index, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib3fv(GLuint index, const GLfloat * v)
{
VertexAttrib3fv = (PFNVERTEXATTRIB3FVPROC)IntGetProcAddress("glVertexAttrib3fv");
VertexAttrib3fv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z)
{
VertexAttrib3s = (PFNVERTEXATTRIB3SPROC)IntGetProcAddress("glVertexAttrib3s");
VertexAttrib3s(index, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib3sv(GLuint index, const GLshort * v)
{
VertexAttrib3sv = (PFNVERTEXATTRIB3SVPROC)IntGetProcAddress("glVertexAttrib3sv");
VertexAttrib3sv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Nbv(GLuint index, const GLbyte * v)
{
VertexAttrib4Nbv = (PFNVERTEXATTRIB4NBVPROC)IntGetProcAddress("glVertexAttrib4Nbv");
VertexAttrib4Nbv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Niv(GLuint index, const GLint * v)
{
VertexAttrib4Niv = (PFNVERTEXATTRIB4NIVPROC)IntGetProcAddress("glVertexAttrib4Niv");
VertexAttrib4Niv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Nsv(GLuint index, const GLshort * v)
{
VertexAttrib4Nsv = (PFNVERTEXATTRIB4NSVPROC)IntGetProcAddress("glVertexAttrib4Nsv");
VertexAttrib4Nsv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
{
VertexAttrib4Nub = (PFNVERTEXATTRIB4NUBPROC)IntGetProcAddress("glVertexAttrib4Nub");
VertexAttrib4Nub(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Nubv(GLuint index, const GLubyte * v)
{
VertexAttrib4Nubv = (PFNVERTEXATTRIB4NUBVPROC)IntGetProcAddress("glVertexAttrib4Nubv");
VertexAttrib4Nubv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Nuiv(GLuint index, const GLuint * v)
{
VertexAttrib4Nuiv = (PFNVERTEXATTRIB4NUIVPROC)IntGetProcAddress("glVertexAttrib4Nuiv");
VertexAttrib4Nuiv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4Nusv(GLuint index, const GLushort * v)
{
VertexAttrib4Nusv = (PFNVERTEXATTRIB4NUSVPROC)IntGetProcAddress("glVertexAttrib4Nusv");
VertexAttrib4Nusv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4bv(GLuint index, const GLbyte * v)
{
VertexAttrib4bv = (PFNVERTEXATTRIB4BVPROC)IntGetProcAddress("glVertexAttrib4bv");
VertexAttrib4bv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
VertexAttrib4d = (PFNVERTEXATTRIB4DPROC)IntGetProcAddress("glVertexAttrib4d");
VertexAttrib4d(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4dv(GLuint index, const GLdouble * v)
{
VertexAttrib4dv = (PFNVERTEXATTRIB4DVPROC)IntGetProcAddress("glVertexAttrib4dv");
VertexAttrib4dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
VertexAttrib4f = (PFNVERTEXATTRIB4FPROC)IntGetProcAddress("glVertexAttrib4f");
VertexAttrib4f(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4fv(GLuint index, const GLfloat * v)
{
VertexAttrib4fv = (PFNVERTEXATTRIB4FVPROC)IntGetProcAddress("glVertexAttrib4fv");
VertexAttrib4fv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4iv(GLuint index, const GLint * v)
{
VertexAttrib4iv = (PFNVERTEXATTRIB4IVPROC)IntGetProcAddress("glVertexAttrib4iv");
VertexAttrib4iv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
{
VertexAttrib4s = (PFNVERTEXATTRIB4SPROC)IntGetProcAddress("glVertexAttrib4s");
VertexAttrib4s(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4sv(GLuint index, const GLshort * v)
{
VertexAttrib4sv = (PFNVERTEXATTRIB4SVPROC)IntGetProcAddress("glVertexAttrib4sv");
VertexAttrib4sv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4ubv(GLuint index, const GLubyte * v)
{
VertexAttrib4ubv = (PFNVERTEXATTRIB4UBVPROC)IntGetProcAddress("glVertexAttrib4ubv");
VertexAttrib4ubv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4uiv(GLuint index, const GLuint * v)
{
VertexAttrib4uiv = (PFNVERTEXATTRIB4UIVPROC)IntGetProcAddress("glVertexAttrib4uiv");
VertexAttrib4uiv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttrib4usv(GLuint index, const GLushort * v)
{
VertexAttrib4usv = (PFNVERTEXATTRIB4USVPROC)IntGetProcAddress("glVertexAttrib4usv");
VertexAttrib4usv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer)
{
VertexAttribPointer = (PFNVERTEXATTRIBPOINTERPROC)IntGetProcAddress("glVertexAttribPointer");
VertexAttribPointer(index, size, type, normalized, stride, pointer);
}
// Extension: 2.1
static void CODEGEN_FUNCPTR Switch_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix2x3fv = (PFNUNIFORMMATRIX2X3FVPROC)IntGetProcAddress("glUniformMatrix2x3fv");
UniformMatrix2x3fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix2x4fv = (PFNUNIFORMMATRIX2X4FVPROC)IntGetProcAddress("glUniformMatrix2x4fv");
UniformMatrix2x4fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix3x2fv = (PFNUNIFORMMATRIX3X2FVPROC)IntGetProcAddress("glUniformMatrix3x2fv");
UniformMatrix3x2fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix3x4fv = (PFNUNIFORMMATRIX3X4FVPROC)IntGetProcAddress("glUniformMatrix3x4fv");
UniformMatrix3x4fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix4x2fv = (PFNUNIFORMMATRIX4X2FVPROC)IntGetProcAddress("glUniformMatrix4x2fv");
UniformMatrix4x2fv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value)
{
UniformMatrix4x3fv = (PFNUNIFORMMATRIX4X3FVPROC)IntGetProcAddress("glUniformMatrix4x3fv");
UniformMatrix4x3fv(location, count, transpose, value);
}
// Extension: 3.0
static void CODEGEN_FUNCPTR Switch_BeginConditionalRender(GLuint id, GLenum mode)
{
BeginConditionalRender = (PFNBEGINCONDITIONALRENDERPROC)IntGetProcAddress("glBeginConditionalRender");
BeginConditionalRender(id, mode);
}
static void CODEGEN_FUNCPTR Switch_BeginTransformFeedback(GLenum primitiveMode)
{
BeginTransformFeedback = (PFNBEGINTRANSFORMFEEDBACKPROC)IntGetProcAddress("glBeginTransformFeedback");
BeginTransformFeedback(primitiveMode);
}
static void CODEGEN_FUNCPTR Switch_BindBufferBase(GLenum target, GLuint index, GLuint buffer)
{
BindBufferBase = (PFNBINDBUFFERBASEPROC)IntGetProcAddress("glBindBufferBase");
BindBufferBase(target, index, buffer);
}
static void CODEGEN_FUNCPTR Switch_BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
{
BindBufferRange = (PFNBINDBUFFERRANGEPROC)IntGetProcAddress("glBindBufferRange");
BindBufferRange(target, index, buffer, offset, size);
}
static void CODEGEN_FUNCPTR Switch_BindFragDataLocation(GLuint program, GLuint color, const GLchar * name)
{
BindFragDataLocation = (PFNBINDFRAGDATALOCATIONPROC)IntGetProcAddress("glBindFragDataLocation");
BindFragDataLocation(program, color, name);
}
static void CODEGEN_FUNCPTR Switch_BindFramebuffer(GLenum target, GLuint framebuffer)
{
BindFramebuffer = (PFNBINDFRAMEBUFFERPROC)IntGetProcAddress("glBindFramebuffer");
BindFramebuffer(target, framebuffer);
}
static void CODEGEN_FUNCPTR Switch_BindRenderbuffer(GLenum target, GLuint renderbuffer)
{
BindRenderbuffer = (PFNBINDRENDERBUFFERPROC)IntGetProcAddress("glBindRenderbuffer");
BindRenderbuffer(target, renderbuffer);
}
static void CODEGEN_FUNCPTR Switch_BindVertexArray(GLuint ren_array)
{
BindVertexArray = (PFNBINDVERTEXARRAYPROC)IntGetProcAddress("glBindVertexArray");
BindVertexArray(ren_array);
}
static void CODEGEN_FUNCPTR Switch_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
{
BlitFramebuffer = (PFNBLITFRAMEBUFFERPROC)IntGetProcAddress("glBlitFramebuffer");
BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}
static GLenum CODEGEN_FUNCPTR Switch_CheckFramebufferStatus(GLenum target)
{
CheckFramebufferStatus = (PFNCHECKFRAMEBUFFERSTATUSPROC)IntGetProcAddress("glCheckFramebufferStatus");
return CheckFramebufferStatus(target);
}
static void CODEGEN_FUNCPTR Switch_ClampColor(GLenum target, GLenum clamp)
{
ClampColor = (PFNCLAMPCOLORPROC)IntGetProcAddress("glClampColor");
ClampColor(target, clamp);
}
static void CODEGEN_FUNCPTR Switch_ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
{
ClearBufferfi = (PFNCLEARBUFFERFIPROC)IntGetProcAddress("glClearBufferfi");
ClearBufferfi(buffer, drawbuffer, depth, stencil);
}
static void CODEGEN_FUNCPTR Switch_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat * value)
{
ClearBufferfv = (PFNCLEARBUFFERFVPROC)IntGetProcAddress("glClearBufferfv");
ClearBufferfv(buffer, drawbuffer, value);
}
static void CODEGEN_FUNCPTR Switch_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint * value)
{
ClearBufferiv = (PFNCLEARBUFFERIVPROC)IntGetProcAddress("glClearBufferiv");
ClearBufferiv(buffer, drawbuffer, value);
}
static void CODEGEN_FUNCPTR Switch_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint * value)
{
ClearBufferuiv = (PFNCLEARBUFFERUIVPROC)IntGetProcAddress("glClearBufferuiv");
ClearBufferuiv(buffer, drawbuffer, value);
}
static void CODEGEN_FUNCPTR Switch_ColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
{
ColorMaski = (PFNCOLORMASKIPROC)IntGetProcAddress("glColorMaski");
ColorMaski(index, r, g, b, a);
}
static void CODEGEN_FUNCPTR Switch_DeleteFramebuffers(GLsizei n, const GLuint * framebuffers)
{
DeleteFramebuffers = (PFNDELETEFRAMEBUFFERSPROC)IntGetProcAddress("glDeleteFramebuffers");
DeleteFramebuffers(n, framebuffers);
}
static void CODEGEN_FUNCPTR Switch_DeleteRenderbuffers(GLsizei n, const GLuint * renderbuffers)
{
DeleteRenderbuffers = (PFNDELETERENDERBUFFERSPROC)IntGetProcAddress("glDeleteRenderbuffers");
DeleteRenderbuffers(n, renderbuffers);
}
static void CODEGEN_FUNCPTR Switch_DeleteVertexArrays(GLsizei n, const GLuint * arrays)
{
DeleteVertexArrays = (PFNDELETEVERTEXARRAYSPROC)IntGetProcAddress("glDeleteVertexArrays");
DeleteVertexArrays(n, arrays);
}
static void CODEGEN_FUNCPTR Switch_Disablei(GLenum target, GLuint index)
{
Disablei = (PFNDISABLEIPROC)IntGetProcAddress("glDisablei");
Disablei(target, index);
}
static void CODEGEN_FUNCPTR Switch_Enablei(GLenum target, GLuint index)
{
Enablei = (PFNENABLEIPROC)IntGetProcAddress("glEnablei");
Enablei(target, index);
}
static void CODEGEN_FUNCPTR Switch_EndConditionalRender()
{
EndConditionalRender = (PFNENDCONDITIONALRENDERPROC)IntGetProcAddress("glEndConditionalRender");
EndConditionalRender();
}
static void CODEGEN_FUNCPTR Switch_EndTransformFeedback()
{
EndTransformFeedback = (PFNENDTRANSFORMFEEDBACKPROC)IntGetProcAddress("glEndTransformFeedback");
EndTransformFeedback();
}
static void CODEGEN_FUNCPTR Switch_FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
{
FlushMappedBufferRange = (PFNFLUSHMAPPEDBUFFERRANGEPROC)IntGetProcAddress("glFlushMappedBufferRange");
FlushMappedBufferRange(target, offset, length);
}
static void CODEGEN_FUNCPTR Switch_FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
{
FramebufferRenderbuffer = (PFNFRAMEBUFFERRENDERBUFFERPROC)IntGetProcAddress("glFramebufferRenderbuffer");
FramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
}
static void CODEGEN_FUNCPTR Switch_FramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
FramebufferTexture1D = (PFNFRAMEBUFFERTEXTURE1DPROC)IntGetProcAddress("glFramebufferTexture1D");
FramebufferTexture1D(target, attachment, textarget, texture, level);
}
static void CODEGEN_FUNCPTR Switch_FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
FramebufferTexture2D = (PFNFRAMEBUFFERTEXTURE2DPROC)IntGetProcAddress("glFramebufferTexture2D");
FramebufferTexture2D(target, attachment, textarget, texture, level);
}
static void CODEGEN_FUNCPTR Switch_FramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
{
FramebufferTexture3D = (PFNFRAMEBUFFERTEXTURE3DPROC)IntGetProcAddress("glFramebufferTexture3D");
FramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
}
static void CODEGEN_FUNCPTR Switch_FramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
{
FramebufferTextureLayer = (PFNFRAMEBUFFERTEXTURELAYERPROC)IntGetProcAddress("glFramebufferTextureLayer");
FramebufferTextureLayer(target, attachment, texture, level, layer);
}
static void CODEGEN_FUNCPTR Switch_GenFramebuffers(GLsizei n, GLuint * framebuffers)
{
GenFramebuffers = (PFNGENFRAMEBUFFERSPROC)IntGetProcAddress("glGenFramebuffers");
GenFramebuffers(n, framebuffers);
}
static void CODEGEN_FUNCPTR Switch_GenRenderbuffers(GLsizei n, GLuint * renderbuffers)
{
GenRenderbuffers = (PFNGENRENDERBUFFERSPROC)IntGetProcAddress("glGenRenderbuffers");
GenRenderbuffers(n, renderbuffers);
}
static void CODEGEN_FUNCPTR Switch_GenVertexArrays(GLsizei n, GLuint * arrays)
{
GenVertexArrays = (PFNGENVERTEXARRAYSPROC)IntGetProcAddress("glGenVertexArrays");
GenVertexArrays(n, arrays);
}
static void CODEGEN_FUNCPTR Switch_GenerateMipmap(GLenum target)
{
GenerateMipmap = (PFNGENERATEMIPMAPPROC)IntGetProcAddress("glGenerateMipmap");
GenerateMipmap(target);
}
static void CODEGEN_FUNCPTR Switch_GetBooleani_v(GLenum target, GLuint index, GLboolean * data)
{
GetBooleani_v = (PFNGETBOOLEANI_VPROC)IntGetProcAddress("glGetBooleani_v");
GetBooleani_v(target, index, data);
}
static GLint CODEGEN_FUNCPTR Switch_GetFragDataLocation(GLuint program, const GLchar * name)
{
GetFragDataLocation = (PFNGETFRAGDATALOCATIONPROC)IntGetProcAddress("glGetFragDataLocation");
return GetFragDataLocation(program, name);
}
static void CODEGEN_FUNCPTR Switch_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint * params)
{
GetFramebufferAttachmentParameteriv = (PFNGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)IntGetProcAddress("glGetFramebufferAttachmentParameteriv");
GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetIntegeri_v(GLenum target, GLuint index, GLint * data)
{
GetIntegeri_v = (PFNGETINTEGERI_VPROC)IntGetProcAddress("glGetIntegeri_v");
GetIntegeri_v(target, index, data);
}
static void CODEGEN_FUNCPTR Switch_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint * params)
{
GetRenderbufferParameteriv = (PFNGETRENDERBUFFERPARAMETERIVPROC)IntGetProcAddress("glGetRenderbufferParameteriv");
GetRenderbufferParameteriv(target, pname, params);
}
static const GLubyte * CODEGEN_FUNCPTR Switch_GetStringi(GLenum name, GLuint index)
{
GetStringi = (PFNGETSTRINGIPROC)IntGetProcAddress("glGetStringi");
return GetStringi(name, index);
}
static void CODEGEN_FUNCPTR Switch_GetTexParameterIiv(GLenum target, GLenum pname, GLint * params)
{
GetTexParameterIiv = (PFNGETTEXPARAMETERIIVPROC)IntGetProcAddress("glGetTexParameterIiv");
GetTexParameterIiv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint * params)
{
GetTexParameterIuiv = (PFNGETTEXPARAMETERIUIVPROC)IntGetProcAddress("glGetTexParameterIuiv");
GetTexParameterIuiv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name)
{
GetTransformFeedbackVarying = (PFNGETTRANSFORMFEEDBACKVARYINGPROC)IntGetProcAddress("glGetTransformFeedbackVarying");
GetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
}
static void CODEGEN_FUNCPTR Switch_GetUniformuiv(GLuint program, GLint location, GLuint * params)
{
GetUniformuiv = (PFNGETUNIFORMUIVPROC)IntGetProcAddress("glGetUniformuiv");
GetUniformuiv(program, location, params);
}
static void CODEGEN_FUNCPTR Switch_GetVertexAttribIiv(GLuint index, GLenum pname, GLint * params)
{
GetVertexAttribIiv = (PFNGETVERTEXATTRIBIIVPROC)IntGetProcAddress("glGetVertexAttribIiv");
GetVertexAttribIiv(index, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint * params)
{
GetVertexAttribIuiv = (PFNGETVERTEXATTRIBIUIVPROC)IntGetProcAddress("glGetVertexAttribIuiv");
GetVertexAttribIuiv(index, pname, params);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsEnabledi(GLenum target, GLuint index)
{
IsEnabledi = (PFNISENABLEDIPROC)IntGetProcAddress("glIsEnabledi");
return IsEnabledi(target, index);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsFramebuffer(GLuint framebuffer)
{
IsFramebuffer = (PFNISFRAMEBUFFERPROC)IntGetProcAddress("glIsFramebuffer");
return IsFramebuffer(framebuffer);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsRenderbuffer(GLuint renderbuffer)
{
IsRenderbuffer = (PFNISRENDERBUFFERPROC)IntGetProcAddress("glIsRenderbuffer");
return IsRenderbuffer(renderbuffer);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsVertexArray(GLuint ren_array)
{
IsVertexArray = (PFNISVERTEXARRAYPROC)IntGetProcAddress("glIsVertexArray");
return IsVertexArray(ren_array);
}
static void * CODEGEN_FUNCPTR Switch_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
{
MapBufferRange = (PFNMAPBUFFERRANGEPROC)IntGetProcAddress("glMapBufferRange");
return MapBufferRange(target, offset, length, access);
}
static void CODEGEN_FUNCPTR Switch_RenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
{
RenderbufferStorage = (PFNRENDERBUFFERSTORAGEPROC)IntGetProcAddress("glRenderbufferStorage");
RenderbufferStorage(target, internalformat, width, height);
}
static void CODEGEN_FUNCPTR Switch_RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
{
RenderbufferStorageMultisample = (PFNRENDERBUFFERSTORAGEMULTISAMPLEPROC)IntGetProcAddress("glRenderbufferStorageMultisample");
RenderbufferStorageMultisample(target, samples, internalformat, width, height);
}
static void CODEGEN_FUNCPTR Switch_TexParameterIiv(GLenum target, GLenum pname, const GLint * params)
{
TexParameterIiv = (PFNTEXPARAMETERIIVPROC)IntGetProcAddress("glTexParameterIiv");
TexParameterIiv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_TexParameterIuiv(GLenum target, GLenum pname, const GLuint * params)
{
TexParameterIuiv = (PFNTEXPARAMETERIUIVPROC)IntGetProcAddress("glTexParameterIuiv");
TexParameterIuiv(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode)
{
TransformFeedbackVaryings = (PFNTRANSFORMFEEDBACKVARYINGSPROC)IntGetProcAddress("glTransformFeedbackVaryings");
TransformFeedbackVaryings(program, count, varyings, bufferMode);
}
static void CODEGEN_FUNCPTR Switch_Uniform1ui(GLint location, GLuint v0)
{
Uniform1ui = (PFNUNIFORM1UIPROC)IntGetProcAddress("glUniform1ui");
Uniform1ui(location, v0);
}
static void CODEGEN_FUNCPTR Switch_Uniform1uiv(GLint location, GLsizei count, const GLuint * value)
{
Uniform1uiv = (PFNUNIFORM1UIVPROC)IntGetProcAddress("glUniform1uiv");
Uniform1uiv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform2ui(GLint location, GLuint v0, GLuint v1)
{
Uniform2ui = (PFNUNIFORM2UIPROC)IntGetProcAddress("glUniform2ui");
Uniform2ui(location, v0, v1);
}
static void CODEGEN_FUNCPTR Switch_Uniform2uiv(GLint location, GLsizei count, const GLuint * value)
{
Uniform2uiv = (PFNUNIFORM2UIVPROC)IntGetProcAddress("glUniform2uiv");
Uniform2uiv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
{
Uniform3ui = (PFNUNIFORM3UIPROC)IntGetProcAddress("glUniform3ui");
Uniform3ui(location, v0, v1, v2);
}
static void CODEGEN_FUNCPTR Switch_Uniform3uiv(GLint location, GLsizei count, const GLuint * value)
{
Uniform3uiv = (PFNUNIFORM3UIVPROC)IntGetProcAddress("glUniform3uiv");
Uniform3uiv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
{
Uniform4ui = (PFNUNIFORM4UIPROC)IntGetProcAddress("glUniform4ui");
Uniform4ui(location, v0, v1, v2, v3);
}
static void CODEGEN_FUNCPTR Switch_Uniform4uiv(GLint location, GLsizei count, const GLuint * value)
{
Uniform4uiv = (PFNUNIFORM4UIVPROC)IntGetProcAddress("glUniform4uiv");
Uniform4uiv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI1i(GLuint index, GLint x)
{
VertexAttribI1i = (PFNVERTEXATTRIBI1IPROC)IntGetProcAddress("glVertexAttribI1i");
VertexAttribI1i(index, x);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI1iv(GLuint index, const GLint * v)
{
VertexAttribI1iv = (PFNVERTEXATTRIBI1IVPROC)IntGetProcAddress("glVertexAttribI1iv");
VertexAttribI1iv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI1ui(GLuint index, GLuint x)
{
VertexAttribI1ui = (PFNVERTEXATTRIBI1UIPROC)IntGetProcAddress("glVertexAttribI1ui");
VertexAttribI1ui(index, x);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI1uiv(GLuint index, const GLuint * v)
{
VertexAttribI1uiv = (PFNVERTEXATTRIBI1UIVPROC)IntGetProcAddress("glVertexAttribI1uiv");
VertexAttribI1uiv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI2i(GLuint index, GLint x, GLint y)
{
VertexAttribI2i = (PFNVERTEXATTRIBI2IPROC)IntGetProcAddress("glVertexAttribI2i");
VertexAttribI2i(index, x, y);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI2iv(GLuint index, const GLint * v)
{
VertexAttribI2iv = (PFNVERTEXATTRIBI2IVPROC)IntGetProcAddress("glVertexAttribI2iv");
VertexAttribI2iv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI2ui(GLuint index, GLuint x, GLuint y)
{
VertexAttribI2ui = (PFNVERTEXATTRIBI2UIPROC)IntGetProcAddress("glVertexAttribI2ui");
VertexAttribI2ui(index, x, y);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI2uiv(GLuint index, const GLuint * v)
{
VertexAttribI2uiv = (PFNVERTEXATTRIBI2UIVPROC)IntGetProcAddress("glVertexAttribI2uiv");
VertexAttribI2uiv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI3i(GLuint index, GLint x, GLint y, GLint z)
{
VertexAttribI3i = (PFNVERTEXATTRIBI3IPROC)IntGetProcAddress("glVertexAttribI3i");
VertexAttribI3i(index, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI3iv(GLuint index, const GLint * v)
{
VertexAttribI3iv = (PFNVERTEXATTRIBI3IVPROC)IntGetProcAddress("glVertexAttribI3iv");
VertexAttribI3iv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z)
{
VertexAttribI3ui = (PFNVERTEXATTRIBI3UIPROC)IntGetProcAddress("glVertexAttribI3ui");
VertexAttribI3ui(index, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI3uiv(GLuint index, const GLuint * v)
{
VertexAttribI3uiv = (PFNVERTEXATTRIBI3UIVPROC)IntGetProcAddress("glVertexAttribI3uiv");
VertexAttribI3uiv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4bv(GLuint index, const GLbyte * v)
{
VertexAttribI4bv = (PFNVERTEXATTRIBI4BVPROC)IntGetProcAddress("glVertexAttribI4bv");
VertexAttribI4bv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w)
{
VertexAttribI4i = (PFNVERTEXATTRIBI4IPROC)IntGetProcAddress("glVertexAttribI4i");
VertexAttribI4i(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4iv(GLuint index, const GLint * v)
{
VertexAttribI4iv = (PFNVERTEXATTRIBI4IVPROC)IntGetProcAddress("glVertexAttribI4iv");
VertexAttribI4iv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4sv(GLuint index, const GLshort * v)
{
VertexAttribI4sv = (PFNVERTEXATTRIBI4SVPROC)IntGetProcAddress("glVertexAttribI4sv");
VertexAttribI4sv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4ubv(GLuint index, const GLubyte * v)
{
VertexAttribI4ubv = (PFNVERTEXATTRIBI4UBVPROC)IntGetProcAddress("glVertexAttribI4ubv");
VertexAttribI4ubv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
{
VertexAttribI4ui = (PFNVERTEXATTRIBI4UIPROC)IntGetProcAddress("glVertexAttribI4ui");
VertexAttribI4ui(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4uiv(GLuint index, const GLuint * v)
{
VertexAttribI4uiv = (PFNVERTEXATTRIBI4UIVPROC)IntGetProcAddress("glVertexAttribI4uiv");
VertexAttribI4uiv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribI4usv(GLuint index, const GLushort * v)
{
VertexAttribI4usv = (PFNVERTEXATTRIBI4USVPROC)IntGetProcAddress("glVertexAttribI4usv");
VertexAttribI4usv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
{
VertexAttribIPointer = (PFNVERTEXATTRIBIPOINTERPROC)IntGetProcAddress("glVertexAttribIPointer");
VertexAttribIPointer(index, size, type, stride, pointer);
}
// Extension: 3.1
static void CODEGEN_FUNCPTR Switch_CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
{
CopyBufferSubData = (PFNCOPYBUFFERSUBDATAPROC)IntGetProcAddress("glCopyBufferSubData");
CopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
}
static void CODEGEN_FUNCPTR Switch_DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
{
DrawArraysInstanced = (PFNDRAWARRAYSINSTANCEDPROC)IntGetProcAddress("glDrawArraysInstanced");
DrawArraysInstanced(mode, first, count, instancecount);
}
static void CODEGEN_FUNCPTR Switch_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount)
{
DrawElementsInstanced = (PFNDRAWELEMENTSINSTANCEDPROC)IntGetProcAddress("glDrawElementsInstanced");
DrawElementsInstanced(mode, count, type, indices, instancecount);
}
static void CODEGEN_FUNCPTR Switch_GetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName)
{
GetActiveUniformBlockName = (PFNGETACTIVEUNIFORMBLOCKNAMEPROC)IntGetProcAddress("glGetActiveUniformBlockName");
GetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
}
static void CODEGEN_FUNCPTR Switch_GetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params)
{
GetActiveUniformBlockiv = (PFNGETACTIVEUNIFORMBLOCKIVPROC)IntGetProcAddress("glGetActiveUniformBlockiv");
GetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName)
{
GetActiveUniformName = (PFNGETACTIVEUNIFORMNAMEPROC)IntGetProcAddress("glGetActiveUniformName");
GetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
}
static void CODEGEN_FUNCPTR Switch_GetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params)
{
GetActiveUniformsiv = (PFNGETACTIVEUNIFORMSIVPROC)IntGetProcAddress("glGetActiveUniformsiv");
GetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
}
static GLuint CODEGEN_FUNCPTR Switch_GetUniformBlockIndex(GLuint program, const GLchar * uniformBlockName)
{
GetUniformBlockIndex = (PFNGETUNIFORMBLOCKINDEXPROC)IntGetProcAddress("glGetUniformBlockIndex");
return GetUniformBlockIndex(program, uniformBlockName);
}
static void CODEGEN_FUNCPTR Switch_GetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices)
{
GetUniformIndices = (PFNGETUNIFORMINDICESPROC)IntGetProcAddress("glGetUniformIndices");
GetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
}
static void CODEGEN_FUNCPTR Switch_PrimitiveRestartIndex(GLuint index)
{
PrimitiveRestartIndex = (PFNPRIMITIVERESTARTINDEXPROC)IntGetProcAddress("glPrimitiveRestartIndex");
PrimitiveRestartIndex(index);
}
static void CODEGEN_FUNCPTR Switch_TexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
{
TexBuffer = (PFNTEXBUFFERPROC)IntGetProcAddress("glTexBuffer");
TexBuffer(target, internalformat, buffer);
}
static void CODEGEN_FUNCPTR Switch_UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
{
UniformBlockBinding = (PFNUNIFORMBLOCKBINDINGPROC)IntGetProcAddress("glUniformBlockBinding");
UniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
}
// Extension: 3.2
static GLenum CODEGEN_FUNCPTR Switch_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
ClientWaitSync = (PFNCLIENTWAITSYNCPROC)IntGetProcAddress("glClientWaitSync");
return ClientWaitSync(sync, flags, timeout);
}
static void CODEGEN_FUNCPTR Switch_DeleteSync(GLsync sync)
{
DeleteSync = (PFNDELETESYNCPROC)IntGetProcAddress("glDeleteSync");
DeleteSync(sync);
}
static void CODEGEN_FUNCPTR Switch_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex)
{
DrawElementsBaseVertex = (PFNDRAWELEMENTSBASEVERTEXPROC)IntGetProcAddress("glDrawElementsBaseVertex");
DrawElementsBaseVertex(mode, count, type, indices, basevertex);
}
static void CODEGEN_FUNCPTR Switch_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLint basevertex)
{
DrawElementsInstancedBaseVertex = (PFNDRAWELEMENTSINSTANCEDBASEVERTEXPROC)IntGetProcAddress("glDrawElementsInstancedBaseVertex");
DrawElementsInstancedBaseVertex(mode, count, type, indices, instancecount, basevertex);
}
static void CODEGEN_FUNCPTR Switch_DrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex)
{
DrawRangeElementsBaseVertex = (PFNDRAWRANGEELEMENTSBASEVERTEXPROC)IntGetProcAddress("glDrawRangeElementsBaseVertex");
DrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex);
}
static GLsync CODEGEN_FUNCPTR Switch_FenceSync(GLenum condition, GLbitfield flags)
{
FenceSync = (PFNFENCESYNCPROC)IntGetProcAddress("glFenceSync");
return FenceSync(condition, flags);
}
static void CODEGEN_FUNCPTR Switch_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level)
{
FramebufferTexture = (PFNFRAMEBUFFERTEXTUREPROC)IntGetProcAddress("glFramebufferTexture");
FramebufferTexture(target, attachment, texture, level);
}
static void CODEGEN_FUNCPTR Switch_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 * params)
{
GetBufferParameteri64v = (PFNGETBUFFERPARAMETERI64VPROC)IntGetProcAddress("glGetBufferParameteri64v");
GetBufferParameteri64v(target, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetInteger64i_v(GLenum target, GLuint index, GLint64 * data)
{
GetInteger64i_v = (PFNGETINTEGER64I_VPROC)IntGetProcAddress("glGetInteger64i_v");
GetInteger64i_v(target, index, data);
}
static void CODEGEN_FUNCPTR Switch_GetInteger64v(GLenum pname, GLint64 * params)
{
GetInteger64v = (PFNGETINTEGER64VPROC)IntGetProcAddress("glGetInteger64v");
GetInteger64v(pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetMultisamplefv(GLenum pname, GLuint index, GLfloat * val)
{
GetMultisamplefv = (PFNGETMULTISAMPLEFVPROC)IntGetProcAddress("glGetMultisamplefv");
GetMultisamplefv(pname, index, val);
}
static void CODEGEN_FUNCPTR Switch_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values)
{
GetSynciv = (PFNGETSYNCIVPROC)IntGetProcAddress("glGetSynciv");
GetSynciv(sync, pname, bufSize, length, values);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsSync(GLsync sync)
{
IsSync = (PFNISSYNCPROC)IntGetProcAddress("glIsSync");
return IsSync(sync);
}
static void CODEGEN_FUNCPTR Switch_MultiDrawElementsBaseVertex(GLenum mode, const GLsizei * count, GLenum type, const GLvoid *const* indices, GLsizei drawcount, const GLint * basevertex)
{
MultiDrawElementsBaseVertex = (PFNMULTIDRAWELEMENTSBASEVERTEXPROC)IntGetProcAddress("glMultiDrawElementsBaseVertex");
MultiDrawElementsBaseVertex(mode, count, type, indices, drawcount, basevertex);
}
static void CODEGEN_FUNCPTR Switch_ProvokingVertex(GLenum mode)
{
ProvokingVertex = (PFNPROVOKINGVERTEXPROC)IntGetProcAddress("glProvokingVertex");
ProvokingVertex(mode);
}
static void CODEGEN_FUNCPTR Switch_SampleMaski(GLuint index, GLbitfield mask)
{
SampleMaski = (PFNSAMPLEMASKIPROC)IntGetProcAddress("glSampleMaski");
SampleMaski(index, mask);
}
static void CODEGEN_FUNCPTR Switch_TexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
{
TexImage2DMultisample = (PFNTEXIMAGE2DMULTISAMPLEPROC)IntGetProcAddress("glTexImage2DMultisample");
TexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
}
static void CODEGEN_FUNCPTR Switch_TexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
{
TexImage3DMultisample = (PFNTEXIMAGE3DMULTISAMPLEPROC)IntGetProcAddress("glTexImage3DMultisample");
TexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
}
static void CODEGEN_FUNCPTR Switch_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
WaitSync = (PFNWAITSYNCPROC)IntGetProcAddress("glWaitSync");
WaitSync(sync, flags, timeout);
}
// Extension: 3.3
static void CODEGEN_FUNCPTR Switch_BindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name)
{
BindFragDataLocationIndexed = (PFNBINDFRAGDATALOCATIONINDEXEDPROC)IntGetProcAddress("glBindFragDataLocationIndexed");
BindFragDataLocationIndexed(program, colorNumber, index, name);
}
static void CODEGEN_FUNCPTR Switch_BindSampler(GLuint unit, GLuint sampler)
{
BindSampler = (PFNBINDSAMPLERPROC)IntGetProcAddress("glBindSampler");
BindSampler(unit, sampler);
}
static void CODEGEN_FUNCPTR Switch_DeleteSamplers(GLsizei count, const GLuint * samplers)
{
DeleteSamplers = (PFNDELETESAMPLERSPROC)IntGetProcAddress("glDeleteSamplers");
DeleteSamplers(count, samplers);
}
static void CODEGEN_FUNCPTR Switch_GenSamplers(GLsizei count, GLuint * samplers)
{
GenSamplers = (PFNGENSAMPLERSPROC)IntGetProcAddress("glGenSamplers");
GenSamplers(count, samplers);
}
static GLint CODEGEN_FUNCPTR Switch_GetFragDataIndex(GLuint program, const GLchar * name)
{
GetFragDataIndex = (PFNGETFRAGDATAINDEXPROC)IntGetProcAddress("glGetFragDataIndex");
return GetFragDataIndex(program, name);
}
static void CODEGEN_FUNCPTR Switch_GetQueryObjecti64v(GLuint id, GLenum pname, GLint64 * params)
{
GetQueryObjecti64v = (PFNGETQUERYOBJECTI64VPROC)IntGetProcAddress("glGetQueryObjecti64v");
GetQueryObjecti64v(id, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 * params)
{
GetQueryObjectui64v = (PFNGETQUERYOBJECTUI64VPROC)IntGetProcAddress("glGetQueryObjectui64v");
GetQueryObjectui64v(id, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint * params)
{
GetSamplerParameterIiv = (PFNGETSAMPLERPARAMETERIIVPROC)IntGetProcAddress("glGetSamplerParameterIiv");
GetSamplerParameterIiv(sampler, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint * params)
{
GetSamplerParameterIuiv = (PFNGETSAMPLERPARAMETERIUIVPROC)IntGetProcAddress("glGetSamplerParameterIuiv");
GetSamplerParameterIuiv(sampler, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat * params)
{
GetSamplerParameterfv = (PFNGETSAMPLERPARAMETERFVPROC)IntGetProcAddress("glGetSamplerParameterfv");
GetSamplerParameterfv(sampler, pname, params);
}
static void CODEGEN_FUNCPTR Switch_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint * params)
{
GetSamplerParameteriv = (PFNGETSAMPLERPARAMETERIVPROC)IntGetProcAddress("glGetSamplerParameteriv");
GetSamplerParameteriv(sampler, pname, params);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsSampler(GLuint sampler)
{
IsSampler = (PFNISSAMPLERPROC)IntGetProcAddress("glIsSampler");
return IsSampler(sampler);
}
static void CODEGEN_FUNCPTR Switch_QueryCounter(GLuint id, GLenum target)
{
QueryCounter = (PFNQUERYCOUNTERPROC)IntGetProcAddress("glQueryCounter");
QueryCounter(id, target);
}
static void CODEGEN_FUNCPTR Switch_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint * param)
{
SamplerParameterIiv = (PFNSAMPLERPARAMETERIIVPROC)IntGetProcAddress("glSamplerParameterIiv");
SamplerParameterIiv(sampler, pname, param);
}
static void CODEGEN_FUNCPTR Switch_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint * param)
{
SamplerParameterIuiv = (PFNSAMPLERPARAMETERIUIVPROC)IntGetProcAddress("glSamplerParameterIuiv");
SamplerParameterIuiv(sampler, pname, param);
}
static void CODEGEN_FUNCPTR Switch_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
{
SamplerParameterf = (PFNSAMPLERPARAMETERFPROC)IntGetProcAddress("glSamplerParameterf");
SamplerParameterf(sampler, pname, param);
}
static void CODEGEN_FUNCPTR Switch_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat * param)
{
SamplerParameterfv = (PFNSAMPLERPARAMETERFVPROC)IntGetProcAddress("glSamplerParameterfv");
SamplerParameterfv(sampler, pname, param);
}
static void CODEGEN_FUNCPTR Switch_SamplerParameteri(GLuint sampler, GLenum pname, GLint param)
{
SamplerParameteri = (PFNSAMPLERPARAMETERIPROC)IntGetProcAddress("glSamplerParameteri");
SamplerParameteri(sampler, pname, param);
}
static void CODEGEN_FUNCPTR Switch_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint * param)
{
SamplerParameteriv = (PFNSAMPLERPARAMETERIVPROC)IntGetProcAddress("glSamplerParameteriv");
SamplerParameteriv(sampler, pname, param);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribDivisor(GLuint index, GLuint divisor)
{
VertexAttribDivisor = (PFNVERTEXATTRIBDIVISORPROC)IntGetProcAddress("glVertexAttribDivisor");
VertexAttribDivisor(index, divisor);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
{
VertexAttribP1ui = (PFNVERTEXATTRIBP1UIPROC)IntGetProcAddress("glVertexAttribP1ui");
VertexAttribP1ui(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value)
{
VertexAttribP1uiv = (PFNVERTEXATTRIBP1UIVPROC)IntGetProcAddress("glVertexAttribP1uiv");
VertexAttribP1uiv(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
{
VertexAttribP2ui = (PFNVERTEXATTRIBP2UIPROC)IntGetProcAddress("glVertexAttribP2ui");
VertexAttribP2ui(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value)
{
VertexAttribP2uiv = (PFNVERTEXATTRIBP2UIVPROC)IntGetProcAddress("glVertexAttribP2uiv");
VertexAttribP2uiv(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
{
VertexAttribP3ui = (PFNVERTEXATTRIBP3UIPROC)IntGetProcAddress("glVertexAttribP3ui");
VertexAttribP3ui(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value)
{
VertexAttribP3uiv = (PFNVERTEXATTRIBP3UIVPROC)IntGetProcAddress("glVertexAttribP3uiv");
VertexAttribP3uiv(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
{
VertexAttribP4ui = (PFNVERTEXATTRIBP4UIPROC)IntGetProcAddress("glVertexAttribP4ui");
VertexAttribP4ui(index, type, normalized, value);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint * value)
{
VertexAttribP4uiv = (PFNVERTEXATTRIBP4UIVPROC)IntGetProcAddress("glVertexAttribP4uiv");
VertexAttribP4uiv(index, type, normalized, value);
}
// Extension: 4.0
static void CODEGEN_FUNCPTR Switch_BeginQueryIndexed(GLenum target, GLuint index, GLuint id)
{
BeginQueryIndexed = (PFNBEGINQUERYINDEXEDPROC)IntGetProcAddress("glBeginQueryIndexed");
BeginQueryIndexed(target, index, id);
}
static void CODEGEN_FUNCPTR Switch_BindTransformFeedback(GLenum target, GLuint id)
{
BindTransformFeedback = (PFNBINDTRANSFORMFEEDBACKPROC)IntGetProcAddress("glBindTransformFeedback");
BindTransformFeedback(target, id);
}
static void CODEGEN_FUNCPTR Switch_BlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
{
BlendEquationSeparatei = (PFNBLENDEQUATIONSEPARATEIPROC)IntGetProcAddress("glBlendEquationSeparatei");
BlendEquationSeparatei(buf, modeRGB, modeAlpha);
}
static void CODEGEN_FUNCPTR Switch_BlendEquationi(GLuint buf, GLenum mode)
{
BlendEquationi = (PFNBLENDEQUATIONIPROC)IntGetProcAddress("glBlendEquationi");
BlendEquationi(buf, mode);
}
static void CODEGEN_FUNCPTR Switch_BlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
{
BlendFuncSeparatei = (PFNBLENDFUNCSEPARATEIPROC)IntGetProcAddress("glBlendFuncSeparatei");
BlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
}
static void CODEGEN_FUNCPTR Switch_BlendFunci(GLuint buf, GLenum src, GLenum dst)
{
BlendFunci = (PFNBLENDFUNCIPROC)IntGetProcAddress("glBlendFunci");
BlendFunci(buf, src, dst);
}
static void CODEGEN_FUNCPTR Switch_DeleteTransformFeedbacks(GLsizei n, const GLuint * ids)
{
DeleteTransformFeedbacks = (PFNDELETETRANSFORMFEEDBACKSPROC)IntGetProcAddress("glDeleteTransformFeedbacks");
DeleteTransformFeedbacks(n, ids);
}
static void CODEGEN_FUNCPTR Switch_DrawArraysIndirect(GLenum mode, const GLvoid * indirect)
{
DrawArraysIndirect = (PFNDRAWARRAYSINDIRECTPROC)IntGetProcAddress("glDrawArraysIndirect");
DrawArraysIndirect(mode, indirect);
}
static void CODEGEN_FUNCPTR Switch_DrawElementsIndirect(GLenum mode, GLenum type, const GLvoid * indirect)
{
DrawElementsIndirect = (PFNDRAWELEMENTSINDIRECTPROC)IntGetProcAddress("glDrawElementsIndirect");
DrawElementsIndirect(mode, type, indirect);
}
static void CODEGEN_FUNCPTR Switch_DrawTransformFeedback(GLenum mode, GLuint id)
{
DrawTransformFeedback = (PFNDRAWTRANSFORMFEEDBACKPROC)IntGetProcAddress("glDrawTransformFeedback");
DrawTransformFeedback(mode, id);
}
static void CODEGEN_FUNCPTR Switch_DrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream)
{
DrawTransformFeedbackStream = (PFNDRAWTRANSFORMFEEDBACKSTREAMPROC)IntGetProcAddress("glDrawTransformFeedbackStream");
DrawTransformFeedbackStream(mode, id, stream);
}
static void CODEGEN_FUNCPTR Switch_EndQueryIndexed(GLenum target, GLuint index)
{
EndQueryIndexed = (PFNENDQUERYINDEXEDPROC)IntGetProcAddress("glEndQueryIndexed");
EndQueryIndexed(target, index);
}
static void CODEGEN_FUNCPTR Switch_GenTransformFeedbacks(GLsizei n, GLuint * ids)
{
GenTransformFeedbacks = (PFNGENTRANSFORMFEEDBACKSPROC)IntGetProcAddress("glGenTransformFeedbacks");
GenTransformFeedbacks(n, ids);
}
static void CODEGEN_FUNCPTR Switch_GetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name)
{
GetActiveSubroutineName = (PFNGETACTIVESUBROUTINENAMEPROC)IntGetProcAddress("glGetActiveSubroutineName");
GetActiveSubroutineName(program, shadertype, index, bufsize, length, name);
}
static void CODEGEN_FUNCPTR Switch_GetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name)
{
GetActiveSubroutineUniformName = (PFNGETACTIVESUBROUTINEUNIFORMNAMEPROC)IntGetProcAddress("glGetActiveSubroutineUniformName");
GetActiveSubroutineUniformName(program, shadertype, index, bufsize, length, name);
}
static void CODEGEN_FUNCPTR Switch_GetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values)
{
GetActiveSubroutineUniformiv = (PFNGETACTIVESUBROUTINEUNIFORMIVPROC)IntGetProcAddress("glGetActiveSubroutineUniformiv");
GetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
}
static void CODEGEN_FUNCPTR Switch_GetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint * values)
{
GetProgramStageiv = (PFNGETPROGRAMSTAGEIVPROC)IntGetProcAddress("glGetProgramStageiv");
GetProgramStageiv(program, shadertype, pname, values);
}
static void CODEGEN_FUNCPTR Switch_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint * params)
{
GetQueryIndexediv = (PFNGETQUERYINDEXEDIVPROC)IntGetProcAddress("glGetQueryIndexediv");
GetQueryIndexediv(target, index, pname, params);
}
static GLuint CODEGEN_FUNCPTR Switch_GetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar * name)
{
GetSubroutineIndex = (PFNGETSUBROUTINEINDEXPROC)IntGetProcAddress("glGetSubroutineIndex");
return GetSubroutineIndex(program, shadertype, name);
}
static GLint CODEGEN_FUNCPTR Switch_GetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar * name)
{
GetSubroutineUniformLocation = (PFNGETSUBROUTINEUNIFORMLOCATIONPROC)IntGetProcAddress("glGetSubroutineUniformLocation");
return GetSubroutineUniformLocation(program, shadertype, name);
}
static void CODEGEN_FUNCPTR Switch_GetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint * params)
{
GetUniformSubroutineuiv = (PFNGETUNIFORMSUBROUTINEUIVPROC)IntGetProcAddress("glGetUniformSubroutineuiv");
GetUniformSubroutineuiv(shadertype, location, params);
}
static void CODEGEN_FUNCPTR Switch_GetUniformdv(GLuint program, GLint location, GLdouble * params)
{
GetUniformdv = (PFNGETUNIFORMDVPROC)IntGetProcAddress("glGetUniformdv");
GetUniformdv(program, location, params);
}
static GLboolean CODEGEN_FUNCPTR Switch_IsTransformFeedback(GLuint id)
{
IsTransformFeedback = (PFNISTRANSFORMFEEDBACKPROC)IntGetProcAddress("glIsTransformFeedback");
return IsTransformFeedback(id);
}
static void CODEGEN_FUNCPTR Switch_MinSampleShading(GLfloat value)
{
MinSampleShading = (PFNMINSAMPLESHADINGPROC)IntGetProcAddress("glMinSampleShading");
MinSampleShading(value);
}
static void CODEGEN_FUNCPTR Switch_PatchParameterfv(GLenum pname, const GLfloat * values)
{
PatchParameterfv = (PFNPATCHPARAMETERFVPROC)IntGetProcAddress("glPatchParameterfv");
PatchParameterfv(pname, values);
}
static void CODEGEN_FUNCPTR Switch_PatchParameteri(GLenum pname, GLint value)
{
PatchParameteri = (PFNPATCHPARAMETERIPROC)IntGetProcAddress("glPatchParameteri");
PatchParameteri(pname, value);
}
static void CODEGEN_FUNCPTR Switch_PauseTransformFeedback()
{
PauseTransformFeedback = (PFNPAUSETRANSFORMFEEDBACKPROC)IntGetProcAddress("glPauseTransformFeedback");
PauseTransformFeedback();
}
static void CODEGEN_FUNCPTR Switch_ResumeTransformFeedback()
{
ResumeTransformFeedback = (PFNRESUMETRANSFORMFEEDBACKPROC)IntGetProcAddress("glResumeTransformFeedback");
ResumeTransformFeedback();
}
static void CODEGEN_FUNCPTR Switch_Uniform1d(GLint location, GLdouble x)
{
Uniform1d = (PFNUNIFORM1DPROC)IntGetProcAddress("glUniform1d");
Uniform1d(location, x);
}
static void CODEGEN_FUNCPTR Switch_Uniform1dv(GLint location, GLsizei count, const GLdouble * value)
{
Uniform1dv = (PFNUNIFORM1DVPROC)IntGetProcAddress("glUniform1dv");
Uniform1dv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform2d(GLint location, GLdouble x, GLdouble y)
{
Uniform2d = (PFNUNIFORM2DPROC)IntGetProcAddress("glUniform2d");
Uniform2d(location, x, y);
}
static void CODEGEN_FUNCPTR Switch_Uniform2dv(GLint location, GLsizei count, const GLdouble * value)
{
Uniform2dv = (PFNUNIFORM2DVPROC)IntGetProcAddress("glUniform2dv");
Uniform2dv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z)
{
Uniform3d = (PFNUNIFORM3DPROC)IntGetProcAddress("glUniform3d");
Uniform3d(location, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_Uniform3dv(GLint location, GLsizei count, const GLdouble * value)
{
Uniform3dv = (PFNUNIFORM3DVPROC)IntGetProcAddress("glUniform3dv");
Uniform3dv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_Uniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
Uniform4d = (PFNUNIFORM4DPROC)IntGetProcAddress("glUniform4d");
Uniform4d(location, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_Uniform4dv(GLint location, GLsizei count, const GLdouble * value)
{
Uniform4dv = (PFNUNIFORM4DVPROC)IntGetProcAddress("glUniform4dv");
Uniform4dv(location, count, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix2dv = (PFNUNIFORMMATRIX2DVPROC)IntGetProcAddress("glUniformMatrix2dv");
UniformMatrix2dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix2x3dv = (PFNUNIFORMMATRIX2X3DVPROC)IntGetProcAddress("glUniformMatrix2x3dv");
UniformMatrix2x3dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix2x4dv = (PFNUNIFORMMATRIX2X4DVPROC)IntGetProcAddress("glUniformMatrix2x4dv");
UniformMatrix2x4dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix3dv = (PFNUNIFORMMATRIX3DVPROC)IntGetProcAddress("glUniformMatrix3dv");
UniformMatrix3dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix3x2dv = (PFNUNIFORMMATRIX3X2DVPROC)IntGetProcAddress("glUniformMatrix3x2dv");
UniformMatrix3x2dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix3x4dv = (PFNUNIFORMMATRIX3X4DVPROC)IntGetProcAddress("glUniformMatrix3x4dv");
UniformMatrix3x4dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix4dv = (PFNUNIFORMMATRIX4DVPROC)IntGetProcAddress("glUniformMatrix4dv");
UniformMatrix4dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix4x2dv = (PFNUNIFORMMATRIX4X2DVPROC)IntGetProcAddress("glUniformMatrix4x2dv");
UniformMatrix4x2dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value)
{
UniformMatrix4x3dv = (PFNUNIFORMMATRIX4X3DVPROC)IntGetProcAddress("glUniformMatrix4x3dv");
UniformMatrix4x3dv(location, count, transpose, value);
}
static void CODEGEN_FUNCPTR Switch_UniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint * indices)
{
UniformSubroutinesuiv = (PFNUNIFORMSUBROUTINESUIVPROC)IntGetProcAddress("glUniformSubroutinesuiv");
UniformSubroutinesuiv(shadertype, count, indices);
}
// Extension: 4.1
static void CODEGEN_FUNCPTR Switch_GetVertexAttribLdv(GLuint index, GLenum pname, GLdouble * params)
{
GetVertexAttribLdv = (PFNGETVERTEXATTRIBLDVPROC)IntGetProcAddress("glGetVertexAttribLdv");
GetVertexAttribLdv(index, pname, params);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL1d(GLuint index, GLdouble x)
{
VertexAttribL1d = (PFNVERTEXATTRIBL1DPROC)IntGetProcAddress("glVertexAttribL1d");
VertexAttribL1d(index, x);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL1dv(GLuint index, const GLdouble * v)
{
VertexAttribL1dv = (PFNVERTEXATTRIBL1DVPROC)IntGetProcAddress("glVertexAttribL1dv");
VertexAttribL1dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL2d(GLuint index, GLdouble x, GLdouble y)
{
VertexAttribL2d = (PFNVERTEXATTRIBL2DPROC)IntGetProcAddress("glVertexAttribL2d");
VertexAttribL2d(index, x, y);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL2dv(GLuint index, const GLdouble * v)
{
VertexAttribL2dv = (PFNVERTEXATTRIBL2DVPROC)IntGetProcAddress("glVertexAttribL2dv");
VertexAttribL2dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z)
{
VertexAttribL3d = (PFNVERTEXATTRIBL3DPROC)IntGetProcAddress("glVertexAttribL3d");
VertexAttribL3d(index, x, y, z);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL3dv(GLuint index, const GLdouble * v)
{
VertexAttribL3dv = (PFNVERTEXATTRIBL3DVPROC)IntGetProcAddress("glVertexAttribL3dv");
VertexAttribL3dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
VertexAttribL4d = (PFNVERTEXATTRIBL4DPROC)IntGetProcAddress("glVertexAttribL4d");
VertexAttribL4d(index, x, y, z, w);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribL4dv(GLuint index, const GLdouble * v)
{
VertexAttribL4dv = (PFNVERTEXATTRIBL4DVPROC)IntGetProcAddress("glVertexAttribL4dv");
VertexAttribL4dv(index, v);
}
static void CODEGEN_FUNCPTR Switch_VertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
{
VertexAttribLPointer = (PFNVERTEXATTRIBLPOINTERPROC)IntGetProcAddress("glVertexAttribLPointer");
VertexAttribLPointer(index, size, type, stride, pointer);
}
// Extension: 4.2
static void CODEGEN_FUNCPTR Switch_BindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
{
BindImageTexture = (PFNBINDIMAGETEXTUREPROC)IntGetProcAddress("glBindImageTexture");
BindImageTexture(unit, texture, level, layered, layer, access, format);
}
static void CODEGEN_FUNCPTR Switch_DrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
{
DrawArraysInstancedBaseInstance = (PFNDRAWARRAYSINSTANCEDBASEINSTANCEPROC)IntGetProcAddress("glDrawArraysInstancedBaseInstance");
DrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
}
static void CODEGEN_FUNCPTR Switch_DrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance)
{
DrawElementsInstancedBaseInstance = (PFNDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)IntGetProcAddress("glDrawElementsInstancedBaseInstance");
DrawElementsInstancedBaseInstance(mode, count, type, indices, instancecount, baseinstance);
}
static void CODEGEN_FUNCPTR Switch_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
{
DrawElementsInstancedBaseVertexBaseInstance = (PFNDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)IntGetProcAddress("glDrawElementsInstancedBaseVertexBaseInstance");
DrawElementsInstancedBaseVertexBaseInstance(mode, count, type, indices, instancecount, basevertex, baseinstance);
}
static void CODEGEN_FUNCPTR Switch_DrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount)
{
DrawTransformFeedbackInstanced = (PFNDRAWTRANSFORMFEEDBACKINSTANCEDPROC)IntGetProcAddress("glDrawTransformFeedbackInstanced");
DrawTransformFeedbackInstanced(mode, id, instancecount);
}
static void CODEGEN_FUNCPTR Switch_DrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)
{
DrawTransformFeedbackStreamInstanced = (PFNDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)IntGetProcAddress("glDrawTransformFeedbackStreamInstanced");
DrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
}
static void CODEGEN_FUNCPTR Switch_GetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params)
{
GetActiveAtomicCounterBufferiv = (PFNGETACTIVEATOMICCOUNTERBUFFERIVPROC)IntGetProcAddress("glGetActiveAtomicCounterBufferiv");
GetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
}
static void CODEGEN_FUNCPTR Switch_MemoryBarrier(GLbitfield barriers)
{
MemoryBarrier = (PFNMEMORYBARRIERPROC)IntGetProcAddress("glMemoryBarrier");
MemoryBarrier(barriers);
}
// Extension: 4.3
static void CODEGEN_FUNCPTR Switch_DispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
{
DispatchCompute = (PFNDISPATCHCOMPUTEPROC)IntGetProcAddress("glDispatchCompute");
DispatchCompute(num_groups_x, num_groups_y, num_groups_z);
}
static void CODEGEN_FUNCPTR Switch_DispatchComputeIndirect(GLintptr indirect)
{
DispatchComputeIndirect = (PFNDISPATCHCOMPUTEINDIRECTPROC)IntGetProcAddress("glDispatchComputeIndirect");
DispatchComputeIndirect(indirect);
}
static void CODEGEN_FUNCPTR Switch_MultiDrawArraysIndirect(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride)
{
MultiDrawArraysIndirect = (PFNMULTIDRAWARRAYSINDIRECTPROC)IntGetProcAddress("glMultiDrawArraysIndirect");
MultiDrawArraysIndirect(mode, indirect, drawcount, stride);
}
static void CODEGEN_FUNCPTR Switch_MultiDrawElementsIndirect(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride)
{
MultiDrawElementsIndirect = (PFNMULTIDRAWELEMENTSINDIRECTPROC)IntGetProcAddress("glMultiDrawElementsIndirect");
MultiDrawElementsIndirect(mode, type, indirect, drawcount, stride);
}
static void CODEGEN_FUNCPTR Switch_ShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding)
{
ShaderStorageBlockBinding = (PFNSHADERSTORAGEBLOCKBINDINGPROC)IntGetProcAddress("glShaderStorageBlockBinding");
ShaderStorageBlockBinding(program, storageBlockIndex, storageBlockBinding);
}
// Extension: 4.4
static void CODEGEN_FUNCPTR Switch_BindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint * buffers)
{
BindBuffersBase = (PFNBINDBUFFERSBASEPROC)IntGetProcAddress("glBindBuffersBase");
BindBuffersBase(target, first, count, buffers);
}
static void CODEGEN_FUNCPTR Switch_BindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes)
{
BindBuffersRange = (PFNBINDBUFFERSRANGEPROC)IntGetProcAddress("glBindBuffersRange");
BindBuffersRange(target, first, count, buffers, offsets, sizes);
}
static void CODEGEN_FUNCPTR Switch_BindImageTextures(GLuint first, GLsizei count, const GLuint * textures)
{
BindImageTextures = (PFNBINDIMAGETEXTURESPROC)IntGetProcAddress("glBindImageTextures");
BindImageTextures(first, count, textures);
}
static void CODEGEN_FUNCPTR Switch_BindSamplers(GLuint first, GLsizei count, const GLuint * samplers)
{
BindSamplers = (PFNBINDSAMPLERSPROC)IntGetProcAddress("glBindSamplers");
BindSamplers(first, count, samplers);
}
static void CODEGEN_FUNCPTR Switch_BindTextures(GLuint first, GLsizei count, const GLuint * textures)
{
BindTextures = (PFNBINDTEXTURESPROC)IntGetProcAddress("glBindTextures");
BindTextures(first, count, textures);
}
static void CODEGEN_FUNCPTR Switch_BindVertexBuffers(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides)
{
BindVertexBuffers = (PFNBINDVERTEXBUFFERSPROC)IntGetProcAddress("glBindVertexBuffers");
BindVertexBuffers(first, count, buffers, offsets, strides);
}
static void CODEGEN_FUNCPTR Switch_BufferStorage(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags)
{
BufferStorage = (PFNBUFFERSTORAGEPROC)IntGetProcAddress("glBufferStorage");
BufferStorage(target, size, data, flags);
}
static void CODEGEN_FUNCPTR Switch_ClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void * data)
{
ClearTexImage = (PFNCLEARTEXIMAGEPROC)IntGetProcAddress("glClearTexImage");
ClearTexImage(texture, level, format, type, data);
}
static void CODEGEN_FUNCPTR Switch_ClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data)
{
ClearTexSubImage = (PFNCLEARTEXSUBIMAGEPROC)IntGetProcAddress("glClearTexSubImage");
ClearTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
}
namespace
{
struct InitializeVariables
{
InitializeVariables()
{
// Extension: ARB_ES2_compatibility
ClearDepthf = Switch_ClearDepthf;
DepthRangef = Switch_DepthRangef;
GetShaderPrecisionFormat = Switch_GetShaderPrecisionFormat;
ReleaseShaderCompiler = Switch_ReleaseShaderCompiler;
ShaderBinary = Switch_ShaderBinary;
// Extension: ARB_get_program_binary
GetProgramBinary = Switch_GetProgramBinary;
ProgramBinary = Switch_ProgramBinary;
ProgramParameteri = Switch_ProgramParameteri;
// Extension: ARB_internalformat_query
GetInternalformativ = Switch_GetInternalformativ;
// Extension: ARB_internalformat_query2
GetInternalformati64v = Switch_GetInternalformati64v;
// Extension: ARB_program_interface_query
GetProgramInterfaceiv = Switch_GetProgramInterfaceiv;
GetProgramResourceIndex = Switch_GetProgramResourceIndex;
GetProgramResourceLocation = Switch_GetProgramResourceLocation;
GetProgramResourceLocationIndex = Switch_GetProgramResourceLocationIndex;
GetProgramResourceName = Switch_GetProgramResourceName;
GetProgramResourceiv = Switch_GetProgramResourceiv;
// Extension: ARB_separate_shader_objects
ActiveShaderProgram = Switch_ActiveShaderProgram;
BindProgramPipeline = Switch_BindProgramPipeline;
CreateShaderProgramv = Switch_CreateShaderProgramv;
DeleteProgramPipelines = Switch_DeleteProgramPipelines;
GenProgramPipelines = Switch_GenProgramPipelines;
GetProgramPipelineInfoLog = Switch_GetProgramPipelineInfoLog;
GetProgramPipelineiv = Switch_GetProgramPipelineiv;
IsProgramPipeline = Switch_IsProgramPipeline;
ProgramUniform1d = Switch_ProgramUniform1d;
ProgramUniform1dv = Switch_ProgramUniform1dv;
ProgramUniform1f = Switch_ProgramUniform1f;
ProgramUniform1fv = Switch_ProgramUniform1fv;
ProgramUniform1i = Switch_ProgramUniform1i;
ProgramUniform1iv = Switch_ProgramUniform1iv;
ProgramUniform1ui = Switch_ProgramUniform1ui;
ProgramUniform1uiv = Switch_ProgramUniform1uiv;
ProgramUniform2d = Switch_ProgramUniform2d;
ProgramUniform2dv = Switch_ProgramUniform2dv;
ProgramUniform2f = Switch_ProgramUniform2f;
ProgramUniform2fv = Switch_ProgramUniform2fv;
ProgramUniform2i = Switch_ProgramUniform2i;
ProgramUniform2iv = Switch_ProgramUniform2iv;
ProgramUniform2ui = Switch_ProgramUniform2ui;
ProgramUniform2uiv = Switch_ProgramUniform2uiv;
ProgramUniform3d = Switch_ProgramUniform3d;
ProgramUniform3dv = Switch_ProgramUniform3dv;
ProgramUniform3f = Switch_ProgramUniform3f;
ProgramUniform3fv = Switch_ProgramUniform3fv;
ProgramUniform3i = Switch_ProgramUniform3i;
ProgramUniform3iv = Switch_ProgramUniform3iv;
ProgramUniform3ui = Switch_ProgramUniform3ui;
ProgramUniform3uiv = Switch_ProgramUniform3uiv;
ProgramUniform4d = Switch_ProgramUniform4d;
ProgramUniform4dv = Switch_ProgramUniform4dv;
ProgramUniform4f = Switch_ProgramUniform4f;
ProgramUniform4fv = Switch_ProgramUniform4fv;
ProgramUniform4i = Switch_ProgramUniform4i;
ProgramUniform4iv = Switch_ProgramUniform4iv;
ProgramUniform4ui = Switch_ProgramUniform4ui;
ProgramUniform4uiv = Switch_ProgramUniform4uiv;
ProgramUniformMatrix2dv = Switch_ProgramUniformMatrix2dv;
ProgramUniformMatrix2fv = Switch_ProgramUniformMatrix2fv;
ProgramUniformMatrix2x3dv = Switch_ProgramUniformMatrix2x3dv;
ProgramUniformMatrix2x3fv = Switch_ProgramUniformMatrix2x3fv;
ProgramUniformMatrix2x4dv = Switch_ProgramUniformMatrix2x4dv;
ProgramUniformMatrix2x4fv = Switch_ProgramUniformMatrix2x4fv;
ProgramUniformMatrix3dv = Switch_ProgramUniformMatrix3dv;
ProgramUniformMatrix3fv = Switch_ProgramUniformMatrix3fv;
ProgramUniformMatrix3x2dv = Switch_ProgramUniformMatrix3x2dv;
ProgramUniformMatrix3x2fv = Switch_ProgramUniformMatrix3x2fv;
ProgramUniformMatrix3x4dv = Switch_ProgramUniformMatrix3x4dv;
ProgramUniformMatrix3x4fv = Switch_ProgramUniformMatrix3x4fv;
ProgramUniformMatrix4dv = Switch_ProgramUniformMatrix4dv;
ProgramUniformMatrix4fv = Switch_ProgramUniformMatrix4fv;
ProgramUniformMatrix4x2dv = Switch_ProgramUniformMatrix4x2dv;
ProgramUniformMatrix4x2fv = Switch_ProgramUniformMatrix4x2fv;
ProgramUniformMatrix4x3dv = Switch_ProgramUniformMatrix4x3dv;
ProgramUniformMatrix4x3fv = Switch_ProgramUniformMatrix4x3fv;
UseProgramStages = Switch_UseProgramStages;
ValidateProgramPipeline = Switch_ValidateProgramPipeline;
// Extension: ARB_texture_buffer_range
TexBufferRange = Switch_TexBufferRange;
// Extension: ARB_texture_storage
TexStorage1D = Switch_TexStorage1D;
TexStorage2D = Switch_TexStorage2D;
TexStorage3D = Switch_TexStorage3D;
// Extension: ARB_texture_view
TextureView = Switch_TextureView;
// Extension: ARB_vertex_attrib_binding
BindVertexBuffer = Switch_BindVertexBuffer;
VertexAttribBinding = Switch_VertexAttribBinding;
VertexAttribFormat = Switch_VertexAttribFormat;
VertexAttribIFormat = Switch_VertexAttribIFormat;
VertexAttribLFormat = Switch_VertexAttribLFormat;
VertexBindingDivisor = Switch_VertexBindingDivisor;
// Extension: ARB_viewport_array
DepthRangeArrayv = Switch_DepthRangeArrayv;
DepthRangeIndexed = Switch_DepthRangeIndexed;
GetDoublei_v = Switch_GetDoublei_v;
GetFloati_v = Switch_GetFloati_v;
ScissorArrayv = Switch_ScissorArrayv;
ScissorIndexed = Switch_ScissorIndexed;
ScissorIndexedv = Switch_ScissorIndexedv;
ViewportArrayv = Switch_ViewportArrayv;
ViewportIndexedf = Switch_ViewportIndexedf;
ViewportIndexedfv = Switch_ViewportIndexedfv;
// Extension: ARB_clear_buffer_object
ClearBufferData = Switch_ClearBufferData;
ClearBufferSubData = Switch_ClearBufferSubData;
// Extension: ARB_copy_image
CopyImageSubData = Switch_CopyImageSubData;
// Extension: ARB_framebuffer_no_attachments
FramebufferParameteri = Switch_FramebufferParameteri;
GetFramebufferParameteriv = Switch_GetFramebufferParameteriv;
// Extension: ARB_invalidate_subdata
InvalidateBufferData = Switch_InvalidateBufferData;
InvalidateBufferSubData = Switch_InvalidateBufferSubData;
InvalidateFramebuffer = Switch_InvalidateFramebuffer;
InvalidateSubFramebuffer = Switch_InvalidateSubFramebuffer;
InvalidateTexImage = Switch_InvalidateTexImage;
InvalidateTexSubImage = Switch_InvalidateTexSubImage;
// Extension: ARB_texture_storage_multisample
TexStorage2DMultisample = Switch_TexStorage2DMultisample;
TexStorage3DMultisample = Switch_TexStorage3DMultisample;
// Extension: KHR_debug
DebugMessageCallback = Switch_DebugMessageCallback;
DebugMessageControl = Switch_DebugMessageControl;
DebugMessageInsert = Switch_DebugMessageInsert;
GetDebugMessageLog = Switch_GetDebugMessageLog;
GetObjectLabel = Switch_GetObjectLabel;
GetObjectPtrLabel = Switch_GetObjectPtrLabel;
GetPointerv = Switch_GetPointerv;
ObjectLabel = Switch_ObjectLabel;
ObjectPtrLabel = Switch_ObjectPtrLabel;
PopDebugGroup = Switch_PopDebugGroup;
PushDebugGroup = Switch_PushDebugGroup;
// Extension: 1.0
BlendFunc = Switch_BlendFunc;
Clear = Switch_Clear;
ClearColor = Switch_ClearColor;
ClearDepth = Switch_ClearDepth;
ClearStencil = Switch_ClearStencil;
ColorMask = Switch_ColorMask;
CullFace = Switch_CullFace;
DepthFunc = Switch_DepthFunc;
DepthMask = Switch_DepthMask;
DepthRange = Switch_DepthRange;
Disable = Switch_Disable;
DrawBuffer = Switch_DrawBuffer;
Enable = Switch_Enable;
Finish = Switch_Finish;
Flush = Switch_Flush;
FrontFace = Switch_FrontFace;
GetBooleanv = Switch_GetBooleanv;
GetDoublev = Switch_GetDoublev;
GetError = Switch_GetError;
GetFloatv = Switch_GetFloatv;
GetIntegerv = Switch_GetIntegerv;
GetString = Switch_GetString;
GetTexImage = Switch_GetTexImage;
GetTexLevelParameterfv = Switch_GetTexLevelParameterfv;
GetTexLevelParameteriv = Switch_GetTexLevelParameteriv;
GetTexParameterfv = Switch_GetTexParameterfv;
GetTexParameteriv = Switch_GetTexParameteriv;
Hint = Switch_Hint;
IsEnabled = Switch_IsEnabled;
LineWidth = Switch_LineWidth;
LogicOp = Switch_LogicOp;
PixelStoref = Switch_PixelStoref;
PixelStorei = Switch_PixelStorei;
PointSize = Switch_PointSize;
PolygonMode = Switch_PolygonMode;
ReadBuffer = Switch_ReadBuffer;
ReadPixels = Switch_ReadPixels;
Scissor = Switch_Scissor;
StencilFunc = Switch_StencilFunc;
StencilMask = Switch_StencilMask;
StencilOp = Switch_StencilOp;
TexImage1D = Switch_TexImage1D;
TexImage2D = Switch_TexImage2D;
TexParameterf = Switch_TexParameterf;
TexParameterfv = Switch_TexParameterfv;
TexParameteri = Switch_TexParameteri;
TexParameteriv = Switch_TexParameteriv;
Viewport = Switch_Viewport;
// Extension: 1.1
BindTexture = Switch_BindTexture;
CopyTexImage1D = Switch_CopyTexImage1D;
CopyTexImage2D = Switch_CopyTexImage2D;
CopyTexSubImage1D = Switch_CopyTexSubImage1D;
CopyTexSubImage2D = Switch_CopyTexSubImage2D;
DeleteTextures = Switch_DeleteTextures;
DrawArrays = Switch_DrawArrays;
DrawElements = Switch_DrawElements;
GenTextures = Switch_GenTextures;
IsTexture = Switch_IsTexture;
PolygonOffset = Switch_PolygonOffset;
TexSubImage1D = Switch_TexSubImage1D;
TexSubImage2D = Switch_TexSubImage2D;
// Extension: 1.2
BlendColor = Switch_BlendColor;
BlendEquation = Switch_BlendEquation;
CopyTexSubImage3D = Switch_CopyTexSubImage3D;
DrawRangeElements = Switch_DrawRangeElements;
TexImage3D = Switch_TexImage3D;
TexSubImage3D = Switch_TexSubImage3D;
// Extension: 1.3
ActiveTexture = Switch_ActiveTexture;
CompressedTexImage1D = Switch_CompressedTexImage1D;
CompressedTexImage2D = Switch_CompressedTexImage2D;
CompressedTexImage3D = Switch_CompressedTexImage3D;
CompressedTexSubImage1D = Switch_CompressedTexSubImage1D;
CompressedTexSubImage2D = Switch_CompressedTexSubImage2D;
CompressedTexSubImage3D = Switch_CompressedTexSubImage3D;
GetCompressedTexImage = Switch_GetCompressedTexImage;
SampleCoverage = Switch_SampleCoverage;
// Extension: 1.4
BlendFuncSeparate = Switch_BlendFuncSeparate;
MultiDrawArrays = Switch_MultiDrawArrays;
MultiDrawElements = Switch_MultiDrawElements;
PointParameterf = Switch_PointParameterf;
PointParameterfv = Switch_PointParameterfv;
PointParameteri = Switch_PointParameteri;
PointParameteriv = Switch_PointParameteriv;
// Extension: 1.5
BeginQuery = Switch_BeginQuery;
BindBuffer = Switch_BindBuffer;
BufferData = Switch_BufferData;
BufferSubData = Switch_BufferSubData;
DeleteBuffers = Switch_DeleteBuffers;
DeleteQueries = Switch_DeleteQueries;
EndQuery = Switch_EndQuery;
GenBuffers = Switch_GenBuffers;
GenQueries = Switch_GenQueries;
GetBufferParameteriv = Switch_GetBufferParameteriv;
GetBufferPointerv = Switch_GetBufferPointerv;
GetBufferSubData = Switch_GetBufferSubData;
GetQueryObjectiv = Switch_GetQueryObjectiv;
GetQueryObjectuiv = Switch_GetQueryObjectuiv;
GetQueryiv = Switch_GetQueryiv;
IsBuffer = Switch_IsBuffer;
IsQuery = Switch_IsQuery;
MapBuffer = Switch_MapBuffer;
UnmapBuffer = Switch_UnmapBuffer;
// Extension: 2.0
AttachShader = Switch_AttachShader;
BindAttribLocation = Switch_BindAttribLocation;
BlendEquationSeparate = Switch_BlendEquationSeparate;
CompileShader = Switch_CompileShader;
CreateProgram = Switch_CreateProgram;
CreateShader = Switch_CreateShader;
DeleteProgram = Switch_DeleteProgram;
DeleteShader = Switch_DeleteShader;
DetachShader = Switch_DetachShader;
DisableVertexAttribArray = Switch_DisableVertexAttribArray;
DrawBuffers = Switch_DrawBuffers;
EnableVertexAttribArray = Switch_EnableVertexAttribArray;
GetActiveAttrib = Switch_GetActiveAttrib;
GetActiveUniform = Switch_GetActiveUniform;
GetAttachedShaders = Switch_GetAttachedShaders;
GetAttribLocation = Switch_GetAttribLocation;
GetProgramInfoLog = Switch_GetProgramInfoLog;
GetProgramiv = Switch_GetProgramiv;
GetShaderInfoLog = Switch_GetShaderInfoLog;
GetShaderSource = Switch_GetShaderSource;
GetShaderiv = Switch_GetShaderiv;
GetUniformLocation = Switch_GetUniformLocation;
GetUniformfv = Switch_GetUniformfv;
GetUniformiv = Switch_GetUniformiv;
GetVertexAttribPointerv = Switch_GetVertexAttribPointerv;
GetVertexAttribdv = Switch_GetVertexAttribdv;
GetVertexAttribfv = Switch_GetVertexAttribfv;
GetVertexAttribiv = Switch_GetVertexAttribiv;
IsProgram = Switch_IsProgram;
IsShader = Switch_IsShader;
LinkProgram = Switch_LinkProgram;
ShaderSource = Switch_ShaderSource;
StencilFuncSeparate = Switch_StencilFuncSeparate;
StencilMaskSeparate = Switch_StencilMaskSeparate;
StencilOpSeparate = Switch_StencilOpSeparate;
Uniform1f = Switch_Uniform1f;
Uniform1fv = Switch_Uniform1fv;
Uniform1i = Switch_Uniform1i;
Uniform1iv = Switch_Uniform1iv;
Uniform2f = Switch_Uniform2f;
Uniform2fv = Switch_Uniform2fv;
Uniform2i = Switch_Uniform2i;
Uniform2iv = Switch_Uniform2iv;
Uniform3f = Switch_Uniform3f;
Uniform3fv = Switch_Uniform3fv;
Uniform3i = Switch_Uniform3i;
Uniform3iv = Switch_Uniform3iv;
Uniform4f = Switch_Uniform4f;
Uniform4fv = Switch_Uniform4fv;
Uniform4i = Switch_Uniform4i;
Uniform4iv = Switch_Uniform4iv;
UniformMatrix2fv = Switch_UniformMatrix2fv;
UniformMatrix3fv = Switch_UniformMatrix3fv;
UniformMatrix4fv = Switch_UniformMatrix4fv;
UseProgram = Switch_UseProgram;
ValidateProgram = Switch_ValidateProgram;
VertexAttrib1d = Switch_VertexAttrib1d;
VertexAttrib1dv = Switch_VertexAttrib1dv;
VertexAttrib1f = Switch_VertexAttrib1f;
VertexAttrib1fv = Switch_VertexAttrib1fv;
VertexAttrib1s = Switch_VertexAttrib1s;
VertexAttrib1sv = Switch_VertexAttrib1sv;
VertexAttrib2d = Switch_VertexAttrib2d;
VertexAttrib2dv = Switch_VertexAttrib2dv;
VertexAttrib2f = Switch_VertexAttrib2f;
VertexAttrib2fv = Switch_VertexAttrib2fv;
VertexAttrib2s = Switch_VertexAttrib2s;
VertexAttrib2sv = Switch_VertexAttrib2sv;
VertexAttrib3d = Switch_VertexAttrib3d;
VertexAttrib3dv = Switch_VertexAttrib3dv;
VertexAttrib3f = Switch_VertexAttrib3f;
VertexAttrib3fv = Switch_VertexAttrib3fv;
VertexAttrib3s = Switch_VertexAttrib3s;
VertexAttrib3sv = Switch_VertexAttrib3sv;
VertexAttrib4Nbv = Switch_VertexAttrib4Nbv;
VertexAttrib4Niv = Switch_VertexAttrib4Niv;
VertexAttrib4Nsv = Switch_VertexAttrib4Nsv;
VertexAttrib4Nub = Switch_VertexAttrib4Nub;
VertexAttrib4Nubv = Switch_VertexAttrib4Nubv;
VertexAttrib4Nuiv = Switch_VertexAttrib4Nuiv;
VertexAttrib4Nusv = Switch_VertexAttrib4Nusv;
VertexAttrib4bv = Switch_VertexAttrib4bv;
VertexAttrib4d = Switch_VertexAttrib4d;
VertexAttrib4dv = Switch_VertexAttrib4dv;
VertexAttrib4f = Switch_VertexAttrib4f;
VertexAttrib4fv = Switch_VertexAttrib4fv;
VertexAttrib4iv = Switch_VertexAttrib4iv;
VertexAttrib4s = Switch_VertexAttrib4s;
VertexAttrib4sv = Switch_VertexAttrib4sv;
VertexAttrib4ubv = Switch_VertexAttrib4ubv;
VertexAttrib4uiv = Switch_VertexAttrib4uiv;
VertexAttrib4usv = Switch_VertexAttrib4usv;
VertexAttribPointer = Switch_VertexAttribPointer;
// Extension: 2.1
UniformMatrix2x3fv = Switch_UniformMatrix2x3fv;
UniformMatrix2x4fv = Switch_UniformMatrix2x4fv;
UniformMatrix3x2fv = Switch_UniformMatrix3x2fv;
UniformMatrix3x4fv = Switch_UniformMatrix3x4fv;
UniformMatrix4x2fv = Switch_UniformMatrix4x2fv;
UniformMatrix4x3fv = Switch_UniformMatrix4x3fv;
// Extension: 3.0
BeginConditionalRender = Switch_BeginConditionalRender;
BeginTransformFeedback = Switch_BeginTransformFeedback;
BindBufferBase = Switch_BindBufferBase;
BindBufferRange = Switch_BindBufferRange;
BindFragDataLocation = Switch_BindFragDataLocation;
BindFramebuffer = Switch_BindFramebuffer;
BindRenderbuffer = Switch_BindRenderbuffer;
BindVertexArray = Switch_BindVertexArray;
BlitFramebuffer = Switch_BlitFramebuffer;
CheckFramebufferStatus = Switch_CheckFramebufferStatus;
ClampColor = Switch_ClampColor;
ClearBufferfi = Switch_ClearBufferfi;
ClearBufferfv = Switch_ClearBufferfv;
ClearBufferiv = Switch_ClearBufferiv;
ClearBufferuiv = Switch_ClearBufferuiv;
ColorMaski = Switch_ColorMaski;
DeleteFramebuffers = Switch_DeleteFramebuffers;
DeleteRenderbuffers = Switch_DeleteRenderbuffers;
DeleteVertexArrays = Switch_DeleteVertexArrays;
Disablei = Switch_Disablei;
Enablei = Switch_Enablei;
EndConditionalRender = Switch_EndConditionalRender;
EndTransformFeedback = Switch_EndTransformFeedback;
FlushMappedBufferRange = Switch_FlushMappedBufferRange;
FramebufferRenderbuffer = Switch_FramebufferRenderbuffer;
FramebufferTexture1D = Switch_FramebufferTexture1D;
FramebufferTexture2D = Switch_FramebufferTexture2D;
FramebufferTexture3D = Switch_FramebufferTexture3D;
FramebufferTextureLayer = Switch_FramebufferTextureLayer;
GenFramebuffers = Switch_GenFramebuffers;
GenRenderbuffers = Switch_GenRenderbuffers;
GenVertexArrays = Switch_GenVertexArrays;
GenerateMipmap = Switch_GenerateMipmap;
GetBooleani_v = Switch_GetBooleani_v;
GetFragDataLocation = Switch_GetFragDataLocation;
GetFramebufferAttachmentParameteriv = Switch_GetFramebufferAttachmentParameteriv;
GetIntegeri_v = Switch_GetIntegeri_v;
GetRenderbufferParameteriv = Switch_GetRenderbufferParameteriv;
GetStringi = Switch_GetStringi;
GetTexParameterIiv = Switch_GetTexParameterIiv;
GetTexParameterIuiv = Switch_GetTexParameterIuiv;
GetTransformFeedbackVarying = Switch_GetTransformFeedbackVarying;
GetUniformuiv = Switch_GetUniformuiv;
GetVertexAttribIiv = Switch_GetVertexAttribIiv;
GetVertexAttribIuiv = Switch_GetVertexAttribIuiv;
IsEnabledi = Switch_IsEnabledi;
IsFramebuffer = Switch_IsFramebuffer;
IsRenderbuffer = Switch_IsRenderbuffer;
IsVertexArray = Switch_IsVertexArray;
MapBufferRange = Switch_MapBufferRange;
RenderbufferStorage = Switch_RenderbufferStorage;
RenderbufferStorageMultisample = Switch_RenderbufferStorageMultisample;
TexParameterIiv = Switch_TexParameterIiv;
TexParameterIuiv = Switch_TexParameterIuiv;
TransformFeedbackVaryings = Switch_TransformFeedbackVaryings;
Uniform1ui = Switch_Uniform1ui;
Uniform1uiv = Switch_Uniform1uiv;
Uniform2ui = Switch_Uniform2ui;
Uniform2uiv = Switch_Uniform2uiv;
Uniform3ui = Switch_Uniform3ui;
Uniform3uiv = Switch_Uniform3uiv;
Uniform4ui = Switch_Uniform4ui;
Uniform4uiv = Switch_Uniform4uiv;
VertexAttribI1i = Switch_VertexAttribI1i;
VertexAttribI1iv = Switch_VertexAttribI1iv;
VertexAttribI1ui = Switch_VertexAttribI1ui;
VertexAttribI1uiv = Switch_VertexAttribI1uiv;
VertexAttribI2i = Switch_VertexAttribI2i;
VertexAttribI2iv = Switch_VertexAttribI2iv;
VertexAttribI2ui = Switch_VertexAttribI2ui;
VertexAttribI2uiv = Switch_VertexAttribI2uiv;
VertexAttribI3i = Switch_VertexAttribI3i;
VertexAttribI3iv = Switch_VertexAttribI3iv;
VertexAttribI3ui = Switch_VertexAttribI3ui;
VertexAttribI3uiv = Switch_VertexAttribI3uiv;
VertexAttribI4bv = Switch_VertexAttribI4bv;
VertexAttribI4i = Switch_VertexAttribI4i;
VertexAttribI4iv = Switch_VertexAttribI4iv;
VertexAttribI4sv = Switch_VertexAttribI4sv;
VertexAttribI4ubv = Switch_VertexAttribI4ubv;
VertexAttribI4ui = Switch_VertexAttribI4ui;
VertexAttribI4uiv = Switch_VertexAttribI4uiv;
VertexAttribI4usv = Switch_VertexAttribI4usv;
VertexAttribIPointer = Switch_VertexAttribIPointer;
// Extension: 3.1
CopyBufferSubData = Switch_CopyBufferSubData;
DrawArraysInstanced = Switch_DrawArraysInstanced;
DrawElementsInstanced = Switch_DrawElementsInstanced;
GetActiveUniformBlockName = Switch_GetActiveUniformBlockName;
GetActiveUniformBlockiv = Switch_GetActiveUniformBlockiv;
GetActiveUniformName = Switch_GetActiveUniformName;
GetActiveUniformsiv = Switch_GetActiveUniformsiv;
GetUniformBlockIndex = Switch_GetUniformBlockIndex;
GetUniformIndices = Switch_GetUniformIndices;
PrimitiveRestartIndex = Switch_PrimitiveRestartIndex;
TexBuffer = Switch_TexBuffer;
UniformBlockBinding = Switch_UniformBlockBinding;
// Extension: 3.2
ClientWaitSync = Switch_ClientWaitSync;
DeleteSync = Switch_DeleteSync;
DrawElementsBaseVertex = Switch_DrawElementsBaseVertex;
DrawElementsInstancedBaseVertex = Switch_DrawElementsInstancedBaseVertex;
DrawRangeElementsBaseVertex = Switch_DrawRangeElementsBaseVertex;
FenceSync = Switch_FenceSync;
FramebufferTexture = Switch_FramebufferTexture;
GetBufferParameteri64v = Switch_GetBufferParameteri64v;
GetInteger64i_v = Switch_GetInteger64i_v;
GetInteger64v = Switch_GetInteger64v;
GetMultisamplefv = Switch_GetMultisamplefv;
GetSynciv = Switch_GetSynciv;
IsSync = Switch_IsSync;
MultiDrawElementsBaseVertex = Switch_MultiDrawElementsBaseVertex;
ProvokingVertex = Switch_ProvokingVertex;
SampleMaski = Switch_SampleMaski;
TexImage2DMultisample = Switch_TexImage2DMultisample;
TexImage3DMultisample = Switch_TexImage3DMultisample;
WaitSync = Switch_WaitSync;
// Extension: 3.3
BindFragDataLocationIndexed = Switch_BindFragDataLocationIndexed;
BindSampler = Switch_BindSampler;
DeleteSamplers = Switch_DeleteSamplers;
GenSamplers = Switch_GenSamplers;
GetFragDataIndex = Switch_GetFragDataIndex;
GetQueryObjecti64v = Switch_GetQueryObjecti64v;
GetQueryObjectui64v = Switch_GetQueryObjectui64v;
GetSamplerParameterIiv = Switch_GetSamplerParameterIiv;
GetSamplerParameterIuiv = Switch_GetSamplerParameterIuiv;
GetSamplerParameterfv = Switch_GetSamplerParameterfv;
GetSamplerParameteriv = Switch_GetSamplerParameteriv;
IsSampler = Switch_IsSampler;
QueryCounter = Switch_QueryCounter;
SamplerParameterIiv = Switch_SamplerParameterIiv;
SamplerParameterIuiv = Switch_SamplerParameterIuiv;
SamplerParameterf = Switch_SamplerParameterf;
SamplerParameterfv = Switch_SamplerParameterfv;
SamplerParameteri = Switch_SamplerParameteri;
SamplerParameteriv = Switch_SamplerParameteriv;
VertexAttribDivisor = Switch_VertexAttribDivisor;
VertexAttribP1ui = Switch_VertexAttribP1ui;
VertexAttribP1uiv = Switch_VertexAttribP1uiv;
VertexAttribP2ui = Switch_VertexAttribP2ui;
VertexAttribP2uiv = Switch_VertexAttribP2uiv;
VertexAttribP3ui = Switch_VertexAttribP3ui;
VertexAttribP3uiv = Switch_VertexAttribP3uiv;
VertexAttribP4ui = Switch_VertexAttribP4ui;
VertexAttribP4uiv = Switch_VertexAttribP4uiv;
// Extension: 4.0
BeginQueryIndexed = Switch_BeginQueryIndexed;
BindTransformFeedback = Switch_BindTransformFeedback;
BlendEquationSeparatei = Switch_BlendEquationSeparatei;
BlendEquationi = Switch_BlendEquationi;
BlendFuncSeparatei = Switch_BlendFuncSeparatei;
BlendFunci = Switch_BlendFunci;
DeleteTransformFeedbacks = Switch_DeleteTransformFeedbacks;
DrawArraysIndirect = Switch_DrawArraysIndirect;
DrawElementsIndirect = Switch_DrawElementsIndirect;
DrawTransformFeedback = Switch_DrawTransformFeedback;
DrawTransformFeedbackStream = Switch_DrawTransformFeedbackStream;
EndQueryIndexed = Switch_EndQueryIndexed;
GenTransformFeedbacks = Switch_GenTransformFeedbacks;
GetActiveSubroutineName = Switch_GetActiveSubroutineName;
GetActiveSubroutineUniformName = Switch_GetActiveSubroutineUniformName;
GetActiveSubroutineUniformiv = Switch_GetActiveSubroutineUniformiv;
GetProgramStageiv = Switch_GetProgramStageiv;
GetQueryIndexediv = Switch_GetQueryIndexediv;
GetSubroutineIndex = Switch_GetSubroutineIndex;
GetSubroutineUniformLocation = Switch_GetSubroutineUniformLocation;
GetUniformSubroutineuiv = Switch_GetUniformSubroutineuiv;
GetUniformdv = Switch_GetUniformdv;
IsTransformFeedback = Switch_IsTransformFeedback;
MinSampleShading = Switch_MinSampleShading;
PatchParameterfv = Switch_PatchParameterfv;
PatchParameteri = Switch_PatchParameteri;
PauseTransformFeedback = Switch_PauseTransformFeedback;
ResumeTransformFeedback = Switch_ResumeTransformFeedback;
Uniform1d = Switch_Uniform1d;
Uniform1dv = Switch_Uniform1dv;
Uniform2d = Switch_Uniform2d;
Uniform2dv = Switch_Uniform2dv;
Uniform3d = Switch_Uniform3d;
Uniform3dv = Switch_Uniform3dv;
Uniform4d = Switch_Uniform4d;
Uniform4dv = Switch_Uniform4dv;
UniformMatrix2dv = Switch_UniformMatrix2dv;
UniformMatrix2x3dv = Switch_UniformMatrix2x3dv;
UniformMatrix2x4dv = Switch_UniformMatrix2x4dv;
UniformMatrix3dv = Switch_UniformMatrix3dv;
UniformMatrix3x2dv = Switch_UniformMatrix3x2dv;
UniformMatrix3x4dv = Switch_UniformMatrix3x4dv;
UniformMatrix4dv = Switch_UniformMatrix4dv;
UniformMatrix4x2dv = Switch_UniformMatrix4x2dv;
UniformMatrix4x3dv = Switch_UniformMatrix4x3dv;
UniformSubroutinesuiv = Switch_UniformSubroutinesuiv;
// Extension: 4.1
GetVertexAttribLdv = Switch_GetVertexAttribLdv;
VertexAttribL1d = Switch_VertexAttribL1d;
VertexAttribL1dv = Switch_VertexAttribL1dv;
VertexAttribL2d = Switch_VertexAttribL2d;
VertexAttribL2dv = Switch_VertexAttribL2dv;
VertexAttribL3d = Switch_VertexAttribL3d;
VertexAttribL3dv = Switch_VertexAttribL3dv;
VertexAttribL4d = Switch_VertexAttribL4d;
VertexAttribL4dv = Switch_VertexAttribL4dv;
VertexAttribLPointer = Switch_VertexAttribLPointer;
// Extension: 4.2
BindImageTexture = Switch_BindImageTexture;
DrawArraysInstancedBaseInstance = Switch_DrawArraysInstancedBaseInstance;
DrawElementsInstancedBaseInstance = Switch_DrawElementsInstancedBaseInstance;
DrawElementsInstancedBaseVertexBaseInstance = Switch_DrawElementsInstancedBaseVertexBaseInstance;
DrawTransformFeedbackInstanced = Switch_DrawTransformFeedbackInstanced;
DrawTransformFeedbackStreamInstanced = Switch_DrawTransformFeedbackStreamInstanced;
GetActiveAtomicCounterBufferiv = Switch_GetActiveAtomicCounterBufferiv;
MemoryBarrier = Switch_MemoryBarrier;
// Extension: 4.3
DispatchCompute = Switch_DispatchCompute;
DispatchComputeIndirect = Switch_DispatchComputeIndirect;
MultiDrawArraysIndirect = Switch_MultiDrawArraysIndirect;
MultiDrawElementsIndirect = Switch_MultiDrawElementsIndirect;
ShaderStorageBlockBinding = Switch_ShaderStorageBlockBinding;
// Extension: 4.4
BindBuffersBase = Switch_BindBuffersBase;
BindBuffersRange = Switch_BindBuffersRange;
BindImageTextures = Switch_BindImageTextures;
BindSamplers = Switch_BindSamplers;
BindTextures = Switch_BindTextures;
BindVertexBuffers = Switch_BindVertexBuffers;
BufferStorage = Switch_BufferStorage;
ClearTexImage = Switch_ClearTexImage;
ClearTexSubImage = Switch_ClearTexSubImage;
}
};
InitializeVariables g_initVariables;
}
namespace sys
{
namespace
{
void ClearExtensionVariables()
{
exts::var_EXT_texture_compression_s3tc = false;
exts::var_EXT_texture_sRGB = false;
exts::var_EXT_texture_filter_anisotropic = false;
exts::var_ARB_compressed_texture_pixel_storage = false;
exts::var_ARB_conservative_depth = false;
exts::var_ARB_ES2_compatibility = false;
exts::var_ARB_get_program_binary = false;
exts::var_ARB_explicit_uniform_location = false;
exts::var_ARB_internalformat_query = false;
exts::var_ARB_internalformat_query2 = false;
exts::var_ARB_map_buffer_alignment = false;
exts::var_ARB_program_interface_query = false;
exts::var_ARB_separate_shader_objects = false;
exts::var_ARB_shading_language_420pack = false;
exts::var_ARB_shading_language_packing = false;
exts::var_ARB_texture_buffer_range = false;
exts::var_ARB_texture_storage = false;
exts::var_ARB_texture_view = false;
exts::var_ARB_vertex_attrib_binding = false;
exts::var_ARB_viewport_array = false;
exts::var_ARB_arrays_of_arrays = false;
exts::var_ARB_clear_buffer_object = false;
exts::var_ARB_copy_image = false;
exts::var_ARB_ES3_compatibility = false;
exts::var_ARB_fragment_layer_viewport = false;
exts::var_ARB_framebuffer_no_attachments = false;
exts::var_ARB_invalidate_subdata = false;
exts::var_ARB_robust_buffer_access_behavior = false;
exts::var_ARB_stencil_texturing = false;
exts::var_ARB_texture_query_levels = false;
exts::var_ARB_texture_storage_multisample = false;
exts::var_KHR_debug = false;
}
struct MapEntry
{
const char *extName;
bool *extVariable;
};
struct MapCompare
{
MapCompare(const char *test_) : test(test_) {}
bool operator()(const MapEntry &other) { return strcmp(test, other.extName) == 0; }
const char *test;
};
struct ClearEntry
{
void operator()(MapEntry &entry) { *(entry.extVariable) = false;}
};
MapEntry g_mappingTable[32] =
{
{"GL_EXT_texture_compression_s3tc", &exts::var_EXT_texture_compression_s3tc},
{"GL_EXT_texture_sRGB", &exts::var_EXT_texture_sRGB},
{"GL_EXT_texture_filter_anisotropic", &exts::var_EXT_texture_filter_anisotropic},
{"GL_ARB_compressed_texture_pixel_storage", &exts::var_ARB_compressed_texture_pixel_storage},
{"GL_ARB_conservative_depth", &exts::var_ARB_conservative_depth},
{"GL_ARB_ES2_compatibility", &exts::var_ARB_ES2_compatibility},
{"GL_ARB_get_program_binary", &exts::var_ARB_get_program_binary},
{"GL_ARB_explicit_uniform_location", &exts::var_ARB_explicit_uniform_location},
{"GL_ARB_internalformat_query", &exts::var_ARB_internalformat_query},
{"GL_ARB_internalformat_query2", &exts::var_ARB_internalformat_query2},
{"GL_ARB_map_buffer_alignment", &exts::var_ARB_map_buffer_alignment},
{"GL_ARB_program_interface_query", &exts::var_ARB_program_interface_query},
{"GL_ARB_separate_shader_objects", &exts::var_ARB_separate_shader_objects},
{"GL_ARB_shading_language_420pack", &exts::var_ARB_shading_language_420pack},
{"GL_ARB_shading_language_packing", &exts::var_ARB_shading_language_packing},
{"GL_ARB_texture_buffer_range", &exts::var_ARB_texture_buffer_range},
{"GL_ARB_texture_storage", &exts::var_ARB_texture_storage},
{"GL_ARB_texture_view", &exts::var_ARB_texture_view},
{"GL_ARB_vertex_attrib_binding", &exts::var_ARB_vertex_attrib_binding},
{"GL_ARB_viewport_array", &exts::var_ARB_viewport_array},
{"GL_ARB_arrays_of_arrays", &exts::var_ARB_arrays_of_arrays},
{"GL_ARB_clear_buffer_object", &exts::var_ARB_clear_buffer_object},
{"GL_ARB_copy_image", &exts::var_ARB_copy_image},
{"GL_ARB_ES3_compatibility", &exts::var_ARB_ES3_compatibility},
{"GL_ARB_fragment_layer_viewport", &exts::var_ARB_fragment_layer_viewport},
{"GL_ARB_framebuffer_no_attachments", &exts::var_ARB_framebuffer_no_attachments},
{"GL_ARB_invalidate_subdata", &exts::var_ARB_invalidate_subdata},
{"GL_ARB_robust_buffer_access_behavior", &exts::var_ARB_robust_buffer_access_behavior},
{"GL_ARB_stencil_texturing", &exts::var_ARB_stencil_texturing},
{"GL_ARB_texture_query_levels", &exts::var_ARB_texture_query_levels},
{"GL_ARB_texture_storage_multisample", &exts::var_ARB_texture_storage_multisample},
{"GL_KHR_debug", &exts::var_KHR_debug},
};
void LoadExtByName(const char *extensionName)
{
MapEntry *tableEnd = &g_mappingTable[32];
MapEntry *entry = std::find_if(&g_mappingTable[0], tableEnd, MapCompare(extensionName));
if(entry != tableEnd)
*(entry->extVariable) = true;
}
void ProcExtsFromExtList()
{
GLint iLoop;
GLint iNumExtensions = 0;
GetIntegerv(NUM_EXTENSIONS, &iNumExtensions);
for(iLoop = 0; iLoop < iNumExtensions; iLoop++)
{
const char *strExtensionName = (const char *)GetStringi(EXTENSIONS, iLoop);
LoadExtByName(strExtensionName);
}
}
}
void CheckExtensions()
{
ClearExtensionVariables();
std::for_each(&g_mappingTable[0], &g_mappingTable[32], ClearEntry());
ProcExtsFromExtList();
}
}
}
#ifndef OPENGL_NOLOAD_STYLE_HPP
#define OPENGL_NOLOAD_STYLE_HPP
#if defined(__glew_h__) || defined(__GLEW_H__)
#error Attempt to include auto-generated header after including glew.h
#endif
#if defined(__gl_h_) || defined(__GL_H__)
#error Attempt to include auto-generated header after including gl.h
#endif
#if defined(__glext_h_) || defined(__GLEXT_H_)
#error Attempt to include auto-generated header after including glext.h
#endif
#if defined(__gltypes_h_)
#error Attempt to include auto-generated header after gltypes.h
#endif
#if defined(__gl_ATI_h_)
#error Attempt to include auto-generated header after including glATI.h
#endif
#define __glew_h__
#define __GLEW_H__
#define __gl_h_
#define __GL_H__
#define __glext_h_
#define __GLEXT_H_
#define __gltypes_h_
#define __gl_ATI_h_
#ifndef APIENTRY
#if defined(__MINGW32__)
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN 1
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN 1
#endif
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#else
#define APIENTRY
#endif
#endif /*APIENTRY*/
#ifndef CODEGEN_FUNCPTR
#define CODEGEN_REMOVE_FUNCPTR
#if defined(_WIN32)
#define CODEGEN_FUNCPTR APIENTRY
#else
#define CODEGEN_FUNCPTR
#endif
#endif /*CODEGEN_FUNCPTR*/
#ifndef GLAPI
#define GLAPI extern
#endif
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
#include <stddef.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 char GLboolean;
typedef unsigned int GLbitfield;
typedef void GLvoid;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef int GLsizei;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef char GLchar;
typedef char GLcharARB;
#ifdef __APPLE__
typedef void *GLhandleARB;
#else
typedef unsigned int GLhandleARB;
#endif
typedef unsigned short GLhalfARB;
typedef unsigned short GLhalf;
typedef GLint GLfixed;
typedef ptrdiff_t GLintptr;
typedef ptrdiff_t GLsizeiptr;
typedef int64_t GLint64;
typedef uint64_t GLuint64;
typedef ptrdiff_t GLintptrARB;
typedef ptrdiff_t GLsizeiptrARB;
typedef int64_t GLint64EXT;
typedef uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync;
struct _cl_context;
struct _cl_event;
typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV;
namespace gl
{
/////////////////////////
// Extension Variables
namespace exts
{
extern bool var_EXT_texture_compression_s3tc;
extern bool var_EXT_texture_sRGB;
extern bool var_EXT_texture_filter_anisotropic;
extern bool var_ARB_compressed_texture_pixel_storage;
extern bool var_ARB_conservative_depth;
extern bool var_ARB_ES2_compatibility;
extern bool var_ARB_get_program_binary;
extern bool var_ARB_explicit_uniform_location;
extern bool var_ARB_internalformat_query;
extern bool var_ARB_internalformat_query2;
extern bool var_ARB_map_buffer_alignment;
extern bool var_ARB_program_interface_query;
extern bool var_ARB_separate_shader_objects;
extern bool var_ARB_shading_language_420pack;
extern bool var_ARB_shading_language_packing;
extern bool var_ARB_texture_buffer_range;
extern bool var_ARB_texture_storage;
extern bool var_ARB_texture_view;
extern bool var_ARB_vertex_attrib_binding;
extern bool var_ARB_viewport_array;
extern bool var_ARB_arrays_of_arrays;
extern bool var_ARB_clear_buffer_object;
extern bool var_ARB_copy_image;
extern bool var_ARB_ES3_compatibility;
extern bool var_ARB_fragment_layer_viewport;
extern bool var_ARB_framebuffer_no_attachments;
extern bool var_ARB_invalidate_subdata;
extern bool var_ARB_robust_buffer_access_behavior;
extern bool var_ARB_stencil_texturing;
extern bool var_ARB_texture_query_levels;
extern bool var_ARB_texture_storage_multisample;
extern bool var_KHR_debug;
}
enum
{
// Extension: EXT_texture_compression_s3tc
COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1,
COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2,
COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3,
COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0,
// Extension: EXT_texture_sRGB
COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B,
COMPRESSED_SLUMINANCE_EXT = 0x8C4A,
COMPRESSED_SRGB_ALPHA_EXT = 0x8C49,
COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D,
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E,
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F,
COMPRESSED_SRGB_EXT = 0x8C48,
COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C,
SLUMINANCE8_ALPHA8_EXT = 0x8C45,
SLUMINANCE8_EXT = 0x8C47,
SLUMINANCE_ALPHA_EXT = 0x8C44,
SLUMINANCE_EXT = 0x8C46,
SRGB8_ALPHA8_EXT = 0x8C43,
SRGB8_EXT = 0x8C41,
SRGB_ALPHA_EXT = 0x8C42,
SRGB_EXT = 0x8C40,
// Extension: EXT_texture_filter_anisotropic
MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF,
TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE,
// Extension: ARB_compressed_texture_pixel_storage
PACK_COMPRESSED_BLOCK_DEPTH = 0x912D,
PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C,
PACK_COMPRESSED_BLOCK_SIZE = 0x912E,
PACK_COMPRESSED_BLOCK_WIDTH = 0x912B,
UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129,
UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128,
UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A,
UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127,
// Extension: ARB_ES2_compatibility
FIXED = 0x140C,
HIGH_FLOAT = 0x8DF2,
HIGH_INT = 0x8DF5,
IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B,
IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A,
LOW_FLOAT = 0x8DF0,
LOW_INT = 0x8DF3,
MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD,
MAX_VARYING_VECTORS = 0x8DFC,
MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB,
MEDIUM_FLOAT = 0x8DF1,
MEDIUM_INT = 0x8DF4,
NUM_SHADER_BINARY_FORMATS = 0x8DF9,
RGB565 = 0x8D62,
SHADER_BINARY_FORMATS = 0x8DF8,
SHADER_COMPILER = 0x8DFA,
// Extension: ARB_get_program_binary
NUM_PROGRAM_BINARY_FORMATS = 0x87FE,
PROGRAM_BINARY_FORMATS = 0x87FF,
PROGRAM_BINARY_LENGTH = 0x8741,
PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257,
// Extension: ARB_explicit_uniform_location
MAX_UNIFORM_LOCATIONS = 0x826E,
// Extension: ARB_internalformat_query
NUM_SAMPLE_COUNTS = 0x9380,
// Extension: ARB_internalformat_query2
AUTO_GENERATE_MIPMAP = 0x8295,
CAVEAT_SUPPORT = 0x82B8,
CLEAR_BUFFER = 0x82B4,
COLOR_COMPONENTS = 0x8283,
COLOR_ENCODING = 0x8296,
COLOR_RENDERABLE = 0x8286,
COMPUTE_TEXTURE = 0x82A0,
DEPTH_COMPONENTS = 0x8284,
DEPTH_RENDERABLE = 0x8287,
FILTER = 0x829A,
FRAGMENT_TEXTURE = 0x829F,
FRAMEBUFFER_BLEND = 0x828B,
FRAMEBUFFER_RENDERABLE = 0x8289,
FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A,
FULL_SUPPORT = 0x82B7,
GEOMETRY_TEXTURE = 0x829E,
GET_TEXTURE_IMAGE_FORMAT = 0x8291,
GET_TEXTURE_IMAGE_TYPE = 0x8292,
IMAGE_CLASS_10_10_10_2 = 0x82C3,
IMAGE_CLASS_11_11_10 = 0x82C2,
IMAGE_CLASS_1_X_16 = 0x82BE,
IMAGE_CLASS_1_X_32 = 0x82BB,
IMAGE_CLASS_1_X_8 = 0x82C1,
IMAGE_CLASS_2_X_16 = 0x82BD,
IMAGE_CLASS_2_X_32 = 0x82BA,
IMAGE_CLASS_2_X_8 = 0x82C0,
IMAGE_CLASS_4_X_16 = 0x82BC,
IMAGE_CLASS_4_X_32 = 0x82B9,
IMAGE_CLASS_4_X_8 = 0x82BF,
IMAGE_COMPATIBILITY_CLASS = 0x82A8,
IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7,
IMAGE_PIXEL_FORMAT = 0x82A9,
IMAGE_PIXEL_TYPE = 0x82AA,
IMAGE_TEXEL_SIZE = 0x82A7,
INTERNALFORMAT_ALPHA_SIZE = 0x8274,
INTERNALFORMAT_ALPHA_TYPE = 0x827B,
INTERNALFORMAT_BLUE_SIZE = 0x8273,
INTERNALFORMAT_BLUE_TYPE = 0x827A,
INTERNALFORMAT_DEPTH_SIZE = 0x8275,
INTERNALFORMAT_DEPTH_TYPE = 0x827C,
INTERNALFORMAT_GREEN_SIZE = 0x8272,
INTERNALFORMAT_GREEN_TYPE = 0x8279,
INTERNALFORMAT_PREFERRED = 0x8270,
INTERNALFORMAT_RED_SIZE = 0x8271,
INTERNALFORMAT_RED_TYPE = 0x8278,
INTERNALFORMAT_SHARED_SIZE = 0x8277,
INTERNALFORMAT_STENCIL_SIZE = 0x8276,
INTERNALFORMAT_STENCIL_TYPE = 0x827D,
INTERNALFORMAT_SUPPORTED = 0x826F,
MANUAL_GENERATE_MIPMAP = 0x8294,
MAX_COMBINED_DIMENSIONS = 0x8282,
MAX_DEPTH = 0x8280,
MAX_HEIGHT = 0x827F,
MAX_LAYERS = 0x8281,
MAX_WIDTH = 0x827E,
MIPMAP = 0x8293,
//NUM_SAMPLE_COUNTS seen in ARB_internalformat_query
READ_PIXELS = 0x828C,
READ_PIXELS_FORMAT = 0x828D,
READ_PIXELS_TYPE = 0x828E,
RENDERBUFFER = 0x8D41,
SAMPLES = 0x80A9,
SHADER_IMAGE_ATOMIC = 0x82A6,
SHADER_IMAGE_LOAD = 0x82A4,
SHADER_IMAGE_STORE = 0x82A5,
SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC,
SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE,
SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD,
SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF,
SRGB_DECODE_ARB = 0x8299,
SRGB_READ = 0x8297,
SRGB_WRITE = 0x8298,
STENCIL_COMPONENTS = 0x8285,
STENCIL_RENDERABLE = 0x8288,
TESS_CONTROL_TEXTURE = 0x829C,
TESS_EVALUATION_TEXTURE = 0x829D,
TEXTURE_1D = 0x0DE0,
TEXTURE_1D_ARRAY = 0x8C18,
TEXTURE_2D = 0x0DE1,
TEXTURE_2D_ARRAY = 0x8C1A,
TEXTURE_2D_MULTISAMPLE = 0x9100,
TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102,
TEXTURE_3D = 0x806F,
TEXTURE_BUFFER = 0x8C2A,
TEXTURE_COMPRESSED = 0x86A1,
TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2,
TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3,
TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1,
TEXTURE_CUBE_MAP = 0x8513,
TEXTURE_CUBE_MAP_ARRAY = 0x9009,
TEXTURE_GATHER = 0x82A2,
TEXTURE_GATHER_SHADOW = 0x82A3,
TEXTURE_IMAGE_FORMAT = 0x828F,
TEXTURE_IMAGE_TYPE = 0x8290,
TEXTURE_RECTANGLE = 0x84F5,
TEXTURE_SHADOW = 0x82A1,
TEXTURE_VIEW = 0x82B5,
VERTEX_TEXTURE = 0x829B,
VIEW_CLASS_128_BITS = 0x82C4,
VIEW_CLASS_16_BITS = 0x82CA,
VIEW_CLASS_24_BITS = 0x82C9,
VIEW_CLASS_32_BITS = 0x82C8,
VIEW_CLASS_48_BITS = 0x82C7,
VIEW_CLASS_64_BITS = 0x82C6,
VIEW_CLASS_8_BITS = 0x82CB,
VIEW_CLASS_96_BITS = 0x82C5,
VIEW_CLASS_BPTC_FLOAT = 0x82D3,
VIEW_CLASS_BPTC_UNORM = 0x82D2,
VIEW_CLASS_RGTC1_RED = 0x82D0,
VIEW_CLASS_RGTC2_RG = 0x82D1,
VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC,
VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD,
VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE,
VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF,
VIEW_COMPATIBILITY_CLASS = 0x82B6,
// Extension: ARB_map_buffer_alignment
MIN_MAP_BUFFER_ALIGNMENT = 0x90BC,
// Extension: ARB_program_interface_query
ACTIVE_RESOURCES = 0x92F5,
ACTIVE_VARIABLES = 0x9305,
ARRAY_SIZE = 0x92FB,
ARRAY_STRIDE = 0x92FE,
ATOMIC_COUNTER_BUFFER = 0x92C0,
ATOMIC_COUNTER_BUFFER_INDEX = 0x9301,
BLOCK_INDEX = 0x92FD,
BUFFER_BINDING = 0x9302,
BUFFER_DATA_SIZE = 0x9303,
BUFFER_VARIABLE = 0x92E5,
COMPATIBLE_SUBROUTINES = 0x8E4B,
COMPUTE_SUBROUTINE = 0x92ED,
COMPUTE_SUBROUTINE_UNIFORM = 0x92F3,
FRAGMENT_SUBROUTINE = 0x92EC,
FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2,
GEOMETRY_SUBROUTINE = 0x92EB,
GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1,
IS_PER_PATCH = 0x92E7,
IS_ROW_MAJOR = 0x9300,
LOCATION = 0x930E,
LOCATION_INDEX = 0x930F,
MATRIX_STRIDE = 0x92FF,
MAX_NAME_LENGTH = 0x92F6,
MAX_NUM_ACTIVE_VARIABLES = 0x92F7,
MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8,
NAME_LENGTH = 0x92F9,
NUM_ACTIVE_VARIABLES = 0x9304,
NUM_COMPATIBLE_SUBROUTINES = 0x8E4A,
OFFSET = 0x92FC,
PROGRAM_INPUT = 0x92E3,
PROGRAM_OUTPUT = 0x92E4,
REFERENCED_BY_COMPUTE_SHADER = 0x930B,
REFERENCED_BY_FRAGMENT_SHADER = 0x930A,
REFERENCED_BY_GEOMETRY_SHADER = 0x9309,
REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307,
REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308,
REFERENCED_BY_VERTEX_SHADER = 0x9306,
SHADER_STORAGE_BLOCK = 0x92E6,
TESS_CONTROL_SUBROUTINE = 0x92E9,
TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF,
TESS_EVALUATION_SUBROUTINE = 0x92EA,
TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0,
TOP_LEVEL_ARRAY_SIZE = 0x930C,
TOP_LEVEL_ARRAY_STRIDE = 0x930D,
TRANSFORM_FEEDBACK_VARYING = 0x92F4,
TYPE = 0x92FA,
UNIFORM = 0x92E1,
UNIFORM_BLOCK = 0x92E2,
VERTEX_SUBROUTINE = 0x92E8,
VERTEX_SUBROUTINE_UNIFORM = 0x92EE,
// Extension: ARB_separate_shader_objects
ACTIVE_PROGRAM = 0x8259,
ALL_SHADER_BITS = 0xFFFFFFFF,
FRAGMENT_SHADER_BIT = 0x00000002,
GEOMETRY_SHADER_BIT = 0x00000004,
PROGRAM_PIPELINE_BINDING = 0x825A,
PROGRAM_SEPARABLE = 0x8258,
TESS_CONTROL_SHADER_BIT = 0x00000008,
TESS_EVALUATION_SHADER_BIT = 0x00000010,
VERTEX_SHADER_BIT = 0x00000001,
// Extension: ARB_texture_buffer_range
TEXTURE_BUFFER_OFFSET = 0x919D,
TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F,
TEXTURE_BUFFER_SIZE = 0x919E,
// Extension: ARB_texture_storage
TEXTURE_IMMUTABLE_FORMAT = 0x912F,
// Extension: ARB_texture_view
TEXTURE_IMMUTABLE_LEVELS = 0x82DF,
TEXTURE_VIEW_MIN_LAYER = 0x82DD,
TEXTURE_VIEW_MIN_LEVEL = 0x82DB,
TEXTURE_VIEW_NUM_LAYERS = 0x82DE,
TEXTURE_VIEW_NUM_LEVELS = 0x82DC,
// Extension: ARB_vertex_attrib_binding
MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA,
MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9,
VERTEX_ATTRIB_BINDING = 0x82D4,
VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5,
VERTEX_BINDING_DIVISOR = 0x82D6,
VERTEX_BINDING_OFFSET = 0x82D7,
VERTEX_BINDING_STRIDE = 0x82D8,
// Extension: ARB_viewport_array
DEPTH_RANGE = 0x0B70,
FIRST_VERTEX_CONVENTION = 0x8E4D,
LAST_VERTEX_CONVENTION = 0x8E4E,
LAYER_PROVOKING_VERTEX = 0x825E,
MAX_VIEWPORTS = 0x825B,
PROVOKING_VERTEX = 0x8E4F,
SCISSOR_BOX = 0x0C10,
SCISSOR_TEST = 0x0C11,
UNDEFINED_VERTEX = 0x8260,
VIEWPORT = 0x0BA2,
VIEWPORT_BOUNDS_RANGE = 0x825D,
VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F,
VIEWPORT_SUBPIXEL_BITS = 0x825C,
// Extension: ARB_ES3_compatibility
ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A,
COMPRESSED_R11_EAC = 0x9270,
COMPRESSED_RG11_EAC = 0x9272,
COMPRESSED_RGB8_ETC2 = 0x9274,
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276,
COMPRESSED_RGBA8_ETC2_EAC = 0x9278,
COMPRESSED_SIGNED_R11_EAC = 0x9271,
COMPRESSED_SIGNED_RG11_EAC = 0x9273,
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279,
COMPRESSED_SRGB8_ETC2 = 0x9275,
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277,
MAX_ELEMENT_INDEX = 0x8D6B,
PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69,
// Extension: ARB_framebuffer_no_attachments
FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314,
FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311,
FRAMEBUFFER_DEFAULT_LAYERS = 0x9312,
FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313,
FRAMEBUFFER_DEFAULT_WIDTH = 0x9310,
MAX_FRAMEBUFFER_HEIGHT = 0x9316,
MAX_FRAMEBUFFER_LAYERS = 0x9317,
MAX_FRAMEBUFFER_SAMPLES = 0x9318,
MAX_FRAMEBUFFER_WIDTH = 0x9315,
// Extension: ARB_stencil_texturing
DEPTH_STENCIL_TEXTURE_MODE = 0x90EA,
// Extension: KHR_debug
BUFFER = 0x82E0,
CONTEXT_FLAG_DEBUG_BIT = 0x00000002,
DEBUG_CALLBACK_FUNCTION = 0x8244,
DEBUG_CALLBACK_USER_PARAM = 0x8245,
DEBUG_GROUP_STACK_DEPTH = 0x826D,
DEBUG_LOGGED_MESSAGES = 0x9145,
DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243,
DEBUG_OUTPUT = 0x92E0,
DEBUG_OUTPUT_SYNCHRONOUS = 0x8242,
DEBUG_SEVERITY_HIGH = 0x9146,
DEBUG_SEVERITY_LOW = 0x9148,
DEBUG_SEVERITY_MEDIUM = 0x9147,
DEBUG_SEVERITY_NOTIFICATION = 0x826B,
DEBUG_SOURCE_API = 0x8246,
DEBUG_SOURCE_APPLICATION = 0x824A,
DEBUG_SOURCE_OTHER = 0x824B,
DEBUG_SOURCE_SHADER_COMPILER = 0x8248,
DEBUG_SOURCE_THIRD_PARTY = 0x8249,
DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247,
DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D,
DEBUG_TYPE_ERROR = 0x824C,
DEBUG_TYPE_MARKER = 0x8268,
DEBUG_TYPE_OTHER = 0x8251,
DEBUG_TYPE_PERFORMANCE = 0x8250,
DEBUG_TYPE_POP_GROUP = 0x826A,
DEBUG_TYPE_PORTABILITY = 0x824F,
DEBUG_TYPE_PUSH_GROUP = 0x8269,
DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E,
DISPLAY_LIST = 0x82E7,
MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C,
MAX_DEBUG_LOGGED_MESSAGES = 0x9144,
MAX_DEBUG_MESSAGE_LENGTH = 0x9143,
MAX_LABEL_LENGTH = 0x82E8,
PROGRAM = 0x82E2,
PROGRAM_PIPELINE = 0x82E4,
QUERY = 0x82E3,
SAMPLER = 0x82E6,
SHADER = 0x82E1,
STACK_OVERFLOW = 0x0503,
STACK_UNDERFLOW = 0x0504,
VERTEX_ARRAY = 0x8074,
// Version: 1.1
ALPHA = 0x1906,
ALWAYS = 0x0207,
AND = 0x1501,
AND_INVERTED = 0x1504,
AND_REVERSE = 0x1502,
BACK = 0x0405,
BACK_LEFT = 0x0402,
BACK_RIGHT = 0x0403,
BLEND = 0x0BE2,
BLEND_DST = 0x0BE0,
BLEND_SRC = 0x0BE1,
BLUE = 0x1905,
BYTE = 0x1400,
CCW = 0x0901,
CLEAR = 0x1500,
COLOR = 0x1800,
COLOR_BUFFER_BIT = 0x00004000,
COLOR_CLEAR_VALUE = 0x0C22,
COLOR_LOGIC_OP = 0x0BF2,
COLOR_WRITEMASK = 0x0C23,
COPY = 0x1503,
COPY_INVERTED = 0x150C,
CULL_FACE = 0x0B44,
CULL_FACE_MODE = 0x0B45,
CW = 0x0900,
DECR = 0x1E03,
DEPTH = 0x1801,
DEPTH_BUFFER_BIT = 0x00000100,
DEPTH_CLEAR_VALUE = 0x0B73,
DEPTH_COMPONENT = 0x1902,
DEPTH_FUNC = 0x0B74,
//DEPTH_RANGE seen in ARB_viewport_array
DEPTH_TEST = 0x0B71,
DEPTH_WRITEMASK = 0x0B72,
DITHER = 0x0BD0,
DONT_CARE = 0x1100,
DOUBLE = 0x140A,
DOUBLEBUFFER = 0x0C32,
DRAW_BUFFER = 0x0C01,
DST_ALPHA = 0x0304,
DST_COLOR = 0x0306,
EQUAL = 0x0202,
EQUIV = 0x1509,
EXTENSIONS = 0x1F03,
FALSE_ = 0,
FASTEST = 0x1101,
FILL = 0x1B02,
FLOAT = 0x1406,
FRONT = 0x0404,
FRONT_AND_BACK = 0x0408,
FRONT_FACE = 0x0B46,
FRONT_LEFT = 0x0400,
FRONT_RIGHT = 0x0401,
GEQUAL = 0x0206,
GREATER = 0x0204,
GREEN = 0x1904,
INCR = 0x1E02,
INT = 0x1404,
INVALID_ENUM = 0x0500,
INVALID_OPERATION = 0x0502,
INVALID_VALUE = 0x0501,
INVERT = 0x150A,
KEEP = 0x1E00,
LEFT = 0x0406,
LEQUAL = 0x0203,
LESS = 0x0201,
LINE = 0x1B01,
LINEAR = 0x2601,
LINEAR_MIPMAP_LINEAR = 0x2703,
LINEAR_MIPMAP_NEAREST = 0x2701,
LINES = 0x0001,
LINE_LOOP = 0x0002,
LINE_SMOOTH = 0x0B20,
LINE_SMOOTH_HINT = 0x0C52,
LINE_STRIP = 0x0003,
LINE_WIDTH = 0x0B21,
LINE_WIDTH_GRANULARITY = 0x0B23,
LINE_WIDTH_RANGE = 0x0B22,
LOGIC_OP_MODE = 0x0BF0,
MAX_TEXTURE_SIZE = 0x0D33,
MAX_VIEWPORT_DIMS = 0x0D3A,
NAND = 0x150E,
NEAREST = 0x2600,
NEAREST_MIPMAP_LINEAR = 0x2702,
NEAREST_MIPMAP_NEAREST = 0x2700,
NEVER = 0x0200,
NICEST = 0x1102,
NONE = 0,
NOOP = 0x1505,
NOR = 0x1508,
NOTEQUAL = 0x0205,
NO_ERROR_ = 0,
ONE = 1,
ONE_MINUS_DST_ALPHA = 0x0305,
ONE_MINUS_DST_COLOR = 0x0307,
ONE_MINUS_SRC_ALPHA = 0x0303,
ONE_MINUS_SRC_COLOR = 0x0301,
OR = 0x1507,
OR_INVERTED = 0x150D,
OR_REVERSE = 0x150B,
OUT_OF_MEMORY = 0x0505,
PACK_ALIGNMENT = 0x0D05,
PACK_LSB_FIRST = 0x0D01,
PACK_ROW_LENGTH = 0x0D02,
PACK_SKIP_PIXELS = 0x0D04,
PACK_SKIP_ROWS = 0x0D03,
PACK_SWAP_BYTES = 0x0D00,
POINT = 0x1B00,
POINTS = 0x0000,
POINT_SIZE = 0x0B11,
POINT_SIZE_GRANULARITY = 0x0B13,
POINT_SIZE_RANGE = 0x0B12,
POLYGON_MODE = 0x0B40,
POLYGON_OFFSET_FACTOR = 0x8038,
POLYGON_OFFSET_FILL = 0x8037,
POLYGON_OFFSET_LINE = 0x2A02,
POLYGON_OFFSET_POINT = 0x2A01,
POLYGON_OFFSET_UNITS = 0x2A00,
POLYGON_SMOOTH = 0x0B41,
POLYGON_SMOOTH_HINT = 0x0C53,
PROXY_TEXTURE_1D = 0x8063,
PROXY_TEXTURE_2D = 0x8064,
QUADS = 0x0007,
R3_G3_B2 = 0x2A10,
READ_BUFFER = 0x0C02,
RED = 0x1903,
RENDERER = 0x1F01,
REPEAT = 0x2901,
REPLACE = 0x1E01,
RGB = 0x1907,
RGB10 = 0x8052,
RGB10_A2 = 0x8059,
RGB12 = 0x8053,
RGB16 = 0x8054,
RGB4 = 0x804F,
RGB5 = 0x8050,
RGB5_A1 = 0x8057,
RGB8 = 0x8051,
RGBA = 0x1908,
RGBA12 = 0x805A,
RGBA16 = 0x805B,
RGBA2 = 0x8055,
RGBA4 = 0x8056,
RGBA8 = 0x8058,
RIGHT = 0x0407,
//SCISSOR_BOX seen in ARB_viewport_array
//SCISSOR_TEST seen in ARB_viewport_array
SET = 0x150F,
SHORT = 0x1402,
SRC_ALPHA = 0x0302,
SRC_ALPHA_SATURATE = 0x0308,
SRC_COLOR = 0x0300,
//STACK_OVERFLOW seen in KHR_debug
//STACK_UNDERFLOW seen in KHR_debug
STENCIL = 0x1802,
STENCIL_BUFFER_BIT = 0x00000400,
STENCIL_CLEAR_VALUE = 0x0B91,
STENCIL_FAIL = 0x0B94,
STENCIL_FUNC = 0x0B92,
STENCIL_INDEX = 0x1901,
STENCIL_PASS_DEPTH_FAIL = 0x0B95,
STENCIL_PASS_DEPTH_PASS = 0x0B96,
STENCIL_REF = 0x0B97,
STENCIL_TEST = 0x0B90,
STENCIL_VALUE_MASK = 0x0B93,
STENCIL_WRITEMASK = 0x0B98,
STEREO = 0x0C33,
SUBPIXEL_BITS = 0x0D50,
TEXTURE = 0x1702,
//TEXTURE_1D seen in ARB_internalformat_query2
//TEXTURE_2D seen in ARB_internalformat_query2
TEXTURE_ALPHA_SIZE = 0x805F,
TEXTURE_BINDING_1D = 0x8068,
TEXTURE_BINDING_2D = 0x8069,
TEXTURE_BLUE_SIZE = 0x805E,
TEXTURE_BORDER_COLOR = 0x1004,
TEXTURE_GREEN_SIZE = 0x805D,
TEXTURE_HEIGHT = 0x1001,
TEXTURE_INTERNAL_FORMAT = 0x1003,
TEXTURE_MAG_FILTER = 0x2800,
TEXTURE_MIN_FILTER = 0x2801,
TEXTURE_RED_SIZE = 0x805C,
TEXTURE_WIDTH = 0x1000,
TEXTURE_WRAP_S = 0x2802,
TEXTURE_WRAP_T = 0x2803,
TRIANGLES = 0x0004,
TRIANGLE_FAN = 0x0006,
TRIANGLE_STRIP = 0x0005,
TRUE_ = 1,
UNPACK_ALIGNMENT = 0x0CF5,
UNPACK_LSB_FIRST = 0x0CF1,
UNPACK_ROW_LENGTH = 0x0CF2,
UNPACK_SKIP_PIXELS = 0x0CF4,
UNPACK_SKIP_ROWS = 0x0CF3,
UNPACK_SWAP_BYTES = 0x0CF0,
UNSIGNED_BYTE = 0x1401,
UNSIGNED_INT = 0x1405,
UNSIGNED_SHORT = 0x1403,
VENDOR = 0x1F00,
VERSION = 0x1F02,
//VERTEX_ARRAY seen in KHR_debug
//VIEWPORT seen in ARB_viewport_array
XOR = 0x1506,
ZERO = 0,
// Version: 1.2
ALIASED_LINE_WIDTH_RANGE = 0x846E,
BGR = 0x80E0,
BGRA = 0x80E1,
CLAMP_TO_EDGE = 0x812F,
MAX_3D_TEXTURE_SIZE = 0x8073,
MAX_ELEMENTS_INDICES = 0x80E9,
MAX_ELEMENTS_VERTICES = 0x80E8,
PACK_IMAGE_HEIGHT = 0x806C,
PACK_SKIP_IMAGES = 0x806B,
PROXY_TEXTURE_3D = 0x8070,
SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23,
SMOOTH_LINE_WIDTH_RANGE = 0x0B22,
SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13,
SMOOTH_POINT_SIZE_RANGE = 0x0B12,
//TEXTURE_3D seen in ARB_internalformat_query2
TEXTURE_BASE_LEVEL = 0x813C,
TEXTURE_BINDING_3D = 0x806A,
TEXTURE_DEPTH = 0x8071,
TEXTURE_MAX_LEVEL = 0x813D,
TEXTURE_MAX_LOD = 0x813B,
TEXTURE_MIN_LOD = 0x813A,
TEXTURE_WRAP_R = 0x8072,
UNPACK_IMAGE_HEIGHT = 0x806E,
UNPACK_SKIP_IMAGES = 0x806D,
UNSIGNED_BYTE_2_3_3_REV = 0x8362,
UNSIGNED_BYTE_3_3_2 = 0x8032,
UNSIGNED_INT_10_10_10_2 = 0x8036,
UNSIGNED_INT_2_10_10_10_REV = 0x8368,
UNSIGNED_INT_8_8_8_8 = 0x8035,
UNSIGNED_INT_8_8_8_8_REV = 0x8367,
UNSIGNED_SHORT_1_5_5_5_REV = 0x8366,
UNSIGNED_SHORT_4_4_4_4 = 0x8033,
UNSIGNED_SHORT_4_4_4_4_REV = 0x8365,
UNSIGNED_SHORT_5_5_5_1 = 0x8034,
UNSIGNED_SHORT_5_6_5 = 0x8363,
UNSIGNED_SHORT_5_6_5_REV = 0x8364,
// Version: 1.3
ACTIVE_TEXTURE = 0x84E0,
CLAMP_TO_BORDER = 0x812D,
COMPRESSED_RGB = 0x84ED,
COMPRESSED_RGBA = 0x84EE,
COMPRESSED_TEXTURE_FORMATS = 0x86A3,
MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C,
MULTISAMPLE = 0x809D,
NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2,
PROXY_TEXTURE_CUBE_MAP = 0x851B,
//SAMPLES seen in ARB_internalformat_query2
SAMPLE_ALPHA_TO_COVERAGE = 0x809E,
SAMPLE_ALPHA_TO_ONE = 0x809F,
SAMPLE_BUFFERS = 0x80A8,
SAMPLE_COVERAGE = 0x80A0,
SAMPLE_COVERAGE_INVERT = 0x80AB,
SAMPLE_COVERAGE_VALUE = 0x80AA,
TEXTURE0 = 0x84C0,
TEXTURE1 = 0x84C1,
TEXTURE10 = 0x84CA,
TEXTURE11 = 0x84CB,
TEXTURE12 = 0x84CC,
TEXTURE13 = 0x84CD,
TEXTURE14 = 0x84CE,
TEXTURE15 = 0x84CF,
TEXTURE16 = 0x84D0,
TEXTURE17 = 0x84D1,
TEXTURE18 = 0x84D2,
TEXTURE19 = 0x84D3,
TEXTURE2 = 0x84C2,
TEXTURE20 = 0x84D4,
TEXTURE21 = 0x84D5,
TEXTURE22 = 0x84D6,
TEXTURE23 = 0x84D7,
TEXTURE24 = 0x84D8,
TEXTURE25 = 0x84D9,
TEXTURE26 = 0x84DA,
TEXTURE27 = 0x84DB,
TEXTURE28 = 0x84DC,
TEXTURE29 = 0x84DD,
TEXTURE3 = 0x84C3,
TEXTURE30 = 0x84DE,
TEXTURE31 = 0x84DF,
TEXTURE4 = 0x84C4,
TEXTURE5 = 0x84C5,
TEXTURE6 = 0x84C6,
TEXTURE7 = 0x84C7,
TEXTURE8 = 0x84C8,
TEXTURE9 = 0x84C9,
TEXTURE_BINDING_CUBE_MAP = 0x8514,
//TEXTURE_COMPRESSED seen in ARB_internalformat_query2
TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0,
TEXTURE_COMPRESSION_HINT = 0x84EF,
//TEXTURE_CUBE_MAP seen in ARB_internalformat_query2
TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516,
TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518,
TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A,
TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515,
TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517,
TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519,
// Version: 1.4
BLEND_COLOR = 0x8005,
BLEND_DST_ALPHA = 0x80CA,
BLEND_DST_RGB = 0x80C8,
BLEND_EQUATION = 0x8009,
BLEND_SRC_ALPHA = 0x80CB,
BLEND_SRC_RGB = 0x80C9,
CONSTANT_ALPHA = 0x8003,
CONSTANT_COLOR = 0x8001,
DECR_WRAP = 0x8508,
DEPTH_COMPONENT16 = 0x81A5,
DEPTH_COMPONENT24 = 0x81A6,
DEPTH_COMPONENT32 = 0x81A7,
FUNC_ADD = 0x8006,
FUNC_REVERSE_SUBTRACT = 0x800B,
FUNC_SUBTRACT = 0x800A,
INCR_WRAP = 0x8507,
MAX = 0x8008,
MAX_TEXTURE_LOD_BIAS = 0x84FD,
MIN = 0x8007,
MIRRORED_REPEAT = 0x8370,
ONE_MINUS_CONSTANT_ALPHA = 0x8004,
ONE_MINUS_CONSTANT_COLOR = 0x8002,
POINT_FADE_THRESHOLD_SIZE = 0x8128,
TEXTURE_COMPARE_FUNC = 0x884D,
TEXTURE_COMPARE_MODE = 0x884C,
TEXTURE_DEPTH_SIZE = 0x884A,
TEXTURE_LOD_BIAS = 0x8501,
// Version: 1.5
ARRAY_BUFFER = 0x8892,
ARRAY_BUFFER_BINDING = 0x8894,
BUFFER_ACCESS = 0x88BB,
BUFFER_MAPPED = 0x88BC,
BUFFER_MAP_POINTER = 0x88BD,
BUFFER_SIZE = 0x8764,
BUFFER_USAGE = 0x8765,
CURRENT_QUERY = 0x8865,
DYNAMIC_COPY = 0x88EA,
DYNAMIC_DRAW = 0x88E8,
DYNAMIC_READ = 0x88E9,
ELEMENT_ARRAY_BUFFER = 0x8893,
ELEMENT_ARRAY_BUFFER_BINDING = 0x8895,
QUERY_COUNTER_BITS = 0x8864,
QUERY_RESULT = 0x8866,
QUERY_RESULT_AVAILABLE = 0x8867,
READ_ONLY = 0x88B8,
READ_WRITE = 0x88BA,
SAMPLES_PASSED = 0x8914,
SRC1_ALPHA = 0x8589,
STATIC_COPY = 0x88E6,
STATIC_DRAW = 0x88E4,
STATIC_READ = 0x88E5,
STREAM_COPY = 0x88E2,
STREAM_DRAW = 0x88E0,
STREAM_READ = 0x88E1,
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F,
WRITE_ONLY = 0x88B9,
// Version: 2.0
ACTIVE_ATTRIBUTES = 0x8B89,
ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A,
ACTIVE_UNIFORMS = 0x8B86,
ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87,
ATTACHED_SHADERS = 0x8B85,
BLEND_EQUATION_ALPHA = 0x883D,
BLEND_EQUATION_RGB = 0x8009,
BOOL = 0x8B56,
BOOL_VEC2 = 0x8B57,
BOOL_VEC3 = 0x8B58,
BOOL_VEC4 = 0x8B59,
COMPILE_STATUS = 0x8B81,
CURRENT_PROGRAM = 0x8B8D,
CURRENT_VERTEX_ATTRIB = 0x8626,
DELETE_STATUS = 0x8B80,
DRAW_BUFFER0 = 0x8825,
DRAW_BUFFER1 = 0x8826,
DRAW_BUFFER10 = 0x882F,
DRAW_BUFFER11 = 0x8830,
DRAW_BUFFER12 = 0x8831,
DRAW_BUFFER13 = 0x8832,
DRAW_BUFFER14 = 0x8833,
DRAW_BUFFER15 = 0x8834,
DRAW_BUFFER2 = 0x8827,
DRAW_BUFFER3 = 0x8828,
DRAW_BUFFER4 = 0x8829,
DRAW_BUFFER5 = 0x882A,
DRAW_BUFFER6 = 0x882B,
DRAW_BUFFER7 = 0x882C,
DRAW_BUFFER8 = 0x882D,
DRAW_BUFFER9 = 0x882E,
FLOAT_MAT2 = 0x8B5A,
FLOAT_MAT3 = 0x8B5B,
FLOAT_MAT4 = 0x8B5C,
FLOAT_VEC2 = 0x8B50,
FLOAT_VEC3 = 0x8B51,
FLOAT_VEC4 = 0x8B52,
FRAGMENT_SHADER = 0x8B30,
FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B,
INFO_LOG_LENGTH = 0x8B84,
INT_VEC2 = 0x8B53,
INT_VEC3 = 0x8B54,
INT_VEC4 = 0x8B55,
LINK_STATUS = 0x8B82,
LOWER_LEFT = 0x8CA1,
MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D,
MAX_DRAW_BUFFERS = 0x8824,
MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49,
MAX_TEXTURE_IMAGE_UNITS = 0x8872,
MAX_VARYING_FLOATS = 0x8B4B,
MAX_VERTEX_ATTRIBS = 0x8869,
MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C,
MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A,
POINT_SPRITE_COORD_ORIGIN = 0x8CA0,
SAMPLER_1D = 0x8B5D,
SAMPLER_1D_SHADOW = 0x8B61,
SAMPLER_2D = 0x8B5E,
SAMPLER_2D_SHADOW = 0x8B62,
SAMPLER_3D = 0x8B5F,
SAMPLER_CUBE = 0x8B60,
SHADER_SOURCE_LENGTH = 0x8B88,
SHADER_TYPE = 0x8B4F,
SHADING_LANGUAGE_VERSION = 0x8B8C,
STENCIL_BACK_FAIL = 0x8801,
STENCIL_BACK_FUNC = 0x8800,
STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802,
STENCIL_BACK_PASS_DEPTH_PASS = 0x8803,
STENCIL_BACK_REF = 0x8CA3,
STENCIL_BACK_VALUE_MASK = 0x8CA4,
STENCIL_BACK_WRITEMASK = 0x8CA5,
UPPER_LEFT = 0x8CA2,
VALIDATE_STATUS = 0x8B83,
VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622,
VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A,
VERTEX_ATTRIB_ARRAY_POINTER = 0x8645,
VERTEX_ATTRIB_ARRAY_SIZE = 0x8623,
VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624,
VERTEX_ATTRIB_ARRAY_TYPE = 0x8625,
VERTEX_PROGRAM_POINT_SIZE = 0x8642,
VERTEX_SHADER = 0x8B31,
// Version: 2.1
COMPRESSED_SRGB = 0x8C48,
COMPRESSED_SRGB_ALPHA = 0x8C49,
FLOAT_MAT2x3 = 0x8B65,
FLOAT_MAT2x4 = 0x8B66,
FLOAT_MAT3x2 = 0x8B67,
FLOAT_MAT3x4 = 0x8B68,
FLOAT_MAT4x2 = 0x8B69,
FLOAT_MAT4x3 = 0x8B6A,
PIXEL_PACK_BUFFER = 0x88EB,
PIXEL_PACK_BUFFER_BINDING = 0x88ED,
PIXEL_UNPACK_BUFFER = 0x88EC,
PIXEL_UNPACK_BUFFER_BINDING = 0x88EF,
SRGB = 0x8C40,
SRGB8 = 0x8C41,
SRGB8_ALPHA8 = 0x8C43,
SRGB_ALPHA = 0x8C42,
// Version: 3.0
BGRA_INTEGER = 0x8D9B,
BGR_INTEGER = 0x8D9A,
BLUE_INTEGER = 0x8D96,
BUFFER_ACCESS_FLAGS = 0x911F,
BUFFER_MAP_LENGTH = 0x9120,
BUFFER_MAP_OFFSET = 0x9121,
CLAMP_READ_COLOR = 0x891C,
CLIP_DISTANCE0 = 0x3000,
CLIP_DISTANCE1 = 0x3001,
CLIP_DISTANCE2 = 0x3002,
CLIP_DISTANCE3 = 0x3003,
CLIP_DISTANCE4 = 0x3004,
CLIP_DISTANCE5 = 0x3005,
CLIP_DISTANCE6 = 0x3006,
CLIP_DISTANCE7 = 0x3007,
COLOR_ATTACHMENT0 = 0x8CE0,
COLOR_ATTACHMENT1 = 0x8CE1,
COLOR_ATTACHMENT10 = 0x8CEA,
COLOR_ATTACHMENT11 = 0x8CEB,
COLOR_ATTACHMENT12 = 0x8CEC,
COLOR_ATTACHMENT13 = 0x8CED,
COLOR_ATTACHMENT14 = 0x8CEE,
COLOR_ATTACHMENT15 = 0x8CEF,
COLOR_ATTACHMENT2 = 0x8CE2,
COLOR_ATTACHMENT3 = 0x8CE3,
COLOR_ATTACHMENT4 = 0x8CE4,
COLOR_ATTACHMENT5 = 0x8CE5,
COLOR_ATTACHMENT6 = 0x8CE6,
COLOR_ATTACHMENT7 = 0x8CE7,
COLOR_ATTACHMENT8 = 0x8CE8,
COLOR_ATTACHMENT9 = 0x8CE9,
COMPARE_REF_TO_TEXTURE = 0x884E,
COMPRESSED_RED = 0x8225,
COMPRESSED_RED_RGTC1 = 0x8DBB,
COMPRESSED_RG = 0x8226,
COMPRESSED_RG_RGTC2 = 0x8DBD,
COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC,
COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE,
CONTEXT_FLAGS = 0x821E,
CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001,
DEPTH24_STENCIL8 = 0x88F0,
DEPTH32F_STENCIL8 = 0x8CAD,
DEPTH_ATTACHMENT = 0x8D00,
DEPTH_COMPONENT32F = 0x8CAC,
DEPTH_STENCIL = 0x84F9,
DEPTH_STENCIL_ATTACHMENT = 0x821A,
DRAW_FRAMEBUFFER = 0x8CA9,
DRAW_FRAMEBUFFER_BINDING = 0x8CA6,
FIXED_ONLY = 0x891D,
FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD,
FRAMEBUFFER = 0x8D40,
FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215,
FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214,
FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210,
FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211,
FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216,
FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213,
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1,
FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0,
FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212,
FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217,
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3,
FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4,
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2,
FRAMEBUFFER_BINDING = 0x8CA6,
FRAMEBUFFER_COMPLETE = 0x8CD5,
FRAMEBUFFER_DEFAULT = 0x8218,
FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6,
FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB,
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7,
FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56,
FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC,
FRAMEBUFFER_SRGB = 0x8DB9,
FRAMEBUFFER_UNDEFINED = 0x8219,
FRAMEBUFFER_UNSUPPORTED = 0x8CDD,
GREEN_INTEGER = 0x8D95,
HALF_FLOAT = 0x140B,
INTERLEAVED_ATTRIBS = 0x8C8C,
INT_SAMPLER_1D = 0x8DC9,
INT_SAMPLER_1D_ARRAY = 0x8DCE,
INT_SAMPLER_2D = 0x8DCA,
INT_SAMPLER_2D_ARRAY = 0x8DCF,
INT_SAMPLER_3D = 0x8DCB,
INT_SAMPLER_CUBE = 0x8DCC,
INVALID_FRAMEBUFFER_OPERATION = 0x0506,
MAJOR_VERSION = 0x821B,
MAP_FLUSH_EXPLICIT_BIT = 0x0010,
MAP_INVALIDATE_BUFFER_BIT = 0x0008,
MAP_INVALIDATE_RANGE_BIT = 0x0004,
MAP_READ_BIT = 0x0001,
MAP_UNSYNCHRONIZED_BIT = 0x0020,
MAP_WRITE_BIT = 0x0002,
MAX_ARRAY_TEXTURE_LAYERS = 0x88FF,
MAX_CLIP_DISTANCES = 0x0D32,
MAX_COLOR_ATTACHMENTS = 0x8CDF,
MAX_PROGRAM_TEXEL_OFFSET = 0x8905,
MAX_RENDERBUFFER_SIZE = 0x84E8,
MAX_SAMPLES = 0x8D57,
MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A,
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B,
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80,
MAX_VARYING_COMPONENTS = 0x8B4B,
MINOR_VERSION = 0x821C,
MIN_PROGRAM_TEXEL_OFFSET = 0x8904,
NUM_EXTENSIONS = 0x821D,
PRIMITIVES_GENERATED = 0x8C87,
PROXY_TEXTURE_1D_ARRAY = 0x8C19,
PROXY_TEXTURE_2D_ARRAY = 0x8C1B,
QUERY_BY_REGION_NO_WAIT = 0x8E16,
QUERY_BY_REGION_WAIT = 0x8E15,
QUERY_NO_WAIT = 0x8E14,
QUERY_WAIT = 0x8E13,
R11F_G11F_B10F = 0x8C3A,
R16 = 0x822A,
R16F = 0x822D,
R16I = 0x8233,
R16UI = 0x8234,
R32F = 0x822E,
R32I = 0x8235,
R32UI = 0x8236,
R8 = 0x8229,
R8I = 0x8231,
R8UI = 0x8232,
RASTERIZER_DISCARD = 0x8C89,
READ_FRAMEBUFFER = 0x8CA8,
READ_FRAMEBUFFER_BINDING = 0x8CAA,
RED_INTEGER = 0x8D94,
//RENDERBUFFER seen in ARB_internalformat_query2
RENDERBUFFER_ALPHA_SIZE = 0x8D53,
RENDERBUFFER_BINDING = 0x8CA7,
RENDERBUFFER_BLUE_SIZE = 0x8D52,
RENDERBUFFER_DEPTH_SIZE = 0x8D54,
RENDERBUFFER_GREEN_SIZE = 0x8D51,
RENDERBUFFER_HEIGHT = 0x8D43,
RENDERBUFFER_INTERNAL_FORMAT = 0x8D44,
RENDERBUFFER_RED_SIZE = 0x8D50,
RENDERBUFFER_SAMPLES = 0x8CAB,
RENDERBUFFER_STENCIL_SIZE = 0x8D55,
RENDERBUFFER_WIDTH = 0x8D42,
RG = 0x8227,
RG16 = 0x822C,
RG16F = 0x822F,
RG16I = 0x8239,
RG16UI = 0x823A,
RG32F = 0x8230,
RG32I = 0x823B,
RG32UI = 0x823C,
RG8 = 0x822B,
RG8I = 0x8237,
RG8UI = 0x8238,
RGB16F = 0x881B,
RGB16I = 0x8D89,
RGB16UI = 0x8D77,
RGB32F = 0x8815,
RGB32I = 0x8D83,
RGB32UI = 0x8D71,
RGB8I = 0x8D8F,
RGB8UI = 0x8D7D,
RGB9_E5 = 0x8C3D,
RGBA16F = 0x881A,
RGBA16I = 0x8D88,
RGBA16UI = 0x8D76,
RGBA32F = 0x8814,
RGBA32I = 0x8D82,
RGBA32UI = 0x8D70,
RGBA8I = 0x8D8E,
RGBA8UI = 0x8D7C,
RGBA_INTEGER = 0x8D99,
RGB_INTEGER = 0x8D98,
RG_INTEGER = 0x8228,
SAMPLER_1D_ARRAY = 0x8DC0,
SAMPLER_1D_ARRAY_SHADOW = 0x8DC3,
SAMPLER_2D_ARRAY = 0x8DC1,
SAMPLER_2D_ARRAY_SHADOW = 0x8DC4,
SAMPLER_CUBE_SHADOW = 0x8DC5,
SEPARATE_ATTRIBS = 0x8C8D,
STENCIL_ATTACHMENT = 0x8D20,
STENCIL_INDEX1 = 0x8D46,
STENCIL_INDEX16 = 0x8D49,
STENCIL_INDEX4 = 0x8D47,
STENCIL_INDEX8 = 0x8D48,
//TEXTURE_1D_ARRAY seen in ARB_internalformat_query2
//TEXTURE_2D_ARRAY seen in ARB_internalformat_query2
TEXTURE_ALPHA_TYPE = 0x8C13,
TEXTURE_BINDING_1D_ARRAY = 0x8C1C,
TEXTURE_BINDING_2D_ARRAY = 0x8C1D,
TEXTURE_BLUE_TYPE = 0x8C12,
TEXTURE_DEPTH_TYPE = 0x8C16,
TEXTURE_GREEN_TYPE = 0x8C11,
TEXTURE_RED_TYPE = 0x8C10,
TEXTURE_SHARED_SIZE = 0x8C3F,
TEXTURE_STENCIL_SIZE = 0x88F1,
TRANSFORM_FEEDBACK_BUFFER = 0x8C8E,
TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F,
TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F,
TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85,
TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84,
TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88,
TRANSFORM_FEEDBACK_VARYINGS = 0x8C83,
TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76,
UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B,
UNSIGNED_INT_24_8 = 0x84FA,
UNSIGNED_INT_5_9_9_9_REV = 0x8C3E,
UNSIGNED_INT_SAMPLER_1D = 0x8DD1,
UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6,
UNSIGNED_INT_SAMPLER_2D = 0x8DD2,
UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7,
UNSIGNED_INT_SAMPLER_3D = 0x8DD3,
UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4,
UNSIGNED_INT_VEC2 = 0x8DC6,
UNSIGNED_INT_VEC3 = 0x8DC7,
UNSIGNED_INT_VEC4 = 0x8DC8,
UNSIGNED_NORMALIZED = 0x8C17,
VERTEX_ARRAY_BINDING = 0x85B5,
VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD,
// Version: 3.1
ACTIVE_UNIFORM_BLOCKS = 0x8A36,
ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35,
COPY_READ_BUFFER = 0x8F36,
COPY_WRITE_BUFFER = 0x8F37,
INT_SAMPLER_2D_RECT = 0x8DCD,
INT_SAMPLER_BUFFER = 0x8DD0,
INVALID_INDEX = 0xFFFFFFFF,
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33,
MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E,
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31,
MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D,
MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8,
MAX_TEXTURE_BUFFER_SIZE = 0x8C2B,
MAX_UNIFORM_BLOCK_SIZE = 0x8A30,
MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F,
MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B,
PRIMITIVE_RESTART = 0x8F9D,
PRIMITIVE_RESTART_INDEX = 0x8F9E,
PROXY_TEXTURE_RECTANGLE = 0x84F7,
R16_SNORM = 0x8F98,
R8_SNORM = 0x8F94,
RG16_SNORM = 0x8F99,
RG8_SNORM = 0x8F95,
RGB16_SNORM = 0x8F9A,
RGB8_SNORM = 0x8F96,
RGBA16_SNORM = 0x8F9B,
RGBA8_SNORM = 0x8F97,
SAMPLER_2D_RECT = 0x8B63,
SAMPLER_2D_RECT_SHADOW = 0x8B64,
SAMPLER_BUFFER = 0x8DC2,
SIGNED_NORMALIZED = 0x8F9C,
TEXTURE_BINDING_BUFFER = 0x8C2C,
TEXTURE_BINDING_RECTANGLE = 0x84F6,
//TEXTURE_BUFFER seen in ARB_internalformat_query2
TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D,
//TEXTURE_RECTANGLE seen in ARB_internalformat_query2
UNIFORM_ARRAY_STRIDE = 0x8A3C,
UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42,
UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43,
UNIFORM_BLOCK_BINDING = 0x8A3F,
UNIFORM_BLOCK_DATA_SIZE = 0x8A40,
UNIFORM_BLOCK_INDEX = 0x8A3A,
UNIFORM_BLOCK_NAME_LENGTH = 0x8A41,
UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46,
UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44,
UNIFORM_BUFFER = 0x8A11,
UNIFORM_BUFFER_BINDING = 0x8A28,
UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34,
UNIFORM_BUFFER_SIZE = 0x8A2A,
UNIFORM_BUFFER_START = 0x8A29,
UNIFORM_IS_ROW_MAJOR = 0x8A3E,
UNIFORM_MATRIX_STRIDE = 0x8A3D,
UNIFORM_NAME_LENGTH = 0x8A39,
UNIFORM_OFFSET = 0x8A3B,
UNIFORM_SIZE = 0x8A38,
UNIFORM_TYPE = 0x8A37,
UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5,
UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8,
// Version: 3.2
ALREADY_SIGNALED = 0x911A,
CONDITION_SATISFIED = 0x911C,
CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002,
CONTEXT_CORE_PROFILE_BIT = 0x00000001,
CONTEXT_PROFILE_MASK = 0x9126,
DEPTH_CLAMP = 0x864F,
//FIRST_VERTEX_CONVENTION seen in ARB_viewport_array
FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7,
FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8,
GEOMETRY_INPUT_TYPE = 0x8917,
GEOMETRY_OUTPUT_TYPE = 0x8918,
GEOMETRY_SHADER = 0x8DD9,
GEOMETRY_VERTICES_OUT = 0x8916,
INT_SAMPLER_2D_MULTISAMPLE = 0x9109,
INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C,
//LAST_VERTEX_CONVENTION seen in ARB_viewport_array
LINES_ADJACENCY = 0x000A,
LINE_STRIP_ADJACENCY = 0x000B,
MAX_COLOR_TEXTURE_SAMPLES = 0x910E,
MAX_DEPTH_TEXTURE_SAMPLES = 0x910F,
MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125,
MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123,
MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124,
MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0,
MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29,
MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1,
MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF,
MAX_INTEGER_SAMPLES = 0x9110,
MAX_SAMPLE_MASK_WORDS = 0x8E59,
MAX_SERVER_WAIT_TIMEOUT = 0x9111,
MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122,
OBJECT_TYPE = 0x9112,
PROGRAM_POINT_SIZE = 0x8642,
//PROVOKING_VERTEX seen in ARB_viewport_array
PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101,
PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103,
QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C,
SAMPLER_2D_MULTISAMPLE = 0x9108,
SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B,
SAMPLE_MASK = 0x8E51,
SAMPLE_MASK_VALUE = 0x8E52,
SAMPLE_POSITION = 0x8E50,
SIGNALED = 0x9119,
SYNC_CONDITION = 0x9113,
SYNC_FENCE = 0x9116,
SYNC_FLAGS = 0x9115,
SYNC_FLUSH_COMMANDS_BIT = 0x00000001,
SYNC_GPU_COMMANDS_COMPLETE = 0x9117,
SYNC_STATUS = 0x9114,
//TEXTURE_2D_MULTISAMPLE seen in ARB_internalformat_query2
//TEXTURE_2D_MULTISAMPLE_ARRAY seen in ARB_internalformat_query2
TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104,
TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105,
TEXTURE_CUBE_MAP_SEAMLESS = 0x884F,
TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107,
TEXTURE_SAMPLES = 0x9106,
TIMEOUT_EXPIRED = 0x911B,
TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF,
TRIANGLES_ADJACENCY = 0x000C,
TRIANGLE_STRIP_ADJACENCY = 0x000D,
UNSIGNALED = 0x9118,
UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A,
UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D,
WAIT_FAILED_ = 0x911D,
// Version: 3.3
ANY_SAMPLES_PASSED = 0x8C2F,
INT_2_10_10_10_REV = 0x8D9F,
MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC,
ONE_MINUS_SRC1_ALPHA = 0x88FB,
ONE_MINUS_SRC1_COLOR = 0x88FA,
RGB10_A2UI = 0x906F,
SAMPLER_BINDING = 0x8919,
SRC1_COLOR = 0x88F9,
TEXTURE_SWIZZLE_A = 0x8E45,
TEXTURE_SWIZZLE_B = 0x8E44,
TEXTURE_SWIZZLE_G = 0x8E43,
TEXTURE_SWIZZLE_R = 0x8E42,
TEXTURE_SWIZZLE_RGBA = 0x8E46,
TIMESTAMP = 0x8E28,
TIME_ELAPSED = 0x88BF,
VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE,
// Version: 4.0
ACTIVE_SUBROUTINES = 0x8DE5,
ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48,
ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6,
ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47,
ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49,
//COMPATIBLE_SUBROUTINES seen in ARB_program_interface_query
DOUBLE_MAT2 = 0x8F46,
DOUBLE_MAT2x3 = 0x8F49,
DOUBLE_MAT2x4 = 0x8F4A,
DOUBLE_MAT3 = 0x8F47,
DOUBLE_MAT3x2 = 0x8F4B,
DOUBLE_MAT3x4 = 0x8F4C,
DOUBLE_MAT4 = 0x8F48,
DOUBLE_MAT4x2 = 0x8F4D,
DOUBLE_MAT4x3 = 0x8F4E,
DOUBLE_VEC2 = 0x8FFC,
DOUBLE_VEC3 = 0x8FFD,
DOUBLE_VEC4 = 0x8FFE,
DRAW_INDIRECT_BUFFER = 0x8F3F,
DRAW_INDIRECT_BUFFER_BINDING = 0x8F43,
FRACTIONAL_EVEN = 0x8E7C,
FRACTIONAL_ODD = 0x8E7B,
FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D,
GEOMETRY_SHADER_INVOCATIONS = 0x887F,
INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E,
ISOLINES = 0x8E7A,
MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E,
MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F,
MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C,
MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A,
MAX_PATCH_VERTICES = 0x8E7D,
MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F,
MAX_SUBROUTINES = 0x8DE7,
MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8,
MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C,
MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83,
MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81,
MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85,
MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89,
MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F,
MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D,
MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86,
MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82,
MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A,
MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80,
MAX_TESS_GEN_LEVEL = 0x8E7E,
MAX_TESS_PATCH_COMPONENTS = 0x8E84,
MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70,
MAX_VERTEX_STREAMS = 0x8E71,
MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B,
MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E,
MIN_SAMPLE_SHADING_VALUE = 0x8C37,
//NUM_COMPATIBLE_SUBROUTINES seen in ARB_program_interface_query
PATCHES = 0x000E,
PATCH_DEFAULT_INNER_LEVEL = 0x8E73,
PATCH_DEFAULT_OUTER_LEVEL = 0x8E74,
PATCH_VERTICES = 0x8E72,
PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B,
SAMPLER_CUBE_MAP_ARRAY = 0x900C,
SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D,
SAMPLE_SHADING = 0x8C36,
TESS_CONTROL_OUTPUT_VERTICES = 0x8E75,
TESS_CONTROL_SHADER = 0x8E88,
TESS_EVALUATION_SHADER = 0x8E87,
TESS_GEN_MODE = 0x8E76,
TESS_GEN_POINT_MODE = 0x8E79,
TESS_GEN_SPACING = 0x8E77,
TESS_GEN_VERTEX_ORDER = 0x8E78,
TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A,
//TEXTURE_CUBE_MAP_ARRAY seen in ARB_internalformat_query2
TRANSFORM_FEEDBACK = 0x8E22,
TRANSFORM_FEEDBACK_BINDING = 0x8E25,
TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24,
TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23,
UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0,
UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1,
UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F,
// Version: 4.1
//ACTIVE_PROGRAM seen in ARB_separate_shader_objects
//ALL_SHADER_BITS seen in ARB_separate_shader_objects
//FIXED seen in ARB_ES2_compatibility
//FRAGMENT_SHADER_BIT seen in ARB_separate_shader_objects
//GEOMETRY_SHADER_BIT seen in ARB_separate_shader_objects
//HIGH_FLOAT seen in ARB_ES2_compatibility
//HIGH_INT seen in ARB_ES2_compatibility
//IMPLEMENTATION_COLOR_READ_FORMAT seen in ARB_ES2_compatibility
//IMPLEMENTATION_COLOR_READ_TYPE seen in ARB_ES2_compatibility
//LAYER_PROVOKING_VERTEX seen in ARB_viewport_array
//LOW_FLOAT seen in ARB_ES2_compatibility
//LOW_INT seen in ARB_ES2_compatibility
//MAX_FRAGMENT_UNIFORM_VECTORS seen in ARB_ES2_compatibility
//MAX_VARYING_VECTORS seen in ARB_ES2_compatibility
//MAX_VERTEX_UNIFORM_VECTORS seen in ARB_ES2_compatibility
//MAX_VIEWPORTS seen in ARB_viewport_array
//MEDIUM_FLOAT seen in ARB_ES2_compatibility
//MEDIUM_INT seen in ARB_ES2_compatibility
//NUM_PROGRAM_BINARY_FORMATS seen in ARB_get_program_binary
//NUM_SHADER_BINARY_FORMATS seen in ARB_ES2_compatibility
//PROGRAM_BINARY_FORMATS seen in ARB_get_program_binary
//PROGRAM_BINARY_LENGTH seen in ARB_get_program_binary
//PROGRAM_BINARY_RETRIEVABLE_HINT seen in ARB_get_program_binary
//PROGRAM_PIPELINE_BINDING seen in ARB_separate_shader_objects
//PROGRAM_SEPARABLE seen in ARB_separate_shader_objects
//RGB565 seen in ARB_ES2_compatibility
//SHADER_BINARY_FORMATS seen in ARB_ES2_compatibility
//SHADER_COMPILER seen in ARB_ES2_compatibility
//TESS_CONTROL_SHADER_BIT seen in ARB_separate_shader_objects
//TESS_EVALUATION_SHADER_BIT seen in ARB_separate_shader_objects
//UNDEFINED_VERTEX seen in ARB_viewport_array
//VERTEX_SHADER_BIT seen in ARB_separate_shader_objects
//VIEWPORT_BOUNDS_RANGE seen in ARB_viewport_array
//VIEWPORT_INDEX_PROVOKING_VERTEX seen in ARB_viewport_array
//VIEWPORT_SUBPIXEL_BITS seen in ARB_viewport_array
// Version: 4.2
ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9,
ALL_BARRIER_BITS = 0xFFFFFFFF,
ATOMIC_COUNTER_BARRIER_BIT = 0x00001000,
//ATOMIC_COUNTER_BUFFER seen in ARB_program_interface_query
ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5,
ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6,
ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1,
ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4,
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB,
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA,
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8,
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9,
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7,
ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3,
ATOMIC_COUNTER_BUFFER_START = 0x92C2,
BUFFER_UPDATE_BARRIER_BIT = 0x00000200,
COMMAND_BARRIER_BIT = 0x00000040,
ELEMENT_ARRAY_BARRIER_BIT = 0x00000002,
FRAMEBUFFER_BARRIER_BIT = 0x00000400,
IMAGE_1D = 0x904C,
IMAGE_1D_ARRAY = 0x9052,
IMAGE_2D = 0x904D,
IMAGE_2D_ARRAY = 0x9053,
IMAGE_2D_MULTISAMPLE = 0x9055,
IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056,
IMAGE_2D_RECT = 0x904F,
IMAGE_3D = 0x904E,
IMAGE_BINDING_ACCESS = 0x8F3E,
IMAGE_BINDING_FORMAT = 0x906E,
IMAGE_BINDING_LAYER = 0x8F3D,
IMAGE_BINDING_LAYERED = 0x8F3C,
IMAGE_BINDING_LEVEL = 0x8F3B,
IMAGE_BINDING_NAME = 0x8F3A,
IMAGE_BUFFER = 0x9051,
IMAGE_CUBE = 0x9050,
IMAGE_CUBE_MAP_ARRAY = 0x9054,
IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9,
IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8,
//IMAGE_FORMAT_COMPATIBILITY_TYPE seen in ARB_internalformat_query2
INT_IMAGE_1D = 0x9057,
INT_IMAGE_1D_ARRAY = 0x905D,
INT_IMAGE_2D = 0x9058,
INT_IMAGE_2D_ARRAY = 0x905E,
INT_IMAGE_2D_MULTISAMPLE = 0x9060,
INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061,
INT_IMAGE_2D_RECT = 0x905A,
INT_IMAGE_3D = 0x9059,
INT_IMAGE_BUFFER = 0x905C,
INT_IMAGE_CUBE = 0x905B,
INT_IMAGE_CUBE_MAP_ARRAY = 0x905F,
MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC,
MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8,
MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7,
MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1,
MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF,
MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39,
MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6,
MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0,
MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE,
MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5,
MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF,
MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD,
MAX_IMAGE_SAMPLES = 0x906D,
MAX_IMAGE_UNITS = 0x8F38,
MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3,
MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD,
MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB,
MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4,
MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE,
MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC,
MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2,
MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC,
MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA,
//MIN_MAP_BUFFER_ALIGNMENT seen in ARB_map_buffer_alignment
//NUM_SAMPLE_COUNTS seen in ARB_internalformat_query2
//PACK_COMPRESSED_BLOCK_DEPTH seen in ARB_compressed_texture_pixel_storage
//PACK_COMPRESSED_BLOCK_HEIGHT seen in ARB_compressed_texture_pixel_storage
//PACK_COMPRESSED_BLOCK_SIZE seen in ARB_compressed_texture_pixel_storage
//PACK_COMPRESSED_BLOCK_WIDTH seen in ARB_compressed_texture_pixel_storage
PIXEL_BUFFER_BARRIER_BIT = 0x00000080,
SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020,
TEXTURE_FETCH_BARRIER_BIT = 0x00000008,
//TEXTURE_IMMUTABLE_FORMAT seen in ARB_texture_storage
TEXTURE_UPDATE_BARRIER_BIT = 0x00000100,
TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800,
UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA,
UNIFORM_BARRIER_BIT = 0x00000004,
//UNPACK_COMPRESSED_BLOCK_DEPTH seen in ARB_compressed_texture_pixel_storage
//UNPACK_COMPRESSED_BLOCK_HEIGHT seen in ARB_compressed_texture_pixel_storage
//UNPACK_COMPRESSED_BLOCK_SIZE seen in ARB_compressed_texture_pixel_storage
//UNPACK_COMPRESSED_BLOCK_WIDTH seen in ARB_compressed_texture_pixel_storage
UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB,
UNSIGNED_INT_IMAGE_1D = 0x9062,
UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068,
UNSIGNED_INT_IMAGE_2D = 0x9063,
UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069,
UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B,
UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C,
UNSIGNED_INT_IMAGE_2D_RECT = 0x9065,
UNSIGNED_INT_IMAGE_3D = 0x9064,
UNSIGNED_INT_IMAGE_BUFFER = 0x9067,
UNSIGNED_INT_IMAGE_CUBE = 0x9066,
UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A,
VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001,
// Version: 4.3
//ACTIVE_RESOURCES seen in ARB_program_interface_query
//ACTIVE_VARIABLES seen in ARB_program_interface_query
//ANY_SAMPLES_PASSED_CONSERVATIVE seen in ARB_ES3_compatibility
//ARRAY_SIZE seen in ARB_program_interface_query
//ARRAY_STRIDE seen in ARB_program_interface_query
//ATOMIC_COUNTER_BUFFER_INDEX seen in ARB_program_interface_query
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED,
//AUTO_GENERATE_MIPMAP seen in ARB_internalformat_query2
//BLOCK_INDEX seen in ARB_program_interface_query
//BUFFER seen in KHR_debug
//BUFFER_BINDING seen in ARB_program_interface_query
//BUFFER_DATA_SIZE seen in ARB_program_interface_query
//BUFFER_VARIABLE seen in ARB_program_interface_query
//CAVEAT_SUPPORT seen in ARB_internalformat_query2
//CLEAR_BUFFER seen in ARB_internalformat_query2
//COLOR_COMPONENTS seen in ARB_internalformat_query2
//COLOR_ENCODING seen in ARB_internalformat_query2
//COLOR_RENDERABLE seen in ARB_internalformat_query2
//COMPRESSED_R11_EAC seen in ARB_ES3_compatibility
//COMPRESSED_RG11_EAC seen in ARB_ES3_compatibility
//COMPRESSED_RGB8_ETC2 seen in ARB_ES3_compatibility
//COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 seen in ARB_ES3_compatibility
//COMPRESSED_RGBA8_ETC2_EAC seen in ARB_ES3_compatibility
//COMPRESSED_SIGNED_R11_EAC seen in ARB_ES3_compatibility
//COMPRESSED_SIGNED_RG11_EAC seen in ARB_ES3_compatibility
//COMPRESSED_SRGB8_ALPHA8_ETC2_EAC seen in ARB_ES3_compatibility
//COMPRESSED_SRGB8_ETC2 seen in ARB_ES3_compatibility
//COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 seen in ARB_ES3_compatibility
COMPUTE_LOCAL_WORK_SIZE = 0x8267,
COMPUTE_SHADER = 0x91B9,
//COMPUTE_SUBROUTINE seen in ARB_program_interface_query
//COMPUTE_SUBROUTINE_UNIFORM seen in ARB_program_interface_query
//COMPUTE_TEXTURE seen in ARB_internalformat_query2
//CONTEXT_FLAG_DEBUG_BIT seen in KHR_debug
//DEBUG_CALLBACK_FUNCTION seen in KHR_debug
//DEBUG_CALLBACK_USER_PARAM seen in KHR_debug
//DEBUG_GROUP_STACK_DEPTH seen in KHR_debug
//DEBUG_LOGGED_MESSAGES seen in KHR_debug
//DEBUG_NEXT_LOGGED_MESSAGE_LENGTH seen in KHR_debug
//DEBUG_OUTPUT seen in KHR_debug
//DEBUG_OUTPUT_SYNCHRONOUS seen in KHR_debug
//DEBUG_SEVERITY_HIGH seen in KHR_debug
//DEBUG_SEVERITY_LOW seen in KHR_debug
//DEBUG_SEVERITY_MEDIUM seen in KHR_debug
//DEBUG_SEVERITY_NOTIFICATION seen in KHR_debug
//DEBUG_SOURCE_API seen in KHR_debug
//DEBUG_SOURCE_APPLICATION seen in KHR_debug
//DEBUG_SOURCE_OTHER seen in KHR_debug
//DEBUG_SOURCE_SHADER_COMPILER seen in KHR_debug
//DEBUG_SOURCE_THIRD_PARTY seen in KHR_debug
//DEBUG_SOURCE_WINDOW_SYSTEM seen in KHR_debug
//DEBUG_TYPE_DEPRECATED_BEHAVIOR seen in KHR_debug
//DEBUG_TYPE_ERROR seen in KHR_debug
//DEBUG_TYPE_MARKER seen in KHR_debug
//DEBUG_TYPE_OTHER seen in KHR_debug
//DEBUG_TYPE_PERFORMANCE seen in KHR_debug
//DEBUG_TYPE_POP_GROUP seen in KHR_debug
//DEBUG_TYPE_PORTABILITY seen in KHR_debug
//DEBUG_TYPE_PUSH_GROUP seen in KHR_debug
//DEBUG_TYPE_UNDEFINED_BEHAVIOR seen in KHR_debug
//DEPTH_COMPONENTS seen in ARB_internalformat_query2
//DEPTH_RENDERABLE seen in ARB_internalformat_query2
//DEPTH_STENCIL_TEXTURE_MODE seen in ARB_stencil_texturing
DISPATCH_INDIRECT_BUFFER = 0x90EE,
DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF,
//FILTER seen in ARB_internalformat_query2
//FRAGMENT_SUBROUTINE seen in ARB_program_interface_query
//FRAGMENT_SUBROUTINE_UNIFORM seen in ARB_program_interface_query
//FRAGMENT_TEXTURE seen in ARB_internalformat_query2
//FRAMEBUFFER_BLEND seen in ARB_internalformat_query2
//FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS seen in ARB_framebuffer_no_attachments
//FRAMEBUFFER_DEFAULT_HEIGHT seen in ARB_framebuffer_no_attachments
//FRAMEBUFFER_DEFAULT_LAYERS seen in ARB_framebuffer_no_attachments
//FRAMEBUFFER_DEFAULT_SAMPLES seen in ARB_framebuffer_no_attachments
//FRAMEBUFFER_DEFAULT_WIDTH seen in ARB_framebuffer_no_attachments
//FRAMEBUFFER_RENDERABLE seen in ARB_internalformat_query2
//FRAMEBUFFER_RENDERABLE_LAYERED seen in ARB_internalformat_query2
//FULL_SUPPORT seen in ARB_internalformat_query2
//GEOMETRY_SUBROUTINE seen in ARB_program_interface_query
//GEOMETRY_SUBROUTINE_UNIFORM seen in ARB_program_interface_query
//GEOMETRY_TEXTURE seen in ARB_internalformat_query2
//GET_TEXTURE_IMAGE_FORMAT seen in ARB_internalformat_query2
//GET_TEXTURE_IMAGE_TYPE seen in ARB_internalformat_query2
//IMAGE_CLASS_10_10_10_2 seen in ARB_internalformat_query2
//IMAGE_CLASS_11_11_10 seen in ARB_internalformat_query2
//IMAGE_CLASS_1_X_16 seen in ARB_internalformat_query2
//IMAGE_CLASS_1_X_32 seen in ARB_internalformat_query2
//IMAGE_CLASS_1_X_8 seen in ARB_internalformat_query2
//IMAGE_CLASS_2_X_16 seen in ARB_internalformat_query2
//IMAGE_CLASS_2_X_32 seen in ARB_internalformat_query2
//IMAGE_CLASS_2_X_8 seen in ARB_internalformat_query2
//IMAGE_CLASS_4_X_16 seen in ARB_internalformat_query2
//IMAGE_CLASS_4_X_32 seen in ARB_internalformat_query2
//IMAGE_CLASS_4_X_8 seen in ARB_internalformat_query2
//IMAGE_COMPATIBILITY_CLASS seen in ARB_internalformat_query2
//IMAGE_PIXEL_FORMAT seen in ARB_internalformat_query2
//IMAGE_PIXEL_TYPE seen in ARB_internalformat_query2
//IMAGE_TEXEL_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_ALPHA_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_ALPHA_TYPE seen in ARB_internalformat_query2
//INTERNALFORMAT_BLUE_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_BLUE_TYPE seen in ARB_internalformat_query2
//INTERNALFORMAT_DEPTH_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_DEPTH_TYPE seen in ARB_internalformat_query2
//INTERNALFORMAT_GREEN_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_GREEN_TYPE seen in ARB_internalformat_query2
//INTERNALFORMAT_PREFERRED seen in ARB_internalformat_query2
//INTERNALFORMAT_RED_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_RED_TYPE seen in ARB_internalformat_query2
//INTERNALFORMAT_SHARED_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_STENCIL_SIZE seen in ARB_internalformat_query2
//INTERNALFORMAT_STENCIL_TYPE seen in ARB_internalformat_query2
//INTERNALFORMAT_SUPPORTED seen in ARB_internalformat_query2
//IS_PER_PATCH seen in ARB_program_interface_query
//IS_ROW_MAJOR seen in ARB_program_interface_query
//LOCATION seen in ARB_program_interface_query
//LOCATION_INDEX seen in ARB_program_interface_query
//MANUAL_GENERATE_MIPMAP seen in ARB_internalformat_query2
//MATRIX_STRIDE seen in ARB_program_interface_query
MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266,
//MAX_COMBINED_DIMENSIONS seen in ARB_internalformat_query2
MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39,
MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC,
MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265,
MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264,
MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD,
MAX_COMPUTE_LOCAL_INVOCATIONS = 0x90EB,
MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB,
MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262,
MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC,
MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB,
MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263,
MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE,
MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF,
//MAX_DEBUG_GROUP_STACK_DEPTH seen in KHR_debug
//MAX_DEBUG_LOGGED_MESSAGES seen in KHR_debug
//MAX_DEBUG_MESSAGE_LENGTH seen in KHR_debug
//MAX_DEPTH seen in ARB_internalformat_query2
//MAX_ELEMENT_INDEX seen in ARB_ES3_compatibility
MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA,
//MAX_FRAMEBUFFER_HEIGHT seen in ARB_framebuffer_no_attachments
//MAX_FRAMEBUFFER_LAYERS seen in ARB_framebuffer_no_attachments
//MAX_FRAMEBUFFER_SAMPLES seen in ARB_framebuffer_no_attachments
//MAX_FRAMEBUFFER_WIDTH seen in ARB_framebuffer_no_attachments
MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7,
//MAX_HEIGHT seen in ARB_internalformat_query2
//MAX_LABEL_LENGTH seen in KHR_debug
//MAX_LAYERS seen in ARB_internalformat_query2
//MAX_NAME_LENGTH seen in ARB_program_interface_query
//MAX_NUM_ACTIVE_VARIABLES seen in ARB_program_interface_query
//MAX_NUM_COMPATIBLE_SUBROUTINES seen in ARB_program_interface_query
MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE,
MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD,
MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8,
MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9,
//MAX_UNIFORM_LOCATIONS seen in ARB_explicit_uniform_location
//MAX_VERTEX_ATTRIB_BINDINGS seen in ARB_vertex_attrib_binding
//MAX_VERTEX_ATTRIB_RELATIVE_OFFSET seen in ARB_vertex_attrib_binding
MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6,
//MAX_WIDTH seen in ARB_internalformat_query2
//MIPMAP seen in ARB_internalformat_query2
//NAME_LENGTH seen in ARB_program_interface_query
//NUM_ACTIVE_VARIABLES seen in ARB_program_interface_query
NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9,
//OFFSET seen in ARB_program_interface_query
//PRIMITIVE_RESTART_FIXED_INDEX seen in ARB_ES3_compatibility
//PROGRAM seen in KHR_debug
//PROGRAM_INPUT seen in ARB_program_interface_query
//PROGRAM_OUTPUT seen in ARB_program_interface_query
//PROGRAM_PIPELINE seen in KHR_debug
//QUERY seen in KHR_debug
//READ_PIXELS seen in ARB_internalformat_query2
//READ_PIXELS_FORMAT seen in ARB_internalformat_query2
//READ_PIXELS_TYPE seen in ARB_internalformat_query2
//REFERENCED_BY_COMPUTE_SHADER seen in ARB_program_interface_query
//REFERENCED_BY_FRAGMENT_SHADER seen in ARB_program_interface_query
//REFERENCED_BY_GEOMETRY_SHADER seen in ARB_program_interface_query
//REFERENCED_BY_TESS_CONTROL_SHADER seen in ARB_program_interface_query
//REFERENCED_BY_TESS_EVALUATION_SHADER seen in ARB_program_interface_query
//REFERENCED_BY_VERTEX_SHADER seen in ARB_program_interface_query
//SAMPLER seen in KHR_debug
//SHADER seen in KHR_debug
//SHADER_IMAGE_ATOMIC seen in ARB_internalformat_query2
//SHADER_IMAGE_LOAD seen in ARB_internalformat_query2
//SHADER_IMAGE_STORE seen in ARB_internalformat_query2
SHADER_STORAGE_BARRIER_BIT = 0x00002000,
//SHADER_STORAGE_BLOCK seen in ARB_program_interface_query
SHADER_STORAGE_BUFFER = 0x90D2,
SHADER_STORAGE_BUFFER_BINDING = 0x90D3,
SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF,
SHADER_STORAGE_BUFFER_SIZE = 0x90D5,
SHADER_STORAGE_BUFFER_START = 0x90D4,
//SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST seen in ARB_internalformat_query2
//SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE seen in ARB_internalformat_query2
//SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST seen in ARB_internalformat_query2
//SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE seen in ARB_internalformat_query2
//SRGB_READ seen in ARB_internalformat_query2
//SRGB_WRITE seen in ARB_internalformat_query2
//STENCIL_COMPONENTS seen in ARB_internalformat_query2
//STENCIL_RENDERABLE seen in ARB_internalformat_query2
//TESS_CONTROL_SUBROUTINE seen in ARB_program_interface_query
//TESS_CONTROL_SUBROUTINE_UNIFORM seen in ARB_program_interface_query
//TESS_CONTROL_TEXTURE seen in ARB_internalformat_query2
//TESS_EVALUATION_SUBROUTINE seen in ARB_program_interface_query
//TESS_EVALUATION_SUBROUTINE_UNIFORM seen in ARB_program_interface_query
//TESS_EVALUATION_TEXTURE seen in ARB_internalformat_query2
//TEXTURE_BUFFER_OFFSET seen in ARB_texture_buffer_range
//TEXTURE_BUFFER_OFFSET_ALIGNMENT seen in ARB_texture_buffer_range
//TEXTURE_BUFFER_SIZE seen in ARB_texture_buffer_range
//TEXTURE_COMPRESSED_BLOCK_HEIGHT seen in ARB_internalformat_query2
//TEXTURE_COMPRESSED_BLOCK_SIZE seen in ARB_internalformat_query2
//TEXTURE_COMPRESSED_BLOCK_WIDTH seen in ARB_internalformat_query2
//TEXTURE_GATHER seen in ARB_internalformat_query2
//TEXTURE_GATHER_SHADOW seen in ARB_internalformat_query2
//TEXTURE_IMAGE_FORMAT seen in ARB_internalformat_query2
//TEXTURE_IMAGE_TYPE seen in ARB_internalformat_query2
//TEXTURE_IMMUTABLE_LEVELS seen in ARB_texture_view
//TEXTURE_SHADOW seen in ARB_internalformat_query2
//TEXTURE_VIEW seen in ARB_internalformat_query2
//TEXTURE_VIEW_MIN_LAYER seen in ARB_texture_view
//TEXTURE_VIEW_MIN_LEVEL seen in ARB_texture_view
//TEXTURE_VIEW_NUM_LAYERS seen in ARB_texture_view
//TEXTURE_VIEW_NUM_LEVELS seen in ARB_texture_view
//TOP_LEVEL_ARRAY_SIZE seen in ARB_program_interface_query
//TOP_LEVEL_ARRAY_STRIDE seen in ARB_program_interface_query
//TRANSFORM_FEEDBACK_VARYING seen in ARB_program_interface_query
//TYPE seen in ARB_program_interface_query
//UNIFORM seen in ARB_program_interface_query
//UNIFORM_BLOCK seen in ARB_program_interface_query
UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC,
VERTEX_ATTRIB_ARRAY_LONG = 0x874E,
//VERTEX_ATTRIB_BINDING seen in ARB_vertex_attrib_binding
//VERTEX_ATTRIB_RELATIVE_OFFSET seen in ARB_vertex_attrib_binding
//VERTEX_BINDING_DIVISOR seen in ARB_vertex_attrib_binding
//VERTEX_BINDING_OFFSET seen in ARB_vertex_attrib_binding
//VERTEX_BINDING_STRIDE seen in ARB_vertex_attrib_binding
//VERTEX_SUBROUTINE seen in ARB_program_interface_query
//VERTEX_SUBROUTINE_UNIFORM seen in ARB_program_interface_query
//VERTEX_TEXTURE seen in ARB_internalformat_query2
//VIEW_CLASS_128_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_16_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_24_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_32_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_48_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_64_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_8_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_96_BITS seen in ARB_internalformat_query2
//VIEW_CLASS_BPTC_FLOAT seen in ARB_internalformat_query2
//VIEW_CLASS_BPTC_UNORM seen in ARB_internalformat_query2
//VIEW_CLASS_RGTC1_RED seen in ARB_internalformat_query2
//VIEW_CLASS_RGTC2_RG seen in ARB_internalformat_query2
//VIEW_CLASS_S3TC_DXT1_RGB seen in ARB_internalformat_query2
//VIEW_CLASS_S3TC_DXT1_RGBA seen in ARB_internalformat_query2
//VIEW_CLASS_S3TC_DXT3_RGBA seen in ARB_internalformat_query2
//VIEW_CLASS_S3TC_DXT5_RGBA seen in ARB_internalformat_query2
//VIEW_COMPATIBILITY_CLASS seen in ARB_internalformat_query2
// Version: 4.4
BUFFER_IMMUTABLE_STORAGE = 0x821F,
BUFFER_STORAGE_FLAGS = 0x8220,
CLEAR_TEXTURE = 0x9365,
CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000,
CLIENT_STORAGE_BIT = 0x0200,
DYNAMIC_STORAGE_BIT = 0x0100,
LOCATION_COMPONENT = 0x934A,
MAP_COHERENT_BIT = 0x0080,
MAP_PERSISTENT_BIT = 0x0040,
MAX_VERTEX_ATTRIB_STRIDE = 0x82E5,
MIRROR_CLAMP_TO_EDGE = 0x8743,
QUERY_BUFFER = 0x9192,
QUERY_BUFFER_BARRIER_BIT = 0x00008000,
QUERY_BUFFER_BINDING = 0x9193,
QUERY_RESULT_NO_WAIT = 0x9194,
TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B,
TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C,
};
// Extension: ARB_ES2_compatibility
extern void (CODEGEN_FUNCPTR *ClearDepthf)(GLfloat d);
extern void (CODEGEN_FUNCPTR *DepthRangef)(GLfloat n, GLfloat f);
extern void (CODEGEN_FUNCPTR *GetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
extern void (CODEGEN_FUNCPTR *ReleaseShaderCompiler)();
extern void (CODEGEN_FUNCPTR *ShaderBinary)(GLsizei count, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length);
// Extension: ARB_get_program_binary
extern void (CODEGEN_FUNCPTR *GetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, GLvoid * binary);
extern void (CODEGEN_FUNCPTR *ProgramBinary)(GLuint program, GLenum binaryFormat, const GLvoid * binary, GLsizei length);
extern void (CODEGEN_FUNCPTR *ProgramParameteri)(GLuint program, GLenum pname, GLint value);
// Extension: ARB_internalformat_query
extern void (CODEGEN_FUNCPTR *GetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params);
// Extension: ARB_internalformat_query2
extern void (CODEGEN_FUNCPTR *GetInternalformati64v)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 * params);
// Extension: ARB_program_interface_query
extern void (CODEGEN_FUNCPTR *GetProgramInterfaceiv)(GLuint program, GLenum programInterface, GLenum pname, GLint * params);
extern GLuint (CODEGEN_FUNCPTR *GetProgramResourceIndex)(GLuint program, GLenum programInterface, const GLchar * name);
extern GLint (CODEGEN_FUNCPTR *GetProgramResourceLocation)(GLuint program, GLenum programInterface, const GLchar * name);
extern GLint (CODEGEN_FUNCPTR *GetProgramResourceLocationIndex)(GLuint program, GLenum programInterface, const GLchar * name);
extern void (CODEGEN_FUNCPTR *GetProgramResourceName)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
extern void (CODEGEN_FUNCPTR *GetProgramResourceiv)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLint * params);
// Extension: ARB_separate_shader_objects
extern void (CODEGEN_FUNCPTR *ActiveShaderProgram)(GLuint pipeline, GLuint program);
extern void (CODEGEN_FUNCPTR *BindProgramPipeline)(GLuint pipeline);
extern GLuint (CODEGEN_FUNCPTR *CreateShaderProgramv)(GLenum type, GLsizei count, const GLchar *const* strings);
extern void (CODEGEN_FUNCPTR *DeleteProgramPipelines)(GLsizei n, const GLuint * pipelines);
extern void (CODEGEN_FUNCPTR *GenProgramPipelines)(GLsizei n, GLuint * pipelines);
extern void (CODEGEN_FUNCPTR *GetProgramPipelineInfoLog)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
extern void (CODEGEN_FUNCPTR *GetProgramPipelineiv)(GLuint pipeline, GLenum pname, GLint * params);
extern GLboolean (CODEGEN_FUNCPTR *IsProgramPipeline)(GLuint pipeline);
extern void (CODEGEN_FUNCPTR *ProgramUniform1d)(GLuint program, GLint location, GLdouble v0);
extern void (CODEGEN_FUNCPTR *ProgramUniform1dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform1f)(GLuint program, GLint location, GLfloat v0);
extern void (CODEGEN_FUNCPTR *ProgramUniform1fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform1i)(GLuint program, GLint location, GLint v0);
extern void (CODEGEN_FUNCPTR *ProgramUniform1iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform1ui)(GLuint program, GLint location, GLuint v0);
extern void (CODEGEN_FUNCPTR *ProgramUniform1uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform2d)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
extern void (CODEGEN_FUNCPTR *ProgramUniform2dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform2f)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
extern void (CODEGEN_FUNCPTR *ProgramUniform2fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform2i)(GLuint program, GLint location, GLint v0, GLint v1);
extern void (CODEGEN_FUNCPTR *ProgramUniform2iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform2ui)(GLuint program, GLint location, GLuint v0, GLuint v1);
extern void (CODEGEN_FUNCPTR *ProgramUniform2uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform3d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
extern void (CODEGEN_FUNCPTR *ProgramUniform3dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform3f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
extern void (CODEGEN_FUNCPTR *ProgramUniform3fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform3i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
extern void (CODEGEN_FUNCPTR *ProgramUniform3iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform3ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
extern void (CODEGEN_FUNCPTR *ProgramUniform3uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform4d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
extern void (CODEGEN_FUNCPTR *ProgramUniform4dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform4f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
extern void (CODEGEN_FUNCPTR *ProgramUniform4fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform4i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
extern void (CODEGEN_FUNCPTR *ProgramUniform4iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniform4ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
extern void (CODEGEN_FUNCPTR *ProgramUniform4uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix2x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix2x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix2x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix2x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix3x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix3x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix3x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix3x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix4x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix4x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix4x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *ProgramUniformMatrix4x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UseProgramStages)(GLuint pipeline, GLbitfield stages, GLuint program);
extern void (CODEGEN_FUNCPTR *ValidateProgramPipeline)(GLuint pipeline);
// Extension: ARB_texture_buffer_range
extern void (CODEGEN_FUNCPTR *TexBufferRange)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
// Extension: ARB_texture_storage
extern void (CODEGEN_FUNCPTR *TexStorage1D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
extern void (CODEGEN_FUNCPTR *TexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *TexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
// Extension: ARB_texture_view
extern void (CODEGEN_FUNCPTR *TextureView)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
// Extension: ARB_vertex_attrib_binding
extern void (CODEGEN_FUNCPTR *BindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
extern void (CODEGEN_FUNCPTR *VertexAttribBinding)(GLuint attribindex, GLuint bindingindex);
extern void (CODEGEN_FUNCPTR *VertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
extern void (CODEGEN_FUNCPTR *VertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
extern void (CODEGEN_FUNCPTR *VertexAttribLFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
extern void (CODEGEN_FUNCPTR *VertexBindingDivisor)(GLuint bindingindex, GLuint divisor);
// Extension: ARB_viewport_array
extern void (CODEGEN_FUNCPTR *DepthRangeArrayv)(GLuint first, GLsizei count, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *DepthRangeIndexed)(GLuint index, GLdouble n, GLdouble f);
extern void (CODEGEN_FUNCPTR *GetDoublei_v)(GLenum target, GLuint index, GLdouble * data);
extern void (CODEGEN_FUNCPTR *GetFloati_v)(GLenum target, GLuint index, GLfloat * data);
extern void (CODEGEN_FUNCPTR *ScissorArrayv)(GLuint first, GLsizei count, const GLint * v);
extern void (CODEGEN_FUNCPTR *ScissorIndexed)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *ScissorIndexedv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *ViewportArrayv)(GLuint first, GLsizei count, const GLfloat * v);
extern void (CODEGEN_FUNCPTR *ViewportIndexedf)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
extern void (CODEGEN_FUNCPTR *ViewportIndexedfv)(GLuint index, const GLfloat * v);
// Extension: ARB_clear_buffer_object
extern void (CODEGEN_FUNCPTR *ClearBufferData)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data);
extern void (CODEGEN_FUNCPTR *ClearBufferSubData)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
// Extension: ARB_copy_image
extern void (CODEGEN_FUNCPTR *CopyImageSubData)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
// Extension: ARB_framebuffer_no_attachments
extern void (CODEGEN_FUNCPTR *FramebufferParameteri)(GLenum target, GLenum pname, GLint param);
extern void (CODEGEN_FUNCPTR *GetFramebufferParameteriv)(GLenum target, GLenum pname, GLint * params);
// Extension: ARB_invalidate_subdata
extern void (CODEGEN_FUNCPTR *InvalidateBufferData)(GLuint buffer);
extern void (CODEGEN_FUNCPTR *InvalidateBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr length);
extern void (CODEGEN_FUNCPTR *InvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
extern void (CODEGEN_FUNCPTR *InvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *InvalidateTexImage)(GLuint texture, GLint level);
extern void (CODEGEN_FUNCPTR *InvalidateTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
// Extension: ARB_texture_storage_multisample
extern void (CODEGEN_FUNCPTR *TexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
extern void (CODEGEN_FUNCPTR *TexStorage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
// Extension: KHR_debug
extern void (CODEGEN_FUNCPTR *DebugMessageCallback)(GLDEBUGPROC callback, const void * userParam);
extern void (CODEGEN_FUNCPTR *DebugMessageControl)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
extern void (CODEGEN_FUNCPTR *DebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
extern GLuint (CODEGEN_FUNCPTR *GetDebugMessageLog)(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
extern void (CODEGEN_FUNCPTR *GetObjectLabel)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
extern void (CODEGEN_FUNCPTR *GetObjectPtrLabel)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
extern void (CODEGEN_FUNCPTR *GetPointerv)(GLenum pname, GLvoid ** params);
extern void (CODEGEN_FUNCPTR *ObjectLabel)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
extern void (CODEGEN_FUNCPTR *ObjectPtrLabel)(const void * ptr, GLsizei length, const GLchar * label);
extern void (CODEGEN_FUNCPTR *PopDebugGroup)();
extern void (CODEGEN_FUNCPTR *PushDebugGroup)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
// Extension: 1.0
extern void (CODEGEN_FUNCPTR *BlendFunc)(GLenum sfactor, GLenum dfactor);
extern void (CODEGEN_FUNCPTR *Clear)(GLbitfield mask);
extern void (CODEGEN_FUNCPTR *ClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
extern void (CODEGEN_FUNCPTR *ClearDepth)(GLdouble depth);
extern void (CODEGEN_FUNCPTR *ClearStencil)(GLint s);
extern void (CODEGEN_FUNCPTR *ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
extern void (CODEGEN_FUNCPTR *CullFace)(GLenum mode);
extern void (CODEGEN_FUNCPTR *DepthFunc)(GLenum func);
extern void (CODEGEN_FUNCPTR *DepthMask)(GLboolean flag);
extern void (CODEGEN_FUNCPTR *DepthRange)(GLdouble ren_near, GLdouble ren_far);
extern void (CODEGEN_FUNCPTR *Disable)(GLenum cap);
extern void (CODEGEN_FUNCPTR *DrawBuffer)(GLenum mode);
extern void (CODEGEN_FUNCPTR *Enable)(GLenum cap);
extern void (CODEGEN_FUNCPTR *Finish)();
extern void (CODEGEN_FUNCPTR *Flush)();
extern void (CODEGEN_FUNCPTR *FrontFace)(GLenum mode);
extern void (CODEGEN_FUNCPTR *GetBooleanv)(GLenum pname, GLboolean * params);
extern void (CODEGEN_FUNCPTR *GetDoublev)(GLenum pname, GLdouble * params);
extern GLenum (CODEGEN_FUNCPTR *GetError)();
extern void (CODEGEN_FUNCPTR *GetFloatv)(GLenum pname, GLfloat * params);
extern void (CODEGEN_FUNCPTR *GetIntegerv)(GLenum pname, GLint * params);
extern const GLubyte * (CODEGEN_FUNCPTR *GetString)(GLenum name);
extern void (CODEGEN_FUNCPTR *GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels);
extern void (CODEGEN_FUNCPTR *GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat * params);
extern void (CODEGEN_FUNCPTR *GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetTexParameterfv)(GLenum target, GLenum pname, GLfloat * params);
extern void (CODEGEN_FUNCPTR *GetTexParameteriv)(GLenum target, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *Hint)(GLenum target, GLenum mode);
extern GLboolean (CODEGEN_FUNCPTR *IsEnabled)(GLenum cap);
extern void (CODEGEN_FUNCPTR *LineWidth)(GLfloat width);
extern void (CODEGEN_FUNCPTR *LogicOp)(GLenum opcode);
extern void (CODEGEN_FUNCPTR *PixelStoref)(GLenum pname, GLfloat param);
extern void (CODEGEN_FUNCPTR *PixelStorei)(GLenum pname, GLint param);
extern void (CODEGEN_FUNCPTR *PointSize)(GLfloat size);
extern void (CODEGEN_FUNCPTR *PolygonMode)(GLenum face, GLenum mode);
extern void (CODEGEN_FUNCPTR *ReadBuffer)(GLenum mode);
extern void (CODEGEN_FUNCPTR *ReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels);
extern void (CODEGEN_FUNCPTR *Scissor)(GLint x, GLint y, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *StencilFunc)(GLenum func, GLint ref, GLuint mask);
extern void (CODEGEN_FUNCPTR *StencilMask)(GLuint mask);
extern void (CODEGEN_FUNCPTR *StencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
extern void (CODEGEN_FUNCPTR *TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
extern void (CODEGEN_FUNCPTR *TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
extern void (CODEGEN_FUNCPTR *TexParameterf)(GLenum target, GLenum pname, GLfloat param);
extern void (CODEGEN_FUNCPTR *TexParameterfv)(GLenum target, GLenum pname, const GLfloat * params);
extern void (CODEGEN_FUNCPTR *TexParameteri)(GLenum target, GLenum pname, GLint param);
extern void (CODEGEN_FUNCPTR *TexParameteriv)(GLenum target, GLenum pname, const GLint * params);
extern void (CODEGEN_FUNCPTR *Viewport)(GLint x, GLint y, GLsizei width, GLsizei height);
// Extension: 1.1
extern void (CODEGEN_FUNCPTR *BindTexture)(GLenum target, GLuint texture);
extern void (CODEGEN_FUNCPTR *CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
extern void (CODEGEN_FUNCPTR *CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
extern void (CODEGEN_FUNCPTR *CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
extern void (CODEGEN_FUNCPTR *CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *DeleteTextures)(GLsizei n, const GLuint * textures);
extern void (CODEGEN_FUNCPTR *DrawArrays)(GLenum mode, GLint first, GLsizei count);
extern void (CODEGEN_FUNCPTR *DrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices);
extern void (CODEGEN_FUNCPTR *GenTextures)(GLsizei n, GLuint * textures);
extern GLboolean (CODEGEN_FUNCPTR *IsTexture)(GLuint texture);
extern void (CODEGEN_FUNCPTR *PolygonOffset)(GLfloat factor, GLfloat units);
extern void (CODEGEN_FUNCPTR *TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels);
extern void (CODEGEN_FUNCPTR *TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels);
// Extension: 1.2
extern void (CODEGEN_FUNCPTR *BlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
extern void (CODEGEN_FUNCPTR *BlendEquation)(GLenum mode);
extern void (CODEGEN_FUNCPTR *CopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *DrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices);
extern void (CODEGEN_FUNCPTR *TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels);
extern void (CODEGEN_FUNCPTR *TexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels);
// Extension: 1.3
extern void (CODEGEN_FUNCPTR *ActiveTexture)(GLenum texture);
extern void (CODEGEN_FUNCPTR *CompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *CompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *CompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *CompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *CompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *CompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *GetCompressedTexImage)(GLenum target, GLint level, GLvoid * img);
extern void (CODEGEN_FUNCPTR *SampleCoverage)(GLfloat value, GLboolean invert);
// Extension: 1.4
extern void (CODEGEN_FUNCPTR *BlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
extern void (CODEGEN_FUNCPTR *MultiDrawArrays)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount);
extern void (CODEGEN_FUNCPTR *MultiDrawElements)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid *const* indices, GLsizei drawcount);
extern void (CODEGEN_FUNCPTR *PointParameterf)(GLenum pname, GLfloat param);
extern void (CODEGEN_FUNCPTR *PointParameterfv)(GLenum pname, const GLfloat * params);
extern void (CODEGEN_FUNCPTR *PointParameteri)(GLenum pname, GLint param);
extern void (CODEGEN_FUNCPTR *PointParameteriv)(GLenum pname, const GLint * params);
// Extension: 1.5
extern void (CODEGEN_FUNCPTR *BeginQuery)(GLenum target, GLuint id);
extern void (CODEGEN_FUNCPTR *BindBuffer)(GLenum target, GLuint buffer);
extern void (CODEGEN_FUNCPTR *BufferData)(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);
extern void (CODEGEN_FUNCPTR *BufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data);
extern void (CODEGEN_FUNCPTR *DeleteBuffers)(GLsizei n, const GLuint * buffers);
extern void (CODEGEN_FUNCPTR *DeleteQueries)(GLsizei n, const GLuint * ids);
extern void (CODEGEN_FUNCPTR *EndQuery)(GLenum target);
extern void (CODEGEN_FUNCPTR *GenBuffers)(GLsizei n, GLuint * buffers);
extern void (CODEGEN_FUNCPTR *GenQueries)(GLsizei n, GLuint * ids);
extern void (CODEGEN_FUNCPTR *GetBufferParameteriv)(GLenum target, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetBufferPointerv)(GLenum target, GLenum pname, GLvoid ** params);
extern void (CODEGEN_FUNCPTR *GetBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid * data);
extern void (CODEGEN_FUNCPTR *GetQueryObjectiv)(GLuint id, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetQueryObjectuiv)(GLuint id, GLenum pname, GLuint * params);
extern void (CODEGEN_FUNCPTR *GetQueryiv)(GLenum target, GLenum pname, GLint * params);
extern GLboolean (CODEGEN_FUNCPTR *IsBuffer)(GLuint buffer);
extern GLboolean (CODEGEN_FUNCPTR *IsQuery)(GLuint id);
extern void * (CODEGEN_FUNCPTR *MapBuffer)(GLenum target, GLenum access);
extern GLboolean (CODEGEN_FUNCPTR *UnmapBuffer)(GLenum target);
// Extension: 2.0
extern void (CODEGEN_FUNCPTR *AttachShader)(GLuint program, GLuint shader);
extern void (CODEGEN_FUNCPTR *BindAttribLocation)(GLuint program, GLuint index, const GLchar * name);
extern void (CODEGEN_FUNCPTR *BlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
extern void (CODEGEN_FUNCPTR *CompileShader)(GLuint shader);
extern GLuint (CODEGEN_FUNCPTR *CreateProgram)();
extern GLuint (CODEGEN_FUNCPTR *CreateShader)(GLenum type);
extern void (CODEGEN_FUNCPTR *DeleteProgram)(GLuint program);
extern void (CODEGEN_FUNCPTR *DeleteShader)(GLuint shader);
extern void (CODEGEN_FUNCPTR *DetachShader)(GLuint program, GLuint shader);
extern void (CODEGEN_FUNCPTR *DisableVertexAttribArray)(GLuint index);
extern void (CODEGEN_FUNCPTR *DrawBuffers)(GLsizei n, const GLenum * bufs);
extern void (CODEGEN_FUNCPTR *EnableVertexAttribArray)(GLuint index);
extern void (CODEGEN_FUNCPTR *GetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
extern void (CODEGEN_FUNCPTR *GetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
extern void (CODEGEN_FUNCPTR *GetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
extern GLint (CODEGEN_FUNCPTR *GetAttribLocation)(GLuint program, const GLchar * name);
extern void (CODEGEN_FUNCPTR *GetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
extern void (CODEGEN_FUNCPTR *GetProgramiv)(GLuint program, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
extern void (CODEGEN_FUNCPTR *GetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
extern void (CODEGEN_FUNCPTR *GetShaderiv)(GLuint shader, GLenum pname, GLint * params);
extern GLint (CODEGEN_FUNCPTR *GetUniformLocation)(GLuint program, const GLchar * name);
extern void (CODEGEN_FUNCPTR *GetUniformfv)(GLuint program, GLint location, GLfloat * params);
extern void (CODEGEN_FUNCPTR *GetUniformiv)(GLuint program, GLint location, GLint * params);
extern void (CODEGEN_FUNCPTR *GetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid ** pointer);
extern void (CODEGEN_FUNCPTR *GetVertexAttribdv)(GLuint index, GLenum pname, GLdouble * params);
extern void (CODEGEN_FUNCPTR *GetVertexAttribfv)(GLuint index, GLenum pname, GLfloat * params);
extern void (CODEGEN_FUNCPTR *GetVertexAttribiv)(GLuint index, GLenum pname, GLint * params);
extern GLboolean (CODEGEN_FUNCPTR *IsProgram)(GLuint program);
extern GLboolean (CODEGEN_FUNCPTR *IsShader)(GLuint shader);
extern void (CODEGEN_FUNCPTR *LinkProgram)(GLuint program);
extern void (CODEGEN_FUNCPTR *ShaderSource)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
extern void (CODEGEN_FUNCPTR *StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
extern void (CODEGEN_FUNCPTR *StencilMaskSeparate)(GLenum face, GLuint mask);
extern void (CODEGEN_FUNCPTR *StencilOpSeparate)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
extern void (CODEGEN_FUNCPTR *Uniform1f)(GLint location, GLfloat v0);
extern void (CODEGEN_FUNCPTR *Uniform1fv)(GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *Uniform1i)(GLint location, GLint v0);
extern void (CODEGEN_FUNCPTR *Uniform1iv)(GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *Uniform2f)(GLint location, GLfloat v0, GLfloat v1);
extern void (CODEGEN_FUNCPTR *Uniform2fv)(GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *Uniform2i)(GLint location, GLint v0, GLint v1);
extern void (CODEGEN_FUNCPTR *Uniform2iv)(GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *Uniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
extern void (CODEGEN_FUNCPTR *Uniform3fv)(GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *Uniform3i)(GLint location, GLint v0, GLint v1, GLint v2);
extern void (CODEGEN_FUNCPTR *Uniform3iv)(GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *Uniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
extern void (CODEGEN_FUNCPTR *Uniform4fv)(GLint location, GLsizei count, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *Uniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
extern void (CODEGEN_FUNCPTR *Uniform4iv)(GLint location, GLsizei count, const GLint * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UseProgram)(GLuint program);
extern void (CODEGEN_FUNCPTR *ValidateProgram)(GLuint program);
extern void (CODEGEN_FUNCPTR *VertexAttrib1d)(GLuint index, GLdouble x);
extern void (CODEGEN_FUNCPTR *VertexAttrib1dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib1f)(GLuint index, GLfloat x);
extern void (CODEGEN_FUNCPTR *VertexAttrib1fv)(GLuint index, const GLfloat * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib1s)(GLuint index, GLshort x);
extern void (CODEGEN_FUNCPTR *VertexAttrib1sv)(GLuint index, const GLshort * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib2d)(GLuint index, GLdouble x, GLdouble y);
extern void (CODEGEN_FUNCPTR *VertexAttrib2dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib2f)(GLuint index, GLfloat x, GLfloat y);
extern void (CODEGEN_FUNCPTR *VertexAttrib2fv)(GLuint index, const GLfloat * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib2s)(GLuint index, GLshort x, GLshort y);
extern void (CODEGEN_FUNCPTR *VertexAttrib2sv)(GLuint index, const GLshort * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
extern void (CODEGEN_FUNCPTR *VertexAttrib3dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib3f)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
extern void (CODEGEN_FUNCPTR *VertexAttrib3fv)(GLuint index, const GLfloat * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z);
extern void (CODEGEN_FUNCPTR *VertexAttrib3sv)(GLuint index, const GLshort * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Nbv)(GLuint index, const GLbyte * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Niv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Nsv)(GLuint index, const GLshort * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Nubv)(GLuint index, const GLubyte * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Nuiv)(GLuint index, const GLuint * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4Nusv)(GLuint index, const GLushort * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4bv)(GLuint index, const GLbyte * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
extern void (CODEGEN_FUNCPTR *VertexAttrib4dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4f)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
extern void (CODEGEN_FUNCPTR *VertexAttrib4fv)(GLuint index, const GLfloat * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4iv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
extern void (CODEGEN_FUNCPTR *VertexAttrib4sv)(GLuint index, const GLshort * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4ubv)(GLuint index, const GLubyte * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4uiv)(GLuint index, const GLuint * v);
extern void (CODEGEN_FUNCPTR *VertexAttrib4usv)(GLuint index, const GLushort * v);
extern void (CODEGEN_FUNCPTR *VertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer);
// Extension: 2.1
extern void (CODEGEN_FUNCPTR *UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
// Extension: 3.0
extern void (CODEGEN_FUNCPTR *BeginConditionalRender)(GLuint id, GLenum mode);
extern void (CODEGEN_FUNCPTR *BeginTransformFeedback)(GLenum primitiveMode);
extern void (CODEGEN_FUNCPTR *BindBufferBase)(GLenum target, GLuint index, GLuint buffer);
extern void (CODEGEN_FUNCPTR *BindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
extern void (CODEGEN_FUNCPTR *BindFragDataLocation)(GLuint program, GLuint color, const GLchar * name);
extern void (CODEGEN_FUNCPTR *BindFramebuffer)(GLenum target, GLuint framebuffer);
extern void (CODEGEN_FUNCPTR *BindRenderbuffer)(GLenum target, GLuint renderbuffer);
extern void (CODEGEN_FUNCPTR *BindVertexArray)(GLuint ren_array);
extern void (CODEGEN_FUNCPTR *BlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
extern GLenum (CODEGEN_FUNCPTR *CheckFramebufferStatus)(GLenum target);
extern void (CODEGEN_FUNCPTR *ClampColor)(GLenum target, GLenum clamp);
extern void (CODEGEN_FUNCPTR *ClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
extern void (CODEGEN_FUNCPTR *ClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat * value);
extern void (CODEGEN_FUNCPTR *ClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint * value);
extern void (CODEGEN_FUNCPTR *ClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint * value);
extern void (CODEGEN_FUNCPTR *ColorMaski)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
extern void (CODEGEN_FUNCPTR *DeleteFramebuffers)(GLsizei n, const GLuint * framebuffers);
extern void (CODEGEN_FUNCPTR *DeleteRenderbuffers)(GLsizei n, const GLuint * renderbuffers);
extern void (CODEGEN_FUNCPTR *DeleteVertexArrays)(GLsizei n, const GLuint * arrays);
extern void (CODEGEN_FUNCPTR *Disablei)(GLenum target, GLuint index);
extern void (CODEGEN_FUNCPTR *Enablei)(GLenum target, GLuint index);
extern void (CODEGEN_FUNCPTR *EndConditionalRender)();
extern void (CODEGEN_FUNCPTR *EndTransformFeedback)();
extern void (CODEGEN_FUNCPTR *FlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length);
extern void (CODEGEN_FUNCPTR *FramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
extern void (CODEGEN_FUNCPTR *FramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
extern void (CODEGEN_FUNCPTR *FramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
extern void (CODEGEN_FUNCPTR *FramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
extern void (CODEGEN_FUNCPTR *FramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
extern void (CODEGEN_FUNCPTR *GenFramebuffers)(GLsizei n, GLuint * framebuffers);
extern void (CODEGEN_FUNCPTR *GenRenderbuffers)(GLsizei n, GLuint * renderbuffers);
extern void (CODEGEN_FUNCPTR *GenVertexArrays)(GLsizei n, GLuint * arrays);
extern void (CODEGEN_FUNCPTR *GenerateMipmap)(GLenum target);
extern void (CODEGEN_FUNCPTR *GetBooleani_v)(GLenum target, GLuint index, GLboolean * data);
extern GLint (CODEGEN_FUNCPTR *GetFragDataLocation)(GLuint program, const GLchar * name);
extern void (CODEGEN_FUNCPTR *GetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetIntegeri_v)(GLenum target, GLuint index, GLint * data);
extern void (CODEGEN_FUNCPTR *GetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint * params);
extern const GLubyte * (CODEGEN_FUNCPTR *GetStringi)(GLenum name, GLuint index);
extern void (CODEGEN_FUNCPTR *GetTexParameterIiv)(GLenum target, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetTexParameterIuiv)(GLenum target, GLenum pname, GLuint * params);
extern void (CODEGEN_FUNCPTR *GetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
extern void (CODEGEN_FUNCPTR *GetUniformuiv)(GLuint program, GLint location, GLuint * params);
extern void (CODEGEN_FUNCPTR *GetVertexAttribIiv)(GLuint index, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint * params);
extern GLboolean (CODEGEN_FUNCPTR *IsEnabledi)(GLenum target, GLuint index);
extern GLboolean (CODEGEN_FUNCPTR *IsFramebuffer)(GLuint framebuffer);
extern GLboolean (CODEGEN_FUNCPTR *IsRenderbuffer)(GLuint renderbuffer);
extern GLboolean (CODEGEN_FUNCPTR *IsVertexArray)(GLuint ren_array);
extern void * (CODEGEN_FUNCPTR *MapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
extern void (CODEGEN_FUNCPTR *RenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *RenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
extern void (CODEGEN_FUNCPTR *TexParameterIiv)(GLenum target, GLenum pname, const GLint * params);
extern void (CODEGEN_FUNCPTR *TexParameterIuiv)(GLenum target, GLenum pname, const GLuint * params);
extern void (CODEGEN_FUNCPTR *TransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
extern void (CODEGEN_FUNCPTR *Uniform1ui)(GLint location, GLuint v0);
extern void (CODEGEN_FUNCPTR *Uniform1uiv)(GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *Uniform2ui)(GLint location, GLuint v0, GLuint v1);
extern void (CODEGEN_FUNCPTR *Uniform2uiv)(GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *Uniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2);
extern void (CODEGEN_FUNCPTR *Uniform3uiv)(GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *Uniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
extern void (CODEGEN_FUNCPTR *Uniform4uiv)(GLint location, GLsizei count, const GLuint * value);
extern void (CODEGEN_FUNCPTR *VertexAttribI1i)(GLuint index, GLint x);
extern void (CODEGEN_FUNCPTR *VertexAttribI1iv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI1ui)(GLuint index, GLuint x);
extern void (CODEGEN_FUNCPTR *VertexAttribI1uiv)(GLuint index, const GLuint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI2i)(GLuint index, GLint x, GLint y);
extern void (CODEGEN_FUNCPTR *VertexAttribI2iv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI2ui)(GLuint index, GLuint x, GLuint y);
extern void (CODEGEN_FUNCPTR *VertexAttribI2uiv)(GLuint index, const GLuint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI3i)(GLuint index, GLint x, GLint y, GLint z);
extern void (CODEGEN_FUNCPTR *VertexAttribI3iv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI3ui)(GLuint index, GLuint x, GLuint y, GLuint z);
extern void (CODEGEN_FUNCPTR *VertexAttribI3uiv)(GLuint index, const GLuint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI4bv)(GLuint index, const GLbyte * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w);
extern void (CODEGEN_FUNCPTR *VertexAttribI4iv)(GLuint index, const GLint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI4sv)(GLuint index, const GLshort * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI4ubv)(GLuint index, const GLubyte * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI4ui)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
extern void (CODEGEN_FUNCPTR *VertexAttribI4uiv)(GLuint index, const GLuint * v);
extern void (CODEGEN_FUNCPTR *VertexAttribI4usv)(GLuint index, const GLushort * v);
extern void (CODEGEN_FUNCPTR *VertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer);
// Extension: 3.1
extern void (CODEGEN_FUNCPTR *CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
extern void (CODEGEN_FUNCPTR *DrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
extern void (CODEGEN_FUNCPTR *DrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount);
extern void (CODEGEN_FUNCPTR *GetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName);
extern void (CODEGEN_FUNCPTR *GetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName);
extern void (CODEGEN_FUNCPTR *GetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params);
extern GLuint (CODEGEN_FUNCPTR *GetUniformBlockIndex)(GLuint program, const GLchar * uniformBlockName);
extern void (CODEGEN_FUNCPTR *GetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices);
extern void (CODEGEN_FUNCPTR *PrimitiveRestartIndex)(GLuint index);
extern void (CODEGEN_FUNCPTR *TexBuffer)(GLenum target, GLenum internalformat, GLuint buffer);
extern void (CODEGEN_FUNCPTR *UniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
// Extension: 3.2
extern GLenum (CODEGEN_FUNCPTR *ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout);
extern void (CODEGEN_FUNCPTR *DeleteSync)(GLsync sync);
extern void (CODEGEN_FUNCPTR *DrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex);
extern void (CODEGEN_FUNCPTR *DrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei instancecount, GLint basevertex);
extern void (CODEGEN_FUNCPTR *DrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex);
extern GLsync (CODEGEN_FUNCPTR *FenceSync)(GLenum condition, GLbitfield flags);
extern void (CODEGEN_FUNCPTR *FramebufferTexture)(GLenum target, GLenum attachment, GLuint texture, GLint level);
extern void (CODEGEN_FUNCPTR *GetBufferParameteri64v)(GLenum target, GLenum pname, GLint64 * params);
extern void (CODEGEN_FUNCPTR *GetInteger64i_v)(GLenum target, GLuint index, GLint64 * data);
extern void (CODEGEN_FUNCPTR *GetInteger64v)(GLenum pname, GLint64 * params);
extern void (CODEGEN_FUNCPTR *GetMultisamplefv)(GLenum pname, GLuint index, GLfloat * val);
extern void (CODEGEN_FUNCPTR *GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
extern GLboolean (CODEGEN_FUNCPTR *IsSync)(GLsync sync);
extern void (CODEGEN_FUNCPTR *MultiDrawElementsBaseVertex)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid *const* indices, GLsizei drawcount, const GLint * basevertex);
extern void (CODEGEN_FUNCPTR *ProvokingVertex)(GLenum mode);
extern void (CODEGEN_FUNCPTR *SampleMaski)(GLuint index, GLbitfield mask);
extern void (CODEGEN_FUNCPTR *TexImage2DMultisample)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
extern void (CODEGEN_FUNCPTR *TexImage3DMultisample)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
extern void (CODEGEN_FUNCPTR *WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout);
// Extension: 3.3
extern void (CODEGEN_FUNCPTR *BindFragDataLocationIndexed)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
extern void (CODEGEN_FUNCPTR *BindSampler)(GLuint unit, GLuint sampler);
extern void (CODEGEN_FUNCPTR *DeleteSamplers)(GLsizei count, const GLuint * samplers);
extern void (CODEGEN_FUNCPTR *GenSamplers)(GLsizei count, GLuint * samplers);
extern GLint (CODEGEN_FUNCPTR *GetFragDataIndex)(GLuint program, const GLchar * name);
extern void (CODEGEN_FUNCPTR *GetQueryObjecti64v)(GLuint id, GLenum pname, GLint64 * params);
extern void (CODEGEN_FUNCPTR *GetQueryObjectui64v)(GLuint id, GLenum pname, GLuint64 * params);
extern void (CODEGEN_FUNCPTR *GetSamplerParameterIiv)(GLuint sampler, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *GetSamplerParameterIuiv)(GLuint sampler, GLenum pname, GLuint * params);
extern void (CODEGEN_FUNCPTR *GetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat * params);
extern void (CODEGEN_FUNCPTR *GetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint * params);
extern GLboolean (CODEGEN_FUNCPTR *IsSampler)(GLuint sampler);
extern void (CODEGEN_FUNCPTR *QueryCounter)(GLuint id, GLenum target);
extern void (CODEGEN_FUNCPTR *SamplerParameterIiv)(GLuint sampler, GLenum pname, const GLint * param);
extern void (CODEGEN_FUNCPTR *SamplerParameterIuiv)(GLuint sampler, GLenum pname, const GLuint * param);
extern void (CODEGEN_FUNCPTR *SamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param);
extern void (CODEGEN_FUNCPTR *SamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat * param);
extern void (CODEGEN_FUNCPTR *SamplerParameteri)(GLuint sampler, GLenum pname, GLint param);
extern void (CODEGEN_FUNCPTR *SamplerParameteriv)(GLuint sampler, GLenum pname, const GLint * param);
extern void (CODEGEN_FUNCPTR *VertexAttribDivisor)(GLuint index, GLuint divisor);
extern void (CODEGEN_FUNCPTR *VertexAttribP1ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
extern void (CODEGEN_FUNCPTR *VertexAttribP1uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
extern void (CODEGEN_FUNCPTR *VertexAttribP2ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
extern void (CODEGEN_FUNCPTR *VertexAttribP2uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
extern void (CODEGEN_FUNCPTR *VertexAttribP3ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
extern void (CODEGEN_FUNCPTR *VertexAttribP3uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
extern void (CODEGEN_FUNCPTR *VertexAttribP4ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
extern void (CODEGEN_FUNCPTR *VertexAttribP4uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
// Extension: 4.0
extern void (CODEGEN_FUNCPTR *BeginQueryIndexed)(GLenum target, GLuint index, GLuint id);
extern void (CODEGEN_FUNCPTR *BindTransformFeedback)(GLenum target, GLuint id);
extern void (CODEGEN_FUNCPTR *BlendEquationSeparatei)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
extern void (CODEGEN_FUNCPTR *BlendEquationi)(GLuint buf, GLenum mode);
extern void (CODEGEN_FUNCPTR *BlendFuncSeparatei)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
extern void (CODEGEN_FUNCPTR *BlendFunci)(GLuint buf, GLenum src, GLenum dst);
extern void (CODEGEN_FUNCPTR *DeleteTransformFeedbacks)(GLsizei n, const GLuint * ids);
extern void (CODEGEN_FUNCPTR *DrawArraysIndirect)(GLenum mode, const GLvoid * indirect);
extern void (CODEGEN_FUNCPTR *DrawElementsIndirect)(GLenum mode, GLenum type, const GLvoid * indirect);
extern void (CODEGEN_FUNCPTR *DrawTransformFeedback)(GLenum mode, GLuint id);
extern void (CODEGEN_FUNCPTR *DrawTransformFeedbackStream)(GLenum mode, GLuint id, GLuint stream);
extern void (CODEGEN_FUNCPTR *EndQueryIndexed)(GLenum target, GLuint index);
extern void (CODEGEN_FUNCPTR *GenTransformFeedbacks)(GLsizei n, GLuint * ids);
extern void (CODEGEN_FUNCPTR *GetActiveSubroutineName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name);
extern void (CODEGEN_FUNCPTR *GetActiveSubroutineUniformName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name);
extern void (CODEGEN_FUNCPTR *GetActiveSubroutineUniformiv)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values);
extern void (CODEGEN_FUNCPTR *GetProgramStageiv)(GLuint program, GLenum shadertype, GLenum pname, GLint * values);
extern void (CODEGEN_FUNCPTR *GetQueryIndexediv)(GLenum target, GLuint index, GLenum pname, GLint * params);
extern GLuint (CODEGEN_FUNCPTR *GetSubroutineIndex)(GLuint program, GLenum shadertype, const GLchar * name);
extern GLint (CODEGEN_FUNCPTR *GetSubroutineUniformLocation)(GLuint program, GLenum shadertype, const GLchar * name);
extern void (CODEGEN_FUNCPTR *GetUniformSubroutineuiv)(GLenum shadertype, GLint location, GLuint * params);
extern void (CODEGEN_FUNCPTR *GetUniformdv)(GLuint program, GLint location, GLdouble * params);
extern GLboolean (CODEGEN_FUNCPTR *IsTransformFeedback)(GLuint id);
extern void (CODEGEN_FUNCPTR *MinSampleShading)(GLfloat value);
extern void (CODEGEN_FUNCPTR *PatchParameterfv)(GLenum pname, const GLfloat * values);
extern void (CODEGEN_FUNCPTR *PatchParameteri)(GLenum pname, GLint value);
extern void (CODEGEN_FUNCPTR *PauseTransformFeedback)();
extern void (CODEGEN_FUNCPTR *ResumeTransformFeedback)();
extern void (CODEGEN_FUNCPTR *Uniform1d)(GLint location, GLdouble x);
extern void (CODEGEN_FUNCPTR *Uniform1dv)(GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *Uniform2d)(GLint location, GLdouble x, GLdouble y);
extern void (CODEGEN_FUNCPTR *Uniform2dv)(GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *Uniform3d)(GLint location, GLdouble x, GLdouble y, GLdouble z);
extern void (CODEGEN_FUNCPTR *Uniform3dv)(GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *Uniform4d)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
extern void (CODEGEN_FUNCPTR *Uniform4dv)(GLint location, GLsizei count, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix2x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix2x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix3x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix3x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix4x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformMatrix4x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
extern void (CODEGEN_FUNCPTR *UniformSubroutinesuiv)(GLenum shadertype, GLsizei count, const GLuint * indices);
// Extension: 4.1
extern void (CODEGEN_FUNCPTR *GetVertexAttribLdv)(GLuint index, GLenum pname, GLdouble * params);
extern void (CODEGEN_FUNCPTR *VertexAttribL1d)(GLuint index, GLdouble x);
extern void (CODEGEN_FUNCPTR *VertexAttribL1dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttribL2d)(GLuint index, GLdouble x, GLdouble y);
extern void (CODEGEN_FUNCPTR *VertexAttribL2dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttribL3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
extern void (CODEGEN_FUNCPTR *VertexAttribL3dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttribL4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
extern void (CODEGEN_FUNCPTR *VertexAttribL4dv)(GLuint index, const GLdouble * v);
extern void (CODEGEN_FUNCPTR *VertexAttribLPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer);
// Extension: 4.2
extern void (CODEGEN_FUNCPTR *BindImageTexture)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
extern void (CODEGEN_FUNCPTR *DrawArraysInstancedBaseInstance)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
extern void (CODEGEN_FUNCPTR *DrawElementsInstancedBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
extern void (CODEGEN_FUNCPTR *DrawElementsInstancedBaseVertexBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
extern void (CODEGEN_FUNCPTR *DrawTransformFeedbackInstanced)(GLenum mode, GLuint id, GLsizei instancecount);
extern void (CODEGEN_FUNCPTR *DrawTransformFeedbackStreamInstanced)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
extern void (CODEGEN_FUNCPTR *GetActiveAtomicCounterBufferiv)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params);
extern void (CODEGEN_FUNCPTR *MemoryBarrier)(GLbitfield barriers);
// Extension: 4.3
extern void (CODEGEN_FUNCPTR *DispatchCompute)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
extern void (CODEGEN_FUNCPTR *DispatchComputeIndirect)(GLintptr indirect);
extern void (CODEGEN_FUNCPTR *MultiDrawArraysIndirect)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
extern void (CODEGEN_FUNCPTR *MultiDrawElementsIndirect)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
extern void (CODEGEN_FUNCPTR *ShaderStorageBlockBinding)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
// Extension: 4.4
extern void (CODEGEN_FUNCPTR *BindBuffersBase)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers);
extern void (CODEGEN_FUNCPTR *BindBuffersRange)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes);
extern void (CODEGEN_FUNCPTR *BindImageTextures)(GLuint first, GLsizei count, const GLuint * textures);
extern void (CODEGEN_FUNCPTR *BindSamplers)(GLuint first, GLsizei count, const GLuint * samplers);
extern void (CODEGEN_FUNCPTR *BindTextures)(GLuint first, GLsizei count, const GLuint * textures);
extern void (CODEGEN_FUNCPTR *BindVertexBuffers)(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
extern void (CODEGEN_FUNCPTR *BufferStorage)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
extern void (CODEGEN_FUNCPTR *ClearTexImage)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
extern void (CODEGEN_FUNCPTR *ClearTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
namespace sys
{
void CheckExtensions();
}
}
#endif //OPENGL_NOLOAD_STYLE_HPP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment