// Generated Code - DO NOT EDIT !!
// generated by 'emugen'
#ifndef __gles3_wrapper_proc_t_h
#define __gles3_wrapper_proc_t_h



#include "gles3_types.h"
#ifndef gles3_APIENTRY
#define gles3_APIENTRY 
#endif
typedef void (gles3_APIENTRY *glActiveTexture_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glAttachShader_wrapper_proc_t) (GLuint, GLuint);
typedef void (gles3_APIENTRY *glBindAttribLocation_wrapper_proc_t) (GLuint, GLuint, const GLchar*);
typedef void (gles3_APIENTRY *glBindBuffer_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glBindFramebuffer_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glBindRenderbuffer_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glBindTexture_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glBlendColor_wrapper_proc_t) (GLclampf, GLclampf, GLclampf, GLclampf);
typedef void (gles3_APIENTRY *glBlendEquation_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glBlendEquationSeparate_wrapper_proc_t) (GLenum, GLenum);
typedef void (gles3_APIENTRY *glBlendFunc_wrapper_proc_t) (GLenum, GLenum);
typedef void (gles3_APIENTRY *glBlendFuncSeparate_wrapper_proc_t) (GLenum, GLenum, GLenum, GLenum);
typedef void (gles3_APIENTRY *glBufferData_wrapper_proc_t) (GLenum, GLsizeiptr, const GLvoid*, GLenum);
typedef void (gles3_APIENTRY *glBufferSubData_wrapper_proc_t) (GLenum, GLintptr, GLsizeiptr, const GLvoid*);
typedef GLenum (gles3_APIENTRY *glCheckFramebufferStatus_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glClear_wrapper_proc_t) (GLbitfield);
typedef void (gles3_APIENTRY *glClearColor_wrapper_proc_t) (GLclampf, GLclampf, GLclampf, GLclampf);
typedef void (gles3_APIENTRY *glClearDepthf_wrapper_proc_t) (GLclampf);
typedef void (gles3_APIENTRY *glClearStencil_wrapper_proc_t) (GLint);
typedef void (gles3_APIENTRY *glColorMask_wrapper_proc_t) (GLboolean, GLboolean, GLboolean, GLboolean);
typedef void (gles3_APIENTRY *glCompileShader_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glCompressedTexImage2D_wrapper_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glCompressedTexSubImage2D_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glCopyTexImage2D_wrapper_proc_t) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
typedef void (gles3_APIENTRY *glCopyTexSubImage2D_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef GLuint (gles3_APIENTRY *glCreateProgram_wrapper_proc_t) ();
typedef GLuint (gles3_APIENTRY *glCreateShader_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glCullFace_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glDeleteBuffers_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glDeleteFramebuffers_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glDeleteProgram_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDeleteRenderbuffers_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glDeleteShader_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDeleteTextures_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glDepthFunc_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glDepthMask_wrapper_proc_t) (GLboolean);
typedef void (gles3_APIENTRY *glDepthRangef_wrapper_proc_t) (GLclampf, GLclampf);
typedef void (gles3_APIENTRY *glDetachShader_wrapper_proc_t) (GLuint, GLuint);
typedef void (gles3_APIENTRY *glDisable_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glDisableVertexAttribArray_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDrawArrays_wrapper_proc_t) (GLenum, GLint, GLsizei);
typedef void (gles3_APIENTRY *glDrawElements_wrapper_proc_t) (GLenum, GLsizei, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glEnable_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glEnableVertexAttribArray_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glFinish_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glFlush_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glFramebufferRenderbuffer_wrapper_proc_t) (GLenum, GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glFramebufferTexture2D_wrapper_proc_t) (GLenum, GLenum, GLenum, GLuint, GLint);
typedef void (gles3_APIENTRY *glFrontFace_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glGenBuffers_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGenerateMipmap_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glGenFramebuffers_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGenRenderbuffers_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGenTextures_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGetActiveAttrib_wrapper_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
typedef void (gles3_APIENTRY *glGetActiveUniform_wrapper_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
typedef void (gles3_APIENTRY *glGetAttachedShaders_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLuint*);
typedef int (gles3_APIENTRY *glGetAttribLocation_wrapper_proc_t) (GLuint, const GLchar*);
typedef void (gles3_APIENTRY *glGetBooleanv_wrapper_proc_t) (GLenum, GLboolean*);
typedef void (gles3_APIENTRY *glGetBufferParameteriv_wrapper_proc_t) (GLenum, GLenum, GLint*);
typedef GLenum (gles3_APIENTRY *glGetError_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glGetFloatv_wrapper_proc_t) (GLenum, GLfloat*);
typedef void (gles3_APIENTRY *glGetFramebufferAttachmentParameteriv_wrapper_proc_t) (GLenum, GLenum, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetIntegerv_wrapper_proc_t) (GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetProgramiv_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetProgramInfoLog_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glGetRenderbufferParameteriv_wrapper_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetShaderiv_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetShaderInfoLog_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glGetShaderPrecisionFormat_wrapper_proc_t) (GLenum, GLenum, GLint*, GLint*);
typedef void (gles3_APIENTRY *glGetShaderSource_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef const GLubyte* (gles3_APIENTRY *glGetString_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glGetTexParameterfv_wrapper_proc_t) (GLenum, GLenum, GLfloat*);
typedef void (gles3_APIENTRY *glGetTexParameteriv_wrapper_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetUniformfv_wrapper_proc_t) (GLuint, GLint, GLfloat*);
typedef void (gles3_APIENTRY *glGetUniformiv_wrapper_proc_t) (GLuint, GLint, GLint*);
typedef int (gles3_APIENTRY *glGetUniformLocation_wrapper_proc_t) (GLuint, const GLchar*);
typedef void (gles3_APIENTRY *glGetVertexAttribfv_wrapper_proc_t) (GLuint, GLenum, GLfloat*);
typedef void (gles3_APIENTRY *glGetVertexAttribiv_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetVertexAttribPointerv_wrapper_proc_t) (GLuint, GLenum, GLvoid**);
typedef void (gles3_APIENTRY *glHint_wrapper_proc_t) (GLenum, GLenum);
typedef GLboolean (gles3_APIENTRY *glIsBuffer_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glIsEnabled_wrapper_proc_t) (GLenum);
typedef GLboolean (gles3_APIENTRY *glIsFramebuffer_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glIsProgram_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glIsRenderbuffer_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glIsShader_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glIsTexture_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glLineWidth_wrapper_proc_t) (GLfloat);
typedef void (gles3_APIENTRY *glLinkProgram_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glPixelStorei_wrapper_proc_t) (GLenum, GLint);
typedef void (gles3_APIENTRY *glPolygonOffset_wrapper_proc_t) (GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glReadPixels_wrapper_proc_t) (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
typedef void (gles3_APIENTRY *glReleaseShaderCompiler_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glRenderbufferStorage_wrapper_proc_t) (GLenum, GLenum, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glSampleCoverage_wrapper_proc_t) (GLclampf, GLboolean);
typedef void (gles3_APIENTRY *glScissor_wrapper_proc_t) (GLint, GLint, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glShaderBinary_wrapper_proc_t) (GLsizei, const GLuint*, GLenum, const GLvoid*, GLsizei);
typedef void (gles3_APIENTRY *glShaderSource_wrapper_proc_t) (GLuint, GLsizei, const GLchar* const*, const GLint*);
typedef void (gles3_APIENTRY *glStencilFunc_wrapper_proc_t) (GLenum, GLint, GLuint);
typedef void (gles3_APIENTRY *glStencilFuncSeparate_wrapper_proc_t) (GLenum, GLenum, GLint, GLuint);
typedef void (gles3_APIENTRY *glStencilMask_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glStencilMaskSeparate_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glStencilOp_wrapper_proc_t) (GLenum, GLenum, GLenum);
typedef void (gles3_APIENTRY *glStencilOpSeparate_wrapper_proc_t) (GLenum, GLenum, GLenum, GLenum);
typedef void (gles3_APIENTRY *glTexImage2D_wrapper_proc_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glTexParameterf_wrapper_proc_t) (GLenum, GLenum, GLfloat);
typedef void (gles3_APIENTRY *glTexParameterfv_wrapper_proc_t) (GLenum, GLenum, const GLfloat*);
typedef void (gles3_APIENTRY *glTexParameteri_wrapper_proc_t) (GLenum, GLenum, GLint);
typedef void (gles3_APIENTRY *glTexParameteriv_wrapper_proc_t) (GLenum, GLenum, const GLint*);
typedef void (gles3_APIENTRY *glTexSubImage2D_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glUniform1f_wrapper_proc_t) (GLint, GLfloat);
typedef void (gles3_APIENTRY *glUniform1fv_wrapper_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glUniform1i_wrapper_proc_t) (GLint, GLint);
typedef void (gles3_APIENTRY *glUniform1iv_wrapper_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glUniform2f_wrapper_proc_t) (GLint, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glUniform2fv_wrapper_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glUniform2i_wrapper_proc_t) (GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glUniform2iv_wrapper_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glUniform3f_wrapper_proc_t) (GLint, GLfloat, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glUniform3fv_wrapper_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glUniform3i_wrapper_proc_t) (GLint, GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glUniform3iv_wrapper_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glUniform4f_wrapper_proc_t) (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glUniform4fv_wrapper_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glUniform4i_wrapper_proc_t) (GLint, GLint, GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glUniform4iv_wrapper_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glUniformMatrix2fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix3fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix4fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUseProgram_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glValidateProgram_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glVertexAttrib1f_wrapper_proc_t) (GLuint, GLfloat);
typedef void (gles3_APIENTRY *glVertexAttrib1fv_wrapper_proc_t) (GLuint, const GLfloat*);
typedef void (gles3_APIENTRY *glVertexAttrib2f_wrapper_proc_t) (GLuint, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glVertexAttrib2fv_wrapper_proc_t) (GLuint, const GLfloat*);
typedef void (gles3_APIENTRY *glVertexAttrib3f_wrapper_proc_t) (GLuint, GLfloat, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glVertexAttrib3fv_wrapper_proc_t) (GLuint, const GLfloat*);
typedef void (gles3_APIENTRY *glVertexAttrib4f_wrapper_proc_t) (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glVertexAttrib4fv_wrapper_proc_t) (GLuint, const GLfloat*);
typedef void (gles3_APIENTRY *glVertexAttribPointer_wrapper_proc_t) (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glViewport_wrapper_proc_t) (GLint, GLint, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glEGLImageTargetTexture2DOES_wrapper_proc_t) (GLenum, GLeglImageOES);
typedef void (gles3_APIENTRY *glEGLImageTargetRenderbufferStorageOES_wrapper_proc_t) (GLenum, GLeglImageOES);
typedef void (gles3_APIENTRY *glGetProgramBinaryOES_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLenum*, GLvoid*);
typedef void (gles3_APIENTRY *glProgramBinaryOES_wrapper_proc_t) (GLuint, GLenum, const GLvoid*, GLint);
typedef void* (gles3_APIENTRY *glMapBufferOES_wrapper_proc_t) (GLenum, GLenum);
typedef GLboolean (gles3_APIENTRY *glUnmapBufferOES_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glTexImage3DOES_wrapper_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glTexSubImage3DOES_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glCopyTexSubImage3DOES_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glCompressedTexImage3DOES_wrapper_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glCompressedTexSubImage3DOES_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glFramebufferTexture3DOES_wrapper_proc_t) (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
typedef void (gles3_APIENTRY *glBindVertexArrayOES_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDeleteVertexArraysOES_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glGenVertexArraysOES_wrapper_proc_t) (GLsizei, GLuint*);
typedef GLboolean (gles3_APIENTRY *glIsVertexArrayOES_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDiscardFramebufferEXT_wrapper_proc_t) (GLenum, GLsizei, const GLenum*);
typedef void (gles3_APIENTRY *glMultiDrawArraysEXT_wrapper_proc_t) (GLenum, const GLint*, const GLsizei*, GLsizei);
typedef void (gles3_APIENTRY *glMultiDrawElementsEXT_wrapper_proc_t) (GLenum, const GLsizei*, GLenum, const GLvoid* const*, GLsizei);
typedef void (gles3_APIENTRY *glGetPerfMonitorGroupsAMD_wrapper_proc_t) (GLint*, GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGetPerfMonitorCountersAMD_wrapper_proc_t) (GLuint, GLint*, GLint*, GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGetPerfMonitorGroupStringAMD_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glGetPerfMonitorCounterStringAMD_wrapper_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glGetPerfMonitorCounterInfoAMD_wrapper_proc_t) (GLuint, GLuint, GLenum, GLvoid*);
typedef void (gles3_APIENTRY *glGenPerfMonitorsAMD_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glDeletePerfMonitorsAMD_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glSelectPerfMonitorCountersAMD_wrapper_proc_t) (GLuint, GLboolean, GLuint, GLint, GLuint*);
typedef void (gles3_APIENTRY *glBeginPerfMonitorAMD_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glEndPerfMonitorAMD_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glGetPerfMonitorCounterDataAMD_wrapper_proc_t) (GLuint, GLenum, GLsizei, GLuint*, GLint*);
typedef void (gles3_APIENTRY *glRenderbufferStorageMultisampleIMG_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glFramebufferTexture2DMultisampleIMG_wrapper_proc_t) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
typedef void (gles3_APIENTRY *glDeleteFencesNV_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glGenFencesNV_wrapper_proc_t) (GLsizei, GLuint*);
typedef GLboolean (gles3_APIENTRY *glIsFenceNV_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glTestFenceNV_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glGetFenceivNV_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glFinishFenceNV_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glSetFenceNV_wrapper_proc_t) (GLuint, GLenum);
typedef void (gles3_APIENTRY *glCoverageMaskNV_wrapper_proc_t) (GLboolean);
typedef void (gles3_APIENTRY *glCoverageOperationNV_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glGetDriverControlsQCOM_wrapper_proc_t) (GLint*, GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGetDriverControlStringQCOM_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glEnableDriverControlQCOM_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDisableDriverControlQCOM_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glExtGetTexturesQCOM_wrapper_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles3_APIENTRY *glExtGetBuffersQCOM_wrapper_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles3_APIENTRY *glExtGetRenderbuffersQCOM_wrapper_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles3_APIENTRY *glExtGetFramebuffersQCOM_wrapper_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles3_APIENTRY *glExtGetTexLevelParameterivQCOM_wrapper_proc_t) (GLuint, GLenum, GLint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glExtTexObjectStateOverrideiQCOM_wrapper_proc_t) (GLenum, GLenum, GLint);
typedef void (gles3_APIENTRY *glExtGetTexSubImageQCOM_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
typedef void (gles3_APIENTRY *glExtGetBufferPointervQCOM_wrapper_proc_t) (GLenum, GLvoidptr*);
typedef void (gles3_APIENTRY *glExtGetShadersQCOM_wrapper_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles3_APIENTRY *glExtGetProgramsQCOM_wrapper_proc_t) (GLuint*, GLint, GLint*);
typedef GLboolean (gles3_APIENTRY *glExtIsProgramBinaryQCOM_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glExtGetProgramBinarySourceQCOM_wrapper_proc_t) (GLuint, GLenum, GLchar*, GLint*);
typedef void (gles3_APIENTRY *glStartTilingQCOM_wrapper_proc_t) (GLuint, GLuint, GLuint, GLuint, GLbitfield);
typedef void (gles3_APIENTRY *glEndTilingQCOM_wrapper_proc_t) (GLbitfield);
typedef void (gles3_APIENTRY *glVertexAttribPointerData_wrapper_proc_t) (GLuint, GLint, GLenum, GLboolean, GLsizei, void*, GLuint);
typedef void (gles3_APIENTRY *glVertexAttribPointerOffset_wrapper_proc_t) (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint);
typedef void (gles3_APIENTRY *glDrawElementsOffset_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLuint);
typedef void (gles3_APIENTRY *glDrawElementsData_wrapper_proc_t) (GLenum, GLsizei, GLenum, void*, GLuint);
typedef void (gles3_APIENTRY *glGetCompressedTextureFormats_wrapper_proc_t) (int, GLint*);
typedef void (gles3_APIENTRY *glShaderString_wrapper_proc_t) (GLuint, const GLchar*, GLsizei);
typedef int (gles3_APIENTRY *glFinishRoundTrip_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glGenVertexArrays_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glBindVertexArray_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glDeleteVertexArrays_wrapper_proc_t) (GLsizei, const GLuint*);
typedef GLboolean (gles3_APIENTRY *glIsVertexArray_wrapper_proc_t) (GLuint);
typedef void* (gles3_APIENTRY *glMapBufferRange_wrapper_proc_t) (GLenum, GLintptr, GLsizeiptr, GLbitfield);
typedef GLboolean (gles3_APIENTRY *glUnmapBuffer_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glFlushMappedBufferRange_wrapper_proc_t) (GLenum, GLintptr, GLsizeiptr);
typedef void (gles3_APIENTRY *glMapBufferRangeAEMU_wrapper_proc_t) (GLenum, GLintptr, GLsizeiptr, GLbitfield, void*);
typedef void (gles3_APIENTRY *glUnmapBufferAEMU_wrapper_proc_t) (GLenum, GLintptr, GLsizeiptr, GLbitfield, void*, GLboolean*);
typedef void (gles3_APIENTRY *glFlushMappedBufferRangeAEMU_wrapper_proc_t) (GLenum, GLintptr, GLsizeiptr, GLbitfield, void*);
typedef void (gles3_APIENTRY *glReadPixelsOffsetAEMU_wrapper_proc_t) (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glCompressedTexImage2DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, GLuint);
typedef void (gles3_APIENTRY *glCompressedTexSubImage2DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, GLuint);
typedef void (gles3_APIENTRY *glTexImage2DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glTexSubImage2DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glBindBufferRange_wrapper_proc_t) (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
typedef void (gles3_APIENTRY *glBindBufferBase_wrapper_proc_t) (GLenum, GLuint, GLuint);
typedef void (gles3_APIENTRY *glCopyBufferSubData_wrapper_proc_t) (GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
typedef void (gles3_APIENTRY *glClearBufferiv_wrapper_proc_t) (GLenum, GLint, const GLint*);
typedef void (gles3_APIENTRY *glClearBufferuiv_wrapper_proc_t) (GLenum, GLint, const GLuint*);
typedef void (gles3_APIENTRY *glClearBufferfv_wrapper_proc_t) (GLenum, GLint, const GLfloat*);
typedef void (gles3_APIENTRY *glClearBufferfi_wrapper_proc_t) (GLenum, GLint, GLfloat, GLint);
typedef void (gles3_APIENTRY *glGetBufferParameteri64v_wrapper_proc_t) (GLenum, GLenum, GLint64*);
typedef void (gles3_APIENTRY *glGetBufferPointerv_wrapper_proc_t) (GLenum, GLenum, GLvoid**);
typedef void (gles3_APIENTRY *glUniformBlockBinding_wrapper_proc_t) (GLuint, GLuint, GLuint);
typedef GLuint (gles3_APIENTRY *glGetUniformBlockIndex_wrapper_proc_t) (GLuint, const GLchar*);
typedef void (gles3_APIENTRY *glGetUniformIndices_wrapper_proc_t) (GLuint, GLsizei, const GLchar* const*, GLuint*);
typedef void (gles3_APIENTRY *glGetUniformIndicesAEMU_wrapper_proc_t) (GLuint, GLsizei, const GLchar*, GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glGetActiveUniformBlockiv_wrapper_proc_t) (GLuint, GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetActiveUniformBlockName_wrapper_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glUniform1ui_wrapper_proc_t) (GLint, GLuint);
typedef void (gles3_APIENTRY *glUniform2ui_wrapper_proc_t) (GLint, GLuint, GLuint);
typedef void (gles3_APIENTRY *glUniform3ui_wrapper_proc_t) (GLint, GLuint, GLuint, GLuint);
typedef void (gles3_APIENTRY *glUniform4ui_wrapper_proc_t) (GLint, GLuint, GLuint, GLuint, GLuint);
typedef void (gles3_APIENTRY *glUniform1uiv_wrapper_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glUniform2uiv_wrapper_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glUniform3uiv_wrapper_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glUniform4uiv_wrapper_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glUniformMatrix2x3fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix3x2fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix2x4fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix4x2fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix3x4fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glUniformMatrix4x3fv_wrapper_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glGetUniformuiv_wrapper_proc_t) (GLuint, GLint, GLuint*);
typedef void (gles3_APIENTRY *glGetActiveUniformsiv_wrapper_proc_t) (GLuint, GLsizei, const GLuint*, GLenum, GLint*);
typedef void (gles3_APIENTRY *glVertexAttribI4i_wrapper_proc_t) (GLuint, GLint, GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glVertexAttribI4ui_wrapper_proc_t) (GLuint, GLuint, GLuint, GLuint, GLuint);
typedef void (gles3_APIENTRY *glVertexAttribI4iv_wrapper_proc_t) (GLuint, const GLint*);
typedef void (gles3_APIENTRY *glVertexAttribI4uiv_wrapper_proc_t) (GLuint, const GLuint*);
typedef void (gles3_APIENTRY *glVertexAttribIPointer_wrapper_proc_t) (GLuint, GLint, GLenum, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glVertexAttribIPointerOffsetAEMU_wrapper_proc_t) (GLuint, GLint, GLenum, GLsizei, GLuint);
typedef void (gles3_APIENTRY *glVertexAttribIPointerDataAEMU_wrapper_proc_t) (GLuint, GLint, GLenum, GLsizei, void*, GLuint);
typedef void (gles3_APIENTRY *glGetVertexAttribIiv_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetVertexAttribIuiv_wrapper_proc_t) (GLuint, GLenum, GLuint*);
typedef void (gles3_APIENTRY *glVertexAttribDivisor_wrapper_proc_t) (GLuint, GLuint);
typedef void (gles3_APIENTRY *glDrawArraysInstanced_wrapper_proc_t) (GLenum, GLint, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glDrawElementsInstanced_wrapper_proc_t) (GLenum, GLsizei, GLenum, const void*, GLsizei);
typedef void (gles3_APIENTRY *glDrawElementsInstancedDataAEMU_wrapper_proc_t) (GLenum, GLsizei, GLenum, const void*, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glDrawElementsInstancedOffsetAEMU_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLuint, GLsizei);
typedef void (gles3_APIENTRY *glDrawRangeElements_wrapper_proc_t) (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glDrawRangeElementsDataAEMU_wrapper_proc_t) (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*, GLsizei);
typedef void (gles3_APIENTRY *glDrawRangeElementsOffsetAEMU_wrapper_proc_t) (GLenum, GLuint, GLuint, GLsizei, GLenum, GLuint);
typedef GLsync (gles3_APIENTRY *glFenceSync_wrapper_proc_t) (GLenum, GLbitfield);
typedef GLenum (gles3_APIENTRY *glClientWaitSync_wrapper_proc_t) (GLsync, GLbitfield, GLuint64);
typedef void (gles3_APIENTRY *glWaitSync_wrapper_proc_t) (GLsync, GLbitfield, GLuint64);
typedef void (gles3_APIENTRY *glDeleteSync_wrapper_proc_t) (GLsync);
typedef GLboolean (gles3_APIENTRY *glIsSync_wrapper_proc_t) (GLsync);
typedef void (gles3_APIENTRY *glGetSynciv_wrapper_proc_t) (GLsync, GLenum, GLsizei, GLsizei*, GLint*);
typedef uint64_t (gles3_APIENTRY *glFenceSyncAEMU_wrapper_proc_t) (GLenum, GLbitfield);
typedef GLenum (gles3_APIENTRY *glClientWaitSyncAEMU_wrapper_proc_t) (uint64_t, GLbitfield, GLuint64);
typedef void (gles3_APIENTRY *glWaitSyncAEMU_wrapper_proc_t) (uint64_t, GLbitfield, GLuint64);
typedef void (gles3_APIENTRY *glDeleteSyncAEMU_wrapper_proc_t) (uint64_t);
typedef GLboolean (gles3_APIENTRY *glIsSyncAEMU_wrapper_proc_t) (uint64_t);
typedef void (gles3_APIENTRY *glGetSyncivAEMU_wrapper_proc_t) (uint64_t, GLenum, GLsizei, GLsizei*, GLint*);
typedef void (gles3_APIENTRY *glDrawBuffers_wrapper_proc_t) (GLsizei, const GLenum*);
typedef void (gles3_APIENTRY *glReadBuffer_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glBlitFramebuffer_wrapper_proc_t) (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
typedef void (gles3_APIENTRY *glInvalidateFramebuffer_wrapper_proc_t) (GLenum, GLsizei, const GLenum*);
typedef void (gles3_APIENTRY *glInvalidateSubFramebuffer_wrapper_proc_t) (GLenum, GLsizei, const GLenum*, GLint, GLint, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glFramebufferTextureLayer_wrapper_proc_t) (GLenum, GLenum, GLuint, GLint, GLint);
typedef void (gles3_APIENTRY *glRenderbufferStorageMultisample_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glTexStorage2D_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glGetInternalformativ_wrapper_proc_t) (GLenum, GLenum, GLenum, GLsizei, GLint*);
typedef void (gles3_APIENTRY *glBeginTransformFeedback_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glEndTransformFeedback_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glGenTransformFeedbacks_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glDeleteTransformFeedbacks_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glBindTransformFeedback_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glPauseTransformFeedback_wrapper_proc_t) ();
typedef void (gles3_APIENTRY *glResumeTransformFeedback_wrapper_proc_t) ();
typedef GLboolean (gles3_APIENTRY *glIsTransformFeedback_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glTransformFeedbackVaryings_wrapper_proc_t) (GLuint, GLsizei, const GLchar* const*, GLenum);
typedef void (gles3_APIENTRY *glTransformFeedbackVaryingsAEMU_wrapper_proc_t) (GLuint, GLsizei, const char*, GLuint, GLenum);
typedef void (gles3_APIENTRY *glGetTransformFeedbackVarying_wrapper_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, char*);
typedef void (gles3_APIENTRY *glGenSamplers_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glDeleteSamplers_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glBindSampler_wrapper_proc_t) (GLuint, GLuint);
typedef void (gles3_APIENTRY *glSamplerParameterf_wrapper_proc_t) (GLuint, GLenum, GLfloat);
typedef void (gles3_APIENTRY *glSamplerParameteri_wrapper_proc_t) (GLuint, GLenum, GLint);
typedef void (gles3_APIENTRY *glSamplerParameterfv_wrapper_proc_t) (GLuint, GLenum, const GLfloat*);
typedef void (gles3_APIENTRY *glSamplerParameteriv_wrapper_proc_t) (GLuint, GLenum, const GLint*);
typedef void (gles3_APIENTRY *glGetSamplerParameterfv_wrapper_proc_t) (GLuint, GLenum, GLfloat*);
typedef void (gles3_APIENTRY *glGetSamplerParameteriv_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef GLboolean (gles3_APIENTRY *glIsSampler_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glGenQueries_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glDeleteQueries_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glBeginQuery_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glEndQuery_wrapper_proc_t) (GLenum);
typedef void (gles3_APIENTRY *glGetQueryiv_wrapper_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetQueryObjectuiv_wrapper_proc_t) (GLuint, GLenum, GLuint*);
typedef GLboolean (gles3_APIENTRY *glIsQuery_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glProgramParameteri_wrapper_proc_t) (GLuint, GLenum, GLint);
typedef void (gles3_APIENTRY *glProgramBinary_wrapper_proc_t) (GLuint, GLenum, const void*, GLsizei);
typedef void (gles3_APIENTRY *glGetProgramBinary_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLenum*, void*);
typedef GLint (gles3_APIENTRY *glGetFragDataLocation_wrapper_proc_t) (GLuint, const char*);
typedef void (gles3_APIENTRY *glGetInteger64v_wrapper_proc_t) (GLenum, GLint64*);
typedef void (gles3_APIENTRY *glGetIntegeri_v_wrapper_proc_t) (GLenum, GLuint, GLint*);
typedef void (gles3_APIENTRY *glGetInteger64i_v_wrapper_proc_t) (GLenum, GLuint, GLint64*);
typedef void (gles3_APIENTRY *glTexImage3D_wrapper_proc_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glTexImage3DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glTexStorage3D_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
typedef void (gles3_APIENTRY *glTexSubImage3D_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void (gles3_APIENTRY *glTexSubImage3DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glCompressedTexImage3D_wrapper_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glCompressedTexImage3DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, GLuint);
typedef void (gles3_APIENTRY *glCompressedTexSubImage3D_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
typedef void (gles3_APIENTRY *glCompressedTexSubImage3DOffsetAEMU_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, GLuint);
typedef void (gles3_APIENTRY *glCopyTexSubImage3D_wrapper_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef const GLubyte* (gles3_APIENTRY *glGetStringi_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glGetBooleani_v_wrapper_proc_t) (GLenum, GLuint, GLboolean*);
typedef void (gles3_APIENTRY *glMemoryBarrier_wrapper_proc_t) (GLbitfield);
typedef void (gles3_APIENTRY *glMemoryBarrierByRegion_wrapper_proc_t) (GLbitfield);
typedef void (gles3_APIENTRY *glGenProgramPipelines_wrapper_proc_t) (GLsizei, GLuint*);
typedef void (gles3_APIENTRY *glDeleteProgramPipelines_wrapper_proc_t) (GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glBindProgramPipeline_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glGetProgramPipelineiv_wrapper_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetProgramPipelineInfoLog_wrapper_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles3_APIENTRY *glValidateProgramPipeline_wrapper_proc_t) (GLuint);
typedef GLboolean (gles3_APIENTRY *glIsProgramPipeline_wrapper_proc_t) (GLuint);
typedef void (gles3_APIENTRY *glUseProgramStages_wrapper_proc_t) (GLuint, GLbitfield, GLuint);
typedef void (gles3_APIENTRY *glActiveShaderProgram_wrapper_proc_t) (GLuint, GLuint);
typedef GLuint (gles3_APIENTRY *glCreateShaderProgramv_wrapper_proc_t) (GLenum, GLsizei, const char**);
typedef GLuint (gles3_APIENTRY *glCreateShaderProgramvAEMU_wrapper_proc_t) (GLenum, GLsizei, const char*, GLuint);
typedef void (gles3_APIENTRY *glProgramUniform1f_wrapper_proc_t) (GLuint, GLint, GLfloat);
typedef void (gles3_APIENTRY *glProgramUniform2f_wrapper_proc_t) (GLuint, GLint, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glProgramUniform3f_wrapper_proc_t) (GLuint, GLint, GLfloat, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glProgramUniform4f_wrapper_proc_t) (GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles3_APIENTRY *glProgramUniform1i_wrapper_proc_t) (GLuint, GLint, GLint);
typedef void (gles3_APIENTRY *glProgramUniform2i_wrapper_proc_t) (GLuint, GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glProgramUniform3i_wrapper_proc_t) (GLuint, GLint, GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glProgramUniform4i_wrapper_proc_t) (GLuint, GLint, GLint, GLint, GLint, GLint);
typedef void (gles3_APIENTRY *glProgramUniform1ui_wrapper_proc_t) (GLuint, GLint, GLuint);
typedef void (gles3_APIENTRY *glProgramUniform2ui_wrapper_proc_t) (GLuint, GLint, GLint, GLuint);
typedef void (gles3_APIENTRY *glProgramUniform3ui_wrapper_proc_t) (GLuint, GLint, GLint, GLint, GLuint);
typedef void (gles3_APIENTRY *glProgramUniform4ui_wrapper_proc_t) (GLuint, GLint, GLint, GLint, GLint, GLuint);
typedef void (gles3_APIENTRY *glProgramUniform1fv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniform2fv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniform3fv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniform4fv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniform1iv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glProgramUniform2iv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glProgramUniform3iv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glProgramUniform4iv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles3_APIENTRY *glProgramUniform1uiv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glProgramUniform2uiv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glProgramUniform3uiv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glProgramUniform4uiv_wrapper_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix2fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix3fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix4fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix2x3fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix3x2fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix2x4fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix4x2fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix3x4fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glProgramUniformMatrix4x3fv_wrapper_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles3_APIENTRY *glGetProgramInterfaceiv_wrapper_proc_t) (GLuint, GLenum, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetProgramResourceiv_wrapper_proc_t) (GLuint, GLenum, GLuint, GLsizei, const GLenum*, GLsizei, GLsizei*, GLint*);
typedef GLuint (gles3_APIENTRY *glGetProgramResourceIndex_wrapper_proc_t) (GLuint, GLenum, const char*);
typedef GLint (gles3_APIENTRY *glGetProgramResourceLocation_wrapper_proc_t) (GLuint, GLenum, const char*);
typedef void (gles3_APIENTRY *glGetProgramResourceName_wrapper_proc_t) (GLuint, GLenum, GLuint, GLsizei, GLsizei*, char*);
typedef void (gles3_APIENTRY *glBindImageTexture_wrapper_proc_t) (GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum);
typedef void (gles3_APIENTRY *glDispatchCompute_wrapper_proc_t) (GLuint, GLuint, GLuint);
typedef void (gles3_APIENTRY *glDispatchComputeIndirect_wrapper_proc_t) (GLintptr);
typedef void (gles3_APIENTRY *glBindVertexBuffer_wrapper_proc_t) (GLuint, GLuint, GLintptr, GLintptr);
typedef void (gles3_APIENTRY *glVertexAttribBinding_wrapper_proc_t) (GLuint, GLuint);
typedef void (gles3_APIENTRY *glVertexAttribFormat_wrapper_proc_t) (GLuint, GLint, GLenum, GLboolean, GLuint);
typedef void (gles3_APIENTRY *glVertexAttribIFormat_wrapper_proc_t) (GLuint, GLint, GLenum, GLuint);
typedef void (gles3_APIENTRY *glVertexBindingDivisor_wrapper_proc_t) (GLuint, GLuint);
typedef void (gles3_APIENTRY *glDrawArraysIndirect_wrapper_proc_t) (GLenum, const void*);
typedef void (gles3_APIENTRY *glDrawArraysIndirectDataAEMU_wrapper_proc_t) (GLenum, const void*, GLuint);
typedef void (gles3_APIENTRY *glDrawArraysIndirectOffsetAEMU_wrapper_proc_t) (GLenum, GLuint);
typedef void (gles3_APIENTRY *glDrawElementsIndirect_wrapper_proc_t) (GLenum, GLenum, const void*);
typedef void (gles3_APIENTRY *glDrawElementsIndirectDataAEMU_wrapper_proc_t) (GLenum, GLenum, const void*, GLuint);
typedef void (gles3_APIENTRY *glDrawElementsIndirectOffsetAEMU_wrapper_proc_t) (GLenum, GLenum, GLuint);
typedef void (gles3_APIENTRY *glTexStorage2DMultisample_wrapper_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
typedef void (gles3_APIENTRY *glSampleMaski_wrapper_proc_t) (GLuint, GLbitfield);
typedef void (gles3_APIENTRY *glGetMultisamplefv_wrapper_proc_t) (GLenum, GLuint, GLfloat*);
typedef void (gles3_APIENTRY *glFramebufferParameteri_wrapper_proc_t) (GLenum, GLenum, GLint);
typedef void (gles3_APIENTRY *glGetFramebufferParameteriv_wrapper_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles3_APIENTRY *glGetTexLevelParameterfv_wrapper_proc_t) (GLenum, GLint, GLenum, GLfloat*);
typedef void (gles3_APIENTRY *glGetTexLevelParameteriv_wrapper_proc_t) (GLenum, GLint, GLenum, GLint*);


#endif
