surfaceflinger: put RefreshRateOverlay in the center for circular displays
- Use debug.sf.show_refresh_rate_overlay_in_middle sysprop to turn on.
Test: Visual
Before: screenshot/3nJHsbGsXAjLWNr
After: screenshot/3RtYGnCAe5M2Pf9
Bug: 265356373
Change-Id: Ib598e6f5c7a1c4b13fa4d6e4dbc2e29b2e25bfc8
diff --git a/services/surfaceflinger/RefreshRateOverlay.cpp b/services/surfaceflinger/RefreshRateOverlay.cpp
index 7aa7e17..0ade467 100644
--- a/services/surfaceflinger/RefreshRateOverlay.cpp
+++ b/services/surfaceflinger/RefreshRateOverlay.cpp
@@ -320,7 +320,12 @@
const auto width = std::min({kMaxWidth, viewport.width, viewport.height});
const auto height = 2 * width;
Rect frame((5 * width) >> 4, height >> 5);
- frame.offsetBy(width >> 5, height >> 4);
+
+ if (!mFeatures.test(Features::ShowInMiddle)) {
+ frame.offsetBy(width >> 5, height >> 4);
+ } else {
+ frame.offsetBy(width >> 1, height >> 4);
+ }
createTransaction(mSurfaceControl->get())
.setMatrix(mSurfaceControl->get(), frame.getWidth() / static_cast<float>(kBufferWidth),