diff options
author | Vishnu Nair <vishnun@google.com> | 2019-04-08 08:21:03 -0700 |
---|---|---|
committer | Vishnu Nair <vishnun@google.com> | 2019-04-08 18:00:30 +0000 |
commit | 5eb3f064a6a0d73d1e7acff3a3b20d6ce9ef0aa3 (patch) | |
tree | 08915cb798d8cf3252795767edb5f10c31c7319a /libs/gui/include | |
parent | 7b5d9813aacda610b262d6773f13a21ba8a75b98 (diff) | |
download | android_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.h | 1 |
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); |