diff options
Diffstat (limited to 'services/surfaceflinger/DisplayDevice.cpp')
-rw-r--r-- | services/surfaceflinger/DisplayDevice.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp index 1faf6a1bcb..5b6591aeac 100644 --- a/services/surfaceflinger/DisplayDevice.cpp +++ b/services/surfaceflinger/DisplayDevice.cpp @@ -428,10 +428,12 @@ void DisplayDevice::enableHdrSdrRatioOverlay(bool enable) { return; } - mHdrSdrRatioOverlay = std::make_unique<HdrSdrRatioOverlay>(); - mHdrSdrRatioOverlay->setLayerStack(getLayerStack()); - mHdrSdrRatioOverlay->setViewport(getSize()); - updateHdrSdrRatioOverlayRatio(mHdrSdrRatio); + mHdrSdrRatioOverlay = HdrSdrRatioOverlay::create(); + if (mHdrSdrRatioOverlay) { + mHdrSdrRatioOverlay->setLayerStack(getLayerStack()); + mHdrSdrRatioOverlay->setViewport(getSize()); + updateHdrSdrRatioOverlayRatio(mHdrSdrRatio); + } } void DisplayDevice::updateHdrSdrRatioOverlayRatio(float currentHdrSdrRatio) { @@ -468,11 +470,13 @@ void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc, bool sh // TODO(b/296636258) Update to use the render rate range in VRR mode. const auto fpsRange = mRefreshRateSelector->getSupportedRefreshRateRange(); - mRefreshRateOverlay = std::make_unique<RefreshRateOverlay>(fpsRange, features); - mRefreshRateOverlay->setLayerStack(getLayerStack()); - mRefreshRateOverlay->setViewport(getSize()); - updateRefreshRateOverlayRate(getActiveMode().modePtr->getVsyncRate(), getActiveMode().fps, - setByHwc); + mRefreshRateOverlay = RefreshRateOverlay::create(fpsRange, features); + if (mRefreshRateOverlay) { + mRefreshRateOverlay->setLayerStack(getLayerStack()); + mRefreshRateOverlay->setViewport(getSize()); + updateRefreshRateOverlayRate(getActiveMode().modePtr->getVsyncRate(), getActiveMode().fps, + setByHwc); + } } void DisplayDevice::updateRefreshRateOverlayRate(Fps vsyncRate, Fps renderFps, bool setByHwc) { |