From c6ad8afa768607852a1ad2c937b4687e947d6fca Mon Sep 17 00:00:00 2001 From: chaviw Date: Mon, 3 Aug 2020 11:33:30 -0700 Subject: Remove rotation and use flag useIdentityTransform for screenshots. There's a lot of confusing logic where 90 and 270 rotation values need to be flipped to ensure the screenshot is taken the correct orientation. There's also confusion what useIdentityTransform means, especially if a non 0 rotation value is sent. The cases screenshot cares about is the following: 1. Take screenshot in current display orientation 2. Take screenshot with 0 rotation so the caller can handle rotating the screenshot themselves. With these two cases in mind, remove the rotation value passed in for screenshots. If useIdentityTransform is true, it will rotate the screenshot so it's in the 0 orientation. If useIdentityTransform is false, it will use the current display rotation. This simplifies the logic in DisplayRenderArea since it only needs to compute the rotation when useIdentityTransform is set. It also simplifies the caller logic since they no longer have to find the current display rotation to ensure the screenshot is taken in the current rotation. The callers can just request the screenshot with useIdentityTransform set to false. Test: adb shell screencap Test: Power + volume screenshot Test: Screen rotation Test: SurfaceFlinger_test Test: libsurfaceflinger_unittest Fixes: 135942984 Change-Id: I1da025c7340a11a719d4630da2469b281bddc6e9 --- services/surfaceflinger/RegionSamplingThread.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'services/surfaceflinger/RegionSamplingThread.cpp') diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp index 17daadba02..255a1f2450 100644 --- a/services/surfaceflinger/RegionSamplingThread.cpp +++ b/services/surfaceflinger/RegionSamplingThread.cpp @@ -444,8 +444,7 @@ void RegionSamplingThread::captureSample() { ScreenCaptureResults captureResults; mFlinger.captureScreenCommon(std::move(renderAreaFuture), traverseLayers, buffer, - false /* identityTransform */, true /* regionSampling */, - captureResults); + true /* regionSampling */, captureResults); std::vector activeDescriptors; for (const auto& descriptor : descriptors) { -- cgit v1.2.3-59-g8ed1b