From 94d724071d7479f5d9a07952924b91a5ef8e2028 Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Sat, 24 Nov 2012 23:11:49 +0000 Subject: [PATCH] surfaceflinger: Reimplement hwrotation Change-Id: Ia26bb36b5b6de132af49c272c4472ad2703afbda --- services/surfaceflinger/DisplayDevice.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp index baff5ba59..8946c413a 100644 --- a/services/surfaceflinger/DisplayDevice.cpp +++ b/services/surfaceflinger/DisplayDevice.cpp @@ -392,6 +392,20 @@ status_t DisplayDevice::orientationToTransfrom( int orientation, int w, int h, Transform* tr) { uint32_t flags = 0; + char value[PROPERTY_VALUE_MAX]; + property_get("ro.sf.hwrotation", value, "0"); + int additionalRot = atoi(value); + + if (additionalRot) { + additionalRot /= 90; + if (orientation == DisplayState::eOrientationUnchanged) { + orientation = additionalRot; + } else { + orientation += additionalRot; + orientation %= 4; + } + } + switch (orientation) { case DisplayState::eOrientationDefault: flags = Transform::ROT_0;