mesa: add APPLE_vertex_array_object stubs
authorTimothy Arceri <tarceri@itsqueeze.com>
Fri, 19 May 2017 02:31:47 +0000 (12:31 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Mon, 22 May 2017 04:56:51 +0000 (14:56 +1000)
APPLE_vertex_array_object support was removed in 7927d0378fc7.
However it turns out we can't remove the functions because this
can cause issues when libglapi is used together with DRI
drivers built prior to said commit

Fixes: 7927d0378fc ("mesa: drop APPLE_vertex_array_object support")
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/mapi/glapi/gen/APPLE_vertex_array_object.xml [new file with mode: 0644]
src/mapi/glapi/gen/Makefile.am
src/mapi/glapi/gen/gl_API.xml
src/mapi/glapi/tests/check_table.cpp
src/mesa/main/arrayobj.c
src/mesa/main/arrayobj.h
src/mesa/main/tests/dispatch_sanity.cpp

diff --git a/src/mapi/glapi/gen/APPLE_vertex_array_object.xml b/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
new file mode 100644 (file)
index 0000000..7312f9b
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+<category name="GL_APPLE_vertex_array_object" number="273">
+    <enum name="VERTEX_ARRAY_BINDING_APPLE"               value="0x85B5"/>
+
+    <function name="BindVertexArrayAPPLE" deprecated="3.1">
+        <param name="array" type="GLuint"/>
+    </function>
+
+    <function name="DeleteVertexArraysAPPLE" alias="DeleteVertexArrays">
+        <param name="n" type="GLsizei"/>
+       <param name="arrays" type="const GLuint *"/>
+    </function>
+
+    <function name="GenVertexArraysAPPLE" deprecated="3.1">
+        <param name="n" type="GLsizei"/>
+       <param name="arrays" type="GLuint *" count="n" output="true"/>
+    </function>
+
+    <function name="IsVertexArrayAPPLE" alias="IsVertexArray">
+        <param name="array" type="GLuint"/>
+       <return type="GLboolean"/>
+    </function>
+</category>
+</OpenGLAPI>
index ecd1c71175eb0afbe92eb25d1b37cc2b5f06e496..33139bdf08fae3ba5bb8a3b9bacc5179fe0fd0d6 100644 (file)
@@ -189,6 +189,7 @@ API_XML = \
        AMD_performance_monitor.xml \
        ARB_vertex_type_2_10_10_10_rev.xml \
        APPLE_object_purgeable.xml \
+       APPLE_vertex_array_object.xml \
        EXT_draw_buffers2.xml \
        EXT_framebuffer_object.xml \
        EXT_gpu_shader4.xml \
index 762fb5a67699cdc6e964571833119344de21997a..630d6b8a5bbc89995db15423d053d585c85dab0e 100644 (file)
 </category>
 
 <xi:include href="APPLE_object_purgeable.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-<!-- Extension number 273 obsolete APPLE_vertex_array_object. -->
+<xi:include href="APPLE_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <category name="GL_APPLE_ycbcr_422" number="275">
     <enum name="YCBCR_422_APPLE"                          value="0x85B9"/>
index a1041bcea22fcae81ea4cfacd226e26f78fe5ad5..09bf4f3585c29b382e4cfca2e8239baf9e7e173c 100644 (file)
@@ -1404,7 +1404,9 @@ const struct name_offset known_dispatch[] = {
    { "glPointParameteri", _O(PointParameteri) },
    { "glPointParameteriv", _O(PointParameteriv) },
    { "glActiveStencilFaceEXT", _O(ActiveStencilFaceEXT) },
+   { "glBindVertexArrayAPPLE", _O(BindVertexArrayAPPLE) },
    { "glDeleteVertexArrays", _O(DeleteVertexArrays) },
+   { "glGenVertexArraysAPPLE", _O(GenVertexArraysAPPLE) },
    { "glIsVertexArray", _O(IsVertexArray) },
    { "glGetProgramNamedParameterdvNV", _O(GetProgramNamedParameterdvNV) },
    { "glGetProgramNamedParameterfvNV", _O(GetProgramNamedParameterfvNV) },
index 82c00fbe82643f43316146dc18dceb7073e7f6a9..b98622932c5939f3b1ead0b96ae7ef6ddace9983 100644 (file)
@@ -473,6 +473,14 @@ _mesa_BindVertexArray( GLuint id )
 }
 
 
+void GLAPIENTRY
+_mesa_BindVertexArrayAPPLE(GLuint id)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   _mesa_problem(ctx, "APPLE_vertex_array_object is not supported!");
+}
+
+
 /**
  * Delete a set of array objects.
  *
@@ -579,6 +587,14 @@ _mesa_GenVertexArrays(GLsizei n, GLuint *arrays)
 }
 
 
+void GLAPIENTRY
+_mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *arrays)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   _mesa_problem(ctx, "APPLE_vertex_array_object is not supported!");
+}
+
+
 /**
  * ARB_direct_state_access
  * Generates ID's and creates the array objects.
index 17949685775eaf4657a58f4bb254b4d6c8d96bc4..097027ba97c60fac26bde3bbf418fc2166f6b915 100644 (file)
@@ -96,10 +96,14 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao);
 
 void GLAPIENTRY _mesa_BindVertexArray( GLuint id );
 
+void GLAPIENTRY _mesa_BindVertexArrayAPPLE(GLuint id);
+
 void GLAPIENTRY _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids);
 
 void GLAPIENTRY _mesa_GenVertexArrays(GLsizei n, GLuint *arrays);
 
+void GLAPIENTRY _mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *buffer);
+
 void GLAPIENTRY _mesa_CreateVertexArrays(GLsizei n, GLuint *arrays);
 
 GLboolean GLAPIENTRY _mesa_IsVertexArray( GLuint id );
index b33043ed28b3370b09eb3780690f0eba4f9891a7..12a9ee7bae13028609bb3426cfb868d6de1779cb 100644 (file)
@@ -969,6 +969,8 @@ const struct function common_desktop_functions_possible[] = {
 };
 
 const struct function gl_compatibility_functions_possible[] = {
+   { "glBindVertexArrayAPPLE", 10, -1 },
+   { "glGenVertexArraysAPPLE", 10, -1 },
    { "glBindRenderbufferEXT", 10, -1 },
    { "glBindFramebufferEXT", 10, -1 },
    { "glNewList", 10, _gloffset_NewList },