From 5030d0a4f79c3309bad04cc257beb97f74f84f61 Mon Sep 17 00:00:00 2001 From: Laura Ekstrand Date: Wed, 11 Feb 2015 12:17:38 -0800 Subject: [PATCH] main: Add entry points for ClearNamedBuffer[Sub]Data. Reviewed-by: Martin Peres --- src/mapi/glapi/gen/ARB_direct_state_access.xml | 18 +++++++++++++ src/mesa/main/bufferobj.c | 35 ++++++++++++++++++++++++++ src/mesa/main/bufferobj.h | 11 ++++++++ src/mesa/main/tests/dispatch_sanity.cpp | 2 ++ 4 files changed, 66 insertions(+) diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index 042b2a8..ce4017b 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -43,6 +43,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index b2d0ef9..ae086a6 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -1773,6 +1773,22 @@ _mesa_ClearBufferData(GLenum target, GLenum internalformat, GLenum format, "glClearBufferData", false); } +void GLAPIENTRY +_mesa_ClearNamedBufferData(GLuint buffer, GLenum internalformat, + GLenum format, GLenum type, const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + struct gl_buffer_object *bufObj; + + bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glClearNamedBufferData"); + if (!bufObj) + return; + + _mesa_clear_buffer_sub_data(ctx, bufObj, internalformat, 0, bufObj->Size, + format, type, data, + "glClearNamedBufferData", false); +} + void GLAPIENTRY _mesa_ClearBufferSubData(GLenum target, GLenum internalformat, @@ -1792,6 +1808,25 @@ _mesa_ClearBufferSubData(GLenum target, GLenum internalformat, "glClearBufferSubData", true); } +void GLAPIENTRY +_mesa_ClearNamedBufferSubData(GLuint buffer, GLenum internalformat, + GLintptr offset, GLsizeiptr size, + GLenum format, GLenum type, + const GLvoid *data) +{ + GET_CURRENT_CONTEXT(ctx); + struct gl_buffer_object *bufObj; + + bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, + "glClearNamedBufferSubData"); + if (!bufObj) + return; + + _mesa_clear_buffer_sub_data(ctx, bufObj, internalformat, offset, size, + format, type, data, + "glClearNamedBufferSubData", true); +} + void * GLAPIENTRY _mesa_MapBuffer(GLenum target, GLenum access) diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index 5911270..5254727 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -223,11 +223,22 @@ _mesa_ClearBufferData(GLenum target, GLenum internalformat, const GLvoid * data); void GLAPIENTRY +_mesa_ClearNamedBufferData(GLuint buffer, GLenum internalformat, + GLenum format, GLenum type, + const GLvoid *data); + +void GLAPIENTRY _mesa_ClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid * data); +void GLAPIENTRY +_mesa_ClearNamedBufferSubData(GLuint buffer, GLenum internalformat, + GLintptr offset, GLsizeiptr size, + GLenum format, GLenum type, + const GLvoid *data); + void * GLAPIENTRY _mesa_MapBuffer(GLenum target, GLenum access); diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index 63b9dcf..aff5cd6 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -958,6 +958,8 @@ const struct function gl_core_functions_possible[] = { { "glNamedBufferData", 45, -1 }, { "glNamedBufferSubData", 45, -1 }, { "glCopyNamedBufferSubData", 45, -1 }, + { "glClearNamedBufferData", 45, -1 }, + { "glClearNamedBufferSubData", 45, -1 }, { "glCreateTextures", 45, -1 }, { "glTextureStorage1D", 45, -1 }, { "glTextureStorage2D", 45, -1 }, -- 2.7.4