Eliminated storing decorated uniform names.
TRAC #22326
Signed-off-by: Daniel Koch
Signed-off-by: Shannon Woods
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1635 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/common/version.h b/src/common/version.h
index 5d37044..a6560db 100644
--- a/src/common/version.h
+++ b/src/common/version.h
@@ -1,7 +1,7 @@
#define MAJOR_VERSION 1
#define MINOR_VERSION 1
#define BUILD_VERSION 0
-#define BUILD_REVISION 1563
+#define BUILD_REVISION 1564
#define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x)
diff --git a/src/compiler/OutputHLSL.cpp b/src/compiler/OutputHLSL.cpp
index ff966fb..33bda05 100644
--- a/src/compiler/OutputHLSL.cpp
+++ b/src/compiler/OutputHLSL.cpp
@@ -2579,11 +2579,7 @@
TString OutputHLSL::decorateUniform(const TString &string, const TType &type)
{
- if (type.isArray())
- {
- return "ar_" + string; // Allows identifying arrays of size 1
- }
- else if (type.getBasicType() == EbtSamplerExternalOES)
+ if (type.getBasicType() == EbtSamplerExternalOES)
{
return "ex_" + string;
}
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index b141a7a..2eb999c 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -30,8 +30,8 @@
return buffer;
}
-UniformLocation::UniformLocation(const std::string &_name, unsigned int element, unsigned int index)
- : name(Uniform::undecorate(_name)), element(element), index(index)
+UniformLocation::UniformLocation(const std::string &name, unsigned int element, unsigned int index)
+ : name(name), element(element), index(index)
{
}
@@ -1577,14 +1577,14 @@
for (unsigned int i = 0; i < size; ++i)
{
GLenum type;
- std::string _name;
+ std::string name;
unsigned int arraySize;
stream.read(&type);
- stream.read(&_name);
+ stream.read(&name);
stream.read(&arraySize);
- mUniforms[i] = new Uniform(type, _name, arraySize);
+ mUniforms[i] = new Uniform(type, name, arraySize);
stream.read(&mUniforms[i]->ps.registerIndex);
stream.read(&mUniforms[i]->ps.registerCount);
@@ -1694,7 +1694,7 @@
for (unsigned int i = 0; i < mUniforms.size(); ++i)
{
stream.write(mUniforms[i]->type);
- stream.write(mUniforms[i]->_name);
+ stream.write(mUniforms[i]->name);
stream.write(mUniforms[i]->arraySize);
stream.write(mUniforms[i]->ps.registerIndex);
diff --git a/src/libGLESv2/ProgramBinary.h b/src/libGLESv2/ProgramBinary.h
index 88ae2a6..9fae582 100644
--- a/src/libGLESv2/ProgramBinary.h
+++ b/src/libGLESv2/ProgramBinary.h
@@ -37,7 +37,7 @@
{
}
- UniformLocation(const std::string &_name, unsigned int element, unsigned int index);
+ UniformLocation(const std::string &name, unsigned int element, unsigned int index);
std::string name;
unsigned int element;
diff --git a/src/libGLESv2/Uniform.cpp b/src/libGLESv2/Uniform.cpp
index 0412ce9..22f9431 100644
--- a/src/libGLESv2/Uniform.cpp
+++ b/src/libGLESv2/Uniform.cpp
@@ -11,8 +11,8 @@
namespace gl
{
-Uniform::Uniform(GLenum type, const std::string &_name, unsigned int arraySize)
- : type(type), _name(_name), name(undecorate(_name)), arraySize(arraySize)
+Uniform::Uniform(GLenum type, const std::string &name, unsigned int arraySize)
+ : type(type), name(name), arraySize(arraySize)
{
int bytes = gl::UniformInternalSize(type) * elementCount();
data = new unsigned char[bytes];
@@ -27,17 +27,7 @@
bool Uniform::isArray() const
{
- if (name != _name) // D3D9_REPLACE
- {
- size_t dot = _name.find_last_of('.');
- if (dot == std::string::npos) dot = -1;
-
- return _name.compare(dot + 1, dot + 4, "ar_") == 0;
- }
- else
- {
- return arraySize > 0;
- }
+ return arraySize > 0;
}
unsigned int Uniform::elementCount() const
@@ -50,28 +40,4 @@
return VariableRowCount(type) * elementCount();
}
-std::string Uniform::undecorate(const std::string &_name)
-{
- std::string name = _name;
-
- // Remove any structure field decoration
- size_t pos = 0;
- while ((pos = name.find("._", pos)) != std::string::npos)
- {
- name.replace(pos, 2, ".");
- }
-
- // Remove the leading decoration
- if (name[0] == '_')
- {
- return name.substr(1);
- }
- else if (name.compare(0, 3, "ar_") == 0)
- {
- return name.substr(3);
- }
-
- return name;
-}
-
}
diff --git a/src/libGLESv2/Uniform.h b/src/libGLESv2/Uniform.h
index a936d2f..572cd36 100644
--- a/src/libGLESv2/Uniform.h
+++ b/src/libGLESv2/Uniform.h
@@ -21,18 +21,16 @@
// Helper struct representing a single shader uniform
struct Uniform
{
- Uniform(GLenum type, const std::string &_name, unsigned int arraySize);
+ Uniform(GLenum type, const std::string &name, unsigned int arraySize);
~Uniform();
bool isArray() const;
unsigned int elementCount() const;
unsigned int registerCount() const;
- static std::string Uniform::undecorate(const std::string &_name);
const GLenum type;
- const std::string _name; // Decorated name
- const std::string name; // Undecorated name
+ const std::string name;
const unsigned int arraySize;
unsigned char *data;