summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2012-11-24 23:11:49 +0000
committerSteve Kondik <shade@chemlab.org>2015-11-07 13:45:19 -0800
commit94d724071d7479f5d9a07952924b91a5ef8e2028 (patch)
tree04c6e933ba4a4367b5e2949398dd0afd86b2fd8e /services
parentb9127bdbe39524de8e2219d1b1734d5d22d099c1 (diff)
downloadframeworks_native-94d724071d7479f5d9a07952924b91a5ef8e2028.zip
frameworks_native-94d724071d7479f5d9a07952924b91a5ef8e2028.tar.gz
frameworks_native-94d724071d7479f5d9a07952924b91a5ef8e2028.tar.bz2
surfaceflinger: Reimplement hwrotation
Change-Id: Ia26bb36b5b6de132af49c272c4472ad2703afbda
Diffstat (limited to 'services')
-rw-r--r--services/surfaceflinger/DisplayDevice.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index baff5ba..8946c41 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;