diff options
author | Timothy Arceri <[email protected]> | 2017-05-04 13:08:57 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-05-07 15:29:33 +1000 |
commit | 9d010f57dbb905c79a8916a2de3bc060a4099854 (patch) | |
tree | 63da7ce831db663e9b5d9d07941932cb52b24b31 /src/mesa/main | |
parent | e83b0a41037df29f1ff256966a967327b27dcc07 (diff) |
mesa: add KHR_no_error support for some map buffer functions
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/bufferobj.c | 53 | ||||
-rw-r--r-- | src/mesa/main/bufferobj.h | 10 |
2 files changed, 63 insertions, 0 deletions
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 797b6fb3069..d1726d68628 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -2576,6 +2576,19 @@ map_buffer_range(struct gl_context *ctx, struct gl_buffer_object *bufObj, } void * GLAPIENTRY +_mesa_MapBufferRange_no_error(GLenum target, GLintptr offset, + GLsizeiptr length, GLbitfield access) +{ + GET_CURRENT_CONTEXT(ctx); + + struct gl_buffer_object **bufObjPtr = get_buffer_target(ctx, target); + struct gl_buffer_object *bufObj = *bufObjPtr; + + return map_buffer_range(ctx, bufObj, offset, length, access, + "glMapBufferRange"); +} + +void * GLAPIENTRY _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) { @@ -2601,6 +2614,17 @@ _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, } void * GLAPIENTRY +_mesa_MapNamedBufferRange_no_error(GLuint buffer, GLintptr offset, + GLsizeiptr length, GLbitfield access) +{ + GET_CURRENT_CONTEXT(ctx); + struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer); + + return map_buffer_range(ctx, bufObj, offset, length, access, + "glMapNamedBufferRange"); +} + +void * GLAPIENTRY _mesa_MapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) { @@ -2652,6 +2676,21 @@ get_map_buffer_access_flags(struct gl_context *ctx, GLenum access, } void * GLAPIENTRY +_mesa_MapBuffer_no_error(GLenum target, GLenum access) +{ + GET_CURRENT_CONTEXT(ctx); + + GLbitfield accessFlags; + get_map_buffer_access_flags(ctx, access, &accessFlags); + + struct gl_buffer_object **bufObjPtr = get_buffer_target(ctx, target); + struct gl_buffer_object *bufObj = *bufObjPtr; + + return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags, + "glMapBuffer"); +} + +void * GLAPIENTRY _mesa_MapBuffer(GLenum target, GLenum access) { GET_CURRENT_CONTEXT(ctx); @@ -2676,6 +2715,20 @@ _mesa_MapBuffer(GLenum target, GLenum access) } void * GLAPIENTRY +_mesa_MapNamedBuffer_no_error(GLuint buffer, GLenum access) +{ + GET_CURRENT_CONTEXT(ctx); + + GLbitfield accessFlags; + get_map_buffer_access_flags(ctx, access, &accessFlags); + + struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer); + + return map_buffer_range(ctx, bufObj, 0, bufObj->Size, accessFlags, + "glMapNamedBuffer"); +} + +void * GLAPIENTRY _mesa_MapNamedBuffer(GLuint buffer, GLenum access) { GET_CURRENT_CONTEXT(ctx); diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index f9d887465dc..f95e31ab107 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -293,17 +293,27 @@ _mesa_CopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLsizeiptr size); void * GLAPIENTRY +_mesa_MapBufferRange_no_error(GLenum target, GLintptr offset, + GLsizeiptr length, GLbitfield access); +void * GLAPIENTRY _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); void * GLAPIENTRY +_mesa_MapNamedBufferRange_no_error(GLuint buffer, GLintptr offset, + GLsizeiptr length, GLbitfield access); +void * GLAPIENTRY _mesa_MapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); void * GLAPIENTRY +_mesa_MapBuffer_no_error(GLenum target, GLenum access); +void * GLAPIENTRY _mesa_MapBuffer(GLenum target, GLenum access); void * GLAPIENTRY +_mesa_MapNamedBuffer_no_error(GLuint buffer, GLenum access); +void * GLAPIENTRY _mesa_MapNamedBuffer(GLuint buffer, GLenum access); |