glapi: add gles_api.py
authorChia-I Wu <olv@lunarg.com>
Sun, 7 Aug 2011 07:58:29 +0000 (16:58 +0900)
committerChia-I Wu <olv@lunarg.com>
Sat, 13 Aug 2011 05:54:30 +0000 (13:54 +0800)
Move the list of entry points belong to GLES from mapi_abi.py to a new
file.

Until we figure out how to describe the APIs an entry point belongs to
in the XML file, and how to handle the case where an entry point others
alias is missing in some APIs, this is an easier solution than
maintaining another two sets of XMLs in glapi/gen-es/.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mapi/glapi/gen/gl_and_es_API.xml
src/mapi/glapi/gen/gles_api.py [new file with mode: 0644]
src/mapi/mapi/mapi_abi.py

index ac7d43ceda7c51d72ee4c2e91eecdf88db3e81e3..1313da0f5d60d762bcddd91908e3edbc8a6fd2b1 100644 (file)
@@ -3,6 +3,11 @@
 
 <!-- OpenGL + OpenGL ES -->
 
+<!-- IMPORTANT
+     Remember to update gles_api.py when new OpenGL ES specific entry points
+     are added.  Otherwise, they will be filtered out.
+-->
+
 <OpenGLAPI>
 
 <xi:include href="gl_API.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
diff --git a/src/mapi/glapi/gen/gles_api.py b/src/mapi/glapi/gen/gles_api.py
new file mode 100644 (file)
index 0000000..4cde9e5
--- /dev/null
@@ -0,0 +1,452 @@
+#!/usr/bin/env python
+
+# Mesa 3-D graphics library
+# Version:  7.12
+#
+# Copyright (C) 2011 LunarG Inc.
+#
+# 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, sublicense,
+# 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 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 NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS 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.
+#
+# Authors:
+#    Chia-I Wu <olv@lunarg.com>
+
+# These info should be part of GLAPI XML.  Until that is possible, scripts have
+# to use tables here to filter gl_api.
+
+es1_core = (
+        # OpenGL ES 1.1
+        'ActiveTexture',
+        'AlphaFunc',
+        'AlphaFuncx',
+        'BindBuffer',
+        'BindTexture',
+        'BlendFunc',
+        'BufferData',
+        'BufferSubData',
+        'Clear',
+        'ClearColor',
+        'ClearColorx',
+        'ClearDepthf',
+        'ClearDepthx',
+        'ClearStencil',
+        'ClientActiveTexture',
+        'ClipPlanef',
+        'ClipPlanex',
+        'Color4f',
+        'Color4ub',
+        'Color4x',
+        'ColorMask',
+        'ColorPointer',
+        'CompressedTexImage2D',
+        'CompressedTexSubImage2D',
+        'CopyTexImage2D',
+        'CopyTexSubImage2D',
+        'CullFace',
+        'DeleteBuffers',
+        'DeleteTextures',
+        'DepthFunc',
+        'DepthMask',
+        'DepthRangef',
+        'DepthRangex',
+        'Disable',
+        'DisableClientState',
+        'DrawArrays',
+        'DrawElements',
+        'Enable',
+        'EnableClientState',
+        'Finish',
+        'Flush',
+        'Fogf',
+        'Fogfv',
+        'Fogx',
+        'Fogxv',
+        'FrontFace',
+        'Frustumf',
+        'Frustumx',
+        'GenBuffers',
+        'GenTextures',
+        'GetBooleanv',
+        'GetBufferParameteriv',
+        'GetClipPlanef',
+        'GetClipPlanex',
+        'GetError',
+        'GetFixedv',
+        'GetFloatv',
+        'GetIntegerv',
+        'GetLightfv',
+        'GetLightxv',
+        'GetMaterialfv',
+        'GetMaterialxv',
+        'GetPointerv',
+        'GetString',
+        'GetTexEnvfv',
+        'GetTexEnviv',
+        'GetTexEnvxv',
+        'GetTexParameterfv',
+        'GetTexParameteriv',
+        'GetTexParameterxv',
+        'Hint',
+        'IsBuffer',
+        'IsEnabled',
+        'IsTexture',
+        'Lightf',
+        'Lightfv',
+        'LightModelf',
+        'LightModelfv',
+        'LightModelx',
+        'LightModelxv',
+        'Lightx',
+        'Lightxv',
+        'LineWidth',
+        'LineWidthx',
+        'LoadIdentity',
+        'LoadMatrixf',
+        'LoadMatrixx',
+        'LogicOp',
+        'Materialf',
+        'Materialfv',
+        'Materialx',
+        'Materialxv',
+        'MatrixMode',
+        'MultiTexCoord4f',
+        'MultiTexCoord4x',
+        'MultMatrixf',
+        'MultMatrixx',
+        'Normal3f',
+        'Normal3x',
+        'NormalPointer',
+        'Orthof',
+        'Orthox',
+        'PixelStorei',
+        'PointParameterf',
+        'PointParameterfv',
+        'PointParameterx',
+        'PointParameterxv',
+        'PointSize',
+        'PointSizex',
+        'PolygonOffset',
+        'PolygonOffsetx',
+        'PopMatrix',
+        'PushMatrix',
+        'ReadPixels',
+        'Rotatef',
+        'Rotatex',
+        'SampleCoverage',
+        'SampleCoveragex',
+        'Scalef',
+        'Scalex',
+        'Scissor',
+        'ShadeModel',
+        'StencilFunc',
+        'StencilMask',
+        'StencilOp',
+        'TexCoordPointer',
+        'TexEnvf',
+        'TexEnvfv',
+        'TexEnvi',
+        'TexEnviv',
+        'TexEnvx',
+        'TexEnvxv',
+        'TexImage2D',
+        'TexParameterf',
+        'TexParameterfv',
+        'TexParameteri',
+        'TexParameteriv',
+        'TexParameterx',
+        'TexParameterxv',
+        'TexSubImage2D',
+        'Translatef',
+        'Translatex',
+        'VertexPointer',
+        'Viewport',
+)
+
+es1_api = es1_core + (
+        # GL_OES_EGL_image
+        'EGLImageTargetTexture2DOES',
+        'EGLImageTargetRenderbufferStorageOES',
+        # GL_OES_mapbuffer
+        'GetBufferPointervOES',
+        'MapBufferOES',
+        'UnmapBufferOES',
+        # GL_EXT_multi_draw_arrays
+        'MultiDrawArraysEXT',
+        'MultiDrawElementsEXT',
+        # GL_OES_blend_equation_separate
+        'BlendEquationSeparateOES',
+        # GL_OES_blend_func_separate
+        'BlendFuncSeparateOES',
+        # GL_OES_blend_subtract
+        'BlendEquationOES',
+        # GL_OES_draw_texture
+        'DrawTexiOES',
+        'DrawTexivOES',
+        'DrawTexfOES',
+        'DrawTexfvOES',
+        'DrawTexsOES',
+        'DrawTexsvOES',
+        'DrawTexxOES',
+        'DrawTexxvOES',
+        # GL_OES_fixed_point
+        'AlphaFuncxOES',
+        'ClearColorxOES',
+        'ClearDepthxOES',
+        'Color4xOES',
+        'DepthRangexOES',
+        'FogxOES',
+        'FogxvOES',
+        'FrustumxOES',
+        'LightModelxOES',
+        'LightModelxvOES',
+        'LightxOES',
+        'LightxvOES',
+        'LineWidthxOES',
+        'LoadMatrixxOES',
+        'MaterialxOES',
+        'MaterialxvOES',
+        'MultiTexCoord4xOES',
+        'MultMatrixxOES',
+        'Normal3xOES',
+        'OrthoxOES',
+        'PointSizexOES',
+        'PolygonOffsetxOES',
+        'RotatexOES',
+        'SampleCoveragexOES',
+        'ScalexOES',
+        'TexEnvxOES',
+        'TexEnvxvOES',
+        'TexParameterxOES',
+        'TranslatexOES',
+        'ClipPlanexOES',
+        'GetClipPlanexOES',
+        'GetFixedvOES',
+        'GetLightxvOES',
+        'GetMaterialxvOES',
+        'GetTexEnvxvOES',
+        'GetTexParameterxvOES',
+        'PointParameterxOES',
+        'PointParameterxvOES',
+        'TexParameterxvOES',
+        # GL_OES_framebuffer_object
+        'BindFramebufferOES',
+        'BindRenderbufferOES',
+        'CheckFramebufferStatusOES',
+        'DeleteFramebuffersOES',
+        'DeleteRenderbuffersOES',
+        'FramebufferRenderbufferOES',
+        'FramebufferTexture2DOES',
+        'GenerateMipmapOES',
+        'GenFramebuffersOES',
+        'GenRenderbuffersOES',
+        'GetFramebufferAttachmentParameterivOES',
+        'GetRenderbufferParameterivOES',
+        'IsFramebufferOES',
+        'IsRenderbufferOES',
+        'RenderbufferStorageOES',
+        # GL_OES_point_size_array
+        'PointSizePointerOES',
+        # GL_OES_query_matrix
+        'QueryMatrixxOES',
+        # GL_OES_single_precision
+        'ClearDepthfOES',
+        'DepthRangefOES',
+        'FrustumfOES',
+        'OrthofOES',
+        'ClipPlanefOES',
+        'GetClipPlanefOES',
+        # GL_OES_texture_cube_map
+        'GetTexGenfvOES',
+        'GetTexGenivOES',
+        'GetTexGenxvOES',
+        'TexGenfOES',
+        'TexGenfvOES',
+        'TexGeniOES',
+        'TexGenivOES',
+        'TexGenxOES',
+        'TexGenxvOES',
+)
+
+es2_core = (
+        # OpenGL ES 2.0
+        "ActiveTexture",
+        "AttachShader",
+        "BindAttribLocation",
+        "BindBuffer",
+        "BindFramebuffer",
+        "BindRenderbuffer",
+        "BindTexture",
+        "BlendColor",
+        "BlendEquation",
+        "BlendEquationSeparate",
+        "BlendFunc",
+        "BlendFuncSeparate",
+        "BufferData",
+        "BufferSubData",
+        "CheckFramebufferStatus",
+        "Clear",
+        "ClearColor",
+        "ClearDepthf",
+        "ClearStencil",
+        "ColorMask",
+        "CompileShader",
+        "CompressedTexImage2D",
+        "CompressedTexSubImage2D",
+        "CopyTexImage2D",
+        "CopyTexSubImage2D",
+        "CreateProgram",
+        "CreateShader",
+        "CullFace",
+        "DeleteBuffers",
+        "DeleteFramebuffers",
+        "DeleteProgram",
+        "DeleteRenderbuffers",
+        "DeleteShader",
+        "DeleteTextures",
+        "DepthFunc",
+        "DepthMask",
+        "DepthRangef",
+        "DetachShader",
+        "Disable",
+        "DisableVertexAttribArray",
+        "DrawArrays",
+        "DrawElements",
+        "Enable",
+        "EnableVertexAttribArray",
+        "Finish",
+        "Flush",
+        "FramebufferRenderbuffer",
+        "FramebufferTexture2D",
+        "FrontFace",
+        "GenBuffers",
+        "GenerateMipmap",
+        "GenFramebuffers",
+        "GenRenderbuffers",
+        "GenTextures",
+        "GetActiveAttrib",
+        "GetActiveUniform",
+        "GetAttachedShaders",
+        "GetAttribLocation",
+        "GetBooleanv",
+        "GetBufferParameteriv",
+        "GetError",
+        "GetFloatv",
+        "GetFramebufferAttachmentParameteriv",
+        "GetIntegerv",
+        "GetProgramInfoLog",
+        "GetProgramiv",
+        "GetRenderbufferParameteriv",
+        "GetShaderInfoLog",
+        "GetShaderiv",
+        "GetShaderPrecisionFormat",
+        "GetShaderSource",
+        "GetString",
+        "GetTexParameterfv",
+        "GetTexParameteriv",
+        "GetUniformfv",
+        "GetUniformiv",
+        "GetUniformLocation",
+        "GetVertexAttribfv",
+        "GetVertexAttribiv",
+        "GetVertexAttribPointerv",
+        "Hint",
+        "IsBuffer",
+        "IsEnabled",
+        "IsFramebuffer",
+        "IsProgram",
+        "IsRenderbuffer",
+        "IsShader",
+        "IsTexture",
+        "LineWidth",
+        "LinkProgram",
+        "PixelStorei",
+        "PolygonOffset",
+        "ReadPixels",
+        "ReleaseShaderCompiler",
+        "RenderbufferStorage",
+        "SampleCoverage",
+        "Scissor",
+        "ShaderBinary",
+        "ShaderSource",
+        "StencilFunc",
+        "StencilFuncSeparate",
+        "StencilMask",
+        "StencilMaskSeparate",
+        "StencilOp",
+        "StencilOpSeparate",
+        "TexImage2D",
+        "TexParameterf",
+        "TexParameterfv",
+        "TexParameteri",
+        "TexParameteriv",
+        "TexSubImage2D",
+        "Uniform1f",
+        "Uniform1fv",
+        "Uniform1i",
+        "Uniform1iv",
+        "Uniform2f",
+        "Uniform2fv",
+        "Uniform2i",
+        "Uniform2iv",
+        "Uniform3f",
+        "Uniform3fv",
+        "Uniform3i",
+        "Uniform3iv",
+        "Uniform4f",
+        "Uniform4fv",
+        "Uniform4i",
+        "Uniform4iv",
+        "UniformMatrix2fv",
+        "UniformMatrix3fv",
+        "UniformMatrix4fv",
+        "UseProgram",
+        "ValidateProgram",
+        "VertexAttrib1f",
+        "VertexAttrib1fv",
+        "VertexAttrib2f",
+        "VertexAttrib2fv",
+        "VertexAttrib3f",
+        "VertexAttrib3fv",
+        "VertexAttrib4f",
+        "VertexAttrib4fv",
+        "VertexAttribPointer",
+        "Viewport",
+)
+
+es2_api = es2_core + (
+        # GL_OES_EGL_image
+        'EGLImageTargetTexture2DOES',
+        'EGLImageTargetRenderbufferStorageOES',
+        # GL_OES_mapbuffer
+        'GetBufferPointervOES',
+        'MapBufferOES',
+        'UnmapBufferOES',
+        # GL_EXT_multi_draw_arrays
+        'MultiDrawArraysEXT',
+        'MultiDrawElementsEXT',
+        # GL_OES_texture_3D
+        'CompressedTexImage3DOES',
+        'CompressedTexSubImage3DOES',
+        'CopyTexSubImage3DOES',
+        'FramebufferTexture3DOES',
+        'TexImage3DOES',
+        'TexSubImage3DOES',
+        # GL_OES_get_program_binary
+        'GetProgramBinaryOES',
+        'ProgramBinaryOES',
+)
index cb9fc0ef84185efd819c2c725aa728288b2b9267..e3d3f6518ec43acf3da2661b9482cffd9fc9ecb0 100644 (file)
 #    Chia-I Wu <olv@lunarg.com>
 
 import sys
