mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-11 00:30:44 +01:00
mesa: add buffer_sub_data() helper
This will allow us to share code between the dsa, non-dsa and no_error variants. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
5d29e6aab8
commit
cab148c282
1 changed files with 27 additions and 20 deletions
|
|
@ -1854,36 +1854,43 @@ _mesa_buffer_sub_data(struct gl_context *ctx, struct gl_buffer_object *bufObj,
|
|||
ctx->Driver.BufferSubData(ctx, offset, size, data, bufObj);
|
||||
}
|
||||
|
||||
|
||||
static ALWAYS_INLINE void
|
||||
buffer_sub_data(GLenum target, GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr size, const GLvoid *data,
|
||||
bool dsa, const char *func)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
|
||||
if (dsa) {
|
||||
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, func);
|
||||
if (!bufObj)
|
||||
return;
|
||||
} else {
|
||||
bufObj = get_buffer(ctx, func, target, GL_INVALID_OPERATION);
|
||||
if (!bufObj)
|
||||
return;
|
||||
}
|
||||
|
||||
if (validate_buffer_sub_data(ctx, bufObj, offset, size, func))
|
||||
_mesa_buffer_sub_data(ctx, bufObj, offset, size, data);
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_BufferSubData(GLenum target, GLintptr offset,
|
||||
GLsizeiptr size, const GLvoid *data)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
const char *func = "glBufferSubData";
|
||||
|
||||
bufObj = get_buffer(ctx, func, target, GL_INVALID_OPERATION);
|
||||
if (!bufObj)
|
||||
return;
|
||||
|
||||
if (validate_buffer_sub_data(ctx, bufObj, offset, size, func))
|
||||
_mesa_buffer_sub_data(ctx, bufObj, offset, size, data);
|
||||
buffer_sub_data(target, 0, offset, size, data, false, "glBufferSubData");
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_NamedBufferSubData(GLuint buffer, GLintptr offset,
|
||||
GLsizeiptr size, const GLvoid *data)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct gl_buffer_object *bufObj;
|
||||
const char *func = "glNamedBufferSubData";
|
||||
|
||||
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, func);
|
||||
if (!bufObj)
|
||||
return;
|
||||
|
||||
if (validate_buffer_sub_data(ctx, bufObj, offset, size, func))
|
||||
_mesa_buffer_sub_data(ctx, bufObj, offset, size, data);
|
||||
buffer_sub_data(0, buffer, offset, size, data, true,
|
||||
"glNamedBufferSubData");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue