mesa: add vao/vbo lookup helper for EXT_dsa

Add a single helper dealing with the lookup of both the vao
and the vbo to avoid duplicating this code in all the
glVertexArray* functions.
Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
parent 3e842a0b
......@@ -625,6 +625,38 @@ update_array(struct gl_context *ctx,
effectiveStride);
}
/* Helper function for all EXT_direct_state_access glVertexArray* functions */
static bool
_lookup_vao_and_vbo_dsa(struct gl_context *ctx,
GLuint vaobj, GLuint buffer,
GLintptr offset,
struct gl_vertex_array_object** vao,
struct gl_buffer_object** vbo,
const char* caller)
{
*vao = _mesa_lookup_vao_err(ctx, vaobj, true, caller);
if (!(*vao))
return false;
if (buffer != 0) {
*vbo = _mesa_lookup_bufferobj(ctx, buffer);
if (!_mesa_handle_bind_buffer_gen(ctx, buffer, vbo, caller))
return false;
if (offset < 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
"%s(negative offset with non-0 buffer)", caller);
return false;
}
} else {
*vbo = ctx->Shared->NullBufferObj;
}
return true;
}
void GLAPIENTRY
_mesa_VertexPointer_no_error(GLint size, GLenum type, GLsizei stride,
const GLvoid *ptr)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment