mesa: Move glBindBufferBase and glBindBufferRange() to bufferobj.
[mesa.git] / src / mesa / main / APIspec.xml
index 4dc0b0d485194b69a1fb3ab0eff900a0b32e4d25..64e666effd603b483466520432a0ff109c6fecc0 100644 (file)
                <param name="plane" type="GLenum"/>
                <vector name="equation" type="const GLtype *" size="4"/>
        </proto>
-
-       <desc name="plane">
-               <range base="GL_CLIP_PLANE" from="0" to="5"/>
-       </desc>
 </template>
 
 <template name="CullFace">
                <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
                <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
                <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 
        <desc name="pname">
                <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
        </desc>
 
-       <desc name="internalFormat" error="GL_INVALID_VALUE">
+       <desc name="internalFormat">
                <value name="GL_ALPHA"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_ALPHA"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat">
                <value name="GL_RGB"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_RGB"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat">
                <value name="GL_RGBA"/>
-               <value name="GL_BGRA_EXT"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_RGBA"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat">
                <value name="GL_LUMINANCE"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_LUMINANCE"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat">
                <value name="GL_LUMINANCE_ALPHA"/>
-               <value name="GL_DEPTH_COMPONENT" category="OES_depth_texture"/>
-               <value name="GL_DEPTH_STENCIL_OES" category="OES_packed_depth_stencil"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_LUMINANCE_ALPHA"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat" category="OES_depth_texture">
+               <value name="GL_DEPTH_COMPONENT"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_DEPTH_COMPONENT"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat" category="OES_packed_depth_stencil">
+               <value name="GL_DEPTH_STENCIL_OES"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_DEPTH_STENCIL_OES"/>
+               </desc>
+       </desc>
+
+       <desc name="internalFormat" category="EXT_texture_format_BGRA8888">
+               <value name="GL_BGRA_EXT"/>
+
+               <desc name="format" error="GL_INVALID_VALUE">
+                       <value name="GL_BGRA_EXT"/>
+               </desc>
        </desc>
 
        <desc name="border" error="GL_INVALID_VALUE">
        <desc name="pname">
                <value name="GL_RGB_SCALE"/>
                <value name="GL_ALPHA_SCALE"/>
-
-               <desc name="param" convert="true" error="GL_INVALID_VALUE">
-                       <value name="1.0"/>
-                       <value name="2.0"/>
-                       <value name="4.0"/>
-               </desc>
        </desc>
 
        <desc name="pname">
                <value name="GL_RESCALE_NORMAL"/>
 
                <range base="GL_CLIP_PLANE" from="0" to="5"/>
+               <value name="GL_CLIP_PLANE0+6"/>
+               <value name="GL_CLIP_PLANE0+7"/>
 
                <value name="GL_FOG"/>
                <value name="GL_LIGHTING"/>
                <value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
                <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
                <value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 
        <desc name="cap" category="GLES2.0">
                <value name="GL_RESCALE_NORMAL"/>
 
                <range base="GL_CLIP_PLANE" from="0" to="5"/>
+               <value name="GL_CLIP_PLANE0+6"/>
+               <value name="GL_CLIP_PLANE0+7"/>
 
                <value name="GL_FOG"/>
                <value name="GL_LIGHTING"/>
                <value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
                <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
                <value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 
        <desc name="cap" category="GLES2.0">
 
        <desc name="pname">
                <value name="GL_PACK_ALIGNMENT"/>
+               <desc name="param" error="GL_INVALID_VALUE">
+                       <value name="1"/>
+                       <value name="2"/>
+                       <value name="4"/>
+                       <value name="8"/>
+               </desc>
+       </desc>
+
+       <desc name="pname">
                <value name="GL_UNPACK_ALIGNMENT"/>
+               <desc name="param" error="GL_INVALID_VALUE">
+                       <value name="1"/>
+                       <value name="2"/>
+                       <value name="4"/>
+                       <value name="8"/>
+               </desc>
        </desc>
 
-       <desc name="param" error="GL_INVALID_VALUE">
-               <value name="1"/>
-               <value name="2"/>
-               <value name="4"/>
-               <value name="8"/>
+       <desc name="pname" category="EXT_unpack_subimage">
+               <value name="GL_UNPACK_ROW_LENGTH"/>
+               <value name="GL_UNPACK_SKIP_PIXELS"/>
+               <value name="GL_UNPACK_SKIP_ROWS"/>
        </desc>
