summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2011-08-12 17:09:09 -0700
committerMathias Agopian <mathias@google.com>2011-08-12 17:09:09 -0700
commitb290b5e3cb0d3c5696279f8dd7f29a71fd7065da (patch)
tree90c6bf5d7444769b8d74bf715d1ce45f069821b1 /services/surfaceflinger
parent02bb0e4e3bccd0b5a87c46b248a8b05d3bb35844 (diff)
downloadframeworks_base-b290b5e3cb0d3c5696279f8dd7f29a71fd7065da.zip
frameworks_base-b290b5e3cb0d3c5696279f8dd7f29a71fd7065da.tar.gz
frameworks_base-b290b5e3cb0d3c5696279f8dd7f29a71fd7065da.tar.bz2
fix an orientation change drawing artifact.
a wrong orientation would be briefly shown when rotation the screen. this happened when the window manager set a custom transformation and the h/w composer was used. the custom transformation was applied twice in that case. Bug: 5037522 Change-Id: Ic1f87b63cd843f4475e4265d1624463825d775c4
Diffstat (limited to 'services/surfaceflinger')
-rw-r--r--services/surfaceflinger/Layer.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 55b354d..0425fc3 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -191,14 +191,13 @@ void Layer::setGeometry(hwc_layer_t* hwcl)
* 1) buffer orientation/flip/mirror
* 2) state transformation (window manager)
* 3) layer orientation (screen orientation)
+ * mOrientation is already the composition of (2) and (3)
* (NOTE: the matrices are multiplied in reverse order)
*/
const Transform bufferOrientation(mCurrentTransform);
- const Transform& stateTransform(s.transform);
const Transform layerOrientation(mOrientation);
-
- const Transform tr(layerOrientation * stateTransform * bufferOrientation);
+ const Transform tr(layerOrientation * bufferOrientation);
// this gives us only the "orientation" component of the transform
const uint32_t finalTransform = tr.getOrientation();