On Thursday 12 February 2015, Laura Ekstrand wrote: > --- > src/mapi/glapi/gen/ARB_direct_state_access.xml | 6 ++++++ > src/mesa/main/bufferobj.c | 27 > +++++++++++++++++++++++--- > src/mesa/main/bufferobj.h | 4 ++++ > src/mesa/main/tests/dispatch_sanity.cpp | 1 + > 4 files changed, 35 insertions(+), 3 deletions(-) > > diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml > b/src/mapi/glapi/gen/ARB_direct_state_access.xml > index cb9f285..8bcbb08 100644 > --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml > +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml > @@ -98,6 +98,12 @@ > <param name="params" type="GLint64 *" /> > </function> > > + <function name="GetNamedBufferPointerv" offset="assign"> > + <param name="buffer" type="GLuint" /> > + <param name="pname" type="GLenum" /> > + <param name="params" type="GLvoid **" /> > + </function> > + > <!-- Texture object functions --> > > <function name="CreateTextures" offset="assign"> > diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c > index 40da6f5..015c55a 100644 > --- a/src/mesa/main/bufferobj.c > +++ b/src/mesa/main/bufferobj.c > @@ -2022,14 +2022,15 @@ void GLAPIENTRY > _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params) > { > GET_CURRENT_CONTEXT(ctx); > - struct gl_buffer_object * bufObj; > + struct gl_buffer_object *bufObj; > > if (pname != GL_BUFFER_MAP_POINTER_ARB) { > - _mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferPointervARB(pname)"); > + _mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferPointerv(pname != " > + "GL_BUFFER_MAP_POINTER)"); > return; > } > > - bufObj = get_buffer(ctx, "glGetBufferPointervARB", target, > + bufObj = get_buffer(ctx, "glGetBufferPointerv", target, > GL_INVALID_OPERATION); > if (!bufObj) > return; > @@ -2037,6 +2038,26 @@ _mesa_GetBufferPointerv(GLenum target, GLenum pname, > GLvoid **params) > *params = bufObj->Mappings[MAP_USER].Pointer; > }
I think these changes should be made in a separate commit, since they're unrelated to the new entry point. > > +void GLAPIENTRY > +_mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params) > +{ > + GET_CURRENT_CONTEXT(ctx); > + struct gl_buffer_object *bufObj; > + > + if (pname != GL_BUFFER_MAP_POINTER_ARB) { Let's not use the ARB suffix in new code :) > + _mesa_error(ctx, GL_INVALID_ENUM, "glGetNamedBufferPointerv(pname != " > + "GL_BUFFER_MAP_POINTER)"); > + return; > + } > + > + bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, > + "glGetNamedBufferPointerv"); > + if (!bufObj) > + return; > + > + *params = bufObj->Mappings[MAP_USER].Pointer; > +} > + > > void > _mesa_copy_buffer_sub_data(struct gl_context *ctx, > diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h > index 6b29ce7..eee04fe 100644 > --- a/src/mesa/main/bufferobj.h > +++ b/src/mesa/main/bufferobj.h > @@ -278,6 +278,10 @@ void GLAPIENTRY > _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params); > > void GLAPIENTRY > +_mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params); > + > + > +void GLAPIENTRY > _mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget, > GLintptr readOffset, GLintptr writeOffset, > GLsizeiptr size); > diff --git a/src/mesa/main/tests/dispatch_sanity.cpp > b/src/mesa/main/tests/dispatch_sanity.cpp > index b5c9fe5..ec539b4 100644 > --- a/src/mesa/main/tests/dispatch_sanity.cpp > +++ b/src/mesa/main/tests/dispatch_sanity.cpp > @@ -968,6 +968,7 @@ const struct function gl_core_functions_possible[] = { > { "glFlushMappedNamedBufferRange", 45, -1 }, > { "glGetNamedBufferParameteriv", 45, -1 }, > { "glGetNamedBufferParameteri64v", 45, -1 }, > + { "glGetNamedBufferPointerv", 45, -1 }, > { "glCreateTextures", 45, -1 }, > { "glTextureStorage1D", 45, -1 }, > { "glTextureStorage2D", 45, -1 }, > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev