/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
static struct _gles_funcs_by_name {
    const char *name;
    void *proc;
} gles_funcs_by_name[] = {
    {"glAlphaFunc", (void *)glAlphaFunc},
    {"glClearColor", (void *)glClearColor},
    {"glClearDepthf", (void *)glClearDepthf},
    {"glClipPlanef", (void *)glClipPlanef},
    {"glColor4f", (void *)glColor4f},
    {"glDepthRangef", (void *)glDepthRangef},
    {"glFogf", (void *)glFogf},
    {"glFogfv", (void *)glFogfv},
    {"glFrustumf", (void *)glFrustumf},
    {"glGetClipPlanef", (void *)glGetClipPlanef},
    {"glGetFloatv", (void *)glGetFloatv},
    {"glGetLightfv", (void *)glGetLightfv},
    {"glGetMaterialfv", (void *)glGetMaterialfv},
    {"glGetTexEnvfv", (void *)glGetTexEnvfv},
    {"glGetTexParameterfv", (void *)glGetTexParameterfv},
    {"glLightModelf", (void *)glLightModelf},
    {"glLightModelfv", (void *)glLightModelfv},
    {"glLightf", (void *)glLightf},
    {"glLightfv", (void *)glLightfv},
    {"glLineWidth", (void *)glLineWidth},
    {"glLoadMatrixf", (void *)glLoadMatrixf},
    {"glMaterialf", (void *)glMaterialf},
    {"glMaterialfv", (void *)glMaterialfv},
    {"glMultMatrixf", (void *)glMultMatrixf},
    {"glMultiTexCoord4f", (void *)glMultiTexCoord4f},
    {"glNormal3f", (void *)glNormal3f},
    {"glOrthof", (void *)glOrthof},
    {"glPointParameterf", (void *)glPointParameterf},
    {"glPointParameterfv", (void *)glPointParameterfv},
    {"glPointSize", (void *)glPointSize},
    {"glPolygonOffset", (void *)glPolygonOffset},
    {"glRotatef", (void *)glRotatef},
    {"glScalef", (void *)glScalef},
    {"glTexEnvf", (void *)glTexEnvf},
    {"glTexEnvfv", (void *)glTexEnvfv},
    {"glTexParameterf", (void *)glTexParameterf},
    {"glTexParameterfv", (void *)glTexParameterfv},
    {"glTranslatef", (void *)glTranslatef},
    {"glActiveTexture", (void *)glActiveTexture},
    {"glAlphaFuncx", (void *)glAlphaFuncx},
    {"glBindBuffer", (void *)glBindBuffer},
    {"glBindTexture", (void *)glBindTexture},
    {"glBlendFunc", (void *)glBlendFunc},
    {"glBufferData", (void *)glBufferData},
    {"glBufferSubData", (void *)glBufferSubData},
    {"glClear", (void *)glClear},
    {"glClearColorx", (void *)glClearColorx},
    {"glClearDepthx", (void *)glClearDepthx},
    {"glClearStencil", (void *)glClearStencil},
    {"glClientActiveTexture", (void *)glClientActiveTexture},
    {"glClipPlanex", (void *)glClipPlanex},
    {"glColor4ub", (void *)glColor4ub},
    {"glColor4x", (void *)glColor4x},
    {"glColorMask", (void *)glColorMask},
    {"glColorPointer", (void *)glColorPointer},
    {"glCompressedTexImage2D", (void *)glCompressedTexImage2D},
    {"glCompressedTexSubImage2D", (void *)glCompressedTexSubImage2D},
    {"glCopyTexImage2D", (void *)glCopyTexImage2D},
    {"glCopyTexSubImage2D", (void *)glCopyTexSubImage2D},
    {"glCullFace", (void *)glCullFace},
    {"glDeleteBuffers", (void *)glDeleteBuffers},
    {"glDeleteTextures", (void *)glDeleteTextures},
    {"glDepthFunc", (void *)glDepthFunc},
    {"glDepthMask", (void *)glDepthMask},
    {"glDepthRangex", (void *)glDepthRangex},
    {"glDisable", (void *)glDisable},
    {"glDisableClientState", (void *)glDisableClientState},
    {"glDrawArrays", (void *)glDrawArrays},
    {"glDrawElements", (void *)glDrawElements},
    {"glEnable", (void *)glEnable},
    {"glEnableClientState", (void *)glEnableClientState},
    {"glFinish", (void *)glFinish},
    {"glFlush", (void *)glFlush},
    {"glFogx", (void *)glFogx},
    {"glFogxv", (void *)glFogxv},
    {"glFrontFace", (void *)glFrontFace},
    {"glFrustumx", (void *)glFrustumx},
    {"glGetBooleanv", (void *)glGetBooleanv},
    {"glGetBufferParameteriv", (void *)glGetBufferParameteriv},
    {"glGetClipPlanex", (void *)glGetClipPlanex},
    {"glGenBuffers", (void *)glGenBuffers},
    {"glGenTextures", (void *)glGenTextures},
    {"glGetError", (void *)glGetError},
    {"glGetFixedv", (void *)glGetFixedv},
    {"glGetIntegerv", (void *)glGetIntegerv},
    {"glGetLightxv", (void *)glGetLightxv},
    {"glGetMaterialxv", (void *)glGetMaterialxv},
    {"glGetPointerv", (void *)glGetPointerv},
    {"glGetString", (void *)glGetString},
    {"glGetTexEnviv", (void *)glGetTexEnviv},
    {"glGetTexEnvxv", (void *)glGetTexEnvxv},
    {"glGetTexParameteriv", (void *)glGetTexParameteriv},
    {"glGetTexParameterxv", (void *)glGetTexParameterxv},
    {"glHint", (void *)glHint},
    {"glIsBuffer", (void *)glIsBuffer},
    {"glIsEnabled", (void *)glIsEnabled},
    {"glIsTexture", (void *)glIsTexture},
    {"glLightModelx", (void *)glLightModelx},
    {"glLightModelxv", (void *)glLightModelxv},
    {"glLightx", (void *)glLightx},
    {"glLightxv", (void *)glLightxv},
    {"glLineWidthx", (void *)glLineWidthx},
    {"glLoadIdentity", (void *)glLoadIdentity},
    {"glLoadMatrixx", (void *)glLoadMatrixx},
    {"glLogicOp", (void *)glLogicOp},
    {"glMaterialx", (void *)glMaterialx},
    {"glMaterialxv", (void *)glMaterialxv},
    {"glMatrixMode", (void *)glMatrixMode},
    {"glMultMatrixx", (void *)glMultMatrixx},
    {"glMultiTexCoord4x", (void *)glMultiTexCoord4x},
    {"glNormal3x", (void *)glNormal3x},
    {"glNormalPointer", (void *)glNormalPointer},
    {"glOrthox", (void *)glOrthox},
    {"glPixelStorei", (void *)glPixelStorei},
    {"glPointParameterx", (void *)glPointParameterx},
    {"glPointParameterxv", (void *)glPointParameterxv},
    {"glPointSizex", (void *)glPointSizex},
    {"glPolygonOffsetx", (void *)glPolygonOffsetx},
    {"glPopMatrix", (void *)glPopMatrix},
    {"glPushMatrix", (void *)glPushMatrix},
    {"glReadPixels", (void *)glReadPixels},
    {"glRotatex", (void *)glRotatex},
    {"glSampleCoverage", (void *)glSampleCoverage},
    {"glSampleCoveragex", (void *)glSampleCoveragex},
    {"glScalex", (void *)glScalex},
    {"glScissor", (void *)glScissor},
    {"glShadeModel", (void *)glShadeModel},
    {"glStencilFunc", (void *)glStencilFunc},
    {"glStencilMask", (void *)glStencilMask},
    {"glStencilOp", (void *)glStencilOp},
    {"glTexCoordPointer", (void *)glTexCoordPointer},
    {"glTexEnvi", (void *)glTexEnvi},
    {"glTexEnvx", (void *)glTexEnvx},
    {"glTexEnviv", (void *)glTexEnviv},
    {"glTexEnvxv", (void *)glTexEnvxv},
    {"glTexImage2D", (void *)glTexImage2D},
    {"glTexParameteri", (void *)glTexParameteri},
    {"glTexParameterx", (void *)glTexParameterx},
    {"glTexParameteriv", (void *)glTexParameteriv},
    {"glTexParameterxv", (void *)glTexParameterxv},
    {"glTexSubImage2D", (void *)glTexSubImage2D},
    {"glTranslatex", (void *)glTranslatex},
    {"glVertexPointer", (void *)glVertexPointer},
    {"glViewport", (void *)glViewport},
    {"glPointSizePointerOES", (void *)glPointSizePointerOES},
    {"glBlendEquationSeparateOES", (void *)glBlendEquationSeparateOES},
    {"glBlendFuncSeparateOES", (void *)glBlendFuncSeparateOES},
    {"glBlendEquationOES", (void *)glBlendEquationOES},
    {"glDrawTexsOES", (void *)glDrawTexsOES},
    {"glDrawTexiOES", (void *)glDrawTexiOES},
    {"glDrawTexxOES", (void *)glDrawTexxOES},
    {"glDrawTexsvOES", (void *)glDrawTexsvOES},
    {"glDrawTexivOES", (void *)glDrawTexivOES},
    {"glDrawTexxvOES", (void *)glDrawTexxvOES},
    {"glDrawTexfOES", (void *)glDrawTexfOES},
    {"glDrawTexfvOES", (void *)glDrawTexfvOES},
    {"glEGLImageTargetTexture2DOES", (void *)glEGLImageTargetTexture2DOES},
    {"glEGLImageTargetRenderbufferStorageOES", (void *)glEGLImageTargetRenderbufferStorageOES},
    {"glAlphaFuncxOES", (void *)glAlphaFuncxOES},
    {"glClearColorxOES", (void *)glClearColorxOES},
    {"glClearDepthxOES", (void *)glClearDepthxOES},
    {"glClipPlanexOES", (void *)glClipPlanexOES},
    {"glColor4xOES", (void *)glColor4xOES},
    {"glDepthRangexOES", (void *)glDepthRangexOES},
    {"glFogxOES", (void *)glFogxOES},
    {"glFogxvOES", (void *)glFogxvOES},
    {"glFrustumxOES", (void *)glFrustumxOES},
    {"glGetClipPlanexOES", (void *)glGetClipPlanexOES},
    {"glGetFixedvOES", (void *)glGetFixedvOES},
    {"glGetLightxvOES", (void *)glGetLightxvOES},
    {"glGetMaterialxvOES", (void *)glGetMaterialxvOES},
    {"glGetTexEnvxvOES", (void *)glGetTexEnvxvOES},
    {"glGetTexParameterxvOES", (void *)glGetTexParameterxvOES},
    {"glLightModelxOES", (void *)glLightModelxOES},
    {"glLightModelxvOES", (void *)glLightModelxvOES},
    {"glLightxOES", (void *)glLightxOES},
    {"glLightxvOES", (void *)glLightxvOES},
    {"glLineWidthxOES", (void *)glLineWidthxOES},
    {"glLoadMatrixxOES", (void *)glLoadMatrixxOES},
    {"glMaterialxOES", (void *)glMaterialxOES},
    {"glMaterialxvOES", (void *)glMaterialxvOES},
    {"glMultMatrixxOES", (void *)glMultMatrixxOES},
    {"glMultiTexCoord4xOES", (void *)glMultiTexCoord4xOES},
    {"glNormal3xOES", (void *)glNormal3xOES},
    {"glOrthoxOES", (void *)glOrthoxOES},
    {"glPointParameterxOES", (void *)glPointParameterxOES},
    {"glPointParameterxvOES", (void *)glPointParameterxvOES},
    {"glPointSizexOES", (void *)glPointSizexOES},
    {"glPolygonOffsetxOES", (void *)glPolygonOffsetxOES},
    {"glRotatexOES", (void *)glRotatexOES},
    {"glSampleCoveragexOES", (void *)glSampleCoveragexOES},
    {"glScalexOES", (void *)glScalexOES},
    {"glTexEnvxOES", (void *)glTexEnvxOES},
    {"glTexEnvxvOES", (void *)glTexEnvxvOES},
    {"glTexParameterxOES", (void *)glTexParameterxOES},
    {"glTexParameterxvOES", (void *)glTexParameterxvOES},
    {"glTranslatexOES", (void *)glTranslatexOES},
    {"glIsRenderbufferOES", (void *)glIsRenderbufferOES},
    {"glBindRenderbufferOES", (void *)glBindRenderbufferOES},
    {"glDeleteRenderbuffersOES", (void *)glDeleteRenderbuffersOES},
    {"glGenRenderbuffersOES", (void *)glGenRenderbuffersOES},
    {"glRenderbufferStorageOES", (void *)glRenderbufferStorageOES},
    {"glGetRenderbufferParameterivOES", (void *)glGetRenderbufferParameterivOES},
    {"glIsFramebufferOES", (void *)glIsFramebufferOES},
    {"glBindFramebufferOES", (void *)glBindFramebufferOES},
    {"glDeleteFramebuffersOES", (void *)glDeleteFramebuffersOES},
    {"glGenFramebuffersOES", (void *)glGenFramebuffersOES},
    {"glCheckFramebufferStatusOES", (void *)glCheckFramebufferStatusOES},
    {"glFramebufferRenderbufferOES", (void *)glFramebufferRenderbufferOES},
    {"glFramebufferTexture2DOES", (void *)glFramebufferTexture2DOES},
    {"glGetFramebufferAttachmentParameterivOES", (void *)glGetFramebufferAttachmentParameterivOES},
    {"glGenerateMipmapOES", (void *)glGenerateMipmapOES},
    {"glMapBufferOES", (void *)glMapBufferOES},
    {"glUnmapBufferOES", (void *)glUnmapBufferOES},
    {"glGetBufferPointervOES", (void *)glGetBufferPointervOES},
    {"glCurrentPaletteMatrixOES", (void *)glCurrentPaletteMatrixOES},
    {"glLoadPaletteFromModelViewMatrixOES", (void *)glLoadPaletteFromModelViewMatrixOES},
    {"glMatrixIndexPointerOES", (void *)glMatrixIndexPointerOES},
    {"glWeightPointerOES", (void *)glWeightPointerOES},
    {"glQueryMatrixxOES", (void *)glQueryMatrixxOES},
    {"glDepthRangefOES", (void *)glDepthRangefOES},
    {"glFrustumfOES", (void *)glFrustumfOES},
    {"glOrthofOES", (void *)glOrthofOES},
    {"glClipPlanefOES", (void *)glClipPlanefOES},
    {"glGetClipPlanefOES", (void *)glGetClipPlanefOES},
    {"glClearDepthfOES", (void *)glClearDepthfOES},
    {"glTexGenfOES", (void *)glTexGenfOES},
    {"glTexGenfvOES", (void *)glTexGenfvOES},
    {"glTexGeniOES", (void *)glTexGeniOES},
    {"glTexGenivOES", (void *)glTexGenivOES},
    {"glTexGenxOES", (void *)glTexGenxOES},
    {"glTexGenxvOES", (void *)glTexGenxvOES},
    {"glGetTexGenfvOES", (void *)glGetTexGenfvOES},
    {"glGetTexGenivOES", (void *)glGetTexGenivOES},
    {"glGetTexGenxvOES", (void *)glGetTexGenxvOES},
    {"glBindVertexArrayOES", (void *)glBindVertexArrayOES},
    {"glDeleteVertexArraysOES", (void *)glDeleteVertexArraysOES},
    {"glGenVertexArraysOES", (void *)glGenVertexArraysOES},
    {"glIsVertexArrayOES", (void *)glIsVertexArrayOES},
    {"glDiscardFramebufferEXT", (void *)glDiscardFramebufferEXT},
    {"glMultiDrawArraysEXT", (void *)glMultiDrawArraysEXT},
    {"glMultiDrawElementsEXT", (void *)glMultiDrawElementsEXT},
    {"glClipPlanefIMG", (void *)glClipPlanefIMG},
    {"glClipPlanexIMG", (void *)glClipPlanexIMG},
    {"glRenderbufferStorageMultisampleIMG", (void *)glRenderbufferStorageMultisampleIMG},
    {"glFramebufferTexture2DMultisampleIMG", (void *)glFramebufferTexture2DMultisampleIMG},
    {"glDeleteFencesNV", (void *)glDeleteFencesNV},
    {"glGenFencesNV", (void *)glGenFencesNV},
    {"glIsFenceNV", (void *)glIsFenceNV},
    {"glTestFenceNV", (void *)glTestFenceNV},
    {"glGetFenceivNV", (void *)glGetFenceivNV},
    {"glFinishFenceNV", (void *)glFinishFenceNV},
    {"glSetFenceNV", (void *)glSetFenceNV},
    {"glGetDriverControlsQCOM", (void *)glGetDriverControlsQCOM},
    {"glGetDriverControlStringQCOM", (void *)glGetDriverControlStringQCOM},
    {"glEnableDriverControlQCOM", (void *)glEnableDriverControlQCOM},
    {"glDisableDriverControlQCOM", (void *)glDisableDriverControlQCOM},
    {"glExtGetTexturesQCOM", (void *)glExtGetTexturesQCOM},
    {"glExtGetBuffersQCOM", (void *)glExtGetBuffersQCOM},
    {"glExtGetRenderbuffersQCOM", (void *)glExtGetRenderbuffersQCOM},
    {"glExtGetFramebuffersQCOM", (void *)glExtGetFramebuffersQCOM},
    {"glExtGetTexLevelParameterivQCOM", (void *)glExtGetTexLevelParameterivQCOM},
    {"glExtTexObjectStateOverrideiQCOM", (void *)glExtTexObjectStateOverrideiQCOM},
    {"glExtGetTexSubImageQCOM", (void *)glExtGetTexSubImageQCOM},
    {"glExtGetBufferPointervQCOM", (void *)glExtGetBufferPointervQCOM},
    {"glExtGetShadersQCOM", (void *)glExtGetShadersQCOM},
    {"glExtGetProgramsQCOM", (void *)glExtGetProgramsQCOM},
    {"glExtIsProgramBinaryQCOM", (void *)glExtIsProgramBinaryQCOM},
    {"glExtGetProgramBinarySourceQCOM", (void *)glExtGetProgramBinarySourceQCOM},
    {"glStartTilingQCOM", (void *)glStartTilingQCOM},
    {"glEndTilingQCOM", (void *)glEndTilingQCOM}
};
static int gles_num_funcs = sizeof(gles_funcs_by_name) / sizeof(struct _gles_funcs_by_name);
