History log of /frameworks/base/opengl/libagl/matrix.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e304bdd5ee5ed0b0d37fe388021c9cd138feda7f 03-Feb-2010 Mathias Agopian <mathias@google.com> fix [2133133] Software OpenGL ES Lighting is buggy (GL Gears washed out bug)

A typo caused GL_AMBIENT_AND_DIFFUSE to only set the the ambient color.

Fix another typo which caused the viewer position to be wrong for
specular highlights.

Switch back to eye-space lighting, since there are still some issues
with some demos (San Angeles in particular).
/frameworks/base/opengl/libagl/matrix.cpp
569819896760f06e33af1fa261ab3614c3e1e5ff 03-Nov-2009 Mathias Agopian <mathias@google.com> fix [2231527] Compatibility with SpaceJunk game (OpenGL)

we treated all lights as local lights when transforming their
position back to object space.
/frameworks/base/opengl/libagl/matrix.cpp
4f31af9346b818c8ef05a63e15e9170a7c6131e4 10-Aug-2009 Martin Storsjo <martin@martin.st> If FLAGS_2D_PROJECTION is set, the MVP matrices need updating when changing the viewport.
/frameworks/base/opengl/libagl/matrix.cpp
cede1ed3e1721dc4a697a540388ef0f4b51c60eb 03-Jun-2009 Mathias Agopian <mathias@google.com> fix [1610840] Positional light doesn't work correctly on emulator

This bug was introduced when lighting computations was changed from eye-space to object-space.
The light position need to be transformed back to object-space each time the modelview matrix changes which requires us to compute the inverse of the modelview matrix. This computation was done with the assumption that normals where transformed (which was the case when the computation was made in eye-space), however, normals only require the inverse of the upper 3x3 matrix while transforming positions requires the inverse of the whole matrix.
This caused the interesting behavior that lights were more-or-less transformed properly, but not translated at all, which caused improper lighting with directional lights in particular.

There was also another smaller bug affecting directional lights: when vertices are read, only the active component are read, the other ones are ignored, later, the transformation operations are set up to ignore the unset values, howver, in the case of lighting, we use the vertex in object space (that is, before it is transformed), and therefore were using uninitalized values; in particular w.
/frameworks/base/opengl/libagl/matrix.cpp
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/opengl/libagl/matrix.cpp
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/opengl/libagl/matrix.cpp
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/opengl/libagl/matrix.cpp
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/opengl/libagl/matrix.cpp