/****************************************************************************
*
*    Copyright 2012 Vivante Corporation, Sunnyvale, California.
*    All Rights Reserved.
*
*    Permission is hereby granted, free of charge, to any person obtaining
*    a copy of this software and associated documentation files (the
*    'Software'), to deal in the Software without restriction, including
*    without limitation the rights to use, copy, modify, merge, publish,
*    distribute, sub license, and/or sell copies of the Software, and to
*    permit persons to whom the Software is furnished to do so, subject
*    to the following conditions:
*
*    The above copyright notice and this permission notice (including the
*    next paragraph) shall be included in all copies or substantial
*    portions of the Software.
*
*    THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
*    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
*    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
*    IN NO EVENT SHALL VIVANTE AND/OR ITS SUPPLIERS BE LIABLE FOR ANY
*    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
*    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
*    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*****************************************************************************/


#ifndef __gl2rename_h_
#define __gl2rename_h_

#if defined(_GL_2_APPENDIX)

#define _GL_2_RENAME_2(api, appendix)   api ## appendix
#define _GL_2_RENAME_1(api, appendix)   _GL_2_RENAME_2(api, appendix)
#define gcmGLES2(api)                   _GL_2_RENAME_1(api, _GL_2_APPENDIX)

#define glActiveTexture                 gcmGLES2(glActiveTexture)
#define glAttachShader                  gcmGLES2(glAttachShader)
#define glBindAttribLocation            gcmGLES2(glBindAttribLocation)
#define glBindBuffer                    gcmGLES2(glBindBuffer)
#define glBindFramebuffer               gcmGLES2(glBindFramebuffer)
#define glBindRenderbuffer              gcmGLES2(glBindRenderbuffer)
#define glBindTexture                   gcmGLES2(glBindTexture)
#define glBindVertexArrayOES            gcmGLES2(glBindVertexArrayOES)
#define glBlendColor                    gcmGLES2(glBlendColor)
#define glBlendEquation                 gcmGLES2(glBlendEquation)
#define glBlendEquationSeparate         gcmGLES2(glBlendEquationSeparate)
#define glBlendFunc                     gcmGLES2(glBlendFunc)
#define glBlendFuncSeparate             gcmGLES2(glBlendFuncSeparate)
#define glBufferData                    gcmGLES2(glBufferData)
#define glBufferSubData                 gcmGLES2(glBufferSubData)
#define glCheckFramebufferStatus        gcmGLES2(glCheckFramebufferStatus)
#define glClear                         gcmGLES2(glClear)
#define glClearColor                    gcmGLES2(glClearColor)
#define glClearDepthf                   gcmGLES2(glClearDepthf)
#define glClearStencil                  gcmGLES2(glClearStencil)
#define glColorMask                     gcmGLES2(glColorMask)
#define glCompileShader                 gcmGLES2(glCompileShader)
#define glCompressedTexImage2D          gcmGLES2(glCompressedTexImage2D)
#define glCompressedTexImage3DOES       gcmGLES2(glCompressedTexImage3DOES)
#define glCompressedTexSubImage2D       gcmGLES2(glCompressedTexSubImage2D)
#define glCompressedTexSubImage3DOES    gcmGLES2(glCompressedTexSubImage3DOES)
#define glCopyTexImage2D                gcmGLES2(glCopyTexImage2D)
#define glCopyTexSubImage2D             gcmGLES2(glCopyTexSubImage2D)
#define glCopyTexSubImage3DOES          gcmGLES2(glCopyTexSubImage3DOES)
#define glCreateProgram                 gcmGLES2(glCreateProgram)
#define glCreateShader                  gcmGLES2(glCreateShader)
#define glCullFace                      gcmGLES2(glCullFace)
#define glDeleteBuffers                 gcmGLES2(glDeleteBuffers)
#define glDeleteFramebuffers            gcmGLES2(glDeleteFramebuffers)
#define glDeleteProgram                 gcmGLES2(glDeleteProgram)
#define glDeleteRenderbuffers           gcmGLES2(glDeleteRenderbuffers)
#define glDeleteShader                  gcmGLES2(glDeleteShader)
#define glDeleteTextures                gcmGLES2(glDeleteTextures)
#define glDeleteVertexArraysOES         gcmGLES2(glDeleteVertexArraysOES)
#define glDepthFunc                     gcmGLES2(glDepthFunc)
#define glDepthMask                     gcmGLES2(glDepthMask)
#define glDepthRangef                   gcmGLES2(glDepthRangef)
#define glDetachShader                  gcmGLES2(glDetachShader)
#define glDisable                       gcmGLES2(glDisable)
#define glDisableVertexAttribArray      gcmGLES2(glDisableVertexAttribArray)
#define glDrawArrays                    gcmGLES2(glDrawArrays)
#define glDrawElements                  gcmGLES2(glDrawElements)
#define glEGLImageTargetRenderbufferStorageOES \
            gcmGLES2(glEGLImageTargetRenderbufferStorageOES)
