Use the count parameter to store all the uniform vectors, not just the first one. DO NOT MERGE.

Change-Id: Ib56d859051f0b895de5c12ffa371cd4b2b65ac0b
(cherry picked from commit 31b0aec64b)
This commit is contained in:
Ben Clayton 2014-07-17 11:10:45 +01:00
parent c6414d13a3
commit 7b3f48d2ef

View File

@ -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[]) {