mesa/es: Enable GL_OES_vertex_array_object

Functionally the same as GL_ARB_vertex_array_object.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Ian Romanick 2012-08-21 18:03:49 -07:00
parent 35cf6aeb8c
commit 36ceabfb74
5 changed files with 41 additions and 13 deletions

View file

@ -619,6 +619,32 @@
<!-- 69. GL_EXT_multi_draw_arrays -->
<!-- 71. GL_OES_vertex_array_object -->
<category name="GL_OES_vertex_array_object" number="71">
<function name="BindVertexArrayOES" alias="BindVertexArray">
<param name="array" type="GLuint"/>
</function>
<function name="DeleteVertexArraysOES" alias="DeleteVertexArraysAPPLE">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
<function name="GenVertexArraysOES" alias="GenVertexArrays">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" output="true" count="n"/>
</function>
<function name="IsVertexArrayOES" alias="IsVertexArrayAPPLE">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
<enum name="VERTEX_ARRAY_BINDING_OES" count="1" value="0x85B5">
<size name="Get" mode="get"/>
</enum>
</category>
<!-- 87. GL_OES_EGL_image_external -->
<category name="GL_OES_EGL_image_external" number="87">
<enum name="TEXTURE_EXTERNAL_OES" value="0x8D65"/>

View file

@ -449,6 +449,11 @@ es2_api = es2_core + (
# GL_OES_get_program_binary
'GetProgramBinaryOES',
'ProgramBinaryOES',
# GL_OES_vertex_array_object
'BindVertexArrayOES',
'DeleteVertexArraysOES',
'GenVertexArraysOES',
'IsVertexArrayOES',
# GL_NV_draw_buffers
'DrawBuffersNV',
# GL_NV_read_buffer

View file

@ -521,11 +521,9 @@ _mesa_create_exec_table(struct gl_context *ctx)
SET_BindVertexArrayAPPLE(exec, _mesa_BindVertexArrayAPPLE);
SET_GenVertexArraysAPPLE(exec, _mesa_GenVertexArraysAPPLE);
}
/* Reused by ARB_vertex_array_object */
if (ctx->API != API_OPENGLES2) {
SET_DeleteVertexArraysAPPLE(exec, _mesa_DeleteVertexArraysAPPLE);
SET_IsVertexArrayAPPLE(exec, _mesa_IsVertexArrayAPPLE);
}
/* Reused by ARB_vertex_array_object / OES_vertex_array_object */
SET_DeleteVertexArraysAPPLE(exec, _mesa_DeleteVertexArraysAPPLE);
SET_IsVertexArrayAPPLE(exec, _mesa_IsVertexArrayAPPLE);
/* 282. GL_NV_fragment_program */
#if FEATURE_NV_fragment_program
@ -809,11 +807,9 @@ _mesa_create_exec_table(struct gl_context *ctx)
SET_CopyBufferSubData(exec, _mesa_CopyBufferSubData);
}
/* GL_ARB_vertex_array_object */
if (ctx->API != API_OPENGLES2) {
SET_BindVertexArray(exec, _mesa_BindVertexArray);
SET_GenVertexArrays(exec, _mesa_GenVertexArrays);
}
/* GL_ARB_vertex_array_object / GL_OES_vertex_array_object */
SET_BindVertexArray(exec, _mesa_BindVertexArray);
SET_GenVertexArrays(exec, _mesa_GenVertexArrays);
/* GL_EXT_draw_buffers2 */
if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {

View file

@ -266,6 +266,7 @@ static const struct extension extension_table[] = {
{ "GL_OES_texture_env_crossbar", o(ARB_texture_env_crossbar), ES1, 2005 },
{ "GL_OES_texture_mirrored_repeat", o(dummy_true), ES1, 2005 },
{ "GL_OES_texture_npot", o(ARB_texture_non_power_of_two), ES2, 2005 },
{ "GL_OES_vertex_array_object", o(dummy_true), ES1 | ES2, 2010 },
/* Vendor extensions */
{ "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 },

View file

@ -535,6 +535,9 @@ static const struct value_desc values[] = {
* GLSL: */
{ GL_MAX_CLIP_PLANES, CONTEXT_INT(Const.MaxClipPlanes), NO_EXTRA },
/* GL_{APPLE,ARB,OES}_vertex_array_object */
{ GL_VERTEX_ARRAY_BINDING_APPLE, ARRAY_INT(Name), NO_EXTRA },
#if FEATURE_GL || FEATURE_ES1
/* Enums in OpenGL and GLES1 */
{ 0, 0, TYPE_API_MASK, API_OPENGL_BIT | API_OPENGLES_BIT | API_OPENGL_CORE_BIT, NO_EXTRA },
@ -1212,9 +1215,6 @@ static const struct value_desc values[] = {
{ GL_MAX_SAMPLES, CONTEXT_INT(Const.MaxSamples),
extra_ARB_framebuffer_object_EXT_framebuffer_multisample },
/* GL_APPLE_vertex_array_object */
{ GL_VERTEX_ARRAY_BINDING_APPLE, ARRAY_INT(Name), NO_EXTRA },
/* GL_ARB_seamless_cube_map */
{ GL_TEXTURE_CUBE_MAP_SEAMLESS,
CONTEXT_BOOL(Texture.CubeMapSeamless), extra_ARB_seamless_cube_map },