Prefer OpenXR for desktop XR policy
This commit is contained in:
@@ -23,6 +23,34 @@ PlatformFamily current_platform_family() noexcept
|
||||
#endif
|
||||
}
|
||||
|
||||
const char* xr_runtime_backend_name(XrRuntimeBackend backend) noexcept
|
||||
{
|
||||
switch (backend)
|
||||
{
|
||||
case XrRuntimeBackend::openxr:
|
||||
return "openxr";
|
||||
case XrRuntimeBackend::openvr:
|
||||
return "openvr";
|
||||
case XrRuntimeBackend::none:
|
||||
default:
|
||||
return "none";
|
||||
}
|
||||
}
|
||||
|
||||
XrRuntimeSelection select_desktop_xr_runtime(
|
||||
bool openxr_available,
|
||||
bool openvr_available,
|
||||
bool allow_legacy_openvr_fallback) noexcept
|
||||
{
|
||||
if (openxr_available)
|
||||
return { XrRuntimeBackend::openxr, false };
|
||||
|
||||
if (allow_legacy_openvr_fallback && openvr_available)
|
||||
return { XrRuntimeBackend::openvr, true };
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
bool platform_deletes_recorded_files_on_clear(PlatformFamily family) noexcept
|
||||
{
|
||||
return family == PlatformFamily::ios || family == PlatformFamily::macos;
|
||||
|
||||
@@ -17,8 +17,25 @@ enum class PlatformFamily {
|
||||
webgl,
|
||||
};
|
||||
|
||||
enum class XrRuntimeBackend {
|
||||
none,
|
||||
openxr,
|
||||
openvr,
|
||||
};
|
||||
|
||||
struct XrRuntimeSelection {
|
||||
XrRuntimeBackend backend = XrRuntimeBackend::none;
|
||||
bool uses_legacy_openvr_fallback = false;
|
||||
};
|
||||
|
||||
[[nodiscard]] PlatformFamily current_platform_family() noexcept;
|
||||
|
||||
[[nodiscard]] const char* xr_runtime_backend_name(XrRuntimeBackend backend) noexcept;
|
||||
[[nodiscard]] XrRuntimeSelection select_desktop_xr_runtime(
|
||||
bool openxr_available,
|
||||
bool openvr_available,
|
||||
bool allow_legacy_openvr_fallback) noexcept;
|
||||
|
||||
[[nodiscard]] bool platform_deletes_recorded_files_on_clear(PlatformFamily family) noexcept;
|
||||
[[nodiscard]] bool platform_publishes_exported_images(PlatformFamily family) noexcept;
|
||||
[[nodiscard]] bool platform_flushes_persistent_storage(PlatformFamily family) noexcept;
|
||||
|
||||
Reference in New Issue
Block a user