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];