I'm trying to wisely choose presentation modes for my Vulkan C program depending on the device and need a cross-platform script to determine if:
Both solutions are targeted to check for MAILBOX mode if battery is not present, otherwise check for RELAXED FIFO, so any of two solutions will fit my needs.
I know I can use macros to check if the device is Android or Apple with __ANDROID__
and __APPLE__
, and also get battery status with WinAPI GetSystemPowerStatus()
, but I don't wanna stick to some platforms writting application on Vulkan...
Is there a cross-platform way to check for presence of either Power Supply or Laptop/Phone battery?
There's a cross-platform way to check for battery status with SDL/SDL2/SDL3 with SDL_GetPowerInfo()
in <SDL/SDL_power.h>
. Then you can compare the status with SDL_PowerState
enumerations, for instance:
SDL_PowerState systemPowerState = SDL_GetPowerInfo(NULL, NULL);
if (systemPowerState == SDL_POWERSTATE_NO_BATTERY)
// check for mailbox
else
// check for relaxed_fifo