+
 </template>
 
 <template name="ReadPixels" direction="get">
                <param name="plane" type="GLenum"/>
                <vector name="equation" type="GLtype *" size="4"/>
        </proto>
-
-       <desc name="plane">
-               <range base="GL_CLIP_PLANE" from="0" to="5"/>
-       </desc>
 </template>
 
 <template name="GetError" direction="get">
                <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
                <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
                <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 
        <desc name="pname">
                <value name="GL_RESCALE_NORMAL"/>
 
                <range base="GL_CLIP_PLANE" from="0" to="5"/>
+               <value name="GL_CLIP_PLANE0+6"/>
+               <value name="GL_CLIP_PLANE0+7"/>
 
                <value name="GL_FOG"/>
                <value name="GL_LIGHTING"/>
                <value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
                <value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
                <value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 
        <desc name="cap" category="GLES2.0">
                        <value name="GL_UNSIGNED_INT_24_8_OES"/>
                </desc>
        </desc>
+
+       <desc name="format" category="EXT_texture_format_BGRA8888">
+               <value name="GL_BGRA_EXT"/>
+
+               <desc name="type" error="GL_INVALID_OPERATION">
+                       <value name="GL_UNSIGNED_BYTE"/>
+               </desc>
+       </desc>
 </template>
 
 <template name="BindTexture">
                <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
                <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
                <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 </template>
 
                <param name="target" type="GLenum"/>
                <param name="framebuffer" type="GLuint"/>
        </proto>
-
-       <desc name="target">
-               <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
-       </desc>
 </template>
 
 <template name="DeleteFramebuffers">
                <param name="target" type="GLenum"/>
                <param name="renderbuffer" type="GLuint"/>
        </proto>
-
-       <desc name="target">
-               <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_RENDERBUFFER" category="GLES2.0"/>
-       </desc>
 </template>
 
 <template name="DeleteRenderbuffers">
                <param name="height" type="GLsizei"/>
        </proto>
 
-       <desc name="target">
-               <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_RENDERBUFFER" category="GLES2.0"/>
-       </desc>
-
        <desc name="internalFormat">
                <value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
                <value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
                <param name="renderbuffertarget" type="GLenum"/>
                <param name="renderbuffer" type="GLuint"/>
        </proto>
-
-       <desc name="target">
-               <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
-       </desc>
-
-       <desc name="attachment">
-               <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/>
-               <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/>
-               <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/>
-               <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/>
-               <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/>
-               <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/>
-       </desc>
-
-       <desc name="renderbuffertarget">
-               <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_RENDERBUFFER" category="GLES2.0"/>
-       </desc>
 </template>
 
 <template name="FramebufferTexture2D">
                <param name="level" type="GLint"/>
        </proto>
 
-       <desc name="target">
-               <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
-       </desc>
-
-       <desc name="attachment">
-               <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/>
-               <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/>
-               <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/>
-               <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/>
-               <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/>
-               <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/>
-       </desc>
-
        <desc name="textarget" error="GL_INVALID_OPERATION">
                <value name="GL_TEXTURE_2D"/>
                <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
                <param name="zoffset" type="GLint"/>
        </proto>
 
-       <desc name="target">
-               <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
-       </desc>
-
-       <desc name="attachment">
-               <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/>
-               <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/>
-               <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/>
-               <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/>
-               <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/>
-               <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/>
-       </desc>
-
        <desc name="textarget" error="GL_INVALID_OPERATION">
                <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
        </desc>
                <return type="GLenum"/>
                <param name="target" type="GLenum"/>
        </proto>
-
-       <desc name="target">
-               <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
-       </desc>
 </template>
 
 <template name="GetFramebufferAttachmentParameter" direction="get">
                <vector name="params" type="GLtype *" size="dynamic"/>
        </proto>
 
-       <desc name="target">
-               <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
-       </desc>
-
        <desc name="pname">
                <value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
                <value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
                <vector name="params" type="GLtype *" size="dynamic"/>
        </proto>
 