+# make it possible to import glapi
+import os
+GLAPI = "./%s/../glapi/gen" % (os.path.dirname(sys.argv[0]))
+sys.path.append(GLAPI)
+
 import re
 from optparse import OptionParser
 
@@ -128,9 +133,6 @@ class ABIEntry(object):
 
 def abi_parse_xml(xml):
     """Parse a GLAPI XML file for ABI entries."""
-    import os
-    GLAPI = "./%s/../glapi/gen" % (os.path.dirname(sys.argv[0]))
-    sys.path.append(GLAPI)
     import gl_XML, glX_XML
 
     api = gl_XML.parse_GL_API(xml, glX_XML.glx_item_factory())
@@ -749,255 +751,7 @@ class ES1APIPrinter(GLAPIPrinter):
     """OpenGL ES 1.x API Printer"""
 
     def __init__(self, entries):
-        es1_api = [
-                # OpenGL ES 1.1
-                'ActiveTexture',
-                'AlphaFunc',
-                'AlphaFuncx',
-                'BindBuffer',
-                'BindTexture',
-                'BlendFunc',
-                'BufferData',
-                'BufferSubData',
-                'Clear',
-                'ClearColor',
-                'ClearColorx',
-                'ClearDepthf',
-                'ClearDepthx',
-                'ClearStencil',
-                'ClientActiveTexture',
-                'ClipPlanef',
-                'ClipPlanex',
-                'Color4f',
-                'Color4ub',
-                'Color4x',
-                'ColorMask',
-                'ColorPointer',
-                'CompressedTexImage2D',
-                'CompressedTexSubImage2D',
-                'CopyTexImage2D',
-                'CopyTexSubImage2D',
-                'CullFace',
-                'DeleteBuffers',
-                'DeleteTextures',
-                'DepthFunc',
-                'DepthMask',
-                'DepthRangef',
-                'DepthRangex',
-                'Disable',
-                'DisableClientState',
-                'DrawArrays',
-                'DrawElements',
-                'Enable',
-                'EnableClientState',
-                'Finish',
-                'Flush',
-                'Fogf',
-                'Fogfv',
-                'Fogx',
-                'Fogxv',
-                'FrontFace',
-                'Frustumf',
-                'Frustumx',
-                'GenBuffers',
-                'GenTextures',
-                'GetBooleanv',
-                'GetBufferParameteriv',
-                'GetClipPlanef',
-                'GetClipPlanex',
-                'GetError',
-                'GetFixedv',
-                'GetFloatv',
-                'GetIntegerv',
-                'GetLightfv',
-                'GetLightxv',
-                'GetMaterialfv',
-                'GetMaterialxv',
-                'GetPointerv',
-                'GetString',
-                'GetTexEnvfv',
-                'GetTexEnviv',
-                'GetTexEnvxv',
-                'GetTexParameterfv',
-                'GetTexParameteriv',
-                'GetTexParameterxv',
-                'Hint',
-                'IsBuffer',
-                'IsEnabled',
-                'IsTexture',
-                'Lightf',
-                'Lightfv',
-                'LightModelf',
-                'LightModelfv',
-                'LightModelx',
-                'LightModelxv',
-                'Lightx',
-                'Lightxv',
-                'LineWidth',
-                'LineWidthx',
-                'LoadIdentity',
-                'LoadMatrixf',
-                'LoadMatrixx',
-                'LogicOp',
-                'Materialf',
-                'Materialfv',
-                'Materialx',
-                'Materialxv',
-                'MatrixMode',
-                'MultiTexCoord4f',
-                'MultiTexCoord4x',
-                'MultMatrixf',
-                'MultMatrixx',
-                'Normal3f',
-                'Normal3x',
-                'NormalPointer',
-                'Orthof',
-                'Orthox',
-                'PixelStorei',
-                'PointParameterf',
-                'PointParameterfv',
-                'PointParameterx',
-                'PointParameterxv',
-                'PointSize',
-                'PointSizex',
-                'PolygonOffset',
-                'PolygonOffsetx',
-                'PopMatrix',
-                'PushMatrix',
-                'ReadPixels',
-                'Rotatef',
-                'Rotatex',
-                'SampleCoverage',
-                'SampleCoveragex',
-                'Scalef',
-                'Scalex',
-                'Scissor',
-                'ShadeModel',
-                'StencilFunc',
-                'StencilMask',
-                'StencilOp',
-                'TexCoordPointer',
-                'TexEnvf',
-                'TexEnvfv',
-                'TexEnvi',
-                'TexEnviv',
-                'TexEnvx',
-                'TexEnvxv',
-                'TexImage2D',
-                'TexParameterf',
-                'TexParameterfv',
-                'TexParameteri',
-                'TexParameteriv',
-                'TexParameterx',
-                'TexParameterxv',
-                'TexSubImage2D',
-                'Translatef',
-                'Translatex',
-                'VertexPointer',
-                'Viewport',
-                # GL_OES_EGL_image
-                'EGLImageTargetTexture2DOES',
-                'EGLImageTargetRenderbufferStorageOES',
-                # GL_OES_mapbuffer
-                'GetBufferPointervOES',
-                'MapBufferOES',
-                'UnmapBufferOES',
-                # GL_EXT_multi_draw_arrays
-                'MultiDrawArraysEXT',
-                'MultiDrawElementsEXT',
-                # GL_OES_blend_equation_separate
-                'BlendEquationSeparateOES',
-                # GL_OES_blend_func_separate
-                'BlendFuncSeparateOES',
-                # GL_OES_blend_subtract
-                'BlendEquationOES',
-                # GL_OES_draw_texture
-                'DrawTexiOES',
-                'DrawTexivOES',
-                'DrawTexfOES',
-                'DrawTexfvOES',
-                'DrawTexsOES',
-                'DrawTexsvOES',
-                'DrawTexxOES',
-                'DrawTexxvOES',
-                # GL_OES_fixed_point
-                'AlphaFuncxOES',
-                'ClearColorxOES',
-                'ClearDepthxOES',
-                'Color4xOES',
-                'DepthRangexOES',
-                'FogxOES',
-                'FogxvOES',
-                'FrustumxOES',
-                'LightModelxOES',
-                'LightModelxvOES',
-                'LightxOES',
-                'LightxvOES',
-                'LineWidthxOES',
-                'LoadMatrixxOES',
-                'MaterialxOES',
-                'MaterialxvOES',
-                'MultiTexCoord4xOES',
-                'MultMatrixxOES',
-                'Normal3xOES',
-                'OrthoxOES',
-                'PointSizexOES',
-                'PolygonOffsetxOES',
-                'RotatexOES',
-                'SampleCoveragexOES',
-                'ScalexOES',
-                'TexEnvxOES',
-                'TexEnvxvOES',
-                'TexParameterxOES',
-                'TranslatexOES',
-                'ClipPlanexOES',
-                'GetClipPlanexOES',
-                'GetFixedvOES',
-                'GetLightxvOES',
-                'GetMaterialxvOES',
-                'GetTexEnvxvOES',
-                'GetTexParameterxvOES',
-                'PointParameterxOES',
-                'PointParameterxvOES',
-                'TexParameterxvOES',
-                # GL_OES_framebuffer_object
-                'BindFramebufferOES',
-                'BindRenderbufferOES',
-                'CheckFramebufferStatusOES',
-                'DeleteFramebuffersOES',
-                'DeleteRenderbuffersOES',
-                'FramebufferRenderbufferOES',
-                'FramebufferTexture2DOES',
-                'GenerateMipmapOES',
-                'GenFramebuffersOES',
-                'GenRenderbuffersOES',
-                'GetFramebufferAttachmentParameterivOES',
-                'GetRenderbufferParameterivOES',
-                'IsFramebufferOES',
-                'IsRenderbufferOES',
-                'RenderbufferStorageOES',
-                # GL_OES_point_size_array
-                'PointSizePointerOES',
-                # GL_OES_query_matrix
-                'QueryMatrixxOES',
-                # GL_OES_single_precision
-                'ClearDepthfOES',
-                'DepthRangefOES',
-                'FrustumfOES',
-                'OrthofOES',
-                'ClipPlanefOES',
-                'GetClipPlanefOES',
-                # GL_OES_texture_cube_map
-                'GetTexGenfvOES',
-                'GetTexGenivOES',
-                'GetTexGenxvOES',
-                'TexGenfOES',
-                'TexGenfvOES',
-                'TexGeniOES',
-                'TexGenivOES',
-                'TexGenxOES',
-                'TexGenxvOES',
-        ]
+        from gles_api import es1_api
 
         super(ES1APIPrinter, self).__init__(entries, es1_api)
         self.prefix_lib = 'gl'
