有没有跨平台的方法来确定设备是通过 C 中的 PSU 还是外部电池供电?

问题描述 投票:0回答:1

我正在尝试根据设备明智地为我的 Vulkan C 程序选择演示模式,并且需要一个跨平台脚本来确定是否:

  • 运行程序的设备是PC或笔记本电脑/手机
  • 存在不间断电源或设备由内部电池供电

两种解决方案的目标都是在电池不存在时检查 MAILBOX 模式,否则检查 RELAXED FIFO,因此两种解决方案中的任何一种都可以满足我的需求。

我知道我可以使用宏来检查设备是 Android 还是 Apple,并使用

__ANDROID__
__APPLE__
,还可以使用 WinAPI
GetSystemPowerStatus()
获取电池状态,但我不想坚持在 Vulkan 上编写应用程序的某些平台...

是否有跨平台的方法来检查电源或笔记本电脑/手机电池是否存在?

c cross-platform vulkan battery
1个回答
0
投票

有一种跨平台的方法可以通过 SDL/SDL2/SDL3 通过

SDL_GetPowerInfo()
中的
<SDL/SDL_power.h>
检查电池状态。然后您可以将状态与
SDL_PowerState
枚举进行比较,例如:

SDL_PowerState systemPowerState = SDL_GetPowerInfo(NULL, NULL);
if (systemPowerState == SDL_POWERSTATE_NO_BATTERY)
    // check for mailbox
else
    // check for relaxed_fifo
© www.soinside.com 2019 - 2024. All rights reserved.