#define glEGLImageTargetTexture2DOES \
            gcmGLES2(glEGLImageTargetTexture2DOES)
#define glEnable                        gcmGLES2(glEnable)
#define glEnableVertexAttribArray       gcmGLES2(glEnableVertexAttribArray)
#define glFinish                        gcmGLES2(glFinish)
#define glFlush                         gcmGLES2(glFlush)
#define glFramebufferRenderbuffer       gcmGLES2(glFramebufferRenderbuffer)
#define glFramebufferTexture2D          gcmGLES2(glFramebufferTexture2D)
#define glFramebufferTexture3DOES       gcmGLES2(glFramebufferTexture3DOES)
#define glFrontFace                     gcmGLES2(glFrontFace)
#define glGenBuffers                    gcmGLES2(glGenBuffers)
#define glGenFramebuffers               gcmGLES2(glGenFramebuffers)
#define glGenRenderbuffers              gcmGLES2(glGenRenderbuffers)
#define glGenTextures                   gcmGLES2(glGenTextures)
#define glGenerateMipmap                gcmGLES2(glGenerateMipmap)
#define glGenVertexArraysOES            gcmGLES2(glGenVertexArraysOES)
#define glGetActiveAttrib               gcmGLES2(glGetActiveAttrib)
#define glGetActiveUniform              gcmGLES2(glGetActiveUniform)
#define glGetAttachedShaders            gcmGLES2(glGetAttachedShaders)
#define glGetAttribLocation             gcmGLES2(glGetAttribLocation)
#define glGetBooleanv                   gcmGLES2(glGetBooleanv)
#define glGetBufferParameteriv          gcmGLES2(glGetBufferParameteriv)
#define glGetError                      gcmGLES2(glGetError)
#define glGetFloatv                     gcmGLES2(glGetFloatv)
#define glGetFramebufferAttachmentParameteriv \
            gcmGLES2(glGetFramebufferAttachmentParameteriv)
#define glGetIntegerv                   gcmGLES2(glGetIntegerv)
#define glGetProgramBinaryOES           gcmGLES2(glGetProgramBinaryOES)
#define glGetProgramInfoLog             gcmGLES2(glGetProgramInfoLog)
#define glGetProgramiv                  gcmGLES2(glGetProgramiv)
#define glGetRenderbufferParameteriv \
            gcmGLES2(glGetRenderbufferParameteriv)
