aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/vbo/vbo_exec_array.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-06-03 08:22:14 +0200
committermarha <marha@users.sourceforge.net>2011-06-03 08:22:14 +0200
commit6aea3a7470dfb2c513378b82c27f0ad87afda7f3 (patch)
treecefb863bdf986b740d8f9475514df400a56ff003 /mesalib/src/mesa/vbo/vbo_exec_array.c
parent5e835037510a4ccf001fb8f0a9aed29a28072fec (diff)
parentcda19b1d226d565f1ca4327aeae827c621b3dfd6 (diff)
downloadvcxsrv-6aea3a7470dfb2c513378b82c27f0ad87afda7f3.tar.gz
vcxsrv-6aea3a7470dfb2c513378b82c27f0ad87afda7f3.tar.bz2
vcxsrv-6aea3a7470dfb2c513378b82c27f0ad87afda7f3.zip
Merge remote-tracking branch 'origin/released'
Conflicts: mesalib/configs/linux-dri mesalib/src/gallium/auxiliary/util/u_math.h mesalib/src/mapi/glapi/gen/Makefile mesalib/src/mapi/glapi/glapi_mapi_tmp.h mesalib/src/mapi/glapi/glapi_sparc.S mesalib/src/mapi/glapi/glapi_x86-64.S mesalib/src/mapi/glapi/glapi_x86.S mesalib/src/mapi/glapi/glapitable.h mesalib/src/mapi/glapi/glapitemp.h mesalib/src/mapi/glapi/glprocs.h mesalib/src/mesa/drivers/dri/Makefile.template mesalib/src/mesa/main/dd.h mesalib/src/mesa/main/fbobject.c mesalib/src/mesa/main/remap_helper.h mesalib/src/mesa/main/shaderapi.c mesalib/src/mesa/main/teximage.c mesalib/src/mesa/main/uniforms.c mesalib/src/mesa/state_tracker/st_format.c mesalib/src/mesa/vbo/vbo_exec_array.c xorg-server/configure.ac xorg-server/dix/main.c xorg-server/dix/window.c xorg-server/hw/xquartz/GL/indirect.c xorg-server/hw/xquartz/X11Application.m xorg-server/hw/xquartz/darwin.c xorg-server/hw/xquartz/darwin.h xorg-server/hw/xquartz/mach-startup/Makefile.am xorg-server/hw/xquartz/pbproxy/app-main.m xorg-server/hw/xquartz/pbproxy/pbproxy.h xorg-server/hw/xquartz/pbproxy/x-selection.m xorg-server/hw/xquartz/xpr/xpr.h xorg-server/hw/xquartz/xpr/xprEvent.c xorg-server/hw/xquartz/xpr/xprScreen.c xorg-server/include/privates.h xorg-server/include/protocol-versions.h xorg-server/test/Makefile.am xorg-server/xfixes/cursor.c xorg-server/xfixes/xfixes.c xorg-server/xkeyboard-config/configure.in xorg-server/xkeyboard-config/rules/base.extras.xml.in xorg-server/xkeyboard-config/rules/base.xml.in xorg-server/xkeyboard-config/symbols/de xorg-server/xkeyboard-config/symbols/lk xorg-server/xkeyboard-config/symbols/ru
Diffstat (limited to 'mesalib/src/mesa/vbo/vbo_exec_array.c')
-rw-r--r--mesalib/src/mesa/vbo/vbo_exec_array.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/mesalib/src/mesa/vbo/vbo_exec_array.c b/mesalib/src/mesa/vbo/vbo_exec_array.c
index d06d0cc71..57dad66a8 100644
--- a/mesalib/src/mesa/vbo/vbo_exec_array.c
+++ b/mesalib/src/mesa/vbo/vbo_exec_array.c
@@ -1045,13 +1045,37 @@ vbo_exec_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type,
_mesa_lookup_enum_by_nr(type), indices, numInstances);
if (!_mesa_validate_DrawElementsInstanced(ctx, mode, count, type, indices,
- numInstances))
+ numInstances, 0))
return;
vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
count, type, indices, 0, numInstances);
}
+/**
+ * Called by glDrawElementsInstancedBaseVertex() in immediate mode.
+ */
+static void GLAPIENTRY
+vbo_exec_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type,
+ const GLvoid *indices, GLsizei numInstances,
+ GLint basevertex)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (MESA_VERBOSE & VERBOSE_DRAW)
+ _mesa_debug(ctx, "glDrawElementsInstancedBaseVertex(%s, %d, %s, %p, %d; %d)\n",
+ _mesa_lookup_enum_by_nr(mode), count,
+ _mesa_lookup_enum_by_nr(type), indices,
+ numInstances, basevertex);
+
+ if (!_mesa_validate_DrawElementsInstanced(ctx, mode, count, type, indices,
+ numInstances, basevertex))
+ return;
+
+ vbo_validated_drawrangeelements(ctx, mode, GL_FALSE, ~0, ~0,
+ count, type, indices, basevertex, numInstances);
+}
+
/**
* Inner support for both _mesa_MultiDrawElements() and
@@ -1260,6 +1284,7 @@ vbo_exec_array_init( struct vbo_exec_context *exec )
exec->vtxfmt.MultiDrawElementsBaseVertex = vbo_exec_MultiDrawElementsBaseVertex;
exec->vtxfmt.DrawArraysInstanced = vbo_exec_DrawArraysInstanced;
exec->vtxfmt.DrawElementsInstanced = vbo_exec_DrawElementsInstanced;
+ exec->vtxfmt.DrawElementsInstancedBaseVertex = vbo_exec_DrawElementsInstancedBaseVertex;
}