Decorate all GLSL user-defined names with an underscore to avoid name clashes
TRAC #11314
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@143 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.cpp b/src/libGLESv2/Program.cpp
index e886a86..9683956 100644
--- a/src/libGLESv2/Program.cpp
+++ b/src/libGLESv2/Program.cpp
@@ -195,7 +195,7 @@
{
for (unsigned int location = 0; location < mUniforms.size(); location++)
{
- if (mUniforms[location]->name == name)
+ if (mUniforms[location]->name == decorate(name))
{
return location;
}
@@ -1250,6 +1250,19 @@
return 0;
}
+// This methods needs to match OutputHLSL::decorate
+std::string Program::decorate(const std::string &string)
+{
+ if (string.substr(0, 3) != "gl_")
+ {
+ return "_" + string;
+ }
+ else
+ {
+ return string;
+ }
+}
+
bool Program::applyUniform1bv(GLint location, GLsizei count, const GLboolean *v)
{
BOOL *vector = new BOOL[count];