@@ -1016,171 +770,7 @@ class ES2APIPrinter(GLAPIPrinter):
     """OpenGL ES 2.x API Printer"""
 
     def __init__(self, entries):
-        es2_api = [
-                # OpenGL ES 2.0
-                "ActiveTexture",
-                "AttachShader",
-                "BindAttribLocation",
-                "BindBuffer",
-                "BindFramebuffer",
-                "BindRenderbuffer",
-                "BindTexture",
-                "BlendColor",
-                "BlendEquation",
-                "BlendEquationSeparate",
-                "BlendFunc",
-                "BlendFuncSeparate",
-                "BufferData",
-                "BufferSubData",
-                "CheckFramebufferStatus",
-                "Clear",
-                "ClearColor",
-                "ClearDepthf",
-                "ClearStencil",
-                "ColorMask",
-                "CompileShader",
-                "CompressedTexImage2D",
-                "CompressedTexSubImage2D",
-                "CopyTexImage2D",
-                "CopyTexSubImage2D",
-                "CreateProgram",
-                "CreateShader",
-                "CullFace",
-                "DeleteBuffers",
-                "DeleteFramebuffers",
-                "DeleteProgram",
-                "DeleteRenderbuffers",
-                "DeleteShader",
-                "DeleteTextures",
-                "DepthFunc",
-                "DepthMask",
-                "DepthRangef",
-                "DetachShader",
-                "Disable",
-                "DisableVertexAttribArray",
-                "DrawArrays",
-                "DrawElements",
-                "Enable",
-                "EnableVertexAttribArray",
-                "Finish",
-                "Flush",
-                "FramebufferRenderbuffer",
-                "FramebufferTexture2D",
-                "FrontFace",
-                "GenBuffers",
-                "GenerateMipmap",
-                "GenFramebuffers",
-                "GenRenderbuffers",
-                "GenTextures",
-                "GetActiveAttrib",
-                "GetActiveUniform",
-                "GetAttachedShaders",
-                "GetAttribLocation",
-                "GetBooleanv",
-                "GetBufferParameteriv",
-                "GetError",
-                "GetFloatv",
-                "GetFramebufferAttachmentParameteriv",
-                "GetIntegerv",
-                "GetProgramInfoLog",
-                "GetProgramiv",
-                "GetRenderbufferParameteriv",
-                "GetShaderInfoLog",
-                "GetShaderiv",
-                "GetShaderPrecisionFormat",
-                "GetShaderSource",
-                "GetString",
-                "GetTexParameterfv",
-                "GetTexParameteriv",
-                "GetUniformfv",
-                "GetUniformiv",
-                "GetUniformLocation",
-                "GetVertexAttribfv",
-                "GetVertexAttribiv",
-                "GetVertexAttribPointerv",
-                "Hint",
-                "IsBuffer",
-                "IsEnabled",
-                "IsFramebuffer",
-                "IsProgram",
-                "IsRenderbuffer",
-                "IsShader",
-                "IsTexture",
-                "LineWidth",
-                "LinkProgram",
-                "PixelStorei",
-                "PolygonOffset",
-                "ReadPixels",
-                "ReleaseShaderCompiler",
-                "RenderbufferStorage",
-                "SampleCoverage",
-                "Scissor",
-                "ShaderBinary",
-                "ShaderSource",
-                "StencilFunc",
-                "StencilFuncSeparate",
-                "StencilMask",
-                "StencilMaskSeparate",
-                "StencilOp",
-                "StencilOpSeparate",
-                "TexImage2D",
-                "TexParameterf",
-                "TexParameterfv",
-                "TexParameteri",
-                "TexParameteriv",
-                "TexSubImage2D",
-                "Uniform1f",
-                "Uniform1fv",
-                "Uniform1i",
-                "Uniform1iv",
-                "Uniform2f",
-                "Uniform2fv",
-                "Uniform2i",
-                "Uniform2iv",
-                "Uniform3f",
-                "Uniform3fv",
-                "Uniform3i",
-                "Uniform3iv",
-                "Uniform4f",
-                "Uniform4fv",
-                "Uniform4i",
-                "Uniform4iv",
-                "UniformMatrix2fv",
-                "UniformMatrix3fv",
-                "UniformMatrix4fv",
-                "UseProgram",
-                "ValidateProgram",
-                "VertexAttrib1f",
-                "VertexAttrib1fv",
-                "VertexAttrib2f",
-                "VertexAttrib2fv",
-                "VertexAttrib3f",
-                "VertexAttrib3fv",
-                "VertexAttrib4f",
-                "VertexAttrib4fv",
-                "VertexAttribPointer",
-                "Viewport",
-                # GL_OES_EGL_image
-                'EGLImageTargetTexture2DOES',
-                'EGLImageTargetRenderbufferStorageOES',
-                # GL_OES_mapbuffer
-                'GetBufferPointervOES',
-                'MapBufferOES',
-                'UnmapBufferOES',
-                # GL_EXT_multi_draw_arrays
-                'MultiDrawArraysEXT',
-                'MultiDrawElementsEXT',
-                # GL_OES_texture_3D
-                'CompressedTexImage3DOES',
-                'CompressedTexSubImage3DOES',
-                'CopyTexSubImage3DOES',
-                'FramebufferTexture3DOES',
-                'TexImage3DOES',
-                'TexSubImage3DOES',
-                # GL_OES_get_program_binary
-                'GetProgramBinaryOES',
-                'ProgramBinaryOES',
-        ]
+        from gles_api import es2_api
 
         super(ES2APIPrinter, self).__init__(entries, es2_api)
         self.prefix_lib = 'gl'