summaryrefslogtreecommitdiffstats
path: root/opengl
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-11-03 15:11:41 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-11-03 15:11:41 -0800
commit71eba665af000b77062bcdd5b0ea4b56a7d07f81 (patch)
tree855c9e8bca02a21fd710113ddbfe711f19014a64 /opengl
parentca561493848cce2135d6a46d5f1437fd71e8ec4e (diff)
parent21977eb0f1d22497d0beed0492e579f953a56552 (diff)
downloadframeworks_base-71eba665af000b77062bcdd5b0ea4b56a7d07f81.zip
frameworks_base-71eba665af000b77062bcdd5b0ea4b56a7d07f81.tar.gz
frameworks_base-71eba665af000b77062bcdd5b0ea4b56a7d07f81.tar.bz2
am 21977eb0: Merge change I56981989 into eclair
Merge commit '21977eb0f1d22497d0beed0492e579f953a56552' into eclair-plus-aosp * commit '21977eb0f1d22497d0beed0492e579f953a56552': fix [2231527] Compatibility with SpaceJunk game (OpenGL)
Diffstat (limited to 'opengl')
-rw-r--r--opengl/libagl/matrix.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/opengl/libagl/matrix.cpp b/opengl/libagl/matrix.cpp
index 21ef50e..3c50977 100644
--- a/opengl/libagl/matrix.cpp
+++ b/opengl/libagl/matrix.cpp
@@ -741,20 +741,19 @@ void point4__generic(transform_t const* mx, vec4_t* lhs, vec4_t const* rhs) {
void point4__mvui(transform_t const* mx, vec4_t* lhs, vec4_t const* rhs) {
// this used for transforming light positions back to object space.
- // Lights have 3 components positions, so w is always 1.
- // however, it is used as a switch for directional lights, so we need
+ // w is used as a switch for directional lights, so we need
// to preserve it.
const GLfixed* const m = mx->matrix.m;
const GLfixed rx = rhs->x;
const GLfixed ry = rhs->y;
const GLfixed rz = rhs->z;
- lhs->x = mla3a(rx, m[ 0], ry, m[ 4], rz, m[ 8], m[12]);
- lhs->y = mla3a(rx, m[ 1], ry, m[ 5], rz, m[ 9], m[13]);
- lhs->z = mla3a(rx, m[ 2], ry, m[ 6], rz, m[10], m[14]);
- lhs->w = rhs->w;
+ const GLfixed rw = rhs->w;
+ lhs->x = mla4(rx, m[ 0], ry, m[ 4], rz, m[ 8], rw, m[12]);
+ lhs->y = mla4(rx, m[ 1], ry, m[ 5], rz, m[ 9], rw, m[13]);
+ lhs->z = mla4(rx, m[ 2], ry, m[ 6], rz, m[10], rw, m[14]);
+ lhs->w = rw;
}
-
void point2__nop(transform_t const*, vec4_t* lhs, vec4_t const* rhs) {
lhs->z = 0;
lhs->w = 0x10000;