mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 13:00:09 +01:00
vbo: allow DrawElementsBaseVertex in display lists
Looks like it was missed originally. The multi version is there already. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97331 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
561fd226d4
commit
68b64f32e8
1 changed files with 13 additions and 5 deletions
|
|
@ -1176,8 +1176,8 @@ _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count)
|
|||
* then emitting an indexed prim at runtime.
|
||||
*/
|
||||
static void GLAPIENTRY
|
||||
_save_OBE_DrawElements(GLenum mode, GLsizei count, GLenum type,
|
||||
const GLvoid * indices)
|
||||
_save_OBE_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
|
||||
const GLvoid * indices, GLint basevertex)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct vbo_save_context *save = &vbo_context(ctx)->save;
|
||||
|
|
@ -1214,15 +1214,15 @@ _save_OBE_DrawElements(GLenum mode, GLsizei count, GLenum type,
|
|||
switch (type) {
|
||||
case GL_UNSIGNED_BYTE:
|
||||
for (i = 0; i < count; i++)
|
||||
CALL_ArrayElement(GET_DISPATCH(), (((GLubyte *) indices)[i]));
|
||||
CALL_ArrayElement(GET_DISPATCH(), (basevertex + ((GLubyte *) indices)[i]));
|
||||
break;
|
||||
case GL_UNSIGNED_SHORT:
|
||||
for (i = 0; i < count; i++)
|
||||
CALL_ArrayElement(GET_DISPATCH(), (((GLushort *) indices)[i]));
|
||||
CALL_ArrayElement(GET_DISPATCH(), (basevertex + ((GLushort *) indices)[i]));
|
||||
break;
|
||||
case GL_UNSIGNED_INT:
|
||||
for (i = 0; i < count; i++)
|
||||
CALL_ArrayElement(GET_DISPATCH(), (((GLuint *) indices)[i]));
|
||||
CALL_ArrayElement(GET_DISPATCH(), (basevertex + ((GLuint *) indices)[i]));
|
||||
break;
|
||||
default:
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glDrawElements(type)");
|
||||
|
|
@ -1234,6 +1234,13 @@ _save_OBE_DrawElements(GLenum mode, GLsizei count, GLenum type,
|
|||
_ae_unmap_vbos(ctx);
|
||||
}
|
||||
|
||||
static void GLAPIENTRY
|
||||
_save_OBE_DrawElements(GLenum mode, GLsizei count, GLenum type,
|
||||
const GLvoid * indices)
|
||||
{
|
||||
_save_OBE_DrawElementsBaseVertex(mode, count, type, indices, 0);
|
||||
}
|
||||
|
||||
|
||||
static void GLAPIENTRY
|
||||
_save_OBE_DrawRangeElements(GLenum mode, GLuint start, GLuint end,
|
||||
|
|
@ -1471,6 +1478,7 @@ vbo_initialize_save_dispatch(const struct gl_context *ctx,
|
|||
{
|
||||
SET_DrawArrays(exec, _save_OBE_DrawArrays);
|
||||
SET_DrawElements(exec, _save_OBE_DrawElements);
|
||||
SET_DrawElementsBaseVertex(exec, _save_OBE_DrawElementsBaseVertex);
|
||||
SET_DrawRangeElements(exec, _save_OBE_DrawRangeElements);
|
||||
SET_MultiDrawElementsEXT(exec, _save_OBE_MultiDrawElements);
|
||||
SET_MultiDrawElementsBaseVertex(exec, _save_OBE_MultiDrawElementsBaseVertex);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue