Implemented support for DX11 integer and boolean uniforms.
TRAC #22364
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1686 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index e29b449..e66389f 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -965,10 +965,9 @@
int count = targetUniform->elementCount();
GLint *v = (GLint*)targetUniform->data;
- if (targetUniform->ps.registerCount)
+ if (targetUniform->psRegisterIndex >= 0)
{
- ASSERT(targetUniform->ps.registerIndex >= 0);
- unsigned int firstIndex = targetUniform->ps.registerIndex;
+ unsigned int firstIndex = targetUniform->psRegisterIndex;
for (int i = 0; i < count; i++)
{
@@ -982,10 +981,9 @@
}
}
- if (targetUniform->vs.registerCount)
+ if (targetUniform->vsRegisterIndex >= 0)
{
- ASSERT(targetUniform->vs.registerIndex >= 0);
- unsigned int firstIndex = targetUniform->vs.registerIndex;
+ unsigned int firstIndex = targetUniform->vsRegisterIndex;
for (int i = 0; i < count; i++)
{
@@ -1581,11 +1579,9 @@
mUniforms[i] = new Uniform(type, name, arraySize);
- stream.read(&mUniforms[i]->ps.registerIndex);
- stream.read(&mUniforms[i]->ps.registerCount);
-
- stream.read(&mUniforms[i]->vs.registerIndex);
- stream.read(&mUniforms[i]->vs.registerCount);
+ stream.read(&mUniforms[i]->psRegisterIndex);
+ stream.read(&mUniforms[i]->vsRegisterIndex);
+ stream.read(&mUniforms[i]->registerCount);
}
stream.read(&size);
@@ -1687,11 +1683,9 @@
stream.write(mUniforms[i]->name);
stream.write(mUniforms[i]->arraySize);
- stream.write(mUniforms[i]->ps.registerIndex);
- stream.write(mUniforms[i]->ps.registerCount);
-
- stream.write(mUniforms[i]->vs.registerIndex);
- stream.write(mUniforms[i]->vs.registerCount);
+ stream.write(mUniforms[i]->psRegisterIndex);
+ stream.write(mUniforms[i]->vsRegisterIndex);
+ stream.write(mUniforms[i]->registerCount);
}
stream.write(mUniformIndex.size());
@@ -1976,13 +1970,11 @@
if (shader == GL_FRAGMENT_SHADER)
{
- uniform->ps.registerIndex = constant.registerIndex;
- uniform->ps.registerCount = uniform->registerCount();
+ uniform->psRegisterIndex = constant.registerIndex;
}
else if (shader == GL_VERTEX_SHADER)
{
- uniform->vs.registerIndex = constant.registerIndex;
- uniform->vs.registerCount = uniform->registerCount();
+ uniform->vsRegisterIndex = constant.registerIndex;
}
else UNREACHABLE();