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



#include "gles2_types.h"
#ifdef _MSC_VER
#include <stdint.h>
#endif
#ifndef gles2_APIENTRY
#define gles2_APIENTRY 
#endif
typedef void (gles2_APIENTRY *glActiveTexture_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glAttachShader_server_proc_t) (void *ctx, GLuint, GLuint);
typedef void (gles2_APIENTRY *glAttachShader_dec_server_proc_t) (GLuint, GLuint);
typedef void (gles2_APIENTRY *glBindAttribLocation_server_proc_t) (void *ctx, GLuint, GLuint, const GLchar*);
typedef void (gles2_APIENTRY *glBindAttribLocation_dec_server_proc_t) (GLuint, GLuint, const GLchar*);
typedef void (gles2_APIENTRY *glBindBuffer_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glBindFramebuffer_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glBindRenderbuffer_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glBindTexture_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glBlendColor_server_proc_t) (GLclampf, GLclampf, GLclampf, GLclampf);
typedef void (gles2_APIENTRY *glBlendEquation_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glBlendEquationSeparate_server_proc_t) (GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendFunc_server_proc_t) (GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendFuncSeparate_server_proc_t) (GLenum, GLenum, GLenum, GLenum);
typedef void (gles2_APIENTRY *glBufferData_server_proc_t) (GLenum, GLsizeiptr, const GLvoid*, GLenum);
typedef void (gles2_APIENTRY *glBufferSubData_server_proc_t) (GLenum, GLintptr, GLsizeiptr, const GLvoid*);
typedef GLenum (gles2_APIENTRY *glCheckFramebufferStatus_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glClear_server_proc_t) (GLbitfield);
typedef void (gles2_APIENTRY *glClearColor_server_proc_t) (GLclampf, GLclampf, GLclampf, GLclampf);
typedef void (gles2_APIENTRY *glClearDepthf_server_proc_t) (GLclampf);
typedef void (gles2_APIENTRY *glClearStencil_server_proc_t) (GLint);
typedef void (gles2_APIENTRY *glColorMask_server_proc_t) (GLboolean, GLboolean, GLboolean, GLboolean);
typedef void (gles2_APIENTRY *glCompileShader_server_proc_t) (void *ctx, GLuint);
typedef void (gles2_APIENTRY *glCompileShader_dec_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glCompressedTexImage2D_server_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glCompressedTexSubImage2D_server_proc_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glCopyTexImage2D_server_proc_t) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
typedef void (gles2_APIENTRY *glCopyTexSubImage2D_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef GLuint (gles2_APIENTRY *glCreateProgram_server_proc_t) (void *ctx);
typedef GLuint (gles2_APIENTRY *glCreateProgram_dec_server_proc_t) ();
typedef GLuint (gles2_APIENTRY *glCreateShader_server_proc_t) (void *ctx, GLenum);
typedef GLuint (gles2_APIENTRY *glCreateShader_dec_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glCullFace_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glDeleteBuffers_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteBuffers_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteFramebuffers_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteFramebuffers_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteProgram_server_proc_t) (void *ctx, GLuint);
typedef void (gles2_APIENTRY *glDeleteProgram_dec_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDeleteRenderbuffers_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteRenderbuffers_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteShader_server_proc_t) (void *ctx, GLuint);
typedef void (gles2_APIENTRY *glDeleteShader_dec_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDeleteTextures_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteTextures_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDepthFunc_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glDepthMask_server_proc_t) (GLboolean);
typedef void (gles2_APIENTRY *glDepthRangef_server_proc_t) (GLclampf, GLclampf);
typedef void (gles2_APIENTRY *glDetachShader_server_proc_t) (void *ctx, GLuint, GLuint);
typedef void (gles2_APIENTRY *glDetachShader_dec_server_proc_t) (GLuint, GLuint);
typedef void (gles2_APIENTRY *glDisable_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glDisableVertexAttribArray_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDrawArrays_server_proc_t) (GLenum, GLint, GLsizei);
typedef void (gles2_APIENTRY *glDrawElements_server_proc_t) (GLenum, GLsizei, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glEnable_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glEnableVertexAttribArray_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glFinish_server_proc_t) ();
typedef void (gles2_APIENTRY *glFlush_server_proc_t) ();
typedef void (gles2_APIENTRY *glFramebufferRenderbuffer_server_proc_t) (GLenum, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glFramebufferTexture2D_server_proc_t) (GLenum, GLenum, GLenum, GLuint, GLint);
typedef void (gles2_APIENTRY *glFrontFace_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glGenBuffers_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenBuffers_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenerateMipmap_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glGenFramebuffers_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenFramebuffers_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenRenderbuffers_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenRenderbuffers_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenTextures_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenTextures_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGetActiveAttrib_server_proc_t) (void *ctx, GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
typedef void (gles2_APIENTRY *glGetActiveAttrib_dec_server_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
typedef void (gles2_APIENTRY *glGetActiveUniform_server_proc_t) (void *ctx, GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
typedef void (gles2_APIENTRY *glGetActiveUniform_dec_server_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
typedef void (gles2_APIENTRY *glGetAttachedShaders_server_proc_t) (void *ctx, GLuint, GLsizei, GLsizei*, GLuint*);
typedef void (gles2_APIENTRY *glGetAttachedShaders_dec_server_proc_t) (GLuint, GLsizei, GLsizei*, GLuint*);
typedef int (gles2_APIENTRY *glGetAttribLocation_server_proc_t) (void *ctx, GLuint, const GLchar*);
typedef int (gles2_APIENTRY *glGetAttribLocation_dec_server_proc_t) (GLuint, const GLchar*);
typedef void (gles2_APIENTRY *glGetBooleanv_server_proc_t) (GLenum, GLboolean*);
typedef void (gles2_APIENTRY *glGetBufferParameteriv_server_proc_t) (GLenum, GLenum, GLint*);
typedef GLenum (gles2_APIENTRY *glGetError_server_proc_t) ();
typedef void (gles2_APIENTRY *glGetFloatv_server_proc_t) (GLenum, GLfloat*);
typedef void (gles2_APIENTRY *glGetFramebufferAttachmentParameteriv_server_proc_t) (GLenum, GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetIntegerv_server_proc_t) (GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetProgramiv_server_proc_t) (void *ctx, GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetProgramiv_dec_server_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetProgramInfoLog_server_proc_t) (void *ctx, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetProgramInfoLog_dec_server_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetRenderbufferParameteriv_server_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetShaderiv_server_proc_t) (void *ctx, GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetShaderiv_dec_server_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetShaderInfoLog_server_proc_t) (void *ctx, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetShaderInfoLog_dec_server_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetShaderPrecisionFormat_server_proc_t) (GLenum, GLenum, GLint*, GLint*);
typedef void (gles2_APIENTRY *glGetShaderSource_server_proc_t) (void *ctx, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetShaderSource_dec_server_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef const GLubyte* (gles2_APIENTRY *glGetString_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glGetTexParameterfv_server_proc_t) (GLenum, GLenum, GLfloat*);
typedef void (gles2_APIENTRY *glGetTexParameteriv_server_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetUniformfv_server_proc_t) (void *ctx, GLuint, GLint, GLfloat*);
typedef void (gles2_APIENTRY *glGetUniformfv_dec_server_proc_t) (GLuint, GLint, GLfloat*);
typedef void (gles2_APIENTRY *glGetUniformiv_server_proc_t) (void *ctx, GLuint, GLint, GLint*);
typedef void (gles2_APIENTRY *glGetUniformiv_dec_server_proc_t) (GLuint, GLint, GLint*);
typedef int (gles2_APIENTRY *glGetUniformLocation_server_proc_t) (void *ctx, GLuint, const GLchar*);
typedef int (gles2_APIENTRY *glGetUniformLocation_dec_server_proc_t) (GLuint, const GLchar*);
typedef void (gles2_APIENTRY *glGetVertexAttribfv_server_proc_t) (GLuint, GLenum, GLfloat*);
typedef void (gles2_APIENTRY *glGetVertexAttribiv_server_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetVertexAttribPointerv_server_proc_t) (GLuint, GLenum, GLvoid**);
typedef void (gles2_APIENTRY *glHint_server_proc_t) (GLenum, GLenum);
typedef GLboolean (gles2_APIENTRY *glIsBuffer_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glIsEnabled_server_proc_t) (GLenum);
typedef GLboolean (gles2_APIENTRY *glIsFramebuffer_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glIsProgram_server_proc_t) (void *ctx, GLuint);
typedef GLboolean (gles2_APIENTRY *glIsProgram_dec_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glIsRenderbuffer_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glIsShader_server_proc_t) (void *ctx, GLuint);
typedef GLboolean (gles2_APIENTRY *glIsShader_dec_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glIsTexture_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glLineWidth_server_proc_t) (GLfloat);
typedef void (gles2_APIENTRY *glLinkProgram_server_proc_t) (void *ctx, GLuint);
typedef void (gles2_APIENTRY *glLinkProgram_dec_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glPixelStorei_server_proc_t) (GLenum, GLint);
typedef void (gles2_APIENTRY *glPolygonOffset_server_proc_t) (GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glReadPixels_server_proc_t) (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
typedef void (gles2_APIENTRY *glReleaseShaderCompiler_server_proc_t) ();
typedef void (gles2_APIENTRY *glRenderbufferStorage_server_proc_t) (GLenum, GLenum, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glSampleCoverage_server_proc_t) (GLclampf, GLboolean);
typedef void (gles2_APIENTRY *glScissor_server_proc_t) (GLint, GLint, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glShaderBinary_server_proc_t) (GLsizei, const GLuint*, GLenum, const GLvoid*, GLsizei);
typedef void (gles2_APIENTRY *glShaderSource_server_proc_t) (GLuint, GLsizei, const GLchar* const*, const GLint*);
typedef void (gles2_APIENTRY *glStencilFunc_server_proc_t) (GLenum, GLint, GLuint);
typedef void (gles2_APIENTRY *glStencilFuncSeparate_server_proc_t) (GLenum, GLenum, GLint, GLuint);
typedef void (gles2_APIENTRY *glStencilMask_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glStencilMaskSeparate_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glStencilOp_server_proc_t) (GLenum, GLenum, GLenum);
typedef void (gles2_APIENTRY *glStencilOpSeparate_server_proc_t) (GLenum, GLenum, GLenum, GLenum);
typedef void (gles2_APIENTRY *glTexImage2D_server_proc_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glTexParameterf_server_proc_t) (GLenum, GLenum, GLfloat);
typedef void (gles2_APIENTRY *glTexParameterfv_server_proc_t) (GLenum, GLenum, const GLfloat*);
typedef void (gles2_APIENTRY *glTexParameteri_server_proc_t) (GLenum, GLenum, GLint);
typedef void (gles2_APIENTRY *glTexParameteriv_server_proc_t) (GLenum, GLenum, const GLint*);
typedef void (gles2_APIENTRY *glTexSubImage2D_server_proc_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glUniform1f_server_proc_t) (GLint, GLfloat);
typedef void (gles2_APIENTRY *glUniform1fv_server_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glUniform1i_server_proc_t) (GLint, GLint);
typedef void (gles2_APIENTRY *glUniform1iv_server_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glUniform2f_server_proc_t) (GLint, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glUniform2fv_server_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glUniform2i_server_proc_t) (GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glUniform2iv_server_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glUniform3f_server_proc_t) (GLint, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glUniform3fv_server_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glUniform3i_server_proc_t) (GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glUniform3iv_server_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glUniform4f_server_proc_t) (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glUniform4fv_server_proc_t) (GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glUniform4i_server_proc_t) (GLint, GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glUniform4iv_server_proc_t) (GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glUniformMatrix2fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix3fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix4fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUseProgram_server_proc_t) (void *ctx, GLuint);
typedef void (gles2_APIENTRY *glUseProgram_dec_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glValidateProgram_server_proc_t) (void *ctx, GLuint);
typedef void (gles2_APIENTRY *glValidateProgram_dec_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glVertexAttrib1f_server_proc_t) (GLuint, GLfloat);
typedef void (gles2_APIENTRY *glVertexAttrib1fv_server_proc_t) (GLuint, const GLfloat*);
typedef void (gles2_APIENTRY *glVertexAttrib2f_server_proc_t) (GLuint, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glVertexAttrib2fv_server_proc_t) (GLuint, const GLfloat*);
typedef void (gles2_APIENTRY *glVertexAttrib3f_server_proc_t) (GLuint, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glVertexAttrib3fv_server_proc_t) (GLuint, const GLfloat*);
typedef void (gles2_APIENTRY *glVertexAttrib4f_server_proc_t) (GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glVertexAttrib4fv_server_proc_t) (GLuint, const GLfloat*);
typedef void (gles2_APIENTRY *glVertexAttribPointer_server_proc_t) (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glViewport_server_proc_t) (GLint, GLint, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glEGLImageTargetTexture2DOES_server_proc_t) (GLenum, GLeglImageOES);
typedef void (gles2_APIENTRY *glEGLImageTargetRenderbufferStorageOES_server_proc_t) (GLenum, GLeglImageOES);
typedef void (gles2_APIENTRY *glGetProgramBinaryOES_server_proc_t) (void *ctx, GLuint, GLsizei, GLsizei*, GLenum*, GLvoid*);
typedef void (gles2_APIENTRY *glGetProgramBinaryOES_dec_server_proc_t) (GLuint, GLsizei, GLsizei*, GLenum*, GLvoid*);
typedef void (gles2_APIENTRY *glProgramBinaryOES_server_proc_t) (void *ctx, GLuint, GLenum, const GLvoid*, GLint);
typedef void (gles2_APIENTRY *glProgramBinaryOES_dec_server_proc_t) (GLuint, GLenum, const GLvoid*, GLint);
typedef void* (gles2_APIENTRY *glMapBufferOES_server_proc_t) (GLenum, GLenum);
typedef GLboolean (gles2_APIENTRY *glUnmapBufferOES_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glTexImage3DOES_server_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glTexSubImage3DOES_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glCopyTexSubImage3DOES_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glCompressedTexImage3DOES_server_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glCompressedTexSubImage3DOES_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glFramebufferTexture3DOES_server_proc_t) (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
typedef void (gles2_APIENTRY *glBindVertexArrayOES_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDeleteVertexArraysOES_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteVertexArraysOES_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glGenVertexArraysOES_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenVertexArraysOES_dec_server_proc_t) (GLsizei, GLuint*);
typedef GLboolean (gles2_APIENTRY *glIsVertexArrayOES_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDiscardFramebufferEXT_server_proc_t) (GLenum, GLsizei, const GLenum*);
typedef void (gles2_APIENTRY *glMultiDrawArraysEXT_server_proc_t) (GLenum, const GLint*, const GLsizei*, GLsizei);
typedef void (gles2_APIENTRY *glMultiDrawElementsEXT_server_proc_t) (GLenum, const GLsizei*, GLenum, const GLvoid* const*, GLsizei);
typedef void (gles2_APIENTRY *glGetPerfMonitorGroupsAMD_server_proc_t) (GLint*, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGetPerfMonitorCountersAMD_server_proc_t) (GLuint, GLint*, GLint*, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGetPerfMonitorGroupStringAMD_server_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetPerfMonitorCounterStringAMD_server_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetPerfMonitorCounterInfoAMD_server_proc_t) (GLuint, GLuint, GLenum, GLvoid*);
typedef void (gles2_APIENTRY *glGenPerfMonitorsAMD_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glDeletePerfMonitorsAMD_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glSelectPerfMonitorCountersAMD_server_proc_t) (GLuint, GLboolean, GLuint, GLint, GLuint*);
typedef void (gles2_APIENTRY *glBeginPerfMonitorAMD_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glEndPerfMonitorAMD_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glGetPerfMonitorCounterDataAMD_server_proc_t) (GLuint, GLenum, GLsizei, GLuint*, GLint*);
typedef void (gles2_APIENTRY *glRenderbufferStorageMultisampleIMG_server_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glFramebufferTexture2DMultisampleIMG_server_proc_t) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
typedef void (gles2_APIENTRY *glDeleteFencesNV_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glGenFencesNV_server_proc_t) (GLsizei, GLuint*);
typedef GLboolean (gles2_APIENTRY *glIsFenceNV_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glTestFenceNV_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glGetFenceivNV_server_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glFinishFenceNV_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glSetFenceNV_server_proc_t) (GLuint, GLenum);
typedef void (gles2_APIENTRY *glCoverageMaskNV_server_proc_t) (GLboolean);
typedef void (gles2_APIENTRY *glCoverageOperationNV_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glGetDriverControlsQCOM_server_proc_t) (GLint*, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGetDriverControlStringQCOM_server_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glEnableDriverControlQCOM_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDisableDriverControlQCOM_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glExtGetTexturesQCOM_server_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles2_APIENTRY *glExtGetBuffersQCOM_server_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles2_APIENTRY *glExtGetRenderbuffersQCOM_server_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles2_APIENTRY *glExtGetFramebuffersQCOM_server_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles2_APIENTRY *glExtGetTexLevelParameterivQCOM_server_proc_t) (GLuint, GLenum, GLint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glExtTexObjectStateOverrideiQCOM_server_proc_t) (GLenum, GLenum, GLint);
typedef void (gles2_APIENTRY *glExtGetTexSubImageQCOM_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
typedef void (gles2_APIENTRY *glExtGetBufferPointervQCOM_server_proc_t) (GLenum, GLvoidptr*);
typedef void (gles2_APIENTRY *glExtGetShadersQCOM_server_proc_t) (GLuint*, GLint, GLint*);
typedef void (gles2_APIENTRY *glExtGetProgramsQCOM_server_proc_t) (GLuint*, GLint, GLint*);
typedef GLboolean (gles2_APIENTRY *glExtIsProgramBinaryQCOM_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glExtGetProgramBinarySourceQCOM_server_proc_t) (GLuint, GLenum, GLchar*, GLint*);
typedef void (gles2_APIENTRY *glStartTilingQCOM_server_proc_t) (GLuint, GLuint, GLuint, GLuint, GLbitfield);
typedef void (gles2_APIENTRY *glEndTilingQCOM_server_proc_t) (GLbitfield);
typedef void (gles2_APIENTRY *glVertexAttribPointerData_server_proc_t) (void *ctx, GLuint, GLint, GLenum, GLboolean, GLsizei, void*, GLuint);
typedef void (gles2_APIENTRY *glVertexAttribPointerOffset_server_proc_t) (void *ctx, GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint);
typedef void (gles2_APIENTRY *glDrawElementsOffset_server_proc_t) (void *ctx, GLenum, GLsizei, GLenum, GLuint);
typedef void (gles2_APIENTRY *glDrawElementsData_server_proc_t) (void *ctx, GLenum, GLsizei, GLenum, void*, GLuint);
typedef void (gles2_APIENTRY *glGetCompressedTextureFormats_server_proc_t) (void *ctx, int, GLint*);
typedef void (gles2_APIENTRY *glShaderString_server_proc_t) (void *ctx, GLuint, const GLchar*, GLsizei);
typedef int (gles2_APIENTRY *glFinishRoundTrip_server_proc_t) (void *ctx);
typedef void (gles2_APIENTRY *glGenVertexArrays_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenVertexArrays_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glBindVertexArray_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glDeleteVertexArrays_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteVertexArrays_dec_server_proc_t) (GLsizei, const GLuint*);
typedef GLboolean (gles2_APIENTRY *glIsVertexArray_server_proc_t) (GLuint);
typedef void* (gles2_APIENTRY *glMapBufferRange_server_proc_t) (GLenum, GLintptr, GLsizeiptr, GLbitfield);
typedef GLboolean (gles2_APIENTRY *glUnmapBuffer_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glFlushMappedBufferRange_server_proc_t) (GLenum, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glMapBufferRangeAEMU_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, void*);
typedef void (gles2_APIENTRY *glUnmapBufferAEMU_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, void*, GLboolean*);
typedef void (gles2_APIENTRY *glFlushMappedBufferRangeAEMU_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, void*);
typedef void (gles2_APIENTRY *glReadPixelsOffsetAEMU_server_proc_t) (void *ctx, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glCompressedTexImage2DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, GLuint);
typedef void (gles2_APIENTRY *glCompressedTexSubImage2DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, GLuint);
typedef void (gles2_APIENTRY *glTexImage2DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexSubImage2DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glBindBufferRange_server_proc_t) (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glBindBufferBase_server_proc_t) (GLenum, GLuint, GLuint);
typedef void (gles2_APIENTRY *glCopyBufferSubData_server_proc_t) (GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glClearBufferiv_server_proc_t) (GLenum, GLint, const GLint*);
typedef void (gles2_APIENTRY *glClearBufferuiv_server_proc_t) (GLenum, GLint, const GLuint*);
typedef void (gles2_APIENTRY *glClearBufferfv_server_proc_t) (GLenum, GLint, const GLfloat*);
typedef void (gles2_APIENTRY *glClearBufferfi_server_proc_t) (GLenum, GLint, GLfloat, GLint);
typedef void (gles2_APIENTRY *glGetBufferParameteri64v_server_proc_t) (GLenum, GLenum, GLint64*);
typedef void (gles2_APIENTRY *glGetBufferPointerv_server_proc_t) (GLenum, GLenum, GLvoid**);
typedef void (gles2_APIENTRY *glUniformBlockBinding_server_proc_t) (void *ctx, GLuint, GLuint, GLuint);
typedef void (gles2_APIENTRY *glUniformBlockBinding_dec_server_proc_t) (GLuint, GLuint, GLuint);
typedef GLuint (gles2_APIENTRY *glGetUniformBlockIndex_server_proc_t) (void *ctx, GLuint, const GLchar*);
typedef GLuint (gles2_APIENTRY *glGetUniformBlockIndex_dec_server_proc_t) (GLuint, const GLchar*);
typedef void (gles2_APIENTRY *glGetUniformIndices_server_proc_t) (GLuint, GLsizei, const GLchar**, GLuint*);
typedef void (gles2_APIENTRY *glGetUniformIndicesAEMU_server_proc_t) (void *ctx, GLuint, GLsizei, const GLchar*, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGetActiveUniformBlockiv_server_proc_t) (void *ctx, GLuint, GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetActiveUniformBlockiv_dec_server_proc_t) (GLuint, GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetActiveUniformBlockName_server_proc_t) (void *ctx, GLuint, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glGetActiveUniformBlockName_dec_server_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glUniform1ui_server_proc_t) (GLint, GLuint);
typedef void (gles2_APIENTRY *glUniform2ui_server_proc_t) (GLint, GLuint, GLuint);
typedef void (gles2_APIENTRY *glUniform3ui_server_proc_t) (GLint, GLuint, GLuint, GLuint);
typedef void (gles2_APIENTRY *glUniform4ui_server_proc_t) (GLint, GLint, GLuint, GLuint, GLuint);
typedef void (gles2_APIENTRY *glUniform1uiv_server_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glUniform2uiv_server_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glUniform3uiv_server_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glUniform4uiv_server_proc_t) (GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glUniformMatrix2x3fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix3x2fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix2x4fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix4x2fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix3x4fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glUniformMatrix4x3fv_server_proc_t) (GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glGetUniformuiv_server_proc_t) (void *ctx, GLuint, GLint, GLuint*);
typedef void (gles2_APIENTRY *glGetUniformuiv_dec_server_proc_t) (GLuint, GLint, GLuint*);
typedef void (gles2_APIENTRY *glGetActiveUniformsiv_server_proc_t) (void *ctx, GLuint, GLsizei, const GLuint*, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetActiveUniformsiv_dec_server_proc_t) (GLuint, GLsizei, const GLuint*, GLenum, GLint*);
typedef void (gles2_APIENTRY *glVertexAttribI4i_server_proc_t) (GLuint, GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glVertexAttribI4ui_server_proc_t) (GLuint, GLuint, GLuint, GLuint, GLuint);
typedef void (gles2_APIENTRY *glVertexAttribI4iv_server_proc_t) (GLuint, const GLint*);
typedef void (gles2_APIENTRY *glVertexAttribI4uiv_server_proc_t) (GLuint, const GLuint*);
typedef void (gles2_APIENTRY *glVertexAttribIPointer_server_proc_t) (GLuint, GLint, GLenum, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glVertexAttribIPointerOffsetAEMU_server_proc_t) (void *ctx, GLuint, GLint, GLenum, GLsizei, GLuint);
typedef void (gles2_APIENTRY *glVertexAttribIPointerDataAEMU_server_proc_t) (void *ctx, GLuint, GLint, GLenum, GLsizei, void*, GLuint);
typedef void (gles2_APIENTRY *glGetVertexAttribIiv_server_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetVertexAttribIuiv_server_proc_t) (GLuint, GLenum, GLuint*);
typedef void (gles2_APIENTRY *glVertexAttribDivisor_server_proc_t) (GLuint, GLuint);
typedef void (gles2_APIENTRY *glDrawArraysInstanced_server_proc_t) (GLenum, GLint, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glDrawElementsInstanced_server_proc_t) (GLenum, GLsizei, GLenum, const void*, GLsizei);
typedef void (gles2_APIENTRY *glDrawElementsInstancedDataAEMU_server_proc_t) (void *ctx, GLenum, GLsizei, GLenum, const void*, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glDrawElementsInstancedOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLsizei, GLenum, GLuint, GLsizei);
typedef void (gles2_APIENTRY *glDrawRangeElements_server_proc_t) (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glDrawRangeElementsDataAEMU_server_proc_t) (void *ctx, GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*, GLsizei);
typedef void (gles2_APIENTRY *glDrawRangeElementsOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLuint, GLuint, GLsizei, GLenum, GLuint);
typedef GLsync (gles2_APIENTRY *glFenceSync_server_proc_t) (GLenum, GLbitfield);
typedef GLenum (gles2_APIENTRY *glClientWaitSync_server_proc_t) (GLsync, GLbitfield, GLuint64);
typedef void (gles2_APIENTRY *glWaitSync_server_proc_t) (GLsync, GLbitfield, GLuint64);
typedef void (gles2_APIENTRY *glDeleteSync_server_proc_t) (GLsync);
typedef GLboolean (gles2_APIENTRY *glIsSync_server_proc_t) (GLsync);
typedef void (gles2_APIENTRY *glGetSynciv_server_proc_t) (GLsync, GLenum, GLsizei, GLsizei*, GLint*);
typedef uint64_t (gles2_APIENTRY *glFenceSyncAEMU_server_proc_t) (void *ctx, GLenum, GLbitfield);
typedef GLenum (gles2_APIENTRY *glClientWaitSyncAEMU_server_proc_t) (void *ctx, uint64_t, GLbitfield, GLuint64);
typedef void (gles2_APIENTRY *glWaitSyncAEMU_server_proc_t) (void *ctx, uint64_t, GLbitfield, GLuint64);
typedef void (gles2_APIENTRY *glDeleteSyncAEMU_server_proc_t) (void *ctx, uint64_t);
typedef GLboolean (gles2_APIENTRY *glIsSyncAEMU_server_proc_t) (void *ctx, uint64_t);
typedef void (gles2_APIENTRY *glGetSyncivAEMU_server_proc_t) (void *ctx, uint64_t, GLenum, GLsizei, GLsizei*, GLint*);
typedef void (gles2_APIENTRY *glDrawBuffers_server_proc_t) (GLsizei, const GLenum*);
typedef void (gles2_APIENTRY *glReadBuffer_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glBlitFramebuffer_server_proc_t) (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
typedef void (gles2_APIENTRY *glInvalidateFramebuffer_server_proc_t) (GLenum, GLsizei, const GLenum*);
typedef void (gles2_APIENTRY *glInvalidateSubFramebuffer_server_proc_t) (GLenum, GLsizei, const GLenum*, GLint, GLint, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glFramebufferTextureLayer_server_proc_t) (GLenum, GLenum, GLuint, GLint, GLint);
typedef void (gles2_APIENTRY *glRenderbufferStorageMultisample_server_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glTexStorage2D_server_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glGetInternalformativ_server_proc_t) (GLenum, GLenum, GLenum, GLsizei, GLint*);
typedef void (gles2_APIENTRY *glBeginTransformFeedback_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glEndTransformFeedback_server_proc_t) ();
typedef void (gles2_APIENTRY *glGenTransformFeedbacks_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenTransformFeedbacks_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glDeleteTransformFeedbacks_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteTransformFeedbacks_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glBindTransformFeedback_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glPauseTransformFeedback_server_proc_t) ();
typedef void (gles2_APIENTRY *glResumeTransformFeedback_server_proc_t) ();
typedef GLboolean (gles2_APIENTRY *glIsTransformFeedback_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glTransformFeedbackVaryings_server_proc_t) (void *ctx, GLuint, GLsizei, const char**, GLenum);
typedef void (gles2_APIENTRY *glTransformFeedbackVaryings_dec_server_proc_t) (GLuint, GLsizei, const char**, GLenum);
typedef void (gles2_APIENTRY *glTransformFeedbackVaryingsAEMU_server_proc_t) (void *ctx, GLuint, GLsizei, const char*, GLuint, GLenum);
typedef void (gles2_APIENTRY *glGetTransformFeedbackVarying_server_proc_t) (void *ctx, GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, char*);
typedef void (gles2_APIENTRY *glGetTransformFeedbackVarying_dec_server_proc_t) (GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, char*);
typedef void (gles2_APIENTRY *glGenSamplers_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenSamplers_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glDeleteSamplers_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteSamplers_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glBindSampler_server_proc_t) (GLuint, GLuint);
typedef void (gles2_APIENTRY *glSamplerParameterf_server_proc_t) (GLuint, GLenum, GLfloat);
typedef void (gles2_APIENTRY *glSamplerParameteri_server_proc_t) (GLuint, GLenum, GLint);
typedef void (gles2_APIENTRY *glSamplerParameterfv_server_proc_t) (GLuint, GLenum, const GLfloat*);
typedef void (gles2_APIENTRY *glSamplerParameteriv_server_proc_t) (GLuint, GLenum, const GLint*);
typedef void (gles2_APIENTRY *glGetSamplerParameterfv_server_proc_t) (GLuint, GLenum, GLfloat*);
typedef void (gles2_APIENTRY *glGetSamplerParameteriv_server_proc_t) (GLuint, GLenum, GLint*);
typedef GLboolean (gles2_APIENTRY *glIsSampler_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glGenQueries_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenQueries_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glDeleteQueries_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteQueries_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glBeginQuery_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glEndQuery_server_proc_t) (GLenum);
typedef void (gles2_APIENTRY *glGetQueryiv_server_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetQueryObjectuiv_server_proc_t) (GLuint, GLenum, GLuint*);
typedef GLboolean (gles2_APIENTRY *glIsQuery_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glProgramParameteri_server_proc_t) (void *ctx, GLuint, GLenum, GLint);
typedef void (gles2_APIENTRY *glProgramParameteri_dec_server_proc_t) (GLuint, GLenum, GLint);
typedef void (gles2_APIENTRY *glProgramBinary_server_proc_t) (void *ctx, GLuint, GLenum, const void*, GLsizei);
typedef void (gles2_APIENTRY *glProgramBinary_dec_server_proc_t) (GLuint, GLenum, const void*, GLsizei);
typedef void (gles2_APIENTRY *glGetProgramBinary_server_proc_t) (void *ctx, GLuint, GLsizei, GLsizei*, GLenum*, void*);
typedef void (gles2_APIENTRY *glGetProgramBinary_dec_server_proc_t) (GLuint, GLsizei, GLsizei*, GLenum*, void*);
typedef GLint (gles2_APIENTRY *glGetFragDataLocation_server_proc_t) (void *ctx, GLuint, const char*);
typedef GLint (gles2_APIENTRY *glGetFragDataLocation_dec_server_proc_t) (GLuint, const char*);
typedef void (gles2_APIENTRY *glGetInteger64v_server_proc_t) (GLenum, GLint64*);
typedef void (gles2_APIENTRY *glGetIntegeri_v_server_proc_t) (GLenum, GLuint, GLint*);
typedef void (gles2_APIENTRY *glGetInteger64i_v_server_proc_t) (GLenum, GLuint, GLint64*);
typedef void (gles2_APIENTRY *glTexImage3D_server_proc_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glTexImage3DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexStorage3D_server_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
typedef void (gles2_APIENTRY *glTexSubImage3D_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glTexSubImage3DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glCompressedTexImage3D_server_proc_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glCompressedTexImage3DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, GLuint);
typedef void (gles2_APIENTRY *glCompressedTexSubImage3D_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
typedef void (gles2_APIENTRY *glCompressedTexSubImage3DOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, GLuint);
typedef void (gles2_APIENTRY *glCopyTexSubImage3D_server_proc_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef const GLubyte* (gles2_APIENTRY *glGetStringi_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glGetBooleani_v_server_proc_t) (GLenum, GLuint, GLboolean*);
typedef void (gles2_APIENTRY *glMemoryBarrier_server_proc_t) (GLbitfield);
typedef void (gles2_APIENTRY *glMemoryBarrierByRegion_server_proc_t) (GLbitfield);
typedef void (gles2_APIENTRY *glGenProgramPipelines_server_proc_t) (void *ctx, GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glGenProgramPipelines_dec_server_proc_t) (GLsizei, GLuint*);
typedef void (gles2_APIENTRY *glDeleteProgramPipelines_server_proc_t) (void *ctx, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glDeleteProgramPipelines_dec_server_proc_t) (GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glBindProgramPipeline_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glGetProgramPipelineiv_server_proc_t) (GLuint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetProgramPipelineInfoLog_server_proc_t) (GLuint, GLsizei, GLsizei*, GLchar*);
typedef void (gles2_APIENTRY *glValidateProgramPipeline_server_proc_t) (GLuint);
typedef GLboolean (gles2_APIENTRY *glIsProgramPipeline_server_proc_t) (GLuint);
typedef void (gles2_APIENTRY *glUseProgramStages_server_proc_t) (void *ctx, GLuint, GLbitfield, GLuint);
typedef void (gles2_APIENTRY *glUseProgramStages_dec_server_proc_t) (GLuint, GLbitfield, GLuint);
typedef void (gles2_APIENTRY *glActiveShaderProgram_server_proc_t) (void *ctx, GLuint, GLuint);
typedef void (gles2_APIENTRY *glActiveShaderProgram_dec_server_proc_t) (GLuint, GLuint);
typedef GLuint (gles2_APIENTRY *glCreateShaderProgramv_server_proc_t) (GLenum, GLsizei, const char**);
typedef GLuint (gles2_APIENTRY *glCreateShaderProgramvAEMU_server_proc_t) (void *ctx, GLenum, GLsizei, const char*, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform1f_server_proc_t) (void *ctx, GLuint, GLint, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform1f_dec_server_proc_t) (GLuint, GLint, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform2f_server_proc_t) (void *ctx, GLuint, GLint, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform2f_dec_server_proc_t) (GLuint, GLint, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform3f_server_proc_t) (void *ctx, GLuint, GLint, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform3f_dec_server_proc_t) (GLuint, GLint, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform4f_server_proc_t) (void *ctx, GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform4f_dec_server_proc_t) (GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
typedef void (gles2_APIENTRY *glProgramUniform1i_server_proc_t) (void *ctx, GLuint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform1i_dec_server_proc_t) (GLuint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform2i_server_proc_t) (void *ctx, GLuint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform2i_dec_server_proc_t) (GLuint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform3i_server_proc_t) (void *ctx, GLuint, GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform3i_dec_server_proc_t) (GLuint, GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform4i_server_proc_t) (void *ctx, GLuint, GLint, GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform4i_dec_server_proc_t) (GLuint, GLint, GLint, GLint, GLint, GLint);
typedef void (gles2_APIENTRY *glProgramUniform1ui_server_proc_t) (void *ctx, GLuint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform1ui_dec_server_proc_t) (GLuint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform2ui_server_proc_t) (void *ctx, GLuint, GLint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform2ui_dec_server_proc_t) (GLuint, GLint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform3ui_server_proc_t) (void *ctx, GLuint, GLint, GLint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform3ui_dec_server_proc_t) (GLuint, GLint, GLint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform4ui_server_proc_t) (void *ctx, GLuint, GLint, GLint, GLint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform4ui_dec_server_proc_t) (GLuint, GLint, GLint, GLint, GLint, GLuint);
typedef void (gles2_APIENTRY *glProgramUniform1fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform1fv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform2fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform2fv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform3fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform3fv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform4fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform4fv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniform1iv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform1iv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform2iv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform2iv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform3iv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform3iv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform4iv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform4iv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLint*);
typedef void (gles2_APIENTRY *glProgramUniform1uiv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform1uiv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform2uiv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform2uiv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform3uiv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform3uiv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform4uiv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniform4uiv_dec_server_proc_t) (GLuint, GLint, GLsizei, const GLuint*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix2fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix2fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix3fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix3fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix4fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix4fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix2x3fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix2x3fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix3x2fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix3x2fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix2x4fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix2x4fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix4x2fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix4x2fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix3x4fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix3x4fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix4x3fv_server_proc_t) (void *ctx, GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glProgramUniformMatrix4x3fv_dec_server_proc_t) (GLuint, GLint, GLsizei, GLboolean, const GLfloat*);
typedef void (gles2_APIENTRY *glGetProgramInterfaceiv_server_proc_t) (void *ctx, GLuint, GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetProgramInterfaceiv_dec_server_proc_t) (GLuint, GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetProgramResourceiv_server_proc_t) (void *ctx, GLuint, GLenum, GLuint, GLsizei, const GLenum*, GLsizei, GLsizei*, GLint*);
typedef void (gles2_APIENTRY *glGetProgramResourceiv_dec_server_proc_t) (GLuint, GLenum, GLuint, GLsizei, const GLenum*, GLsizei, GLsizei*, GLint*);
typedef GLuint (gles2_APIENTRY *glGetProgramResourceIndex_server_proc_t) (void *ctx, GLuint, GLenum, const char*);
typedef GLuint (gles2_APIENTRY *glGetProgramResourceIndex_dec_server_proc_t) (GLuint, GLenum, const char*);
typedef GLint (gles2_APIENTRY *glGetProgramResourceLocation_server_proc_t) (void *ctx, GLuint, GLenum, const char*);
typedef GLint (gles2_APIENTRY *glGetProgramResourceLocation_dec_server_proc_t) (GLuint, GLenum, const char*);
typedef void (gles2_APIENTRY *glGetProgramResourceName_server_proc_t) (void *ctx, GLuint, GLenum, GLuint, GLsizei, GLsizei*, char*);
typedef void (gles2_APIENTRY *glGetProgramResourceName_dec_server_proc_t) (GLuint, GLenum, GLuint, GLsizei, GLsizei*, char*);
typedef void (gles2_APIENTRY *glBindImageTexture_server_proc_t) (GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum);
typedef void (gles2_APIENTRY *glDispatchCompute_server_proc_t) (GLuint, GLuint, GLuint);
typedef void (gles2_APIENTRY *glDispatchComputeIndirect_server_proc_t) (GLintptr);
typedef void (gles2_APIENTRY *glBindVertexBuffer_server_proc_t) (GLuint, GLuint, GLintptr, GLintptr);
typedef void (gles2_APIENTRY *glVertexAttribBinding_server_proc_t) (GLuint, GLuint);
typedef void (gles2_APIENTRY *glVertexAttribFormat_server_proc_t) (GLuint, GLint, GLenum, GLboolean, GLuint);
typedef void (gles2_APIENTRY *glVertexAttribIFormat_server_proc_t) (GLuint, GLint, GLenum, GLuint);
typedef void (gles2_APIENTRY *glVertexBindingDivisor_server_proc_t) (GLuint, GLuint);
typedef void (gles2_APIENTRY *glDrawArraysIndirect_server_proc_t) (GLenum, const void*);
typedef void (gles2_APIENTRY *glDrawArraysIndirectDataAEMU_server_proc_t) (void *ctx, GLenum, const void*, GLuint);
typedef void (gles2_APIENTRY *glDrawArraysIndirectOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLuint);
typedef void (gles2_APIENTRY *glDrawElementsIndirect_server_proc_t) (GLenum, GLenum, const void*);
typedef void (gles2_APIENTRY *glDrawElementsIndirectDataAEMU_server_proc_t) (void *ctx, GLenum, GLenum, const void*, GLuint);
typedef void (gles2_APIENTRY *glDrawElementsIndirectOffsetAEMU_server_proc_t) (void *ctx, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexStorage2DMultisample_server_proc_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
typedef void (gles2_APIENTRY *glSampleMaski_server_proc_t) (GLuint, GLbitfield);
typedef void (gles2_APIENTRY *glGetMultisamplefv_server_proc_t) (GLenum, GLuint, GLfloat*);
typedef void (gles2_APIENTRY *glFramebufferParameteri_server_proc_t) (GLenum, GLenum, GLint);
typedef void (gles2_APIENTRY *glGetFramebufferParameteriv_server_proc_t) (GLenum, GLenum, GLint*);
typedef void (gles2_APIENTRY *glGetTexLevelParameterfv_server_proc_t) (GLenum, GLint, GLenum, GLfloat*);
typedef void (gles2_APIENTRY *glGetTexLevelParameteriv_server_proc_t) (GLenum, GLint, GLenum, GLint*);
typedef void (gles2_APIENTRY *glMapBufferRangeDMA_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, uint64_t);
typedef void (gles2_APIENTRY *glUnmapBufferDMA_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, uint64_t, GLboolean*);
typedef uint64_t (gles2_APIENTRY *glMapBufferRangeDirect_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, uint64_t);
typedef void (gles2_APIENTRY *glUnmapBufferDirect_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, uint64_t, uint64_t, GLboolean*);
typedef void (gles2_APIENTRY *glFlushMappedBufferRangeDirect_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield);
typedef GLenum (gles2_APIENTRY *glGetGraphicsResetStatusEXT_server_proc_t) ();
typedef void (gles2_APIENTRY *glReadnPixelsEXT_server_proc_t) (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, GLvoid*);
typedef void (gles2_APIENTRY *glGetnUniformfvEXT_server_proc_t) (GLuint, GLint, GLsizei, GLfloat*);
typedef void (gles2_APIENTRY *glGetnUniformivEXT_server_proc_t) (GLuint, GLint, GLsizei, GLint*);
typedef void (gles2_APIENTRY *glDrawArraysNullAEMU_server_proc_t) (GLenum, GLint, GLsizei);
typedef void (gles2_APIENTRY *glDrawElementsNullAEMU_server_proc_t) (GLenum, GLsizei, GLenum, const GLvoid*);
typedef void (gles2_APIENTRY *glDrawElementsOffsetNullAEMU_server_proc_t) (void *ctx, GLenum, GLsizei, GLenum, GLuint);
typedef void (gles2_APIENTRY *glDrawElementsDataNullAEMU_server_proc_t) (void *ctx, GLenum, GLsizei, GLenum, void*, GLuint);
typedef void (gles2_APIENTRY *glUnmapBufferAsyncAEMU_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, void*, GLboolean*);
typedef void (gles2_APIENTRY *glFlushMappedBufferRangeAEMU2_server_proc_t) (void *ctx, GLenum, GLintptr, GLsizeiptr, GLbitfield, void*);
typedef GLboolean (gles2_APIENTRY *glBufferDataSyncAEMU_server_proc_t) (void *ctx, GLenum, GLsizeiptr, const GLvoid*, GLenum);
typedef void (gles2_APIENTRY *glTexBufferOES_server_proc_t) (void *ctx, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexBufferOES_dec_server_proc_t) (GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexBufferRangeOES_server_proc_t) (void *ctx, GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glTexBufferRangeOES_dec_server_proc_t) (GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glTexBufferEXT_server_proc_t) (void *ctx, GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexBufferEXT_dec_server_proc_t) (GLenum, GLenum, GLuint);
typedef void (gles2_APIENTRY *glTexBufferRangeEXT_server_proc_t) (void *ctx, GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glTexBufferRangeEXT_dec_server_proc_t) (GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
typedef void (gles2_APIENTRY *glEnableiEXT_server_proc_t) (void *ctx, GLenum, GLuint);
typedef void (gles2_APIENTRY *glEnableiEXT_dec_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glDisableiEXT_server_proc_t) (void *ctx, GLenum, GLuint);
typedef void (gles2_APIENTRY *glDisableiEXT_dec_server_proc_t) (GLenum, GLuint);
typedef void (gles2_APIENTRY *glBlendEquationiEXT_server_proc_t) (void *ctx, GLuint, GLenum);
typedef void (gles2_APIENTRY *glBlendEquationiEXT_dec_server_proc_t) (GLuint, GLenum);
typedef void (gles2_APIENTRY *glBlendEquationSeparateiEXT_server_proc_t) (void *ctx, GLuint, GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendEquationSeparateiEXT_dec_server_proc_t) (GLuint, GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendFunciEXT_server_proc_t) (void *ctx, GLuint, GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendFunciEXT_dec_server_proc_t) (GLuint, GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendFuncSeparateiEXT_server_proc_t) (void *ctx, GLuint, GLenum, GLenum, GLenum, GLenum);
typedef void (gles2_APIENTRY *glBlendFuncSeparateiEXT_dec_server_proc_t) (GLuint, GLenum, GLenum, GLenum, GLenum);
typedef void (gles2_APIENTRY *glColorMaskiEXT_server_proc_t) (void *ctx, GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
typedef void (gles2_APIENTRY *glColorMaskiEXT_dec_server_proc_t) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
typedef GLboolean (gles2_APIENTRY *glIsEnablediEXT_server_proc_t) (void *ctx, GLenum, GLuint);
typedef GLboolean (gles2_APIENTRY *glIsEnablediEXT_dec_server_proc_t) (GLenum, GLuint);


#endif
