From a8f66857922d6af72782ebb863f79e077473e64f Mon Sep 17 00:00:00 2001 From: Huihong Luo Date: Fri, 2 Jul 2021 00:22:38 -0700 Subject: Fix color sampling for landscape Region sampling listener accepts coordinates already in the correct orientation, no additional transforms are needed. Bug: 178777512 Test: download Google I/O 2019 app, check system gesture navigation bar color Change-Id: I73f78a2a8390beb29b7ab33b2bed2b0326d367b1 --- services/surfaceflinger/RegionSamplingThread.cpp | 27 +++--------------------- 1 file changed, 3 insertions(+), 24 deletions(-) (limited to 'services/surfaceflinger/RegionSamplingThread.cpp') diff --git a/services/surfaceflinger/RegionSamplingThread.cpp b/services/surfaceflinger/RegionSamplingThread.cpp index 653aca6cde..aa2fec56ad 100644 --- a/services/surfaceflinger/RegionSamplingThread.cpp +++ b/services/surfaceflinger/RegionSamplingThread.cpp @@ -287,33 +287,12 @@ void RegionSamplingThread::captureSample() { descriptors.emplace_back(descriptor); } - auto dx = 0; - auto dy = 0; - switch (orientation) { - case ui::Transform::ROT_90: - dx = displaySize.getWidth(); - break; - case ui::Transform::ROT_180: - dx = displaySize.getWidth(); - dy = displaySize.getHeight(); - break; - case ui::Transform::ROT_270: - dy = displaySize.getHeight(); - break; - default: - break; - } - - ui::Transform t(orientation); - auto screencapRegion = t.transform(sampleRegion); - screencapRegion = screencapRegion.translate(dx, dy); - const Rect sampledBounds = sampleRegion.bounds(); + constexpr bool kUseIdentityTransform = false; SurfaceFlinger::RenderAreaFuture renderAreaFuture = ftl::defer([=] { - return DisplayRenderArea::create(displayWeak, screencapRegion.bounds(), - sampledBounds.getSize(), ui::Dataspace::V0_SRGB, - orientation); + return DisplayRenderArea::create(displayWeak, sampledBounds, sampledBounds.getSize(), + ui::Dataspace::V0_SRGB, kUseIdentityTransform); }); std::unordered_set, SpHash> listeners; -- cgit v1.2.3-59-g8ed1b