From ff8848b5a7f01ea132ec3c9778e48dbaa617bc6a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 9 Oct 2011 01:04:17 +0100 Subject: [PATCH] Handle glDraw*BaseInstance. --- glretrace.py | 7 +++++-- glsize.hpp | 7 +++++++ gltrace.py | 3 +++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/glretrace.py b/glretrace.py index 761fe23..1d916ee 100644 --- a/glretrace.py +++ b/glretrace.py @@ -78,6 +78,7 @@ class GlRetracer(Retracer): "glDrawArraysInstanced", "glDrawArraysInstancedARB", "glDrawArraysInstancedEXT", + "glDrawArraysInstancedBaseInstance", "glDrawMeshArraysSUN", "glMultiDrawArrays", "glMultiDrawArraysEXT", @@ -90,11 +91,13 @@ class GlRetracer(Retracer): "glDrawElementsIndirect", "glDrawElementsInstanced", "glDrawElementsInstancedARB", - "glDrawElementsInstancedBaseVertex", "glDrawElementsInstancedEXT", + "glDrawElementsInstancedBaseVertex", + "glDrawElementsInstancedBaseInstance", + "glDrawElementsInstancedBaseVertexBaseInstance", "glDrawRangeElements", - "glDrawRangeElementsBaseVertex", "glDrawRangeElementsEXT", + "glDrawRangeElementsBaseVertex", "glMultiDrawElements", "glMultiDrawElementsBaseVertex", "glMultiDrawElementsEXT", diff --git a/glsize.hpp b/glsize.hpp index f5b2eb0..646899e 100644 --- a/glsize.hpp +++ b/glsize.hpp @@ -1,5 +1,6 @@ /************************************************************************** * + * Copyright 2011 Jose Fonseca * Copyright 2010 VMware, Inc. * Copyright 2004 IBM Corporation * All Rights Reserved. @@ -316,6 +317,7 @@ __glDrawElementsBaseVertex_maxindex(GLsizei count, GLenum type, const GLvoid *in if (!count) { return 0; } + __glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &__element_array_buffer); if (__element_array_buffer) { // Read indices from index buffer object @@ -376,12 +378,17 @@ __glDrawElementsBaseVertex_maxindex(GLsizei count, GLenum type, const GLvoid *in #define __glDrawRangeElements_maxindex(start, end, count, type, indices) __glDrawElements_maxindex(count, type, indices) #define __glDrawRangeElementsEXT_maxindex __glDrawRangeElements_maxindex +/* FIXME take in consideration instancing */ #define __glDrawArraysInstanced_maxindex(first, count, primcount) __glDrawArrays_maxindex(first, count) #define __glDrawElementsInstanced_maxindex(count, type, indices, primcount) __glDrawElements_maxindex(count, type, indices) #define __glDrawElementsInstancedBaseVertex_maxindex(count, type, indices, primcount, basevertex) __glDrawElementsBaseVertex_maxindex(count, type, indices, basevertex) #define __glDrawRangeElementsInstanced_maxindex(start, end, count, type, indices, primcount) __glDrawRangeElements_maxindex(start, end, count, type, indices) #define __glDrawRangeElementsInstancedBaseVertex_maxindex(start, end, count, type, indices, primcount, basevertex) __glDrawRangeElementsBaseVertex_maxindex(start, end, count, type, indices, basevertex) +#define __glDrawArraysInstancedBaseInstance_maxindex(first, count, primcount, baseinstance) __glDrawArrays_maxindex(first, count) +#define __glDrawElementsInstancedBaseInstance_maxindex(count, type, indices, primcount, baseinstance) __glDrawElements_maxindex(count, type, indices) +#define __glDrawElementsInstancedBaseVertexBaseInstance_maxindex(count, type, indices, primcount, basevertex, baseinstance) __glDrawElementsBaseVertex_maxindex(count, type, indices, basevertex) + #define __glDrawArraysInstancedARB_maxindex __glDrawArraysInstanced_maxindex #define __glDrawElementsInstancedARB_maxindex __glDrawElementsInstanced_maxindex #define __glDrawArraysInstancedEXT_maxindex __glDrawArraysInstanced_maxindex diff --git a/gltrace.py b/gltrace.py index 08fef00..69be821 100644 --- a/gltrace.py +++ b/gltrace.py @@ -330,12 +330,15 @@ class GlTracer(Tracer): 'glMultiDrawArrays', 'glMultiDrawElements', 'glDrawArraysInstanced', + "glDrawArraysInstancedBaseInstance", 'glDrawElementsInstanced', 'glDrawArraysInstancedARB', 'glDrawElementsInstancedARB', 'glDrawElementsBaseVertex', 'glDrawRangeElementsBaseVertex', 'glDrawElementsInstancedBaseVertex', + "glDrawElementsInstancedBaseInstance", + "glDrawElementsInstancedBaseVertexBaseInstance", 'glMultiDrawElementsBaseVertex', 'glDrawArraysIndirect', 'glDrawElementsIndirect', -- 2.7.4