-       <desc name="target">
-               <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_RENDERBUFFER" category="GLES2.0"/>
-       </desc>
-
        <desc name="pname" category="OES_framebuffer_object">
                <value name="GL_RENDERBUFFER_WIDTH_OES"/>
                <value name="GL_RENDERBUFFER_HEIGHT_OES"/>
 
        <desc name="target">
                <value name="GL_TEXTURE_2D"/>
+               <value name="GL_TEXTURE_EXTERNAL_OES" category="OES_EGL_image_external"/>
        </desc>
 </template>
 
                <param name="target" type="GLenum"/>
                <param name="image" type="GLeglImageOES"/>
        </proto>
+</template>
 
-       <desc name="target">
-               <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
-               <value name="GL_RENDERBUFFER" category="GLES2.0"/>
-       </desc>
+<template name="DrawBuffers">
+       <proto>
+               <return type="void"/>
+               <param name="n" type="GLsizei"/>
+               <param name="bufs" type="const GLenum *"/>
+       </proto>
+</template>
+
+<template name="ReadBuffer">
+       <proto>
+               <return type="void"/>
+               <param name="mode" type="GLenum"/>
+       </proto>
 </template>
 
 <api name="mesa" implementation="true">
        <category name="MESA"/>
 
-       <function name="Color4f"  default_prefix="_vbo_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+       <function name="Color4f"  default_prefix="_es_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
        <function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
        <function name="CullFace" template="CullFace"/>
 
 
        <function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
 
-       <function name="Materialf" default_prefix="_vbo_" template="Material" gltype="GLfloat" expand_vector="true"/>
-       <function name="Materialfv" default_prefix="_vbo_" template="Material" gltype="GLfloat"/>
+       <function name="Materialf" default_prefix="_es_" template="Material" gltype="GLfloat" expand_vector="true"/>
+       <function name="Materialfv" default_prefix="_es_" template="Material" gltype="GLfloat"/>
 
        <function name="PointSize" template="PointSize" gltype="GLfloat"/>
        <function name="PointSizePointer" template="PointSizePointer"/>
        <function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
        <function name="ClearStencil" template="ClearStencil"/>
        <function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
+       <function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
 
        <function name="StencilMask" template="StencilMask"/>
        <function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
        <function name="IsEnabled" template="IsEnabled"/>
 
        <function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
+       <function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
        <function name="Frustum" template="Frustum" gltype="GLdouble"/>
 
        <function name="LoadIdentity" template="LoadIdentity"/>
        <function name="EnableClientState" template="EnableClientState"/>
 
        <function name="GetPointerv" template="GetPointer"/>
-       <function name="Normal3f" default_prefix="_vbo_" template="Normal" gltype="GLfloat" expand_vector="true"/>
+       <function name="Normal3f" default_prefix="_es_" template="Normal" gltype="GLfloat" expand_vector="true"/>
        <function name="NormalPointer" template="NormalPointer"/>
        <function name="TexCoordPointer" template="TexCoordPointer"/>
        <function name="VertexPointer" template="VertexPointer"/>
        <function name="ActiveTextureARB" template="ActiveTexture"/>
        <function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
 
-       <function name="MultiTexCoord4f" default_prefix="_vbo_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+       <function name="MultiTexCoord4f" default_prefix="_es_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
 
        <function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
 
        <function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
        <function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
 
-       <function name="VertexAttrib1f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
-       <function name="VertexAttrib2f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
-       <function name="VertexAttrib3f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
-       <function name="VertexAttrib4f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
-       <function name="VertexAttrib1fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
-       <function name="VertexAttrib2fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
-       <function name="VertexAttrib3fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
-       <function name="VertexAttrib4fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
+       <function name="VertexAttrib1f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
+       <function name="VertexAttrib2f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
+       <function name="VertexAttrib3f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+       <function name="VertexAttrib4f" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+       <function name="VertexAttrib1fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
+       <function name="VertexAttrib2fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
+       <function name="VertexAttrib3fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
+       <function name="VertexAttrib4fv" default_prefix="_es_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
 
        <function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
        <function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
         <!-- OES_EGL_image -->
         <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
         <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
+
+       <function name="DrawBuffersARB" template="DrawBuffers"/>
+
+       <function name="ReadBuffer" template="ReadBuffer"/>
+
 </api>
 
 <api name="GLES1.1">
        <category name="OES_matrix_get"/>
        <category name="OES_read_format"/>
        <category name="OES_compressed_paletted_texture"/>
+       <category name="OES_compressed_ETC1_RGB8_texture"/>
        <category name="OES_point_size_array"/>
        <category name="OES_point_sprite"/>
        <category name="OES_query_matrix"/>
        <category name="OES_element_index_uint"/>
        <category name="OES_mapbuffer"/>
        <category name="EXT_texture_filter_anisotropic"/>
+       <category name="EXT_texture_format_BGRA8888"/>
+       <category name="EXT_read_format_bgra"/>
 
        <category name="ARB_texture_non_power_of_two"/>
        <!-- disabled due to missing enums
        <category name="EXT_blend_minmax"/>
        <category name="EXT_multi_draw_arrays"/>
        <category name="OES_EGL_image"/>
+       <category name="OES_EGL_image_external"/>
 
        <category name="OES_matrix_palette"/>
 
-       <function name="Color4f" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+       <function name="Color4f" external="true" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
        <function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
        <function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
 
        <function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
        <function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
 
-       <function name="Materialf" template="Material" gltype="GLfloat" expand_vector="true"/>
-       <function name="Materialfv" template="Material" gltype="GLfloat"/>
+       <function name="Materialf" external="true" template="Material" gltype="GLfloat" expand_vector="true"/>
+       <function name="Materialfv" external="true" template="Material" gltype="GLfloat"/>
        <function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
        <function name="Materialxv" template="Material" gltype="GLfixed"/>
 
 
        <function name="GetPointerv" template="GetPointer"/>
 
-       <function name="Normal3f" template="Normal" gltype="GLfloat" expand_vector="true"/>
+       <function name="Normal3f" external="true" template="Normal" gltype="GLfloat" expand_vector="true"/>
        <function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
        <function name="NormalPointer" template="NormalPointer"/>
        <function name="TexCoordPointer" template="TexCoordPointer"/>
        <function name="ActiveTexture" template="ActiveTexture"/>
        <function name="ClientActiveTexture" template="ClientActiveTexture"/>
 
-       <function name="MultiTexCoord4f" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+       <function name="MultiTexCoord4f" external="true" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
 
        <function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
        <function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
        <category name="GLES2.0"/>
 
        <category name="OES_compressed_paletted_texture"/>
+       <category name="OES_compressed_ETC1_RGB8_texture"/>
        <category name="OES_depth24"/>
        <category name="OES_depth32"/>
        <category name="OES_fbo_render_mipmap"/>
        <category name="OES_packed_depth_stencil"/>
        <category name="OES_standard_derivatives"/>
        <category name="EXT_texture_format_BGRA8888"/>
+       <category name="EXT_read_format_bgra"/>
 
        <category name="EXT_texture_compression_dxt1"/>
        <category name="EXT_blend_minmax"/>
        <category name="EXT_multi_draw_arrays"/>
        <category name="OES_EGL_image"/>
+       <category name="OES_EGL_image_external"/>
+        <category name="EXT_unpack_subimage"/>
+
+       <category name="NV_draw_buffers"/>
+       <category name="NV_read_buffer"/>
+
+       <function name="DrawBuffersNV" template="DrawBuffers"/>
+       <function name="ReadBufferNV" template="ReadBuffer"/> 
 
        <function name="CullFace" template="CullFace"/>
 
 
        <function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
 
-       <function name="VertexAttrib1f" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
-       <function name="VertexAttrib2f" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
-       <function name="VertexAttrib3f" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
-       <function name="VertexAttrib4f" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
-       <function name="VertexAttrib1fv" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
-       <function name="VertexAttrib2fv" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
-       <function name="VertexAttrib3fv" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
-       <function name="VertexAttrib4fv" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
+       <function name="VertexAttrib1f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
+       <function name="VertexAttrib2f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
+       <function name="VertexAttrib3f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+       <function name="VertexAttrib4f" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+       <function name="VertexAttrib1fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
+       <function name="VertexAttrib2fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
+       <function name="VertexAttrib3fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
+       <function name="VertexAttrib4fv" external="true" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
 
        <function name="VertexAttribPointer" template="VertexAttribPointer"/>