Micro-optimize Uniform updates.
This saves a few re-computations of the same stuff.
BUG=angleproject:1671
Change-Id: I28f955cd880366a86c0bb22285a119e97661e2cb
Reviewed-on: https://chromium-review.googlesource.com/427326
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Program.cpp b/src/libANGLE/Program.cpp
index 3d86602..49a18ae 100644
--- a/src/libANGLE/Program.cpp
+++ b/src/libANGLE/Program.cpp
@@ -1405,21 +1405,29 @@
mState.mUniformLocations[static_cast<size_t>(location)].used);
}
-bool Program::isIgnoredUniformLocation(GLint location) const
-{
- // Location is ignored if it is -1 or it was bound but non-existant in the shader or optimized
- // out
- return location == -1 ||
- (location >= 0 && static_cast<size_t>(location) < mState.mUniformLocations.size() &&
- mState.mUniformLocations[static_cast<size_t>(location)].ignored);
-}
-
const LinkedUniform &Program::getUniformByLocation(GLint location) const
{
ASSERT(location >= 0 && static_cast<size_t>(location) < mState.mUniformLocations.size());
return mState.mUniforms[mState.getUniformIndexFromLocation(location)];
}
+const VariableLocation &Program::getUniformLocation(GLint location) const
+{
+ ASSERT(location >= 0 && static_cast<size_t>(location) < mState.mUniformLocations.size());
+ return mState.mUniformLocations[location];
+}
+
+const std::vector<VariableLocation> &Program::getUniformLocations() const
+{
+ return mState.mUniformLocations;
+}
+
+const LinkedUniform &Program::getUniformByIndex(GLuint index) const
+{
+ ASSERT(index < static_cast<size_t>(mState.mUniforms.size()));
+ return mState.mUniforms[index];
+}
+
GLint Program::getUniformLocation(const std::string &name) const
{
return mState.getUniformLocation(name);