/* 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						= (glActiveTextureFunc)							loader->get("glActiveTexture");
gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
gl->bindAttribLocation					= (glBindAttribLocationFunc)					loader->get("glBindAttribLocation");
gl->bindBuffer							= (glBindBufferFunc)							loader->get("glBindBuffer");
gl->bindFramebuffer						= (glBindFramebufferFunc)						loader->get("glBindFramebuffer");
gl->bindRenderbuffer					= (glBindRenderbufferFunc)						loader->get("glBindRenderbuffer");
gl->bindTexture							= (glBindTextureFunc)							loader->get("glBindTexture");
gl->blendColor							= (glBlendColorFunc)							loader->get("glBlendColor");
gl->blendEquation						= (glBlendEquationFunc)							loader->get("glBlendEquation");
gl->blendEquationSeparate				= (glBlendEquationSeparateFunc)					loader->get("glBlendEquationSeparate");
gl->blendFunc							= (glBlendFuncFunc)								loader->get("glBlendFunc");
gl->blendFuncSeparate					= (glBlendFuncSeparateFunc)						loader->get("glBlendFuncSeparate");
gl->bufferData							= (glBufferDataFunc)							loader->get("glBufferData");
gl->bufferSubData						= (glBufferSubDataFunc)							loader->get("glBufferSubData");
gl->checkFramebufferStatus				= (glCheckFramebufferStatusFunc)				loader->get("glCheckFramebufferStatus");
gl->clear								= (glClearFunc)									loader->get("glClear");
gl->clearColor							= (glClearColorFunc)							loader->get("glClearColor");
gl->clearDepthf							= (glClearDepthfFunc)							loader->get("glClearDepthf");
gl->clearStencil						= (glClearStencilFunc)							loader->get("glClearStencil");
gl->colorMask							= (glColorMaskFunc)								loader->get("glColorMask");
gl->compileShader						= (glCompileShaderFunc)							loader->get("glCompileShader");
gl->compressedTexImage2D				= (glCompressedTexImage2DFunc)					loader->get("glCompressedTexImage2D");
gl->compressedTexSubImage2D				= (glCompressedTexSubImage2DFunc)				loader->get("glCompressedTexSubImage2D");
gl->copyTexImage2D						= (glCopyTexImage2DFunc)						loader->get("glCopyTexImage2D");
gl->copyTexSubImage2D					= (glCopyTexSubImage2DFunc)						loader->get("glCopyTexSubImage2D");
gl->createProgram						= (glCreateProgramFunc)							loader->get("glCreateProgram");
gl->createShader						= (glCreateShaderFunc)							loader->get("glCreateShader");
gl->cullFace							= (glCullFaceFunc)								loader->get("glCullFace");
gl->deleteBuffers						= (glDeleteBuffersFunc)							loader->get("glDeleteBuffers");
gl->deleteFramebuffers					= (glDeleteFramebuffersFunc)					loader->get("glDeleteFramebuffers");
gl->deleteProgram						= (glDeleteProgramFunc)							loader->get("glDeleteProgram");
gl->deleteRenderbuffers					= (glDeleteRenderbuffersFunc)					loader->get("glDeleteRenderbuffers");
gl->deleteShader						= (glDeleteShaderFunc)							loader->get("glDeleteShader");
gl->deleteTextures						= (glDeleteTexturesFunc)						loader->get("glDeleteTextures");
gl->depthFunc							= (glDepthFuncFunc)								loader->get("glDepthFunc");
gl->depthMask							= (glDepthMaskFunc)								loader->get("glDepthMask");
gl->depthRangef							= (glDepthRangefFunc)							loader->get("glDepthRangef");
gl->detachShader						= (glDetachShaderFunc)							loader->get("glDetachShader");
gl->disable								= (glDisableFunc)								loader->get("glDisable");
gl->disableVertexAttribArray			= (glDisableVertexAttribArrayFunc)				loader->get("glDisableVertexAttribArray");
gl->drawArrays							= (glDrawArraysFunc)							loader->get("glDrawArrays");
gl->drawElements						= (glDrawElementsFunc)							loader->get("glDrawElements");
gl->enable								= (glEnableFunc)								loader->get("glEnable");
gl->enableVertexAttribArray				= (glEnableVertexAttribArrayFunc)				loader->get("glEnableVertexAttribArray");
gl->finish								= (glFinishFunc)								loader->get("glFinish");
gl->flush								= (glFlushFunc)									loader->get("glFlush");
gl->framebufferRenderbuffer				= (glFramebufferRenderbufferFunc)				loader->get("glFramebufferRenderbuffer");
gl->framebufferTexture2D				= (glFramebufferTexture2DFunc)					loader->get("glFramebufferTexture2D");
gl->frontFace							= (glFrontFaceFunc)								loader->get("glFrontFace");
gl->genBuffers							= (glGenBuffersFunc)							loader->get("glGenBuffers");
gl->genFramebuffers						= (glGenFramebuffersFunc)						loader->get("glGenFramebuffers");
gl->genRenderbuffers					= (glGenRenderbuffersFunc)						loader->get("glGenRenderbuffers");
gl->genTextures							= (glGenTexturesFunc)							loader->get("glGenTextures");
gl->generateMipmap						= (glGenerateMipmapFunc)						loader->get("glGenerateMipmap");
gl->getActiveAttrib						= (glGetActiveAttribFunc)						loader->get("glGetActiveAttrib");
gl->getActiveUniform					= (glGetActiveUniformFunc)						loader->get("glGetActiveUniform");
gl->getAttachedShaders					= (glGetAttachedShadersFunc)					loader->get("glGetAttachedShaders");
gl->getAttribLocation					= (glGetAttribLocationFunc)						loader->get("glGetAttribLocation");
gl->getBooleanv							= (glGetBooleanvFunc)							loader->get("glGetBooleanv");
gl->getBufferParameteriv				= (glGetBufferParameterivFunc)					loader->get("glGetBufferParameteriv");
gl->getError							= (glGetErrorFunc)								loader->get("glGetError");
gl->getFloatv							= (glGetFloatvFunc)								loader->get("glGetFloatv");
gl->getFramebufferAttachmentParameteriv	= (glGetFramebufferAttachmentParameterivFunc)	loader->get("glGetFramebufferAttachmentParameteriv");
gl->getIntegerv							= (glGetIntegervFunc)							loader->get("glGetIntegerv");
gl->getProgramInfoLog					= (glGetProgramInfoLogFunc)						loader->get("glGetProgramInfoLog");
gl->getProgramiv						= (glGetProgramivFunc)							loader->get("glGetProgramiv");
gl->getRenderbufferParameteriv			= (glGetRenderbufferParameterivFunc)			loader->get("glGetRenderbufferParameteriv");
gl->getShaderInfoLog					= (glGetShaderInfoLogFunc)						loader->get("glGetShaderInfoLog");
gl->getShaderPrecisionFormat			= (glGetShaderPrecisionFormatFunc)				loader->get("glGetShaderPrecisionFormat");
gl->getShaderSource						= (glGetShaderSourceFunc)						loader->get("glGetShaderSource");
gl->getShaderiv							= (glGetShaderivFunc)							loader->get("glGetShaderiv");
gl->getString							= (glGetStringFunc)								loader->get("glGetString");
gl->getTexParameterfv					= (glGetTexParameterfvFunc)						loader->get("glGetTexParameterfv");
gl->getTexParameteriv					= (glGetTexParameterivFunc)						loader->get("glGetTexParameteriv");
gl->getUniformLocation					= (glGetUniformLocationFunc)					loader->get("glGetUniformLocation");
gl->getUniformfv						= (glGetUniformfvFunc)							loader->get("glGetUniformfv");
gl->getUniformiv						= (glGetUniformivFunc)							loader->get("glGetUniformiv");
gl->getVertexAttribPointerv				= (glGetVertexAttribPointervFunc)				loader->get("glGetVertexAttribPointerv");
gl->getVertexAttribfv					= (glGetVertexAttribfvFunc)						loader->get("glGetVertexAttribfv");
gl->getVertexAttribiv					= (glGetVertexAttribivFunc)						loader->get("glGetVertexAttribiv");
gl->hint								= (glHintFunc)									loader->get("glHint");
gl->isBuffer							= (glIsBufferFunc)								loader->get("glIsBuffer");
gl->isEnabled							= (glIsEnabledFunc)								loader->get("glIsEnabled");
gl->isFramebuffer						= (glIsFramebufferFunc)							loader->get("glIsFramebuffer");
gl->isProgram							= (glIsProgramFunc)								loader->get("glIsProgram");
gl->isRenderbuffer						= (glIsRenderbufferFunc)						loader->get("glIsRenderbuffer");
gl->isShader							= (glIsShaderFunc)								loader->get("glIsShader");
gl->isTexture							= (glIsTextureFunc)								loader->get("glIsTexture");
gl->lineWidth							= (glLineWidthFunc)								loader->get("glLineWidth");
gl->linkProgram							= (glLinkProgramFunc)							loader->get("glLinkProgram");
gl->pixelStorei							= (glPixelStoreiFunc)							loader->get("glPixelStorei");
gl->polygonOffset						= (glPolygonOffsetFunc)							loader->get("glPolygonOffset");
gl->readPixels							= (glReadPixelsFunc)							loader->get("glReadPixels");
gl->releaseShaderCompiler				= (glReleaseShaderCompilerFunc)					loader->get("glReleaseShaderCompiler");
gl->renderbufferStorage					= (glRenderbufferStorageFunc)					loader->get("glRenderbufferStorage");
gl->sampleCoverage						= (glSampleCoverageFunc)						loader->get("glSampleCoverage");
gl->scissor								= (glScissorFunc)								loader->get("glScissor");
gl->shaderBinary						= (glShaderBinaryFunc)							loader->get("glShaderBinary");
gl->shaderSource						= (glShaderSourceFunc)							loader->get("glShaderSource");
gl->stencilFunc							= (glStencilFuncFunc)							loader->get("glStencilFunc");
gl->stencilFuncSeparate					= (glStencilFuncSeparateFunc)					loader->get("glStencilFuncSeparate");
gl->stencilMask							= (glStencilMaskFunc)							loader->get("glStencilMask");
gl->stencilMaskSeparate					= (glStencilMaskSeparateFunc)					loader->get("glStencilMaskSeparate");
gl->stencilOp							= (glStencilOpFunc)								loader->get("glStencilOp");
gl->stencilOpSeparate					= (glStencilOpSeparateFunc)						loader->get("glStencilOpSeparate");
gl->texImage2D							= (glTexImage2DFunc)							loader->get("glTexImage2D");
gl->texParameterf						= (glTexParameterfFunc)							loader->get("glTexParameterf");
gl->texParameterfv						= (glTexParameterfvFunc)						loader->get("glTexParameterfv");
gl->texParameteri						= (glTexParameteriFunc)							loader->get("glTexParameteri");
gl->texParameteriv						= (glTexParameterivFunc)						loader->get("glTexParameteriv");
gl->texSubImage2D						= (glTexSubImage2DFunc)							loader->get("glTexSubImage2D");
gl->uniform1f							= (glUniform1fFunc)								loader->get("glUniform1f");
gl->uniform1fv							= (glUniform1fvFunc)							loader->get("glUniform1fv");
gl->uniform1i							= (glUniform1iFunc)								loader->get("glUniform1i");
gl->uniform1iv							= (glUniform1ivFunc)							loader->get("glUniform1iv");
gl->uniform2f							= (glUniform2fFunc)								loader->get("glUniform2f");
gl->uniform2fv							= (glUniform2fvFunc)							loader->get("glUniform2fv");
gl->uniform2i							= (glUniform2iFunc)								loader->get("glUniform2i");
gl->uniform2iv							= (glUniform2ivFunc)							loader->get("glUniform2iv");
gl->uniform3f							= (glUniform3fFunc)								loader->get("glUniform3f");
gl->uniform3fv							= (glUniform3fvFunc)							loader->get("glUniform3fv");
gl->uniform3i							= (glUniform3iFunc)								loader->get("glUniform3i");
gl->uniform3iv							= (glUniform3ivFunc)							loader->get("glUniform3iv");
gl->uniform4f							= (glUniform4fFunc)								loader->get("glUniform4f");
gl->uniform4fv							= (glUniform4fvFunc)							loader->get("glUniform4fv");
gl->uniform4i							= (glUniform4iFunc)								loader->get("glUniform4i");
gl->uniform4iv							= (glUniform4ivFunc)							loader->get("glUniform4iv");
gl->uniformMatrix2fv					= (glUniformMatrix2fvFunc)						loader->get("glUniformMatrix2fv");
gl->uniformMatrix3fv					= (glUniformMatrix3fvFunc)						loader->get("glUniformMatrix3fv");
gl->uniformMatrix4fv					= (glUniformMatrix4fvFunc)						loader->get("glUniformMatrix4fv");
gl->useProgram							= (glUseProgramFunc)							loader->get("glUseProgram");
gl->validateProgram						= (glValidateProgramFunc)						loader->get("glValidateProgram");
gl->vertexAttrib1f						= (glVertexAttrib1fFunc)						loader->get("glVertexAttrib1f");
gl->vertexAttrib1fv						= (glVertexAttrib1fvFunc)						loader->get("glVertexAttrib1fv");
gl->vertexAttrib2f						= (glVertexAttrib2fFunc)						loader->get("glVertexAttrib2f");
gl->vertexAttrib2fv						= (glVertexAttrib2fvFunc)						loader->get("glVertexAttrib2fv");
gl->vertexAttrib3f						= (glVertexAttrib3fFunc)						loader->get("glVertexAttrib3f");
gl->vertexAttrib3fv						= (glVertexAttrib3fvFunc)						loader->get("glVertexAttrib3fv");
gl->vertexAttrib4f						= (glVertexAttrib4fFunc)						loader->get("glVertexAttrib4f");
gl->vertexAttrib4fv						= (glVertexAttrib4fvFunc)						loader->get("glVertexAttrib4fv");
gl->vertexAttribPointer					= (glVertexAttribPointerFunc)					loader->get("glVertexAttribPointer");
gl->viewport							= (glViewportFunc)								loader->get("glViewport");
