You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-05 17:15:09 +00:00
OpenXR: Update to version 1.0.34
This commit is contained in:
@@ -72,10 +72,10 @@ XrResult ApiLayerInterface::GetApiLayerProperties(const std::string& openxr_comm
|
||||
}
|
||||
|
||||
// Find any implicit layers which we may need to report information for.
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_IMPLICIT_API_LAYER, manifest_files);
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_IMPLICIT_API_LAYER, manifest_files);
|
||||
if (XR_SUCCEEDED(result)) {
|
||||
// Find any explicit layers which we may need to report information for.
|
||||
result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_EXPLICIT_API_LAYER, manifest_files);
|
||||
result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_EXPLICIT_API_LAYER, manifest_files);
|
||||
}
|
||||
if (XR_FAILED(result)) {
|
||||
LoaderLogger::LogErrorMessage(openxr_command,
|
||||
@@ -126,10 +126,10 @@ XrResult ApiLayerInterface::GetInstanceExtensionProperties(const std::string& op
|
||||
|
||||
// If a layer name is supplied, only use the information out of that one layer
|
||||
if (nullptr != layer_name && 0 != strlen(layer_name)) {
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_IMPLICIT_API_LAYER, manifest_files);
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_IMPLICIT_API_LAYER, manifest_files);
|
||||
if (XR_SUCCEEDED(result)) {
|
||||
// Find any explicit layers which we may need to report information for.
|
||||
result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_EXPLICIT_API_LAYER, manifest_files);
|
||||
result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_EXPLICIT_API_LAYER, manifest_files);
|
||||
if (XR_FAILED(result)) {
|
||||
LoaderLogger::LogErrorMessage(
|
||||
openxr_command,
|
||||
@@ -155,7 +155,7 @@ XrResult ApiLayerInterface::GetInstanceExtensionProperties(const std::string& op
|
||||
}
|
||||
// Otherwise, we want to add only implicit API layers and explicit API layers enabled using the environment variables
|
||||
} else {
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_IMPLICIT_API_LAYER, manifest_files);
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_IMPLICIT_API_LAYER, manifest_files);
|
||||
if (XR_SUCCEEDED(result)) {
|
||||
// Find any environmentally enabled explicit layers. If they're present, treat them like implicit layers
|
||||
// since we know that they're going to be enabled.
|
||||
@@ -163,7 +163,8 @@ XrResult ApiLayerInterface::GetInstanceExtensionProperties(const std::string& op
|
||||
AddEnvironmentApiLayers(env_enabled_layers);
|
||||
if (!env_enabled_layers.empty()) {
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> exp_layer_man_files = {};
|
||||
result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_EXPLICIT_API_LAYER, exp_layer_man_files);
|
||||
result =
|
||||
ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_EXPLICIT_API_LAYER, exp_layer_man_files);
|
||||
if (XR_SUCCEEDED(result)) {
|
||||
for (auto& exp_layer_man_file : exp_layer_man_files) {
|
||||
for (std::string& enabled_layer : env_enabled_layers) {
|
||||
@@ -197,8 +198,8 @@ XrResult ApiLayerInterface::LoadApiLayers(const std::string& openxr_command, uin
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> enabled_layer_manifest_files_in_init_order = {};
|
||||
|
||||
// Find any implicit layers.
|
||||
XrResult result =
|
||||
ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_IMPLICIT_API_LAYER, enabled_layer_manifest_files_in_init_order);
|
||||
XrResult result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_IMPLICIT_API_LAYER,
|
||||
enabled_layer_manifest_files_in_init_order);
|
||||
|
||||
for (const auto& enabled_layer_manifest_file : enabled_layer_manifest_files_in_init_order) {
|
||||
layers_already_found.insert(enabled_layer_manifest_file->LayerName());
|
||||
@@ -208,7 +209,8 @@ XrResult ApiLayerInterface::LoadApiLayers(const std::string& openxr_command, uin
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> explicit_layer_manifest_files = {};
|
||||
|
||||
if (XR_SUCCEEDED(result)) {
|
||||
result = ApiLayerManifestFile::FindManifestFiles(MANIFEST_TYPE_EXPLICIT_API_LAYER, explicit_layer_manifest_files);
|
||||
result = ApiLayerManifestFile::FindManifestFiles(openxr_command, MANIFEST_TYPE_EXPLICIT_API_LAYER,
|
||||
explicit_layer_manifest_files);
|
||||
}
|
||||
|
||||
bool found_all_layers = true;
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
|
||||
#ifdef XR_KHR_LOADER_INIT_SUPPORT
|
||||
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
// Check and copy the Android-specific init data.
|
||||
XrResult LoaderInitData::initialize(const XrLoaderInitInfoBaseHeaderKHR* info) {
|
||||
#if defined(XR_USE_PLATFORM_ANDROID)
|
||||
if (info->type != XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR) {
|
||||
return XR_ERROR_VALIDATION_FAILURE;
|
||||
}
|
||||
@@ -40,11 +40,13 @@ XrResult LoaderInitData::initialize(const XrLoaderInitInfoBaseHeaderKHR* info) {
|
||||
const auto applicationContext = context.call<jni::Object>("getApplicationContext()Landroid/content/Context;");
|
||||
const auto applicationInfo = context.call<jni::Object>("getApplicationInfo()Landroid/content/pm/ApplicationInfo;");
|
||||
_native_library_path = applicationInfo.get<std::string>("nativeLibraryDir");
|
||||
#else
|
||||
#error "Platform specific XR_KHR_loader_init structure is not defined for this platform."
|
||||
#endif // XR_USE_PLATFORM_ANDROID
|
||||
|
||||
_initialized = true;
|
||||
return XR_SUCCESS;
|
||||
}
|
||||
#endif // XR_USE_PLATFORM_ANDROID
|
||||
|
||||
XrResult InitializeLoaderInitData(const XrLoaderInitInfoBaseHeaderKHR* loaderInitInfo) {
|
||||
return LoaderInitData::instance().initialize(loaderInitInfo);
|
||||
|
||||
@@ -33,7 +33,7 @@ class LoaderInitData {
|
||||
return obj;
|
||||
}
|
||||
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
#if defined(XR_USE_PLATFORM_ANDROID)
|
||||
/*!
|
||||
* Type alias for the platform-specific structure type.
|
||||
*/
|
||||
|
||||
76
thirdparty/openxr/src/loader/manifest_file.cpp
vendored
76
thirdparty/openxr/src/loader/manifest_file.cpp
vendored
@@ -600,14 +600,8 @@ void RuntimeManifestFile::CreateIfValid(const Json::Value &root_node, const std:
|
||||
// If the library_path variable has no directory symbol, it's just a file name and should be accessible on the
|
||||
// global library path.
|
||||
if (lib_path.find('\\') != std::string::npos || lib_path.find('/') != std::string::npos) {
|
||||
// If the library_path is an absolute path, just use that if it exists
|
||||
if (FileSysUtilsIsAbsolutePath(lib_path)) {
|
||||
if (!FileSysUtilsPathExists(lib_path)) {
|
||||
error_ss << filename << " library " << lib_path << " does not appear to exist";
|
||||
LoaderLogger::LogErrorMessage("", error_ss.str());
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// If the library_path is an absolute path, just use that as-is.
|
||||
if (!FileSysUtilsIsAbsolutePath(lib_path)) {
|
||||
// Otherwise, treat the library path as a relative path based on the JSON file.
|
||||
std::string canonical_path;
|
||||
std::string combined_path;
|
||||
@@ -618,8 +612,8 @@ void RuntimeManifestFile::CreateIfValid(const Json::Value &root_node, const std:
|
||||
canonical_path = filename;
|
||||
}
|
||||
if (!FileSysUtilsGetParentPath(canonical_path, file_parent) ||
|
||||
!FileSysUtilsCombinePaths(file_parent, lib_path, combined_path) || !FileSysUtilsPathExists(combined_path)) {
|
||||
error_ss << filename << " library " << combined_path << " does not appear to exist";
|
||||
!FileSysUtilsCombinePaths(file_parent, lib_path, combined_path)) {
|
||||
error_ss << filename << " filesystem operations failed for path " << canonical_path;
|
||||
LoaderLogger::LogErrorMessage("", error_ss.str());
|
||||
return;
|
||||
}
|
||||
@@ -636,53 +630,58 @@ void RuntimeManifestFile::CreateIfValid(const Json::Value &root_node, const std:
|
||||
}
|
||||
|
||||
// Find all manifest files in the appropriate search paths/registries for the given type.
|
||||
XrResult RuntimeManifestFile::FindManifestFiles(std::vector<std::unique_ptr<RuntimeManifestFile>> &manifest_files) {
|
||||
XrResult RuntimeManifestFile::FindManifestFiles(const std::string &openxr_command,
|
||||
std::vector<std::unique_ptr<RuntimeManifestFile>> &manifest_files) {
|
||||
XrResult result = XR_SUCCESS;
|
||||
std::string filename = PlatformUtilsGetSecureEnv(OPENXR_RUNTIME_JSON_ENV_VAR);
|
||||
if (!filename.empty()) {
|
||||
LoaderLogger::LogInfoMessage(
|
||||
"", "RuntimeManifestFile::FindManifestFiles - using environment variable override runtime file " + filename);
|
||||
openxr_command,
|
||||
"RuntimeManifestFile::FindManifestFiles - using environment variable override runtime file " + filename);
|
||||
} else {
|
||||
#ifdef XR_OS_WINDOWS
|
||||
std::vector<std::string> filenames;
|
||||
ReadRuntimeDataFilesInRegistry("", "ActiveRuntime", filenames);
|
||||
if (filenames.size() == 0) {
|
||||
LoaderLogger::LogErrorMessage(
|
||||
"", "RuntimeManifestFile::FindManifestFiles - failed to find active runtime file in registry");
|
||||
openxr_command, "RuntimeManifestFile::FindManifestFiles - failed to find active runtime file in registry");
|
||||
return XR_ERROR_RUNTIME_UNAVAILABLE;
|
||||
}
|
||||
if (filenames.size() > 1) {
|
||||
LoaderLogger::LogWarningMessage(
|
||||
"", "RuntimeManifestFile::FindManifestFiles - found too many default runtime files in registry");
|
||||
openxr_command, "RuntimeManifestFile::FindManifestFiles - found too many default runtime files in registry");
|
||||
}
|
||||
filename = filenames[0];
|
||||
LoaderLogger::LogInfoMessage("",
|
||||
LoaderLogger::LogInfoMessage(openxr_command,
|
||||
"RuntimeManifestFile::FindManifestFiles - using registry-specified runtime file " + filename);
|
||||
#elif defined(XR_OS_LINUX)
|
||||
|
||||
if (!FindXDGConfigFile("openxr/", XR_VERSION_MAJOR(XR_CURRENT_API_VERSION), filename)) {
|
||||
LoaderLogger::LogErrorMessage(
|
||||
"", "RuntimeManifestFile::FindManifestFiles - failed to determine active runtime file path for this environment");
|
||||
openxr_command,
|
||||
"RuntimeManifestFile::FindManifestFiles - failed to determine active runtime file path for this environment");
|
||||
return XR_ERROR_RUNTIME_UNAVAILABLE;
|
||||
}
|
||||
#else
|
||||
#else // !defined(XR_OS_WINDOWS) && !defined(XR_OS_LINUX)
|
||||
|
||||
#if defined(XR_USE_PLATFORM_ANDROID)
|
||||
#if defined(XR_KHR_LOADER_INIT_SUPPORT) && defined(XR_USE_PLATFORM_ANDROID)
|
||||
Json::Value virtualManifest;
|
||||
result = GetPlatformRuntimeVirtualManifest(virtualManifest);
|
||||
if (XR_SUCCESS == result) {
|
||||
RuntimeManifestFile::CreateIfValid(virtualManifest, "", manifest_files);
|
||||
return result;
|
||||
}
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID)
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID) && defined(XR_KHR_LOADER_INIT_SUPPORT)
|
||||
if (!PlatformGetGlobalRuntimeFileName(XR_VERSION_MAJOR(XR_CURRENT_API_VERSION), filename)) {
|
||||
LoaderLogger::LogErrorMessage(
|
||||
"", "RuntimeManifestFile::FindManifestFiles - failed to determine active runtime file path for this environment");
|
||||
openxr_command,
|
||||
"RuntimeManifestFile::FindManifestFiles - failed to determine active runtime file path for this environment");
|
||||
return XR_ERROR_RUNTIME_UNAVAILABLE;
|
||||
}
|
||||
result = XR_SUCCESS;
|
||||
LoaderLogger::LogInfoMessage("", "RuntimeManifestFile::FindManifestFiles - using global runtime file " + filename);
|
||||
#endif
|
||||
LoaderLogger::LogInfoMessage(openxr_command,
|
||||
"RuntimeManifestFile::FindManifestFiles - using global runtime file " + filename);
|
||||
#endif // !defined(XR_OS_WINDOWS) && !defined(XR_OS_LINUX)
|
||||
}
|
||||
RuntimeManifestFile::CreateIfValid(filename, manifest_files);
|
||||
|
||||
@@ -698,9 +697,17 @@ ApiLayerManifestFile::ApiLayerManifestFile(ManifestFileType type, const std::str
|
||||
_description(description),
|
||||
_implementation_version(implementation_version) {}
|
||||
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
void ApiLayerManifestFile::AddManifestFilesAndroid(ManifestFileType type,
|
||||
#if defined(XR_KHR_LOADER_INIT_SUPPORT) && defined(XR_USE_PLATFORM_ANDROID)
|
||||
void ApiLayerManifestFile::AddManifestFilesAndroid(const std::string &openxr_command, ManifestFileType type,
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> &manifest_files) {
|
||||
if (!LoaderInitData::instance().initialized()) {
|
||||
// This will happen for applications that do not call xrInitializeLoaderKHR
|
||||
LoaderLogger::LogWarningMessage(
|
||||
openxr_command,
|
||||
"ApiLayerManifestFile::AddManifestFilesAndroid unable to add manifest files LoaderInitData not initialized.");
|
||||
return;
|
||||
}
|
||||
|
||||
AAssetManager *assetManager = (AAssetManager *)Android_Get_Asset_Manager();
|
||||
std::vector<std::string> filenames;
|
||||
{
|
||||
@@ -736,7 +743,7 @@ void ApiLayerManifestFile::AddManifestFilesAndroid(ManifestFileType type,
|
||||
UniqueAsset asset{AAssetManager_open(assetManager, filename.c_str(), AASSET_MODE_BUFFER)};
|
||||
if (!asset) {
|
||||
LoaderLogger::LogWarningMessage(
|
||||
"", "ApiLayerManifestFile::AddManifestFilesAndroid unable to open asset " + filename + ", skipping");
|
||||
openxr_command, "ApiLayerManifestFile::AddManifestFilesAndroid unable to open asset " + filename + ", skipping");
|
||||
|
||||
continue;
|
||||
}
|
||||
@@ -744,7 +751,7 @@ void ApiLayerManifestFile::AddManifestFilesAndroid(ManifestFileType type,
|
||||
const char *buf = reinterpret_cast<const char *>(AAsset_getBuffer(asset.get()));
|
||||
if (!buf) {
|
||||
LoaderLogger::LogWarningMessage(
|
||||
"", "ApiLayerManifestFile::AddManifestFilesAndroid unable to access asset" + filename + ", skipping");
|
||||
openxr_command, "ApiLayerManifestFile::AddManifestFilesAndroid unable to access asset" + filename + ", skipping");
|
||||
|
||||
continue;
|
||||
}
|
||||
@@ -754,7 +761,7 @@ void ApiLayerManifestFile::AddManifestFilesAndroid(ManifestFileType type,
|
||||
&ApiLayerManifestFile::LocateLibraryInAssets, manifest_files);
|
||||
}
|
||||
}
|
||||
#endif // XR_USE_PLATFORM_ANDROID
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID) && defined(XR_KHR_LOADER_INIT_SUPPORT)
|
||||
|
||||
void ApiLayerManifestFile::CreateIfValid(ManifestFileType type, const std::string &filename, std::istream &json_stream,
|
||||
LibraryLocator locate_library,
|
||||
@@ -898,7 +905,7 @@ bool ApiLayerManifestFile::LocateLibraryRelativeToJson(
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
#if defined(XR_KHR_LOADER_INIT_SUPPORT) && defined(XR_USE_PLATFORM_ANDROID)
|
||||
bool ApiLayerManifestFile::LocateLibraryInAssets(const std::string & /* json_filename */, const std::string &library_path,
|
||||
std::string &out_combined_path) {
|
||||
std::string combined_path;
|
||||
@@ -910,7 +917,7 @@ bool ApiLayerManifestFile::LocateLibraryInAssets(const std::string & /* json_fil
|
||||
out_combined_path = combined_path;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID) && defined(XR_KHR_LOADER_INIT_SUPPORT)
|
||||
|
||||
void ApiLayerManifestFile::PopulateApiLayerProperties(XrApiLayerProperties &props) const {
|
||||
props.layerVersion = _implementation_version;
|
||||
@@ -926,7 +933,7 @@ void ApiLayerManifestFile::PopulateApiLayerProperties(XrApiLayerProperties &prop
|
||||
}
|
||||
|
||||
// Find all layer manifest files in the appropriate search paths/registries for the given type.
|
||||
XrResult ApiLayerManifestFile::FindManifestFiles(ManifestFileType type,
|
||||
XrResult ApiLayerManifestFile::FindManifestFiles(const std::string &openxr_command, ManifestFileType type,
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> &manifest_files) {
|
||||
std::string relative_path;
|
||||
std::string override_env_var;
|
||||
@@ -953,7 +960,8 @@ XrResult ApiLayerManifestFile::FindManifestFiles(ManifestFileType type,
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
LoaderLogger::LogErrorMessage("", "ApiLayerManifestFile::FindManifestFiles - unknown manifest file requested");
|
||||
LoaderLogger::LogErrorMessage(openxr_command,
|
||||
"ApiLayerManifestFile::FindManifestFiles - unknown manifest file requested");
|
||||
return XR_ERROR_FILE_ACCESS_ERROR;
|
||||
}
|
||||
|
||||
@@ -972,9 +980,9 @@ XrResult ApiLayerManifestFile::FindManifestFiles(ManifestFileType type,
|
||||
ApiLayerManifestFile::CreateIfValid(type, cur_file, manifest_files);
|
||||
}
|
||||
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
ApiLayerManifestFile::AddManifestFilesAndroid(type, manifest_files);
|
||||
#endif // XR_USE_PLATFORM_ANDROID
|
||||
#if defined(XR_KHR_LOADER_INIT_SUPPORT) && defined(XR_USE_PLATFORM_ANDROID)
|
||||
ApiLayerManifestFile::AddManifestFilesAndroid(openxr_command, type, manifest_files);
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID) && defined(XR_KHR_LOADER_INIT_SUPPORT)
|
||||
|
||||
return XR_SUCCESS;
|
||||
}
|
||||
|
||||
14
thirdparty/openxr/src/loader/manifest_file.hpp
vendored
14
thirdparty/openxr/src/loader/manifest_file.hpp
vendored
@@ -71,7 +71,8 @@ class ManifestFile {
|
||||
class RuntimeManifestFile : public ManifestFile {
|
||||
public:
|
||||
// Factory method
|
||||
static XrResult FindManifestFiles(std::vector<std::unique_ptr<RuntimeManifestFile>> &manifest_files);
|
||||
static XrResult FindManifestFiles(const std::string &openxr_command,
|
||||
std::vector<std::unique_ptr<RuntimeManifestFile>> &manifest_files);
|
||||
|
||||
private:
|
||||
RuntimeManifestFile(const std::string &filename, const std::string &library_path);
|
||||
@@ -87,7 +88,8 @@ using LibraryLocator = bool (*)(const std::string &json_filename, const std::str
|
||||
class ApiLayerManifestFile : public ManifestFile {
|
||||
public:
|
||||
// Factory method
|
||||
static XrResult FindManifestFiles(ManifestFileType type, std::vector<std::unique_ptr<ApiLayerManifestFile>> &manifest_files);
|
||||
static XrResult FindManifestFiles(const std::string &openxr_command, ManifestFileType type,
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> &manifest_files);
|
||||
|
||||
const std::string &LayerName() const { return _layer_name; }
|
||||
void PopulateApiLayerProperties(XrApiLayerProperties &props) const;
|
||||
@@ -104,11 +106,13 @@ class ApiLayerManifestFile : public ManifestFile {
|
||||
/// @return false if we could not find the library.
|
||||
static bool LocateLibraryRelativeToJson(const std::string &json_filename, const std::string &library_path,
|
||||
std::string &out_combined_path);
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
|
||||
#if defined(XR_KHR_LOADER_INIT_SUPPORT) && defined(XR_USE_PLATFORM_ANDROID)
|
||||
static bool LocateLibraryInAssets(const std::string &json_filename, const std::string &library_path,
|
||||
std::string &out_combined_path);
|
||||
static void AddManifestFilesAndroid(ManifestFileType type, std::vector<std::unique_ptr<ApiLayerManifestFile>> &manifest_files);
|
||||
#endif
|
||||
static void AddManifestFilesAndroid(const std::string &openxr_command, ManifestFileType type,
|
||||
std::vector<std::unique_ptr<ApiLayerManifestFile>> &manifest_files);
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID) && defined(XR_KHR_LOADER_INIT_SUPPORT)
|
||||
|
||||
JsonVersion _api_version;
|
||||
std::string _layer_name;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <openxr/openxr_platform.h>
|
||||
#endif // XR_USE_PLATFORM_ANDROID
|
||||
|
||||
#ifdef XR_USE_PLATFORM_ANDROID
|
||||
#if defined(XR_KHR_LOADER_INIT_SUPPORT) && defined(XR_USE_PLATFORM_ANDROID)
|
||||
XrResult GetPlatformRuntimeVirtualManifest(Json::Value& out_manifest) {
|
||||
using wrap::android::content::Context;
|
||||
auto& initData = LoaderInitData::instance();
|
||||
@@ -52,7 +52,7 @@ XrResult GetPlatformRuntimeVirtualManifest(Json::Value& out_manifest) {
|
||||
out_manifest = virtualManifest;
|
||||
return XR_SUCCESS;
|
||||
}
|
||||
#endif // XR_USE_PLATFORM_ANDROID
|
||||
#endif // defined(XR_USE_PLATFORM_ANDROID) && defined(XR_KHR_LOADER_INIT_SUPPORT)
|
||||
|
||||
XrResult RuntimeInterface::TryLoadingSingleRuntime(const std::string& openxr_command,
|
||||
std::unique_ptr<RuntimeManifestFile>& manifest_file) {
|
||||
@@ -227,7 +227,6 @@ XrResult RuntimeInterface::LoadRuntime(const std::string& openxr_command) {
|
||||
return XR_SUCCESS;
|
||||
}
|
||||
#ifdef XR_KHR_LOADER_INIT_SUPPORT
|
||||
|
||||
if (!LoaderInitData::instance().initialized()) {
|
||||
LoaderLogger::LogErrorMessage(
|
||||
openxr_command, "RuntimeInterface::LoadRuntime cannot run because xrInitializeLoaderKHR was not successfully called.");
|
||||
@@ -238,7 +237,7 @@ XrResult RuntimeInterface::LoadRuntime(const std::string& openxr_command) {
|
||||
std::vector<std::unique_ptr<RuntimeManifestFile>> runtime_manifest_files = {};
|
||||
|
||||
// Find the available runtimes which we may need to report information for.
|
||||
XrResult last_error = RuntimeManifestFile::FindManifestFiles(runtime_manifest_files);
|
||||
XrResult last_error = RuntimeManifestFile::FindManifestFiles(openxr_command, runtime_manifest_files);
|
||||
if (XR_FAILED(last_error)) {
|
||||
LoaderLogger::LogErrorMessage(openxr_command, "RuntimeInterface::LoadRuntimes - unknown error");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user