diff options
author | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2012-11-24 23:11:49 +0000 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2015-11-07 13:45:19 -0800 |
commit | 94d724071d7479f5d9a07952924b91a5ef8e2028 (patch) | |
tree | 04c6e933ba4a4367b5e2949398dd0afd86b2fd8e /services | |
parent | b9127bdbe39524de8e2219d1b1734d5d22d099c1 (diff) | |
download | frameworks_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.cpp | 14 |
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; |