/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 *
 * Generated from Khronos GL API description (gl.xml) revision 9d534f9312e56c72df763207e449c6719576fd54.
 */
gl->activeTexture						= &glActiveTexture;
gl->attachShader						= &glAttachShader;
gl->bindAttribLocation					= &glBindAttribLocation;
gl->bindBuffer							= &glBindBuffer;
gl->bindFramebuffer						= &glBindFramebuffer;
gl->bindRenderbuffer					= &glBindRenderbuffer;
gl->bindTexture							= &glBindTexture;
gl->blendColor							= &glBlendColor;
gl->blendEquation						= &glBlendEquation;
gl->blendEquationSeparate				= &glBlendEquationSeparate;
gl->blendFunc							= &glBlendFunc;
gl->blendFuncSeparate					= &glBlendFuncSeparate;
gl->bufferData							= &glBufferData;
gl->bufferSubData						= &glBufferSubData;
gl->checkFramebufferStatus				= &glCheckFramebufferStatus;
gl->clear								= &glClear;
gl->clearColor							= &glClearColor;
gl->clearDepthf							= &glClearDepthf;
gl->clearStencil						= &glClearStencil;
gl->colorMask							= &glColorMask;
gl->compileShader						= &glCompileShader;
gl->compressedTexImage2D				= &glCompressedTexImage2D;
gl->compressedTexSubImage2D				= &glCompressedTexSubImage2D;
gl->copyTexImage2D						= &glCopyTexImage2D;
gl->copyTexSubImage2D					= &glCopyTexSubImage2D;
gl->createProgram						= &glCreateProgram;
gl->createShader						= &glCreateShader;
gl->cullFace							= &glCullFace;
gl->deleteBuffers						= &glDeleteBuffers;
gl->deleteFramebuffers					= &glDeleteFramebuffers;
gl->deleteProgram						= &glDeleteProgram;
gl->deleteRenderbuffers					= &glDeleteRenderbuffers;
gl->deleteShader						= &glDeleteShader;
gl->deleteTextures						= &glDeleteTextures;
gl->depthFunc							= &glDepthFunc;
gl->depthMask							= &glDepthMask;
gl->depthRangef							= &glDepthRangef;
gl->detachShader						= &glDetachShader;
gl->disable								= &glDisable;
gl->disableVertexAttribArray			= &glDisableVertexAttribArray;
gl->drawArrays							= &glDrawArrays;
gl->drawElements						= &glDrawElements;
gl->enable								= &glEnable;
gl->enableVertexAttribArray				= &glEnableVertexAttribArray;
gl->finish								= &glFinish;
gl->flush								= &glFlush;
gl->framebufferRenderbuffer				= &glFramebufferRenderbuffer;
gl->framebufferTexture2D				= &glFramebufferTexture2D;
gl->frontFace							= &glFrontFace;
gl->genBuffers							= &glGenBuffers;
gl->genFramebuffers						= &glGenFramebuffers;
gl->genRenderbuffers					= &glGenRenderbuffers;
gl->genTextures							= &glGenTextures;
gl->generateMipmap						= &glGenerateMipmap;
gl->getActiveAttrib						= &glGetActiveAttrib;
gl->getActiveUniform					= &glGetActiveUniform;
gl->getAttachedShaders					= &glGetAttachedShaders;
gl->getAttribLocation					= &glGetAttribLocation;
gl->getBooleanv							= &glGetBooleanv;
gl->getBufferParameteriv				= &glGetBufferParameteriv;
gl->getError							= &glGetError;
gl->getFloatv							= &glGetFloatv;
gl->getFramebufferAttachmentParameteriv	= &glGetFramebufferAttachmentParameteriv;
gl->getIntegerv							= &glGetIntegerv;
gl->getProgramInfoLog					= &glGetProgramInfoLog;
gl->getProgramiv						= &glGetProgramiv;
gl->getRenderbufferParameteriv			= &glGetRenderbufferParameteriv;
gl->getShaderInfoLog					= &glGetShaderInfoLog;
gl->getShaderPrecisionFormat			= &glGetShaderPrecisionFormat;
gl->getShaderSource						= &glGetShaderSource;
gl->getShaderiv							= &glGetShaderiv;
gl->getString							= &glGetString;
gl->getTexParameterfv					= &glGetTexParameterfv;
gl->getTexParameteriv					= &glGetTexParameteriv;
gl->getUniformLocation					= &glGetUniformLocation;
gl->getUniformfv						= &glGetUniformfv;
gl->getUniformiv						= &glGetUniformiv;
gl->getVertexAttribPointerv				= &glGetVertexAttribPointerv;
gl->getVertexAttribfv					= &glGetVertexAttribfv;
gl->getVertexAttribiv					= &glGetVertexAttribiv;
gl->hint								= &glHint;
gl->isBuffer							= &glIsBuffer;
gl->isEnabled							= &glIsEnabled;
gl->isFramebuffer						= &glIsFramebuffer;
gl->isProgram							= &glIsProgram;
gl->isRenderbuffer						= &glIsRenderbuffer;
gl->isShader							= &glIsShader;
gl->isTexture							= &glIsTexture;
gl->lineWidth							= &glLineWidth;
gl->linkProgram							= &glLinkProgram;
gl->pixelStorei							= &glPixelStorei;
gl->polygonOffset						= &glPolygonOffset;
gl->readPixels							= &glReadPixels;
gl->releaseShaderCompiler				= &glReleaseShaderCompiler;
gl->renderbufferStorage					= &glRenderbufferStorage;
gl->sampleCoverage						= &glSampleCoverage;
gl->scissor								= &glScissor;
gl->shaderBinary						= &glShaderBinary;
gl->shaderSource						= (glShaderSourceFunc)&glShaderSource;
gl->stencilFunc							= &glStencilFunc;
gl->stencilFuncSeparate					= &glStencilFuncSeparate;
gl->stencilMask							= &glStencilMask;
gl->stencilMaskSeparate					= &glStencilMaskSeparate;
gl->stencilOp							= &glStencilOp;
gl->stencilOpSeparate					= &glStencilOpSeparate;
gl->texImage2D							= &glTexImage2D;
gl->texParameterf						= &glTexParameterf;
gl->texParameterfv						= &glTexParameterfv;
gl->texParameteri						= &glTexParameteri;
gl->texParameteriv						= &glTexParameteriv;
gl->texSubImage2D						= &glTexSubImage2D;
gl->uniform1f							= &glUniform1f;
gl->uniform1fv							= &glUniform1fv;
gl->uniform1i							= &glUniform1i;
gl->uniform1iv							= &glUniform1iv;
gl->uniform2f							= &glUniform2f;
gl->uniform2fv							= &glUniform2fv;
gl->uniform2i							= &glUniform2i;
gl->uniform2iv							= &glUniform2iv;
gl->uniform3f							= &glUniform3f;
gl->uniform3fv							= &glUniform3fv;
gl->uniform3i							= &glUniform3i;
gl->uniform3iv							= &glUniform3iv;
gl->uniform4f							= &glUniform4f;
gl->uniform4fv							= &glUniform4fv;
gl->uniform4i							= &glUniform4i;
gl->uniform4iv							= &glUniform4iv;
gl->uniformMatrix2fv					= &glUniformMatrix2fv;
gl->uniformMatrix3fv					= &glUniformMatrix3fv;
gl->uniformMatrix4fv					= &glUniformMatrix4fv;
gl->useProgram							= &glUseProgram;
gl->validateProgram						= &glValidateProgram;
gl->vertexAttrib1f						= &glVertexAttrib1f;
gl->vertexAttrib1fv						= &glVertexAttrib1fv;
gl->vertexAttrib2f						= &glVertexAttrib2f;
gl->vertexAttrib2fv						= &glVertexAttrib2fv;
gl->vertexAttrib3f						= &glVertexAttrib3f;
gl->vertexAttrib3fv						= &glVertexAttrib3fv;
gl->vertexAttrib4f						= &glVertexAttrib4f;
gl->vertexAttrib4fv						= &glVertexAttrib4fv;
gl->vertexAttribPointer					= &glVertexAttribPointer;
gl->viewport							= &glViewport;
