From: Caisking Date: Fri, 26 Sep 2025 06:32:11 +0000 (+0800) Subject: 增加系统帧率对外接口 X-Git-Tag: V1.0.9_20251128_194606_LN~250^2~45^2~9 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=e53cb127f593fc8c3996a4a7148714efeea30f21;p=mirrors%2FFD230.git 增加系统帧率对外接口 --- diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp index 07a9a4354..d927b39c3 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/service/src/graphic_service_wrapper.cpp @@ -372,7 +372,7 @@ static constexpr int16_t REBOOT_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 36; void SetFrequence(int freq) { GraphicService::GetInstance()->PostGraphicEvent([=] - { SetFrequenceInner(freq); }); + {OHOS::LowPowerManager::GetInstance()->SetMaxFrequence(freq);}); } void NotifyScreenOn(void) diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/low_power_manager.cpp b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/low_power_manager.cpp index 94f987afa..dde8d2120 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/low_power_manager.cpp +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/frameworks/common/low_power_manager.cpp @@ -35,14 +35,15 @@ void LowPowerManager::TryToEnterLowPower() } uint32_t period = TaskManager::GetInstance()->GetMinimumCustomerTaskPeriod(); - int freq = (period == 0) ? 1 : 1000 / static_cast(period); + int tmp = (period == 0) ? 1 : 1000 / static_cast(period); // 1000: ms + int freq = (tmp > maxFrequence_) ? maxFrequence_ : tmp; SetFrequenceInner(freq); } void LowPowerManager::ExitLowPower() { lastExitTime_ = HALTick::GetInstance().GetTime(); - SetFrequenceInner(60); // 60: 60fps + SetFrequenceInner(maxFrequence_); } bool LowPowerManager::IsLiteSurfaceInRootView() @@ -59,4 +60,12 @@ bool LowPowerManager::IsLiteSurfaceInRootView() return (view == RootView::GetInstance()); } + +void LowPowerManager::SetMaxFrequence(uint32_t freq) +{ + maxFrequence_ = freq; + if (GetFrequence() > maxFrequence_) { + SetFrequenceInner(maxFrequence_); + } +} } // namespace OHOS diff --git a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/innerkits/common/low_power_manager.h b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/innerkits/common/low_power_manager.h index e0dc86041..9964c6f86 100644 --- a/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/innerkits/common/low_power_manager.h +++ b/code/sdk/middleware/services/gui/uikit/proprietary/src/ui/innerkits/common/low_power_manager.h @@ -49,8 +49,11 @@ public: */ bool IsLiteSurfaceInRootView(); + void SetMaxFrequence(uint32_t freq); + private: uint32_t lastExitTime_ = 0; + uint32_t maxFrequence_ = 60; }; } // OHOS #endif // GRAPHIC_LOW_POWER_MANAGER