#define glGetShaderInfoLog              gcmGLES2(glGetShaderInfoLog)
#define glGetShaderPrecisionFormat      gcmGLES2(glGetShaderPrecisionFormat)
#define glGetShaderSource               gcmGLES2(glGetShaderSource)
#define glGetShaderiv                   gcmGLES2(glGetShaderiv)
#define glGetString                     gcmGLES2(glGetString)
#define glGetTexParameterfv             gcmGLES2(glGetTexParameterfv)
#define glGetTexParameteriv             gcmGLES2(glGetTexParameteriv)
#define glGetUniformLocation            gcmGLES2(glGetUniformLocation)
#define glGetUniformfv                  gcmGLES2(glGetUniformfv)
#define glGetUniformiv                  gcmGLES2(glGetUniformiv)
#define glGetVertexAttribPointerv       gcmGLES2(glGetVertexAttribPointerv)
#define glGetVertexAttribfv             gcmGLES2(glGetVertexAttribfv)
#define glGetVertexAttribiv             gcmGLES2(glGetVertexAttribiv)
#define glHint                          gcmGLES2(glHint)
#define glIsBuffer                      gcmGLES2(glIsBuffer)
#define glIsEnabled                     gcmGLES2(glIsEnabled)
#define glIsFramebuffer                 gcmGLES2(glIsFramebuffer)
#define glIsProgram                     gcmGLES2(glIsProgram)
#define glIsRenderbuffer                gcmGLES2(glIsRenderbuffer)
#define glIsShader                      gcmGLES2(glIsShader)
#define glIsTexture                     gcmGLES2(glIsTexture)
#define glIsVertexArrayOES              gcmGLES2(glIsVertexArrayOES)
#define glLineWidth                     gcmGLES2(glLineWidth)
#define glLinkProgram                   gcmGLES2(glLinkProgram)
#define glPixelStorei                   gcmGLES2(glPixelStorei)
#define glPolygonOffset                 gcmGLES2(glPolygonOffset)
#define glProgramBinaryOES              gcmGLES2(glProgramBinaryOES)
#define glReadPixels                    gcmGLES2(glReadPixels)
#define glReadBuffer                    gcmGLES2(glReadBuffer)
#define glSetReadBuffer                 gcmGLES2(glSetReadBuffer)
#define glReleaseShaderCompiler         gcmGLES2(glReleaseShaderCompiler)
#define glRenderbufferStorage           gcmGLES2(glRenderbufferStorage)
#define glSampleCoverage                gcmGLES2(glSampleCoverage)
#define glScissor                       gcmGLES2(glScissor)
#define glShaderBinary                  gcmGLES2(glShaderBinary)
#define glShaderSource                  gcmGLES2(glShaderSource)
#define glStencilFunc                   gcmGLES2(glStencilFunc)
#define glStencilFuncSeparate           gcmGLES2(glStencilFuncSeparate)
#define glStencilMask                   gcmGLES2(glStencilMask)
#define glStencilMaskSeparate           gcmGLES2(glStencilMaskSeparate)
#define glStencilOp                     gcmGLES2(glStencilOp)
#define glStencilOpSeparate             gcmGLES2(glStencilOpSeparate)
#define glTexImage2D                    gcmGLES2(glTexImage2D)
#define glTexImage3DOES                 gcmGLES2(glTexImage3DOES)
#define glTexImageVideo                 gcmGLES2(glTexImageVideo)
#define glTexParameterf                 gcmGLES2(glTexParameterf)
#define glTexParameterfv                gcmGLES2(glTexParameterfv)
#define glTexParameteri                 gcmGLES2(glTexParameteri)
#define glTexParameteriv                gcmGLES2(glTexParameteriv)
#define glTexSubImage2D                 gcmGLES2(glTexSubImage2D)
#define glTexSubImage3DOES              gcmGLES2(glTexSubImage3DOES)
#define glUniform1f                     gcmGLES2(glUniform1f)
#define glUniform1fv                    gcmGLES2(glUniform1fv)
#define glUniform1i                     gcmGLES2(glUniform1i)
#define glUniform1iv                    gcmGLES2(glUniform1iv)
#define glUniform2f                     gcmGLES2(glUniform2f)
#define glUniform2fv                    gcmGLES2(glUniform2fv)
#define glUniform2i                     gcmGLES2(glUniform2i)
#define glUniform2iv                    gcmGLES2(glUniform2iv)
#define glUniform3f                     gcmGLES2(glUniform3f)
#define glUniform3fv                    gcmGLES2(glUniform3fv)
#define glUniform3i                     gcmGLES2(glUniform3i)
#define glUniform3iv                    gcmGLES2(glUniform3iv)
#define glUniform4f                     gcmGLES2(glUniform4f)
#define glUniform4fv                    gcmGLES2(glUniform4fv)
#define glUniform4i                     gcmGLES2(glUniform4i)
#define glUniform4iv                    gcmGLES2(glUniform4iv)
#define glUniformMatrix2fv              gcmGLES2(glUniformMatrix2fv)
#define glUniformMatrix3fv              gcmGLES2(glUniformMatrix3fv)
#define glUniformMatrix4fv              gcmGLES2(glUniformMatrix4fv)
#define glUseProgram                    gcmGLES2(glUseProgram)
#define glValidateProgram               gcmGLES2(glValidateProgram)
#define glVertexAttrib1f                gcmGLES2(glVertexAttrib1f)
#define glVertexAttrib1fv               gcmGLES2(glVertexAttrib1fv)
#define glVertexAttrib2f                gcmGLES2(glVertexAttrib2f)
#define glVertexAttrib2fv               gcmGLES2(glVertexAttrib2fv)
#define glVertexAttrib3f                gcmGLES2(glVertexAttrib3f)
#define glVertexAttrib3fv               gcmGLES2(glVertexAttrib3fv)
#define glVertexAttrib4f                gcmGLES2(glVertexAttrib4f)
#define glVertexAttrib4fv               gcmGLES2(glVertexAttrib4fv)
#define glVertexAttribPointer           gcmGLES2(glVertexAttribPointer)
#define glViewport                      gcmGLES2(glViewport)
#define glMultiDrawArraysEXT            gcmGLES2(glMultiDrawArraysEXT)
#define glMultiDrawElementsEXT          gcmGLES2(glMultiDrawElementsEXT)
#define glTexDirectVIVMap               gcmGLES2(glTexDirectVIVMap)
#define glTexDirectVIV                  gcmGLES2(glTexDirectVIV)
#define glTexDirectInvalidateVIV        gcmGLES2(glTexDirectInvalidateVIV)
#define glMapBufferOES                  gcmGLES2(glMapBufferOES)
#define glUnmapBufferOES                gcmGLES2(glUnmapBufferOES)
#define glGetBufferPointervOES          gcmGLES2(glGetBufferPointervOES)

#endif /* _GL_2_APPENDIX */
#endif /* __gl2rename_h_ */
