really fix [3118445] Transform * Transform does not work as expected
Two bugs were counter acting each other.
- rotation matrices are on the left-hand side of multiplies
- the transform of the overlay is applied before that of the layer
Change-Id: Ia79bd368e9b719235c89ecf244ea263f01ce906a
diff --git a/services/surfaceflinger/LayerBuffer.cpp b/services/surfaceflinger/LayerBuffer.cpp
index ccaad51..edc00f1 100644
--- a/services/surfaceflinger/LayerBuffer.cpp
+++ b/services/surfaceflinger/LayerBuffer.cpp
@@ -676,8 +676,8 @@
overlay_dev->setPosition(overlay_dev, mOverlay, x,y,w,h);
// we need to combine the layer orientation and the
// user-requested orientation.
- Transform finalTransform = Transform(mOrientation) *
- Transform(mLayer.getOrientation());
+ Transform finalTransform(Transform(mLayer.getOrientation()) *
+ Transform(mOrientation));
overlay_dev->setParameter(overlay_dev, mOverlay,
OVERLAY_TRANSFORM, finalTransform.getOrientation());
overlay_dev->commit(overlay_dev, mOverlay);