summaryrefslogtreecommitdiffstats
path: root/libs/gui/include
diff options
context:
space:
mode:
authorVishnu Nair <vishnun@google.com>2019-04-08 08:21:03 -0700
committerVishnu Nair <vishnun@google.com>2019-04-08 18:00:30 +0000
commit5eb3f064a6a0d73d1e7acff3a3b20d6ce9ef0aa3 (patch)
tree08915cb798d8cf3252795767edb5f10c31c7319a /libs/gui/include
parent7b5d9813aacda610b262d6773f13a21ba8a75b98 (diff)
downloadandroid_frameworks_native-5eb3f064a6a0d73d1e7acff3a3b20d6ce9ef0aa3.tar.gz
android_frameworks_native-5eb3f064a6a0d73d1e7acff3a3b20d6ce9ef0aa3.tar.bz2
android_frameworks_native-5eb3f064a6a0d73d1e7acff3a3b20d6ce9ef0aa3.zip
Make NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY transforms sticky
When a client sets the NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY flag, the buffer producer may override the flag if it sets a buffer transform. The second issue is that SurfaceFlinger may apply a transform hint based on display orientation which may be applied by the buffer producer. The flag NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY indicates the client wants to submit buffers in the same orientation regardless of display orientation. So if the flag is set, make it sticky until the surface is disconnected. Secondly, ignore the transform hint if the flag is set. Test: Launch test app and test seamless rotation in portrait mode and landscape mode Test: go/wm-smoke Test: atest libsurfaceflinger_unittest libgui_test SurfaceFlinger_test Bug: 127953232 Change-Id: Ic153faae0f3cdc9d385cdfe8162d3caabac60901
Diffstat (limited to 'libs/gui/include')
-rw-r--r--libs/gui/include/gui/Surface.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libs/gui/include/gui/Surface.h b/libs/gui/include/gui/Surface.h
index 248e105d0..0c471bb70 100644
--- a/libs/gui/include/gui/Surface.h
+++ b/libs/gui/include/gui/Surface.h
@@ -230,6 +230,7 @@ private:
int dispatchGetWideColorSupport(va_list args);
int dispatchGetHdrSupport(va_list args);
int dispatchGetConsumerUsage64(va_list args);
+ bool transformToDisplayInverse();
protected:
virtual int dequeueBuffer(ANativeWindowBuffer** buffer, int* fenceFd);