Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 311c59bc authored by Yifei Zhang's avatar Yifei Zhang Committed by Android (Google) Code Review
Browse files

Merge "surfaceflinger: put RefreshRateOverlay in the center for circular displays"

parents 2f90421e cfb7bb39
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -410,7 +410,8 @@ HdrCapabilities DisplayDevice::getHdrCapabilities() const {
                           capabilities.getDesiredMinLuminance());
}

void DisplayDevice::enableRefreshRateOverlay(bool enable, bool showSpinner, bool showRenderRate) {
void DisplayDevice::enableRefreshRateOverlay(bool enable, bool showSpinner, bool showRenderRate,
                                             bool showInMiddle) {
    if (!enable) {
        mRefreshRateOverlay.reset();
        return;
@@ -425,6 +426,10 @@ void DisplayDevice::enableRefreshRateOverlay(bool enable, bool showSpinner, bool
        features |= RefreshRateOverlay::Features::RenderRate;
    }

    if (showInMiddle) {
        features |= RefreshRateOverlay::Features::ShowInMiddle;
    }

    const auto fpsRange = mRefreshRateSelector->getSupportedRefreshRateRange();
    mRefreshRateOverlay = std::make_unique<RefreshRateOverlay>(fpsRange, features);
    mRefreshRateOverlay->setLayerStack(getLayerStack());
+2 −2
Original line number Diff line number Diff line
@@ -237,8 +237,8 @@ public:
    }

    // Enables an overlay to be displayed with the current refresh rate
    void enableRefreshRateOverlay(bool enable, bool showSpinner, bool showRenderRate)
            REQUIRES(kMainThreadContext);
    void enableRefreshRateOverlay(bool enable, bool showSpinner, bool showRenderRate,
                                  bool showInMiddle) REQUIRES(kMainThreadContext);
    bool isRefreshRateOverlayEnabled() const { return mRefreshRateOverlay != nullptr; }
    bool onKernelTimerChanged(std::optional<DisplayModeId>, bool timerExpired);
    void animateRefreshRateOverlay();
+6 −1
Original line number Diff line number Diff line
@@ -320,7 +320,12 @@ void RefreshRateOverlay::setViewport(ui::Size viewport) {
    const auto width = std::min({kMaxWidth, viewport.width, viewport.height});
    const auto height = 2 * width;
    Rect frame((5 * width) >> 4, height >> 5);

    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),
+1 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public:
    enum class Features {
        Spinner = 1 << 0,
        RenderRate = 1 << 1,
        ShowInMiddle = 1 << 2,
    };

    RefreshRateOverlay(FpsRange, ftl::Flags<Features>);
+4 −1
Original line number Diff line number Diff line
@@ -461,6 +461,8 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI
    mRefreshRateOverlaySpinner = property_get_bool("debug.sf.show_refresh_rate_overlay_spinner", 0);
    mRefreshRateOverlayRenderRate =
            property_get_bool("debug.sf.show_refresh_rate_overlay_render_rate", 0);
    mRefreshRateOverlayShowInMiddle =
            property_get_bool("debug.sf.show_refresh_rate_overlay_in_middle", 0);

    if (!mIsUserBuild && base::GetBoolProperty("debug.sf.enable_transaction_tracing"s, true)) {
        mTransactionTracing.emplace();
@@ -6995,7 +6997,8 @@ void SurfaceFlinger::enableRefreshRateOverlay(bool enable) {
        if (display.snapshot().connectionType() == ui::DisplayConnectionType::Internal) {
            if (const auto device = getDisplayDeviceLocked(id)) {
                device->enableRefreshRateOverlay(enable, mRefreshRateOverlaySpinner,
                                                 mRefreshRateOverlayRenderRate);
                                                 mRefreshRateOverlayRenderRate,
                                                 mRefreshRateOverlayShowInMiddle);
            }
        }
    }
Loading