From 31b0aec64ba44b1ee0581e00a588d84f4b081512 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Thu, 17 Jul 2014 11:10:45 +0100 Subject: [PATCH] Use the count parameter to store all the uniform vectors, not just the first one. Change-Id: Ib56d859051f0b895de5c12ffa371cd4b2b65ac0b --- opengl/libs/GLES_trace/src/gltrace_fixup.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/opengl/libs/GLES_trace/src/gltrace_fixup.cpp b/opengl/libs/GLES_trace/src/gltrace_fixup.cpp index 2e7aa2061..e6d006271 100644 --- a/opengl/libs/GLES_trace/src/gltrace_fixup.cpp +++ b/opengl/libs/GLES_trace/src/gltrace_fixup.cpp @@ -297,14 +297,18 @@ void fixup_glShaderSource(GLMessage *glmsg, void *pointersToFixup[]) { arg_strpp->add_charvalue(src); } -void fixup_glUniformGenericInteger(int argIndex, int nIntegers, GLMessage *glmsg, +void fixup_glUniformGenericInteger(int argIndex, int nElemsPerVector, GLMessage *glmsg, void *pointersToFixup[]) { /* void glUniform?iv(GLint location, GLsizei count, const GLint *value); */ - fixup_GenericIntArray(argIndex, nIntegers, glmsg, pointersToFixup[0]); + GLMessage_DataType arg_count = glmsg->args(1); + int n_vectors = arg_count.intvalue(0); + fixup_GenericIntArray(argIndex, nElemsPerVector * n_vectors, glmsg, pointersToFixup[0]); } -void fixup_glUniformGeneric(int argIndex, int nFloats, GLMessage *glmsg, void *src) { - fixup_GenericFloatArray(argIndex, nFloats, glmsg, src); +void fixup_glUniformGeneric(int argIndex, int nElemsPerVector, GLMessage *glmsg, void *src) { + GLMessage_DataType arg_count = glmsg->args(1); + int n_vectors = arg_count.intvalue(0); + fixup_GenericFloatArray(argIndex, nElemsPerVector * n_vectors, glmsg, src); } void fixup_glUniformMatrixGeneric(int matrixSize, GLMessage *glmsg, void *pointersToFixup[]) {