summaryrefslogtreecommitdiff
path: root/libs/hwui/Program.cpp
diff options
context:
space:
mode:
author Romain Guy <romainguy@google.com> 2012-09-26 16:49:28 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-09-26 16:49:29 -0700
commit244a0bcadc167ed8519c7e34c62e116c1adc2dbe (patch)
treedd2ec331c91601b3925e90f4e0bb0b669099b3ca /libs/hwui/Program.cpp
parent13987fb43255ccb3802d415e32b1c5caf14291bb (diff)
parent39284b763a09688468ed3799ebd2ebb76ea5dfd5 (diff)
Merge "Make gradients beautiful again Bug #7239634" into jb-mr1-dev
Diffstat (limited to 'libs/hwui/Program.cpp')
-rw-r--r--libs/hwui/Program.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/libs/hwui/Program.cpp b/libs/hwui/Program.cpp
index 5b1b57d3a664..f0b5553a79a7 100644
--- a/libs/hwui/Program.cpp
+++ b/libs/hwui/Program.cpp
@@ -81,6 +81,7 @@ Program::Program(const ProgramDescription& description, const char* vertex, cons
if (mInitialized) {
transform = addUniform("transform");
+ projection = addUniform("projection");
}
}
@@ -152,18 +153,20 @@ GLuint Program::buildShader(const char* source, GLenum type) {
void Program::set(const mat4& projectionMatrix, const mat4& modelViewMatrix,
const mat4& transformMatrix, bool offset) {
- mat4 t(projectionMatrix);
+ mat4 p(projectionMatrix);
if (offset) {
// offset screenspace xy by an amount that compensates for typical precision
// issues in GPU hardware that tends to paint hor/vert lines in pixels shifted
// up and to the left.
// This offset value is based on an assumption that some hardware may use as
// little as 12.4 precision, so we offset by slightly more than 1/16.
- t.translate(.375, .375, 0);
+ p.translate(.375, .375, 0);
}
- t.multiply(transformMatrix);
+
+ mat4 t(transformMatrix);
t.multiply(modelViewMatrix);
+ glUniformMatrix4fv(projection, 1, GL_FALSE, &p.data[0]);
glUniformMatrix4fv(transform, 1, GL_FALSE, &t.data[0]);
}