Home | History | Annotate | Download | only in GLESv2_enc
      1 // Generated Code - DO NOT EDIT !!
      2 // generated by 'emugen'
      3 #include <stdio.h>
      4 #include <stdlib.h>
      5 #include "gl2_client_context.h"
      6 
      7 #ifndef GL_TRUE
      8 extern "C" {
      9 	void glActiveTexture(GLenum texture);
     10 	void glAttachShader(GLuint program, GLuint shader);
     11 	void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name);
     12 	void glBindBuffer(GLenum target, GLuint buffer);
     13 	void glBindFramebuffer(GLenum target, GLuint framebuffer);
     14 	void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
     15 	void glBindTexture(GLenum target, GLuint texture);
     16 	void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
     17 	void glBlendEquation(GLenum mode);
     18 	void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
     19 	void glBlendFunc(GLenum sfactor, GLenum dfactor);
     20 	void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
     21 	void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
     22 	void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
     23 	GLenum glCheckFramebufferStatus(GLenum target);
     24 	void glClear(GLbitfield mask);
     25 	void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
     26 	void glClearDepthf(GLclampf depth);
     27 	void glClearStencil(GLint s);
     28 	void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
     29 	void glCompileShader(GLuint shader);
     30 	void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
     31 	void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
     32 	void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
     33 	void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
     34 	GLuint glCreateProgram();
     35 	GLuint glCreateShader(GLenum type);
     36 	void glCullFace(GLenum mode);
     37 	void glDeleteBuffers(GLsizei n, const GLuint* buffers);
     38 	void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
     39 	void glDeleteProgram(GLuint program);
     40 	void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
     41 	void glDeleteShader(GLuint shader);
     42 	void glDeleteTextures(GLsizei n, const GLuint* textures);
     43 	void glDepthFunc(GLenum func);
     44 	void glDepthMask(GLboolean flag);
     45 	void glDepthRangef(GLclampf zNear, GLclampf zFar);
     46 	void glDetachShader(GLuint program, GLuint shader);
     47 	void glDisable(GLenum cap);
     48 	void glDisableVertexAttribArray(GLuint index);
     49 	void glDrawArrays(GLenum mode, GLint first, GLsizei count);
     50 	void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
     51 	void glEnable(GLenum cap);
     52 	void glEnableVertexAttribArray(GLuint index);
     53 	void glFinish();
     54 	void glFlush();
     55 	void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
     56 	void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
     57 	void glFrontFace(GLenum mode);
     58 	void glGenBuffers(GLsizei n, GLuint* buffers);
     59 	void glGenerateMipmap(GLenum target);
     60 	void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
     61 	void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
     62 	void glGenTextures(GLsizei n, GLuint* textures);
     63 	void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
     64 	void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
     65 	void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
     66 	int glGetAttribLocation(GLuint program, const GLchar* name);
     67 	void glGetBooleanv(GLenum pname, GLboolean* params);
     68 	void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
     69 	GLenum glGetError();
     70 	void glGetFloatv(GLenum pname, GLfloat* params);
     71 	void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
     72 	void glGetIntegerv(GLenum pname, GLint* params);
     73 	void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
     74 	void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
     75 	void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
     76 	void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
     77 	void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
     78 	void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
     79 	void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
     80 	const GLubyte* glGetString(GLenum name);
     81 	void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
     82 	void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
     83 	void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
     84 	void glGetUniformiv(GLuint program, GLint location, GLint* params);
     85 	int glGetUniformLocation(GLuint program, const GLchar* name);
     86 	void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
     87 	void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
     88 	void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer);
     89 	void glHint(GLenum target, GLenum mode);
     90 	GLboolean glIsBuffer(GLuint buffer);
     91 	GLboolean glIsEnabled(GLenum cap);
     92 	GLboolean glIsFramebuffer(GLuint framebuffer);
     93 	GLboolean glIsProgram(GLuint program);
     94 	GLboolean glIsRenderbuffer(GLuint renderbuffer);
     95 	GLboolean glIsShader(GLuint shader);
     96 	GLboolean glIsTexture(GLuint texture);
     97 	void glLineWidth(GLfloat width);
     98 	void glLinkProgram(GLuint program);
     99 	void glPixelStorei(GLenum pname, GLint param);
    100 	void glPolygonOffset(GLfloat factor, GLfloat units);
    101 	void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
    102 	void glReleaseShaderCompiler();
    103 	void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
    104 	void glSampleCoverage(GLclampf value, GLboolean invert);
    105 	void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
    106 	void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
    107 	void glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
    108 	void glStencilFunc(GLenum func, GLint ref, GLuint mask);
    109 	void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
    110 	void glStencilMask(GLuint mask);
    111 	void glStencilMaskSeparate(GLenum face, GLuint mask);
    112 	void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
    113 	void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
    114 	void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
    115 	void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
    116 	void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params);
    117 	void glTexParameteri(GLenum target, GLenum pname, GLint param);
    118 	void glTexParameteriv(GLenum target, GLenum pname, const GLint* params);
    119 	void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
    120 	void glUniform1f(GLint location, GLfloat x);
    121 	void glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
    122 	void glUniform1i(GLint location, GLint x);
    123 	void glUniform1iv(GLint location, GLsizei count, const GLint* v);
    124 	void glUniform2f(GLint location, GLfloat x, GLfloat y);
    125 	void glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
    126 	void glUniform2i(GLint location, GLint x, GLint y);
    127 	void glUniform2iv(GLint location, GLsizei count, const GLint* v);
    128 	void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
    129 	void glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
    130 	void glUniform3i(GLint location, GLint x, GLint y, GLint z);
    131 	void glUniform3iv(GLint location, GLsizei count, const GLint* v);
    132 	void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    133 	void glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
    134 	void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
    135 	void glUniform4iv(GLint location, GLsizei count, const GLint* v);
    136 	void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
    137 	void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
    138 	void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
    139 	void glUseProgram(GLuint program);
    140 	void glValidateProgram(GLuint program);
    141 	void glVertexAttrib1f(GLuint indx, GLfloat x);
    142 	void glVertexAttrib1fv(GLuint indx, const GLfloat* values);
    143 	void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
    144 	void glVertexAttrib2fv(GLuint indx, const GLfloat* values);
    145 	void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
    146 	void glVertexAttrib3fv(GLuint indx, const GLfloat* values);
    147 	void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
    148 	void glVertexAttrib4fv(GLuint indx, const GLfloat* values);
    149 	void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
    150 	void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
    151 	void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
    152 	void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
    153 	void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
    154 	void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length);
    155 	void* glMapBufferOES(GLenum target, GLenum access);
    156 	GLboolean glUnmapBufferOES(GLenum target);
    157 	void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
    158 	void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
    159 	void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
    160 	void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
    161 	void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
    162 	void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
    163 	void glBindVertexArrayOES(GLuint array);
    164 	void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays);
    165 	void glGenVertexArraysOES(GLsizei n, GLuint* arrays);
    166 	GLboolean glIsVertexArrayOES(GLuint array);
    167 	void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments);
    168 	void glMultiDrawArraysEXT(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount);
    169 	void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const* indices, GLsizei primcount);
    170 	void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups);
    171 	void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters);
    172 	void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString);
    173 	void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString);
    174 	void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data);
    175 	void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors);
    176 	void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors);
    177 	void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList);
    178 	void glBeginPerfMonitorAMD(GLuint monitor);
    179 	void glEndPerfMonitorAMD(GLuint monitor);
    180 	void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten);
    181 	void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
    182 	void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
    183 	void glDeleteFencesNV(GLsizei n, const GLuint* fences);
    184 	void glGenFencesNV(GLsizei n, GLuint* fences);
    185 	GLboolean glIsFenceNV(GLuint fence);
    186 	GLboolean glTestFenceNV(GLuint fence);
    187 	void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params);
    188 	void glFinishFenceNV(GLuint fence);
    189 	void glSetFenceNV(GLuint fence, GLenum condition);
    190 	void glCoverageMaskNV(GLboolean mask);
    191 	void glCoverageOperationNV(GLenum operation);
    192 	void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls);
    193 	void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
    194 	void glEnableDriverControlQCOM(GLuint driverControl);
    195 	void glDisableDriverControlQCOM(GLuint driverControl);
    196 	void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures);
    197 	void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
    198 	void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
    199 	void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
    200 	void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
    201 	void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param);
    202 	void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels);
    203 	void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params);
    204 	void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders);
    205 	void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms);
    206 	GLboolean glExtIsProgramBinaryQCOM(GLuint program);
    207 	void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length);
    208 	void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
    209 	void glEndTilingQCOM(GLbitfield preserveMask);
    210 	void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen);
    211 	void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset);
    212 	void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset);
    213 	void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
    214 	void glGetCompressedTextureFormats(int count, GLint* formats);
    215 	void glShaderString(GLuint shader, const GLchar* string, GLsizei len);
    216 	int glFinishRoundTrip();
    217 };
    218 
    219 #endif
    220 #ifndef GET_CONTEXT
    221 static gl2_client_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL;
    222 void gl2_client_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; }
    223 #define GET_CONTEXT gl2_client_context_t * ctx = getCurrentContext()
    224 #endif
    225 
    226 void glActiveTexture(GLenum texture)
    227 {
    228 	GET_CONTEXT;
    229 	ctx->glActiveTexture(ctx, texture);
    230 }
    231 
    232 void glAttachShader(GLuint program, GLuint shader)
    233 {
    234 	GET_CONTEXT;
    235 	ctx->glAttachShader(ctx, program, shader);
    236 }
    237 
    238 void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name)
    239 {
    240 	GET_CONTEXT;
    241 	ctx->glBindAttribLocation(ctx, program, index, name);
    242 }
    243 
    244 void glBindBuffer(GLenum target, GLuint buffer)
    245 {
    246 	GET_CONTEXT;
    247 	ctx->glBindBuffer(ctx, target, buffer);
    248 }
    249 
    250 void glBindFramebuffer(GLenum target, GLuint framebuffer)
    251 {
    252 	GET_CONTEXT;
    253 	ctx->glBindFramebuffer(ctx, target, framebuffer);
    254 }
    255 
    256 void glBindRenderbuffer(GLenum target, GLuint renderbuffer)
    257 {
    258 	GET_CONTEXT;
    259 	ctx->glBindRenderbuffer(ctx, target, renderbuffer);
    260 }
    261 
    262 void glBindTexture(GLenum target, GLuint texture)
    263 {
    264 	GET_CONTEXT;
    265 	ctx->glBindTexture(ctx, target, texture);
    266 }
    267 
    268 void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
    269 {
    270 	GET_CONTEXT;
    271 	ctx->glBlendColor(ctx, red, green, blue, alpha);
    272 }
    273 
    274 void glBlendEquation(GLenum mode)
    275 {
    276 	GET_CONTEXT;
    277 	ctx->glBlendEquation(ctx, mode);
    278 }
    279 
    280 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
    281 {
    282 	GET_CONTEXT;
    283 	ctx->glBlendEquationSeparate(ctx, modeRGB, modeAlpha);
    284 }
    285 
    286 void glBlendFunc(GLenum sfactor, GLenum dfactor)
    287 {
    288 	GET_CONTEXT;
    289 	ctx->glBlendFunc(ctx, sfactor, dfactor);
    290 }
    291 
    292 void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
    293 {
    294 	GET_CONTEXT;
    295 	ctx->glBlendFuncSeparate(ctx, srcRGB, dstRGB, srcAlpha, dstAlpha);
    296 }
    297 
    298 void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
    299 {
    300 	GET_CONTEXT;
    301 	ctx->glBufferData(ctx, target, size, data, usage);
    302 }
    303 
    304 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
    305 {
    306 	GET_CONTEXT;
    307 	ctx->glBufferSubData(ctx, target, offset, size, data);
    308 }
    309 
    310 GLenum glCheckFramebufferStatus(GLenum target)
    311 {
    312 	GET_CONTEXT;
    313 	return ctx->glCheckFramebufferStatus(ctx, target);
    314 }
    315 
    316 void glClear(GLbitfield mask)
    317 {
    318 	GET_CONTEXT;
    319 	ctx->glClear(ctx, mask);
    320 }
    321 
    322 void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
    323 {
    324 	GET_CONTEXT;
    325 	ctx->glClearColor(ctx, red, green, blue, alpha);
    326 }
    327 
    328 void glClearDepthf(GLclampf depth)
    329 {
    330 	GET_CONTEXT;
    331 	ctx->glClearDepthf(ctx, depth);
    332 }
    333 
    334 void glClearStencil(GLint s)
    335 {
    336 	GET_CONTEXT;
    337 	ctx->glClearStencil(ctx, s);
    338 }
    339 
    340 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
    341 {
    342 	GET_CONTEXT;
    343 	ctx->glColorMask(ctx, red, green, blue, alpha);
    344 }
    345 
    346 void glCompileShader(GLuint shader)
    347 {
    348 	GET_CONTEXT;
    349 	ctx->glCompileShader(ctx, shader);
    350 }
    351 
    352 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
    353 {
    354 	GET_CONTEXT;
    355 	ctx->glCompressedTexImage2D(ctx, target, level, internalformat, width, height, border, imageSize, data);
    356 }
    357 
    358 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
    359 {
    360 	GET_CONTEXT;
    361 	ctx->glCompressedTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, data);
    362 }
    363 
    364 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
    365 {
    366 	GET_CONTEXT;
    367 	ctx->glCopyTexImage2D(ctx, target, level, internalformat, x, y, width, height, border);
    368 }
    369 
    370 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
    371 {
    372 	GET_CONTEXT;
    373 	ctx->glCopyTexSubImage2D(ctx, target, level, xoffset, yoffset, x, y, width, height);
    374 }
    375 
    376 GLuint glCreateProgram()
    377 {
    378 	GET_CONTEXT;
    379 	return ctx->glCreateProgram(ctx);
    380 }
    381 
    382 GLuint glCreateShader(GLenum type)
    383 {
    384 	GET_CONTEXT;
    385 	return ctx->glCreateShader(ctx, type);
    386 }
    387 
    388 void glCullFace(GLenum mode)
    389 {
    390 	GET_CONTEXT;
    391 	ctx->glCullFace(ctx, mode);
    392 }
    393 
    394 void glDeleteBuffers(GLsizei n, const GLuint* buffers)
    395 {
    396 	GET_CONTEXT;
    397 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    398 	ctx->glDeleteBuffers(ctx, n, buffers);
    399 }
    400 
    401 void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
    402 {
    403 	GET_CONTEXT;
    404 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    405 	ctx->glDeleteFramebuffers(ctx, n, framebuffers);
    406 }
    407 
    408 void glDeleteProgram(GLuint program)
    409 {
    410 	GET_CONTEXT;
    411 	ctx->glDeleteProgram(ctx, program);
    412 }
    413 
    414 void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
    415 {
    416 	GET_CONTEXT;
    417 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    418 	ctx->glDeleteRenderbuffers(ctx, n, renderbuffers);
    419 }
    420 
    421 void glDeleteShader(GLuint shader)
    422 {
    423 	GET_CONTEXT;
    424 	ctx->glDeleteShader(ctx, shader);
    425 }
    426 
    427 void glDeleteTextures(GLsizei n, const GLuint* textures)
    428 {
    429 	GET_CONTEXT;
    430 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    431 	ctx->glDeleteTextures(ctx, n, textures);
    432 }
    433 
    434 void glDepthFunc(GLenum func)
    435 {
    436 	GET_CONTEXT;
    437 	ctx->glDepthFunc(ctx, func);
    438 }
    439 
    440 void glDepthMask(GLboolean flag)
    441 {
    442 	GET_CONTEXT;
    443 	ctx->glDepthMask(ctx, flag);
    444 }
    445 
    446 void glDepthRangef(GLclampf zNear, GLclampf zFar)
    447 {
    448 	GET_CONTEXT;
    449 	ctx->glDepthRangef(ctx, zNear, zFar);
    450 }
    451 
    452 void glDetachShader(GLuint program, GLuint shader)
    453 {
    454 	GET_CONTEXT;
    455 	ctx->glDetachShader(ctx, program, shader);
    456 }
    457 
    458 void glDisable(GLenum cap)
    459 {
    460 	GET_CONTEXT;
    461 	ctx->glDisable(ctx, cap);
    462 }
    463 
    464 void glDisableVertexAttribArray(GLuint index)
    465 {
    466 	GET_CONTEXT;
    467 	ctx->glDisableVertexAttribArray(ctx, index);
    468 }
    469 
    470 void glDrawArrays(GLenum mode, GLint first, GLsizei count)
    471 {
    472 	GET_CONTEXT;
    473 	ctx->glDrawArrays(ctx, mode, first, count);
    474 }
    475 
    476 void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
    477 {
    478 	GET_CONTEXT;
    479 	ctx->glDrawElements(ctx, mode, count, type, indices);
    480 }
    481 
    482 void glEnable(GLenum cap)
    483 {
    484 	GET_CONTEXT;
    485 	ctx->glEnable(ctx, cap);
    486 }
    487 
    488 void glEnableVertexAttribArray(GLuint index)
    489 {
    490 	GET_CONTEXT;
    491 	ctx->glEnableVertexAttribArray(ctx, index);
    492 }
    493 
    494 void glFinish()
    495 {
    496 	GET_CONTEXT;
    497 	ctx->glFinish(ctx);
    498 }
    499 
    500 void glFlush()
    501 {
    502 	GET_CONTEXT;
    503 	ctx->glFlush(ctx);
    504 }
    505 
    506 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
    507 {
    508 	GET_CONTEXT;
    509 	ctx->glFramebufferRenderbuffer(ctx, target, attachment, renderbuffertarget, renderbuffer);
    510 }
    511 
    512 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
    513 {
    514 	GET_CONTEXT;
    515 	ctx->glFramebufferTexture2D(ctx, target, attachment, textarget, texture, level);
    516 }
    517 
    518 void glFrontFace(GLenum mode)
    519 {
    520 	GET_CONTEXT;
    521 	ctx->glFrontFace(ctx, mode);
    522 }
    523 
    524 void glGenBuffers(GLsizei n, GLuint* buffers)
    525 {
    526 	GET_CONTEXT;
    527 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    528 	ctx->glGenBuffers(ctx, n, buffers);
    529 }
    530 
    531 void glGenerateMipmap(GLenum target)
    532 {
    533 	GET_CONTEXT;
    534 	ctx->glGenerateMipmap(ctx, target);
    535 }
    536 
    537 void glGenFramebuffers(GLsizei n, GLuint* framebuffers)
    538 {
    539 	GET_CONTEXT;
    540 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    541 	ctx->glGenFramebuffers(ctx, n, framebuffers);
    542 }
    543 
    544 void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
    545 {
    546 	GET_CONTEXT;
    547 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    548 	ctx->glGenRenderbuffers(ctx, n, renderbuffers);
    549 }
    550 
    551 void glGenTextures(GLsizei n, GLuint* textures)
    552 {
    553 	GET_CONTEXT;
    554 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
    555 	ctx->glGenTextures(ctx, n, textures);
    556 }
    557 
    558 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
    559 {
    560 	GET_CONTEXT;
    561 	ctx->glGetActiveAttrib(ctx, program, index, bufsize, length, size, type, name);
    562 }
    563 
    564 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
    565 {
    566 	GET_CONTEXT;
    567 	ctx->glGetActiveUniform(ctx, program, index, bufsize, length, size, type, name);
    568 }
    569 
    570 void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
    571 {
    572 	GET_CONTEXT;
    573 	ctx->glGetAttachedShaders(ctx, program, maxcount, count, shaders);
    574 }
    575 
    576 int glGetAttribLocation(GLuint program, const GLchar* name)
    577 {
    578 	GET_CONTEXT;
    579 	return ctx->glGetAttribLocation(ctx, program, name);
    580 }
    581 
    582 void glGetBooleanv(GLenum pname, GLboolean* params)
    583 {
    584 	GET_CONTEXT;
    585 	ctx->glGetBooleanv(ctx, pname, params);
    586 }
    587 
    588 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
    589 {
    590 	GET_CONTEXT;
    591 	ctx->glGetBufferParameteriv(ctx, target, pname, params);
    592 }
    593 
    594 GLenum glGetError()
    595 {
    596 	GET_CONTEXT;
    597 	return ctx->glGetError(ctx);
    598 }
    599 
    600 void glGetFloatv(GLenum pname, GLfloat* params)
    601 {
    602 	GET_CONTEXT;
    603 	ctx->glGetFloatv(ctx, pname, params);
    604 }
    605 
    606 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
    607 {
    608 	GET_CONTEXT;
    609 	ctx->glGetFramebufferAttachmentParameteriv(ctx, target, attachment, pname, params);
    610 }
    611 
    612 void glGetIntegerv(GLenum pname, GLint* params)
    613 {
    614 	GET_CONTEXT;
    615 	ctx->glGetIntegerv(ctx, pname, params);
    616 }
    617 
    618 void glGetProgramiv(GLuint program, GLenum pname, GLint* params)
    619 {
    620 	GET_CONTEXT;
    621 	ctx->glGetProgramiv(ctx, program, pname, params);
    622 }
    623 
    624 void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
    625 {
    626 	GET_CONTEXT;
    627 	ctx->glGetProgramInfoLog(ctx, program, bufsize, length, infolog);
    628 }
    629 
    630 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
    631 {
    632 	GET_CONTEXT;
    633 	ctx->glGetRenderbufferParameteriv(ctx, target, pname, params);
    634 }
    635 
    636 void glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
    637 {
    638 	GET_CONTEXT;
    639 	ctx->glGetShaderiv(ctx, shader, pname, params);
    640 }
    641 
    642 void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
    643 {
    644 	GET_CONTEXT;
    645 	ctx->glGetShaderInfoLog(ctx, shader, bufsize, length, infolog);
    646 }
    647 
    648 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
    649 {
    650 	GET_CONTEXT;
    651 	ctx->glGetShaderPrecisionFormat(ctx, shadertype, precisiontype, range, precision);
    652 }
    653 
    654 void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
    655 {
    656 	GET_CONTEXT;
    657 	ctx->glGetShaderSource(ctx, shader, bufsize, length, source);
    658 }
    659 
    660 const GLubyte* glGetString(GLenum name)
    661 {
    662 	GET_CONTEXT;
    663 	return ctx->glGetString(ctx, name);
    664 }
    665 
    666 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
    667 {
    668 	GET_CONTEXT;
    669 	ctx->glGetTexParameterfv(ctx, target, pname, params);
    670 }
    671 
    672 void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
    673 {
    674 	GET_CONTEXT;
    675 	ctx->glGetTexParameteriv(ctx, target, pname, params);
    676 }
    677 
    678 void glGetUniformfv(GLuint program, GLint location, GLfloat* params)
    679 {
    680 	GET_CONTEXT;
    681 	ctx->glGetUniformfv(ctx, program, location, params);
    682 }
    683 
    684 void glGetUniformiv(GLuint program, GLint location, GLint* params)
    685 {
    686 	GET_CONTEXT;
    687 	ctx->glGetUniformiv(ctx, program, location, params);
    688 }
    689 
    690 int glGetUniformLocation(GLuint program, const GLchar* name)
    691 {
    692 	GET_CONTEXT;
    693 	return ctx->glGetUniformLocation(ctx, program, name);
    694 }
    695 
    696 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
    697 {
    698 	GET_CONTEXT;
    699 	ctx->glGetVertexAttribfv(ctx, index, pname, params);
    700 }
    701 
    702 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
    703 {
    704 	GET_CONTEXT;
    705 	ctx->glGetVertexAttribiv(ctx, index, pname, params);
    706 }
    707 
    708 void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer)
    709 {
    710 	GET_CONTEXT;
    711 	ctx->glGetVertexAttribPointerv(ctx, index, pname, pointer);
    712 }
    713 
    714 void glHint(GLenum target, GLenum mode)
    715 {
    716 	GET_CONTEXT;
    717 	ctx->glHint(ctx, target, mode);
    718 }
    719 
    720 GLboolean glIsBuffer(GLuint buffer)
    721 {
    722 	GET_CONTEXT;
    723 	return ctx->glIsBuffer(ctx, buffer);
    724 }
    725 
    726 GLboolean glIsEnabled(GLenum cap)
    727 {
    728 	GET_CONTEXT;
    729 	return ctx->glIsEnabled(ctx, cap);
    730 }
    731 
    732 GLboolean glIsFramebuffer(GLuint framebuffer)
    733 {
    734 	GET_CONTEXT;
    735 	return ctx->glIsFramebuffer(ctx, framebuffer);
    736 }
    737 
    738 GLboolean glIsProgram(GLuint program)
    739 {
    740 	GET_CONTEXT;
    741 	return ctx->glIsProgram(ctx, program);
    742 }
    743 
    744 GLboolean glIsRenderbuffer(GLuint renderbuffer)
    745 {
    746 	GET_CONTEXT;
    747 	return ctx->glIsRenderbuffer(ctx, renderbuffer);
    748 }
    749 
    750 GLboolean glIsShader(GLuint shader)
    751 {
    752 	GET_CONTEXT;
    753 	return ctx->glIsShader(ctx, shader);
    754 }
    755 
    756 GLboolean glIsTexture(GLuint texture)
    757 {
    758 	GET_CONTEXT;
    759 	return ctx->glIsTexture(ctx, texture);
    760 }
    761 
    762 void glLineWidth(GLfloat width)
    763 {
    764 	GET_CONTEXT;
    765 	ctx->glLineWidth(ctx, width);
    766 }
    767 
    768 void glLinkProgram(GLuint program)
    769 {
    770 	GET_CONTEXT;
    771 	ctx->glLinkProgram(ctx, program);
    772 }
    773 
    774 void glPixelStorei(GLenum pname, GLint param)
    775 {
    776 	GET_CONTEXT;
    777 	ctx->glPixelStorei(ctx, pname, param);
    778 }
    779 
    780 void glPolygonOffset(GLfloat factor, GLfloat units)
    781 {
    782 	GET_CONTEXT;
    783 	ctx->glPolygonOffset(ctx, factor, units);
    784 }
    785 
    786 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
    787 {
    788 	GET_CONTEXT;
    789 	ctx->glReadPixels(ctx, x, y, width, height, format, type, pixels);
    790 }
    791 
    792 void glReleaseShaderCompiler()
    793 {
    794 	GET_CONTEXT;
    795 	ctx->glReleaseShaderCompiler(ctx);
    796 }
    797 
    798 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
    799 {
    800 	GET_CONTEXT;
    801 	ctx->glRenderbufferStorage(ctx, target, internalformat, width, height);
    802 }
    803 
    804 void glSampleCoverage(GLclampf value, GLboolean invert)
    805 {
    806 	GET_CONTEXT;
    807 	ctx->glSampleCoverage(ctx, value, invert);
    808 }
    809 
    810 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
    811 {
    812 	GET_CONTEXT;
    813 	ctx->glScissor(ctx, x, y, width, height);
    814 }
    815 
    816 void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length)
    817 {
    818 	GET_CONTEXT;
    819 	ctx->glShaderBinary(ctx, n, shaders, binaryformat, binary, length);
    820 }
    821 
    822 void glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length)
    823 {
    824 	GET_CONTEXT;
    825 	ctx->glShaderSource(ctx, shader, count, string, length);
    826 }
    827 
    828 void glStencilFunc(GLenum func, GLint ref, GLuint mask)
    829 {
    830 	GET_CONTEXT;
    831 	ctx->glStencilFunc(ctx, func, ref, mask);
    832 }
    833 
    834 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
    835 {
    836 	GET_CONTEXT;
    837 	ctx->glStencilFuncSeparate(ctx, face, func, ref, mask);
    838 }
    839 
    840 void glStencilMask(GLuint mask)
    841 {
    842 	GET_CONTEXT;
    843 	ctx->glStencilMask(ctx, mask);
    844 }
    845 
    846 void glStencilMaskSeparate(GLenum face, GLuint mask)
    847 {
    848 	GET_CONTEXT;
    849 	ctx->glStencilMaskSeparate(ctx, face, mask);
    850 }
    851 
    852 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
    853 {
    854 	GET_CONTEXT;
    855 	ctx->glStencilOp(ctx, fail, zfail, zpass);
    856 }
    857 
    858 void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
    859 {
    860 	GET_CONTEXT;
    861 	ctx->glStencilOpSeparate(ctx, face, fail, zfail, zpass);
    862 }
    863 
    864 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
    865 {
    866 	GET_CONTEXT;
    867 	ctx->glTexImage2D(ctx, target, level, internalformat, width, height, border, format, type, pixels);
    868 }
    869 
    870 void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
    871 {
    872 	GET_CONTEXT;
    873 	ctx->glTexParameterf(ctx, target, pname, param);
    874 }
    875 
    876 void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
    877 {
    878 	GET_CONTEXT;
    879 	ctx->glTexParameterfv(ctx, target, pname, params);
    880 }
    881 
    882 void glTexParameteri(GLenum target, GLenum pname, GLint param)
    883 {
    884 	GET_CONTEXT;
    885 	ctx->glTexParameteri(ctx, target, pname, param);
    886 }
    887 
    888 void glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
    889 {
    890 	GET_CONTEXT;
    891 	ctx->glTexParameteriv(ctx, target, pname, params);
    892 }
    893 
    894 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
    895 {
    896 	GET_CONTEXT;
    897 	ctx->glTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, type, pixels);
    898 }
    899 
    900 void glUniform1f(GLint location, GLfloat x)
    901 {
    902 	GET_CONTEXT;
    903 	ctx->glUniform1f(ctx, location, x);
    904 }
    905 
    906 void glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
    907 {
    908 	GET_CONTEXT;
    909 	ctx->glUniform1fv(ctx, location, count, v);
    910 }
    911 
    912 void glUniform1i(GLint location, GLint x)
    913 {
    914 	GET_CONTEXT;
    915 	ctx->glUniform1i(ctx, location, x);
    916 }
    917 
    918 void glUniform1iv(GLint location, GLsizei count, const GLint* v)
    919 {
    920 	GET_CONTEXT;
    921 	ctx->glUniform1iv(ctx, location, count, v);
    922 }
    923 
    924 void glUniform2f(GLint location, GLfloat x, GLfloat y)
    925 {
    926 	GET_CONTEXT;
    927 	ctx->glUniform2f(ctx, location, x, y);
    928 }
    929 
    930 void glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
    931 {
    932 	GET_CONTEXT;
    933 	ctx->glUniform2fv(ctx, location, count, v);
    934 }
    935 
    936 void glUniform2i(GLint location, GLint x, GLint y)
    937 {
    938 	GET_CONTEXT;
    939 	ctx->glUniform2i(ctx, location, x, y);
    940 }
    941 
    942 void glUniform2iv(GLint location, GLsizei count, const GLint* v)
    943 {
    944 	GET_CONTEXT;
    945 	ctx->glUniform2iv(ctx, location, count, v);
    946 }
    947 
    948 void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
    949 {
    950 	GET_CONTEXT;
    951 	ctx->glUniform3f(ctx, location, x, y, z);
    952 }
    953 
    954 void glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
    955 {
    956 	GET_CONTEXT;
    957 	ctx->glUniform3fv(ctx, location, count, v);
    958 }
    959 
    960 void glUniform3i(GLint location, GLint x, GLint y, GLint z)
    961 {
    962 	GET_CONTEXT;
    963 	ctx->glUniform3i(ctx, location, x, y, z);
    964 }
    965 
    966 void glUniform3iv(GLint location, GLsizei count, const GLint* v)
    967 {
    968 	GET_CONTEXT;
    969 	ctx->glUniform3iv(ctx, location, count, v);
    970 }
    971 
    972 void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
    973 {
    974 	GET_CONTEXT;
    975 	ctx->glUniform4f(ctx, location, x, y, z, w);
    976 }
    977 
    978 void glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
    979 {
    980 	GET_CONTEXT;
    981 	ctx->glUniform4fv(ctx, location, count, v);
    982 }
    983 
    984 void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
    985 {
    986 	GET_CONTEXT;
    987 	ctx->glUniform4i(ctx, location, x, y, z, w);
    988 }
    989 
    990 void glUniform4iv(GLint location, GLsizei count, const GLint* v)
    991 {
    992 	GET_CONTEXT;
    993 	ctx->glUniform4iv(ctx, location, count, v);
    994 }
    995 
    996 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
    997 {
    998 	GET_CONTEXT;
    999 	ctx->glUniformMatrix2fv(ctx, location, count, transpose, value);
   1000 }
   1001 
   1002 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
   1003 {
   1004 	GET_CONTEXT;
   1005 	ctx->glUniformMatrix3fv(ctx, location, count, transpose, value);
   1006 }
   1007 
   1008 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
   1009 {
   1010 	GET_CONTEXT;
   1011 	ctx->glUniformMatrix4fv(ctx, location, count, transpose, value);
   1012 }
   1013 
   1014 void glUseProgram(GLuint program)
   1015 {
   1016 	GET_CONTEXT;
   1017 	ctx->glUseProgram(ctx, program);
   1018 }
   1019 
   1020 void glValidateProgram(GLuint program)
   1021 {
   1022 	GET_CONTEXT;
   1023 	ctx->glValidateProgram(ctx, program);
   1024 }
   1025 
   1026 void glVertexAttrib1f(GLuint indx, GLfloat x)
   1027 {
   1028 	GET_CONTEXT;
   1029 	ctx->glVertexAttrib1f(ctx, indx, x);
   1030 }
   1031 
   1032 void glVertexAttrib1fv(GLuint indx, const GLfloat* values)
   1033 {
   1034 	GET_CONTEXT;
   1035 	ctx->glVertexAttrib1fv(ctx, indx, values);
   1036 }
   1037 
   1038 void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
   1039 {
   1040 	GET_CONTEXT;
   1041 	ctx->glVertexAttrib2f(ctx, indx, x, y);
   1042 }
   1043 
   1044 void glVertexAttrib2fv(GLuint indx, const GLfloat* values)
   1045 {
   1046 	GET_CONTEXT;
   1047 	ctx->glVertexAttrib2fv(ctx, indx, values);
   1048 }
   1049 
   1050 void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
   1051 {
   1052 	GET_CONTEXT;
   1053 	ctx->glVertexAttrib3f(ctx, indx, x, y, z);
   1054 }
   1055 
   1056 void glVertexAttrib3fv(GLuint indx, const GLfloat* values)
   1057 {
   1058 	GET_CONTEXT;
   1059 	ctx->glVertexAttrib3fv(ctx, indx, values);
   1060 }
   1061 
   1062 void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
   1063 {
   1064 	GET_CONTEXT;
   1065 	ctx->glVertexAttrib4f(ctx, indx, x, y, z, w);
   1066 }
   1067 
   1068 void glVertexAttrib4fv(GLuint indx, const GLfloat* values)
   1069 {
   1070 	GET_CONTEXT;
   1071 	ctx->glVertexAttrib4fv(ctx, indx, values);
   1072 }
   1073 
   1074 void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)
   1075 {
   1076 	GET_CONTEXT;
   1077 	ctx->glVertexAttribPointer(ctx, indx, size, type, normalized, stride, ptr);
   1078 }
   1079 
   1080 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
   1081 {
   1082 	GET_CONTEXT;
   1083 	ctx->glViewport(ctx, x, y, width, height);
   1084 }
   1085 
   1086 void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
   1087 {
   1088 	GET_CONTEXT;
   1089 	ctx->glEGLImageTargetTexture2DOES(ctx, target, image);
   1090 }
   1091 
   1092 void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
   1093 {
   1094 	GET_CONTEXT;
   1095 	ctx->glEGLImageTargetRenderbufferStorageOES(ctx, target, image);
   1096 }
   1097 
   1098 void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
   1099 {
   1100 	GET_CONTEXT;
   1101 	ctx->glGetProgramBinaryOES(ctx, program, bufSize, length, binaryFormat, binary);
   1102 }
   1103 
   1104 void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length)
   1105 {
   1106 	GET_CONTEXT;
   1107 	ctx->glProgramBinaryOES(ctx, program, binaryFormat, binary, length);
   1108 }
   1109 
   1110 void* glMapBufferOES(GLenum target, GLenum access)
   1111 {
   1112 	GET_CONTEXT;
   1113 	return ctx->glMapBufferOES(ctx, target, access);
   1114 }
   1115 
   1116 GLboolean glUnmapBufferOES(GLenum target)
   1117 {
   1118 	GET_CONTEXT;
   1119 	return ctx->glUnmapBufferOES(ctx, target);
   1120 }
   1121 
   1122 void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
   1123 {
   1124 	GET_CONTEXT;
   1125 	ctx->glTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, format, type, pixels);
   1126 }
   1127 
   1128 void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
   1129 {
   1130 	GET_CONTEXT;
   1131 	ctx->glTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
   1132 }
   1133 
   1134 void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
   1135 {
   1136 	GET_CONTEXT;
   1137 	ctx->glCopyTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, x, y, width, height);
   1138 }
   1139 
   1140 void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
   1141 {
   1142 	GET_CONTEXT;
   1143 	ctx->glCompressedTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, imageSize, data);
   1144 }
   1145 
   1146 void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
   1147 {
   1148 	GET_CONTEXT;
   1149 	ctx->glCompressedTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
   1150 }
   1151 
   1152 void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
   1153 {
   1154 	GET_CONTEXT;
   1155 	ctx->glFramebufferTexture3DOES(ctx, target, attachment, textarget, texture, level, zoffset);
   1156 }
   1157 
   1158 void glBindVertexArrayOES(GLuint array)
   1159 {
   1160 	GET_CONTEXT;
   1161 	ctx->glBindVertexArrayOES(ctx, array);
   1162 }
   1163 
   1164 void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
   1165 {
   1166 	GET_CONTEXT;
   1167 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
   1168 	ctx->glDeleteVertexArraysOES(ctx, n, arrays);
   1169 }
   1170 
   1171 void glGenVertexArraysOES(GLsizei n, GLuint* arrays)
   1172 {
   1173 	GET_CONTEXT;
   1174 	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
   1175 	ctx->glGenVertexArraysOES(ctx, n, arrays);
   1176 }
   1177 
   1178 GLboolean glIsVertexArrayOES(GLuint array)
   1179 {
   1180 	GET_CONTEXT;
   1181 	return ctx->glIsVertexArrayOES(ctx, array);
   1182 }
   1183 
   1184 void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments)
   1185 {
   1186 	GET_CONTEXT;
   1187 	ctx->glDiscardFramebufferEXT(ctx, target, numAttachments, attachments);
   1188 }
   1189 
   1190 void glMultiDrawArraysEXT(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount)
   1191 {
   1192 	GET_CONTEXT;
   1193 	ctx->glMultiDrawArraysEXT(ctx, mode, first, count, primcount);
   1194 }
   1195 
   1196 void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const* indices, GLsizei primcount)
   1197 {
   1198 	GET_CONTEXT;
   1199 	ctx->glMultiDrawElementsEXT(ctx, mode, count, type, indices, primcount);
   1200 }
   1201 
   1202 void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups)
   1203 {
   1204 	GET_CONTEXT;
   1205 	ctx->glGetPerfMonitorGroupsAMD(ctx, numGroups, groupsSize, groups);
   1206 }
   1207 
   1208 void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters)
   1209 {
   1210 	GET_CONTEXT;
   1211 	ctx->glGetPerfMonitorCountersAMD(ctx, group, numCounters, maxActiveCounters, counterSize, counters);
   1212 }
   1213 
   1214 void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString)
   1215 {
   1216 	GET_CONTEXT;
   1217 	ctx->glGetPerfMonitorGroupStringAMD(ctx, group, bufSize, length, groupString);
   1218 }
   1219 
   1220 void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString)
   1221 {
   1222 	GET_CONTEXT;
   1223 	ctx->glGetPerfMonitorCounterStringAMD(ctx, group, counter, bufSize, length, counterString);
   1224 }
   1225 
   1226 void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data)
   1227 {
   1228 	GET_CONTEXT;
   1229 	ctx->glGetPerfMonitorCounterInfoAMD(ctx, group, counter, pname, data);
   1230 }
   1231 
   1232 void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors)
   1233 {
   1234 	GET_CONTEXT;
   1235 	ctx->glGenPerfMonitorsAMD(ctx, n, monitors);
   1236 }
   1237 
   1238 void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors)
   1239 {
   1240 	GET_CONTEXT;
   1241 	ctx->glDeletePerfMonitorsAMD(ctx, n, monitors);
   1242 }
   1243 
   1244 void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList)
   1245 {
   1246 	GET_CONTEXT;
   1247 	ctx->glSelectPerfMonitorCountersAMD(ctx, monitor, enable, group, numCounters, countersList);
   1248 }
   1249 
   1250 void glBeginPerfMonitorAMD(GLuint monitor)
   1251 {
   1252 	GET_CONTEXT;
   1253 	ctx->glBeginPerfMonitorAMD(ctx, monitor);
   1254 }
   1255 
   1256 void glEndPerfMonitorAMD(GLuint monitor)
   1257 {
   1258 	GET_CONTEXT;
   1259 	ctx->glEndPerfMonitorAMD(ctx, monitor);
   1260 }
   1261 
   1262 void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten)
   1263 {
   1264 	GET_CONTEXT;
   1265 	ctx->glGetPerfMonitorCounterDataAMD(ctx, monitor, pname, dataSize, data, bytesWritten);
   1266 }
   1267 
   1268 void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
   1269 {
   1270 	GET_CONTEXT;
   1271 	ctx->glRenderbufferStorageMultisampleIMG(ctx, target, samples, internalformat, width, height);
   1272 }
   1273 
   1274 void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
   1275 {
   1276 	GET_CONTEXT;
   1277 	ctx->glFramebufferTexture2DMultisampleIMG(ctx, target, attachment, textarget, texture, level, samples);
   1278 }
   1279 
   1280 void glDeleteFencesNV(GLsizei n, const GLuint* fences)
   1281 {
   1282 	GET_CONTEXT;
   1283 	ctx->glDeleteFencesNV(ctx, n, fences);
   1284 }
   1285 
   1286 void glGenFencesNV(GLsizei n, GLuint* fences)
   1287 {
   1288 	GET_CONTEXT;
   1289 	ctx->glGenFencesNV(ctx, n, fences);
   1290 }
   1291 
   1292 GLboolean glIsFenceNV(GLuint fence)
   1293 {
   1294 	GET_CONTEXT;
   1295 	return ctx->glIsFenceNV(ctx, fence);
   1296 }
   1297 
   1298 GLboolean glTestFenceNV(GLuint fence)
   1299 {
   1300 	GET_CONTEXT;
   1301 	return ctx->glTestFenceNV(ctx, fence);
   1302 }
   1303 
   1304 void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params)
   1305 {
   1306 	GET_CONTEXT;
   1307 	ctx->glGetFenceivNV(ctx, fence, pname, params);
   1308 }
   1309 
   1310 void glFinishFenceNV(GLuint fence)
   1311 {
   1312 	GET_CONTEXT;
   1313 	ctx->glFinishFenceNV(ctx, fence);
   1314 }
   1315 
   1316 void glSetFenceNV(GLuint fence, GLenum condition)
   1317 {
   1318 	GET_CONTEXT;
   1319 	ctx->glSetFenceNV(ctx, fence, condition);
   1320 }
   1321 
   1322 void glCoverageMaskNV(GLboolean mask)
   1323 {
   1324 	GET_CONTEXT;
   1325 	ctx->glCoverageMaskNV(ctx, mask);
   1326 }
   1327 
   1328 void glCoverageOperationNV(GLenum operation)
   1329 {
   1330 	GET_CONTEXT;
   1331 	ctx->glCoverageOperationNV(ctx, operation);
   1332 }
   1333 
   1334 void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls)
   1335 {
   1336 	GET_CONTEXT;
   1337 	ctx->glGetDriverControlsQCOM(ctx, num, size, driverControls);
   1338 }
   1339 
   1340 void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
   1341 {
   1342 	GET_CONTEXT;
   1343 	ctx->glGetDriverControlStringQCOM(ctx, driverControl, bufSize, length, driverControlString);
   1344 }
   1345 
   1346 void glEnableDriverControlQCOM(GLuint driverControl)
   1347 {
   1348 	GET_CONTEXT;
   1349 	ctx->glEnableDriverControlQCOM(ctx, driverControl);
   1350 }
   1351 
   1352 void glDisableDriverControlQCOM(GLuint driverControl)
   1353 {
   1354 	GET_CONTEXT;
   1355 	ctx->glDisableDriverControlQCOM(ctx, driverControl);
   1356 }
   1357 
   1358 void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures)
   1359 {
   1360 	GET_CONTEXT;
   1361 	ctx->glExtGetTexturesQCOM(ctx, textures, maxTextures, numTextures);
   1362 }
   1363 
   1364 void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
   1365 {
   1366 	GET_CONTEXT;
   1367 	ctx->glExtGetBuffersQCOM(ctx, buffers, maxBuffers, numBuffers);
   1368 }
   1369 
   1370 void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
   1371 {
   1372 	GET_CONTEXT;
   1373 	ctx->glExtGetRenderbuffersQCOM(ctx, renderbuffers, maxRenderbuffers, numRenderbuffers);
   1374 }
   1375 
   1376 void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
   1377 {
   1378 	GET_CONTEXT;
   1379 	ctx->glExtGetFramebuffersQCOM(ctx, framebuffers, maxFramebuffers, numFramebuffers);
   1380 }
   1381 
   1382 void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
   1383 {
   1384 	GET_CONTEXT;
   1385 	ctx->glExtGetTexLevelParameterivQCOM(ctx, texture, face, level, pname, params);
   1386 }
   1387 
   1388 void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
   1389 {
   1390 	GET_CONTEXT;
   1391 	ctx->glExtTexObjectStateOverrideiQCOM(ctx, target, pname, param);
   1392 }
   1393 
   1394 void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
   1395 {
   1396 	GET_CONTEXT;
   1397 	ctx->glExtGetTexSubImageQCOM(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
   1398 }
   1399 
   1400 void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params)
   1401 {
   1402 	GET_CONTEXT;
   1403 	ctx->glExtGetBufferPointervQCOM(ctx, target, params);
   1404 }
   1405 
   1406 void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders)
   1407 {
   1408 	GET_CONTEXT;
   1409 	ctx->glExtGetShadersQCOM(ctx, shaders, maxShaders, numShaders);
   1410 }
   1411 
   1412 void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms)
   1413 {
   1414 	GET_CONTEXT;
   1415 	ctx->glExtGetProgramsQCOM(ctx, programs, maxPrograms, numPrograms);
   1416 }
   1417 
   1418 GLboolean glExtIsProgramBinaryQCOM(GLuint program)
   1419 {
   1420 	GET_CONTEXT;
   1421 	return ctx->glExtIsProgramBinaryQCOM(ctx, program);
   1422 }
   1423 
   1424 void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length)
   1425 {
   1426 	GET_CONTEXT;
   1427 	ctx->glExtGetProgramBinarySourceQCOM(ctx, program, shadertype, source, length);
   1428 }
   1429 
   1430 void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
   1431 {
   1432 	GET_CONTEXT;
   1433 	ctx->glStartTilingQCOM(ctx, x, y, width, height, preserveMask);
   1434 }
   1435 
   1436 void glEndTilingQCOM(GLbitfield preserveMask)
   1437 {
   1438 	GET_CONTEXT;
   1439 	ctx->glEndTilingQCOM(ctx, preserveMask);
   1440 }
   1441 
   1442 void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen)
   1443 {
   1444 	GET_CONTEXT;
   1445 	ctx->glVertexAttribPointerData(ctx, indx, size, type, normalized, stride, data, datalen);
   1446 }
   1447 
   1448 void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset)
   1449 {
   1450 	GET_CONTEXT;
   1451 	ctx->glVertexAttribPointerOffset(ctx, indx, size, type, normalized, stride, offset);
   1452 }
   1453 
   1454 void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset)
   1455 {
   1456 	GET_CONTEXT;
   1457 	ctx->glDrawElementsOffset(ctx, mode, count, type, offset);
   1458 }
   1459 
   1460 void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
   1461 {
   1462 	GET_CONTEXT;
   1463 	ctx->glDrawElementsData(ctx, mode, count, type, data, datalen);
   1464 }
   1465 
   1466 void glGetCompressedTextureFormats(int count, GLint* formats)
   1467 {
   1468 	GET_CONTEXT;
   1469 	ctx->glGetCompressedTextureFormats(ctx, count, formats);
   1470 }
   1471 
   1472 void glShaderString(GLuint shader, const GLchar* string, GLsizei len)
   1473 {
   1474 	GET_CONTEXT;
   1475 	ctx->glShaderString(ctx, shader, string, len);
   1476 }
   1477 
   1478 int glFinishRoundTrip()
   1479 {
   1480 	GET_CONTEXT;
   1481 	return ctx->glFinishRoundTrip(ctx);
   1482 }
   1483 
   1484