Implemented support for DX11 uniform arrays.
TRAC #22239
Signed-off-by: Daniel Koch
Signed-off-by: Shannon Woods
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1629 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer9.cpp b/src/libGLESv2/renderer/Renderer9.cpp
index 62bc874..786bc69 100644
--- a/src/libGLESv2/renderer/Renderer9.cpp
+++ b/src/libGLESv2/renderer/Renderer9.cpp
@@ -1471,7 +1471,7 @@
if (targetUniform->dirty)
{
- int arraySize = targetUniform->arraySize;
+ int count = targetUniform->elementCount();
GLfloat *f = (GLfloat*)targetUniform->data;
GLint *i = (GLint*)targetUniform->data;
GLboolean *b = (GLboolean*)targetUniform->data;
@@ -1481,21 +1481,21 @@
case GL_SAMPLER_2D:
case GL_SAMPLER_CUBE:
break;
- case GL_BOOL: applyUniformnbv(targetUniform, arraySize, 1, b); break;
- case GL_BOOL_VEC2: applyUniformnbv(targetUniform, arraySize, 2, b); break;
- case GL_BOOL_VEC3: applyUniformnbv(targetUniform, arraySize, 3, b); break;
- case GL_BOOL_VEC4: applyUniformnbv(targetUniform, arraySize, 4, b); break;
+ case GL_BOOL: applyUniformnbv(targetUniform, count, 1, b); break;
+ case GL_BOOL_VEC2: applyUniformnbv(targetUniform, count, 2, b); break;
+ case GL_BOOL_VEC3: applyUniformnbv(targetUniform, count, 3, b); break;
+ case GL_BOOL_VEC4: applyUniformnbv(targetUniform, count, 4, b); break;
case GL_FLOAT:
case GL_FLOAT_VEC2:
case GL_FLOAT_VEC3:
case GL_FLOAT_VEC4:
case GL_FLOAT_MAT2:
case GL_FLOAT_MAT3:
- case GL_FLOAT_MAT4: applyUniformnfv(targetUniform, f); break;
- case GL_INT: applyUniform1iv(targetUniform, arraySize, i); break;
- case GL_INT_VEC2: applyUniform2iv(targetUniform, arraySize, i); break;
- case GL_INT_VEC3: applyUniform3iv(targetUniform, arraySize, i); break;
- case GL_INT_VEC4: applyUniform4iv(targetUniform, arraySize, i); break;
+ case GL_FLOAT_MAT4: applyUniformnfv(targetUniform, f); break;
+ case GL_INT: applyUniform1iv(targetUniform, count, i); break;
+ case GL_INT_VEC2: applyUniform2iv(targetUniform, count, i); break;
+ case GL_INT_VEC3: applyUniform3iv(targetUniform, count, i); break;
+ case GL_INT_VEC4: applyUniform4iv(targetUniform, count, i); break;
default:
UNREACHABLE();
}