On Tue, Dec 10, 2013 at 2:13 PM, Pi Tabred <servuswiege...@yahoo.de> wrote: > - add xml file for extension > - add reference in gl_API.xml > - add pointer to device driver function table > - add new functions to list of available functions > --- > src/mapi/glapi/gen/ARB_clear_buffer_object.xml | 50 > ++++++++++++++++++++++++++ > src/mapi/glapi/gen/gl_API.xml | 6 +++- > src/mesa/main/dd.h | 5 +++ > src/mesa/main/tests/dispatch_sanity.cpp | 4 +-- > 4 files changed, 62 insertions(+), 3 deletions(-) > create mode 100644 src/mapi/glapi/gen/ARB_clear_buffer_object.xml > > diff --git a/src/mapi/glapi/gen/ARB_clear_buffer_object.xml > b/src/mapi/glapi/gen/ARB_clear_buffer_object.xml > new file mode 100644 > index 0000000..e7baf6f > --- /dev/null > +++ b/src/mapi/glapi/gen/ARB_clear_buffer_object.xml > @@ -0,0 +1,50 @@ > +<?xml version="1.0"?> > +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd"> > + > +<!-- Note: no GLX protocol info yet. --> > + > + > +<OpenGLAPI> > + > +<category name="GL_ARB_clear_buffer_object" number="121"> > + > + <function name ="ClearBufferData" offset="assign"> > + <param name="target" type="GLenum"/> > + <param name="internalformat" type="GLenum"/> > + <param name="format" type="GLenum"/> > + <param name="type" type="GLenum"/> > + <param name="data" type="const GLvoid *"/> > + </function> > + > + <function name ="ClearBufferSubData" offset="assign"> > + <param name="target" type="GLenum"/> > + <param name="internalformat" type="GLenum"/> > + <param name="offset" type="GLintptr"/> > + <param name="size" type="GLsizeiptr"/> > + <param name="format" type="GLenum"/> > + <param name="type" type="GLenum"/> > + <param name="data" type="const GLvoid *"/> > + </function> > + > +<!-- <function name="ClearNamedBufferDataEXT" offset="assign" es2="3.0"> > + <param name="buffer" type="GLuint"/> > + <param name="internalformat" type="GLenum"/> > + <param name="format" type="GLenum"/> > + <param name="type" type="GLenum"/> > + <param name="data" type="const GLvoid*"/> > + </function> > + > + > + <function name="ClearNamedBufferSubDataEXT" offset="assign" es2="3.0"> > + <param name="buffer" type="GLuint"/> > + <param name="internalformat" type="GLenum"/> > + <param name="offset" type="GLintptr"/> > + <param name="size" type="GLsizeiptr"/> > + <param name="format" type="GLenum"/> > + <param name="type" type="GLenum"/> > + <param name="data" type="const GLvoid*"/> > + </function> --> > + > +</category> > + > +</OpenGLAPI> > diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml > index 5c877aa..af8ab2e 100644 > --- a/src/mapi/glapi/gen/gl_API.xml > +++ b/src/mapi/glapi/gen/gl_API.xml > @@ -8460,7 +8460,11 @@ > > </category> > > -<!-- ARB extensions #120...#124 --> > +<!-- ARB extension #120 --> > + > +<xi:include href="ARB_clear_buffer_object.xml" > xmlns:xi="http://www.w3.org/2001/XInclude"/> > + > +<!-- ARB extensions #122...#124 --> > > <xi:include href="ARB_vertex_attrib_binding.xml" > xmlns:xi="http://www.w3.org/2001/XInclude"/> > > diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h > index b5b874f..0e2bda0 100644 > --- a/src/mesa/main/dd.h > +++ b/src/mesa/main/dd.h > @@ -569,6 +569,11 @@ struct dd_function_table { > GLintptrARB offset, GLsizeiptrARB size, > GLvoid *data, struct gl_buffer_object *obj ); > > + void (*ClearBufferSubData)( struct gl_context *ctx, GLenum internalformat, > + GLintptr offset, GLsizeiptr size, > + GLenum format, GLenum type, > + const GLvoid *data, struct gl_buffer_object > *obj );
This interface could be simpler. The unpacking from the data to the internal format should take place in mesa/main, so that drivers only have to implement something like this: void (*ClearBufferSubData)(struct gl_context *ctx, struct gl_buffer_object *obj, GLintptr offset, GLsizeiptr size, GLvoid *element, int element_size); "offset" and "size" should stay. "element" is the clear value that has "element_size" bytes. "element_size" is the size of the internal format in bytes. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev