diff options
Diffstat (limited to 'thirdparty/openxr/src')
-rw-r--r-- | thirdparty/openxr/src/common/platform_utils.hpp | 88 | ||||
-rw-r--r-- | thirdparty/openxr/src/common/xr_dependencies.h | 6 | ||||
-rw-r--r-- | thirdparty/openxr/src/common/xr_linear.h | 20 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/.gitignore | 5 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/api_layer_interface.cpp | 30 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/loader_core.cpp | 2 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/loader_instance.cpp | 2 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/manifest_file.cpp | 77 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/runtime_interface.cpp | 45 | ||||
-rw-r--r-- | thirdparty/openxr/src/loader/xr_generated_loader.cpp | 2 | ||||
-rw-r--r-- | thirdparty/openxr/src/xr_generated_dispatch_table.c | 468 | ||||
-rw-r--r-- | thirdparty/openxr/src/xr_generated_dispatch_table.h | 475 | ||||
-rw-r--r-- | thirdparty/openxr/src/xr_generated_dispatch_table_core.c | 113 | ||||
-rw-r--r-- | thirdparty/openxr/src/xr_generated_dispatch_table_core.h | 119 |
14 files changed, 408 insertions, 1044 deletions
diff --git a/thirdparty/openxr/src/common/platform_utils.hpp b/thirdparty/openxr/src/common/platform_utils.hpp index 219d19789d..0b295f5cc9 100644 --- a/thirdparty/openxr/src/common/platform_utils.hpp +++ b/thirdparty/openxr/src/common/platform_utils.hpp @@ -37,6 +37,44 @@ #include "common_config.h" #endif // OPENXR_HAVE_COMMON_CONFIG +#if defined(__x86_64__) && defined(__ILP32__) +#define XR_ARCH_ABI "x32" +#elif defined(_M_X64) || defined(__x86_64__) +#define XR_ARCH_ABI "x86_64" +#elif defined(_M_IX86) || defined(__i386__) || defined(_X86_) +#define XR_ARCH_ABI "i686" +#elif (defined(__aarch64__) && defined(__LP64__)) || defined(_M_ARM64) +#define XR_ARCH_ABI "aarch64" +#elif (defined(__ARM_ARCH) && __ARM_ARCH >= 7 && (defined(__ARM_PCS_VFP) || defined(__ANDROID__))) || defined(_M_ARM) +#define XR_ARCH_ABI "armv7a-vfp" +#elif defined(__ARM_ARCH_5TE__) +#define XR_ARCH_ABI "armv5te" +#elif defined(__mips64) +#define XR_ARCH_ABI "mips64" +#elif defined(__mips) +#define XR_ARCH_ABI "mips" +#elif defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define XR_ARCH_ABI "ppc64" +#elif defined(__powerpc__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define XR_ARCH_ABI "ppc64el" +#elif defined(__s390x__) || defined(__zarch__) +#define XR_ARCH_ABI "s390x" +#elif defined(__hppa__) +#define XR_ARCH_ABI "hppa" +#elif defined(__alpha__) +#define XR_ARCH_ABI "alpha" +#elif defined(__ia64__) || defined(_M_IA64) +#define XR_ARCH_ABI "ia64" +#elif defined(__m68k__) +#define XR_ARCH_ABI "m68k" +#elif defined(__riscv_xlen) && (__riscv_xlen == 64) +#define XR_ARCH_ABI "riscv64" +#elif defined(__sparc__) && defined(__arch64__) +#define XR_ARCH_ABI "sparc64" +#else +#error "No architecture string known!" +#endif + // Consumers of this file must ensure this function is implemented. For example, the loader will implement this function so that it // can route messages through the loader's logging system. void LogPlatformUtilsError(const std::string& message); @@ -47,6 +85,7 @@ void LogPlatformUtilsError(const std::string& message); #include <unistd.h> #include <fcntl.h> #include <iostream> +#include <sys/stat.h> namespace detail { @@ -72,6 +111,31 @@ static inline char* ImplGetSecureEnv(const char* name) { } // namespace detail #endif // defined(XR_OS_LINUX) || defined(XR_OS_APPLE) + +#if defined(XR_OS_ANDROID) || defined(XR_OS_APPLE) + +#include <sys/stat.h> + +namespace detail { + +static inline bool ImplTryRuntimeFilename(const char* rt_dir_prefix, uint16_t major_version, std::string& file_name) { + auto decorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime." XR_ARCH_ABI ".json"; + auto undecorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime.json"; + + struct stat buf {}; + if (0 == stat(decorated_path.c_str(), &buf)) { + file_name = decorated_path; + return true; + } + if (0 == stat(undecorated_path.c_str(), &buf)) { + file_name = undecorated_path; + return true; + } + return false; +} + +} // namespace detail +#endif // defined(XR_OS_ANDROID) || defined(XR_OS_APPLE) #if defined(XR_OS_LINUX) static inline std::string PlatformUtilsGetEnv(const char* name) { @@ -130,15 +194,8 @@ static inline bool PlatformUtilsSetEnv(const char* name, const char* value) { return (result == 0); } -// Prefix for the Apple global runtime JSON file name -static const std::string rt_dir_prefix = "/usr/local/share/openxr/"; -static const std::string rt_filename = "/active_runtime.json"; - static inline bool PlatformGetGlobalRuntimeFileName(uint16_t major_version, std::string& file_name) { - file_name = rt_dir_prefix; - file_name += std::to_string(major_version); - file_name += rt_filename; - return true; + return detail::ImplTryRuntimeFilename("/usr/local/share/openxr/", major_version, file_name); } #elif defined(XR_OS_WINDOWS) @@ -155,7 +212,7 @@ inline std::wstring utf8_to_wide(const std::string& utf8Text) { return {}; } - // MultiByteToWideChar returns number of chars of the input buffer, regardless of null terminitor + // MultiByteToWideChar returns number of chars of the input buffer, regardless of null terminator wideText.resize(wideLength, 0); wchar_t* wideString = const_cast<wchar_t*>(wideText.data()); // mutable data() only exists in c++17 const int length = ::MultiByteToWideChar(CP_UTF8, 0, utf8Text.data(), (int)utf8Text.size(), wideString, wideLength); @@ -179,7 +236,7 @@ inline std::string wide_to_utf8(const std::wstring& wideText) { return {}; } - // WideCharToMultiByte returns number of chars of the input buffer, regardless of null terminitor + // WideCharToMultiByte returns number of chars of the input buffer, regardless of null terminator narrowText.resize(narrowLength, 0); char* narrowString = const_cast<char*>(narrowText.data()); // mutable data() only exists in c++17 const int length = @@ -311,22 +368,19 @@ static inline bool PlatformUtilsSetEnv(const char* /* name */, const char* /* va return false; } -#include <sys/stat.h> - // Intended to be only used as a fallback on Android, with a more open, "native" technique used in most cases static inline bool PlatformGetGlobalRuntimeFileName(uint16_t major_version, std::string& file_name) { // Prefix for the runtime JSON file name static const char* rt_dir_prefixes[] = {"/product", "/odm", "/oem", "/vendor", "/system"}; - static const std::string rt_filename = "/active_runtime.json"; + static const std::string subdir = "/etc/openxr/"; for (const auto prefix : rt_dir_prefixes) { - auto path = prefix + subdir + std::to_string(major_version) + rt_filename; - struct stat buf; - if (0 == stat(path.c_str(), &buf)) { - file_name = path; + const std::string rt_dir_prefix = prefix + subdir; + if (detail::ImplTryRuntimeFilename(rt_dir_prefix.c_str(), major_version, file_name)) { return true; } } + return false; } #else // Not Linux, Apple, nor Windows diff --git a/thirdparty/openxr/src/common/xr_dependencies.h b/thirdparty/openxr/src/common/xr_dependencies.h index 5c7bd04774..6c9cf2d05f 100644 --- a/thirdparty/openxr/src/common/xr_dependencies.h +++ b/thirdparty/openxr/src/common/xr_dependencies.h @@ -76,7 +76,10 @@ #include "wayland-client.h" #endif // XR_USE_PLATFORM_WAYLAND -#ifdef XR_USE_GRAPHICS_API_OPENGL +#ifdef XR_USE_PLATFORM_EGL +#include <EGL/egl.h> +#endif // XR_USE_PLATFORM_EGL + #if defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB) #ifdef Success #undef Success @@ -90,4 +93,3 @@ #undef None #endif // None #endif // defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB) -#endif // XR_USE_GRAPHICS_API_OPENGL diff --git a/thirdparty/openxr/src/common/xr_linear.h b/thirdparty/openxr/src/common/xr_linear.h index 5b0da645ac..ce65f8ddfb 100644 --- a/thirdparty/openxr/src/common/xr_linear.h +++ b/thirdparty/openxr/src/common/xr_linear.h @@ -1,5 +1,5 @@ -// Copyright (c) 2017 The Khronos Group Inc. -// Copyright (c) 2016 Oculus VR, LLC. +// Copyright (c) 2017-2023, The Khronos Group Inc. +// Copyright (c) 2016, Oculus VR, LLC. // // SPDX-License-Identifier: Apache-2.0 // @@ -23,15 +23,17 @@ #include <openxr/openxr.h> +/* REUSE-IgnoreStart */ +/* The following has copyright notices that duplicate the header above */ + /* ================================================================================================ -Description : Vector, matrix and quaternion math. -Author : J.M.P. van Waveren -Date : 12/10/2016 -Language : C99 -Format : Indent 4 spaces - no tabs. -Copyright : Copyright (c) 2016 Oculus VR, LLC. All Rights reserved. +Description : Vector, matrix and quaternion math. +Orig. Author : J.M.P. van Waveren +Orig. Date : 12/10/2016 +Language : C99 +Copyright : Copyright (c) 2016 Oculus VR, LLC. All Rights reserved. DESCRIPTION @@ -145,6 +147,8 @@ inline static float XrRcpSqrt(const float x) { return rcp; } +inline static float XrVector2f_Length(const XrVector2f* v) { return sqrtf(v->x * v->x + v->y * v->y); } + inline static void XrVector3f_Set(XrVector3f* v, const float value) { v->x = value; v->y = value; diff --git a/thirdparty/openxr/src/loader/.gitignore b/thirdparty/openxr/src/loader/.gitignore deleted file mode 100644 index 5e8e0ba3a4..0000000000 --- a/thirdparty/openxr/src/loader/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - -!openxr_loader_for_android.pom diff --git a/thirdparty/openxr/src/loader/api_layer_interface.cpp b/thirdparty/openxr/src/loader/api_layer_interface.cpp index 5560c31a52..c9e24ec40b 100644 --- a/thirdparty/openxr/src/loader/api_layer_interface.cpp +++ b/thirdparty/openxr/src/loader/api_layer_interface.cpp @@ -237,21 +237,23 @@ XrResult ApiLayerInterface::LoadApiLayers(const std::string& openxr_command, uin for (const auto& layer_name : enabled_explicit_api_layer_names) { bool found_this_layer = false; - for (auto it = explicit_layer_manifest_files.begin(); it != explicit_layer_manifest_files.end();) { - bool erased_layer_manifest_file = false; - - if (layers_already_found.count(layer_name) > 0) { - found_this_layer = true; - } else if (layer_name == (*it)->LayerName()) { - found_this_layer = true; - layers_already_found.insert(layer_name); - enabled_layer_manifest_files_in_init_order.push_back(std::move(*it)); - it = explicit_layer_manifest_files.erase(it); - erased_layer_manifest_file = true; - } + if (layers_already_found.count(layer_name) > 0) { + found_this_layer = true; + } else { + for (auto it = explicit_layer_manifest_files.begin(); it != explicit_layer_manifest_files.end();) { + bool erased_layer_manifest_file = false; + + if (layer_name == (*it)->LayerName()) { + found_this_layer = true; + layers_already_found.insert(layer_name); + enabled_layer_manifest_files_in_init_order.push_back(std::move(*it)); + it = explicit_layer_manifest_files.erase(it); + erased_layer_manifest_file = true; + } - if (!erased_layer_manifest_file) { - it++; + if (!erased_layer_manifest_file) { + it++; + } } } diff --git a/thirdparty/openxr/src/loader/loader_core.cpp b/thirdparty/openxr/src/loader/loader_core.cpp index 98d3fa971a..06e6870053 100644 --- a/thirdparty/openxr/src/loader/loader_core.cpp +++ b/thirdparty/openxr/src/loader/loader_core.cpp @@ -19,7 +19,7 @@ #include "loader_logger.hpp" #include "loader_platform.hpp" #include "runtime_interface.hpp" -#include "xr_generated_dispatch_table.h" +#include "xr_generated_dispatch_table_core.h" #include "xr_generated_loader.hpp" #include <openxr/openxr.h> diff --git a/thirdparty/openxr/src/loader/loader_instance.cpp b/thirdparty/openxr/src/loader/loader_instance.cpp index badd39193c..ce5c205505 100644 --- a/thirdparty/openxr/src/loader/loader_instance.cpp +++ b/thirdparty/openxr/src/loader/loader_instance.cpp @@ -18,7 +18,7 @@ #include "loader_interfaces.h" #include "loader_logger.hpp" #include "runtime_interface.hpp" -#include "xr_generated_dispatch_table.h" +#include "xr_generated_dispatch_table_core.h" #include "xr_generated_loader.hpp" #include <openxr/openxr.h> diff --git a/thirdparty/openxr/src/loader/manifest_file.cpp b/thirdparty/openxr/src/loader/manifest_file.cpp index 99f4e84104..0683bc166a 100644 --- a/thirdparty/openxr/src/loader/manifest_file.cpp +++ b/thirdparty/openxr/src/loader/manifest_file.cpp @@ -274,16 +274,45 @@ static std::string GetXDGEnvAbsolute(const char *name, const char *fallback_path return fallback_paths; } +/// @param rt_dir_prefix Directory prefix with a trailing slash +static bool FindEitherActiveRuntimeFilename(const char *prefix_desc, const std::string &rt_dir_prefix, uint16_t major_version, + std::string &out) { + { + std::ostringstream oss; + oss << "Looking for active_runtime." XR_ARCH_ABI ".json or active_runtime.json in "; + oss << prefix_desc; + oss << ": "; + oss << rt_dir_prefix; + + LoaderLogger::LogInfoMessage("", oss.str()); + } + { + auto decorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime." XR_ARCH_ABI ".json"; + + if (FileSysUtilsPathExists(decorated_path)) { + out = decorated_path; + return true; + } + } + { + auto undecorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime.json"; + + if (FileSysUtilsPathExists(undecorated_path)) { + out = undecorated_path; + return true; + } + } + return false; +} // Return the first instance of relative_path occurring in an XDG config dir according to standard // precedence order. -static bool FindXDGConfigFile(const std::string &relative_path, std::string &out) { - out = GetXDGEnvHome("XDG_CONFIG_HOME", ".config"); - if (!out.empty()) { - out += "/"; - out += relative_path; - - LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in XDG_CONFIG_HOME: " + out); - if (FileSysUtilsPathExists(out)) { +static bool FindXDGConfigFile(const char *relative_dir, uint16_t major_version, std::string &out) { + const std::string message{"Looking for active_runtime." XR_ARCH_ABI ".json or active_runtime.json"}; + std::string dir_prefix = GetXDGEnvHome("XDG_CONFIG_HOME", ".config"); + if (!dir_prefix.empty()) { + dir_prefix += "/"; + dir_prefix += relative_dir; + if (FindEitherActiveRuntimeFilename("XDG_CONFIG_HOME", dir_prefix, major_version, out)) { return true; } } @@ -294,29 +323,26 @@ static bool FindXDGConfigFile(const std::string &relative_path, std::string &out if (path.empty()) { continue; } - out = path; - out += "/"; - out += relative_path; - LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in an entry of XDG_CONFIG_DIRS: " + out); - if (FileSysUtilsPathExists(out)) { + dir_prefix = std::move(path); + dir_prefix += "/"; + dir_prefix += relative_dir; + if (FindEitherActiveRuntimeFilename("an entry of XDG_CONFIG_DIRS", dir_prefix, major_version, out)) { return true; } } - out = SYSCONFDIR; - out += "/"; - out += relative_path; - LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in compiled-in SYSCONFDIR: " + out); - if (FileSysUtilsPathExists(out)) { + dir_prefix = SYSCONFDIR; + dir_prefix += "/"; + dir_prefix += relative_dir; + if (FindEitherActiveRuntimeFilename("compiled-in SYSCONFDIR", dir_prefix, major_version, out)) { return true; } #if defined(EXTRASYSCONFDIR) - out = EXTRASYSCONFDIR; - out += "/"; - out += relative_path; - LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in compiled-in EXTRASYSCONFDIR: " + out); - if (FileSysUtilsPathExists(out)) { + dir_prefix = EXTRASYSCONFDIR; + dir_prefix += "/"; + dir_prefix += relative_dir; + if (FindEitherActiveRuntimeFilename("compiled-in EXTRASYSCONFDIR", dir_prefix, major_version, out)) { return true; } #endif @@ -632,9 +658,8 @@ XrResult RuntimeManifestFile::FindManifestFiles(std::vector<std::unique_ptr<Runt LoaderLogger::LogInfoMessage("", "RuntimeManifestFile::FindManifestFiles - using registry-specified runtime file " + filename); #elif defined(XR_OS_LINUX) - const std::string relative_path = - "openxr/" + std::to_string(XR_VERSION_MAJOR(XR_CURRENT_API_VERSION)) + "/active_runtime.json"; - if (!FindXDGConfigFile(relative_path, filename)) { + + 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"); return XR_ERROR_RUNTIME_UNAVAILABLE; diff --git a/thirdparty/openxr/src/loader/runtime_interface.cpp b/thirdparty/openxr/src/loader/runtime_interface.cpp index d9ab86bb58..8312b15ba4 100644 --- a/thirdparty/openxr/src/loader/runtime_interface.cpp +++ b/thirdparty/openxr/src/loader/runtime_interface.cpp @@ -13,7 +13,7 @@ #include "loader_interfaces.h" #include "loader_logger.hpp" #include "loader_platform.hpp" -#include "xr_generated_dispatch_table.h" +#include "xr_generated_dispatch_table_core.h" #include <openxr/openxr.h> @@ -29,6 +29,10 @@ #include "android_utilities.h" #include <android/asset_manager_jni.h> #include <json/value.h> + +// Needed for the loader init struct +#include <xr_dependencies.h> +#include <openxr/openxr_platform.h> #endif // XR_USE_PLATFORM_ANDROID #ifdef XR_KHR_LOADER_INIT_SUPPORT @@ -105,33 +109,22 @@ XrResult LoaderInitData::initialize(const XrLoaderInitInfoBaseHeaderKHR* info) { if (cast_info->applicationContext == nullptr) { return XR_ERROR_VALIDATION_FAILURE; } + + // Copy and store the JVM pointer and Android Context, ensuring the JVM is initialised. _data = *cast_info; - jni::init((jni::JavaVM*)_data.applicationVM); _data.next = nullptr; - JNIEnv* Env; - ((jni::JavaVM*)(cast_info->applicationVM))->AttachCurrentThread(&Env, nullptr); - const jclass contextClass = Env->GetObjectClass((jobject)_data.applicationContext); - - const jmethodID getAssetsMethod = Env->GetMethodID(contextClass, "getAssets", "()Landroid/content/res/AssetManager;"); - const jobject AssetManagerObject = Env->CallObjectMethod((jobject)_data.applicationContext, getAssetsMethod); - _android_asset_manager = AAssetManager_fromJava(Env, AssetManagerObject); - - const jmethodID getApplicationContextMethod = - Env->GetMethodID(contextClass, "getApplicationContext", "()Landroid/content/Context;"); - const jobject contextObject = Env->CallObjectMethod((jobject)_data.applicationContext, getApplicationContextMethod); - const jmethodID getApplicationInfoMethod = - Env->GetMethodID(contextClass, "getApplicationInfo", "()Landroid/content/pm/ApplicationInfo;"); - const jobject applicationInfoObject = Env->CallObjectMethod(contextObject, getApplicationInfoMethod); - const jfieldID nativeLibraryDirField = - Env->GetFieldID(Env->GetObjectClass(applicationInfoObject), "nativeLibraryDir", "Ljava/lang/String;"); - const jobject nativeLibraryDirObject = Env->GetObjectField(applicationInfoObject, nativeLibraryDirField); - const jmethodID getBytesMethod = - Env->GetMethodID(Env->GetObjectClass(nativeLibraryDirObject), "getBytes", "(Ljava/lang/String;)[B"); - const auto bytesObject = - static_cast<jbyteArray>(Env->CallObjectMethod(nativeLibraryDirObject, getBytesMethod, Env->NewStringUTF("UTF-8"))); - const size_t length = Env->GetArrayLength(bytesObject); - const jbyte* const bytes = Env->GetByteArrayElements(bytesObject, nullptr); - _native_library_path = std::string(reinterpret_cast<const char*>(bytes), length); + jni::init(static_cast<jni::JavaVM*>(_data.applicationVM)); + const jni::Object context = jni::Object{static_cast<jni::jobject>(_data.applicationContext)}; + + // Retrieve a reference to the Android AssetManager. + const auto assetManager = context.call<jni::Object>("getAssets()Landroid/content/res/AssetManager;"); + _android_asset_manager = AAssetManager_fromJava(jni::env(), assetManager.getHandle()); + + // Retrieve the path to the native libraries. + 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"); + _initialized = true; return XR_SUCCESS; } diff --git a/thirdparty/openxr/src/loader/xr_generated_loader.cpp b/thirdparty/openxr/src/loader/xr_generated_loader.cpp index e7767fd30a..8c79afddc5 100644 --- a/thirdparty/openxr/src/loader/xr_generated_loader.cpp +++ b/thirdparty/openxr/src/loader/xr_generated_loader.cpp @@ -36,7 +36,7 @@ #include "loader_logger.hpp" #include "loader_platform.hpp" #include "runtime_interface.hpp" -#include "xr_generated_dispatch_table.h" +#include "xr_generated_dispatch_table_core.h" #include "xr_dependencies.h" #include <openxr/openxr.h> diff --git a/thirdparty/openxr/src/xr_generated_dispatch_table.c b/thirdparty/openxr/src/xr_generated_dispatch_table.c deleted file mode 100644 index 302bed31f5..0000000000 --- a/thirdparty/openxr/src/xr_generated_dispatch_table.c +++ /dev/null @@ -1,468 +0,0 @@ -// Copyright (c) 2017-2023, The Khronos Group Inc. -// Copyright (c) 2017-2019 Valve Corporation -// Copyright (c) 2017-2019 LunarG, Inc. -// SPDX-License-Identifier: Apache-2.0 OR MIT -// *********** THIS FILE IS GENERATED - DO NOT EDIT *********** -// See utility_source_generator.py for modifications -// ************************************************************ - -// Copyright (c) 2017-2023, The Khronos Group Inc. -// Copyright (c) 2017-2019 Valve Corporation -// Copyright (c) 2017-2019 LunarG, Inc. -// -// SPDX-License-Identifier: Apache-2.0 -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Author: Mark Young <marky@lunarg.com> -// - -#include <time.h> -#include "xr_generated_dispatch_table.h" -#include "xr_dependencies.h" -#include <openxr/openxr.h> -#include <openxr/openxr_platform.h> - - -#ifdef __cplusplus -extern "C" { -#endif -// Helper function to populate an instance dispatch table -void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table, - XrInstance instance, - PFN_xrGetInstanceProcAddr get_inst_proc_addr) { - - // ---- Core 1.0 commands - table->GetInstanceProcAddr = get_inst_proc_addr; - (get_inst_proc_addr(instance, "xrCreateInstance", (PFN_xrVoidFunction*)&table->CreateInstance)); - (get_inst_proc_addr(instance, "xrDestroyInstance", (PFN_xrVoidFunction*)&table->DestroyInstance)); - (get_inst_proc_addr(instance, "xrGetInstanceProperties", (PFN_xrVoidFunction*)&table->GetInstanceProperties)); - (get_inst_proc_addr(instance, "xrPollEvent", (PFN_xrVoidFunction*)&table->PollEvent)); - (get_inst_proc_addr(instance, "xrResultToString", (PFN_xrVoidFunction*)&table->ResultToString)); - (get_inst_proc_addr(instance, "xrStructureTypeToString", (PFN_xrVoidFunction*)&table->StructureTypeToString)); - (get_inst_proc_addr(instance, "xrGetSystem", (PFN_xrVoidFunction*)&table->GetSystem)); - (get_inst_proc_addr(instance, "xrGetSystemProperties", (PFN_xrVoidFunction*)&table->GetSystemProperties)); - (get_inst_proc_addr(instance, "xrEnumerateEnvironmentBlendModes", (PFN_xrVoidFunction*)&table->EnumerateEnvironmentBlendModes)); - (get_inst_proc_addr(instance, "xrCreateSession", (PFN_xrVoidFunction*)&table->CreateSession)); - (get_inst_proc_addr(instance, "xrDestroySession", (PFN_xrVoidFunction*)&table->DestroySession)); - (get_inst_proc_addr(instance, "xrEnumerateReferenceSpaces", (PFN_xrVoidFunction*)&table->EnumerateReferenceSpaces)); - (get_inst_proc_addr(instance, "xrCreateReferenceSpace", (PFN_xrVoidFunction*)&table->CreateReferenceSpace)); - (get_inst_proc_addr(instance, "xrGetReferenceSpaceBoundsRect", (PFN_xrVoidFunction*)&table->GetReferenceSpaceBoundsRect)); - (get_inst_proc_addr(instance, "xrCreateActionSpace", (PFN_xrVoidFunction*)&table->CreateActionSpace)); - (get_inst_proc_addr(instance, "xrLocateSpace", (PFN_xrVoidFunction*)&table->LocateSpace)); - (get_inst_proc_addr(instance, "xrDestroySpace", (PFN_xrVoidFunction*)&table->DestroySpace)); - (get_inst_proc_addr(instance, "xrEnumerateViewConfigurations", (PFN_xrVoidFunction*)&table->EnumerateViewConfigurations)); - (get_inst_proc_addr(instance, "xrGetViewConfigurationProperties", (PFN_xrVoidFunction*)&table->GetViewConfigurationProperties)); - (get_inst_proc_addr(instance, "xrEnumerateViewConfigurationViews", (PFN_xrVoidFunction*)&table->EnumerateViewConfigurationViews)); - (get_inst_proc_addr(instance, "xrEnumerateSwapchainFormats", (PFN_xrVoidFunction*)&table->EnumerateSwapchainFormats)); - (get_inst_proc_addr(instance, "xrCreateSwapchain", (PFN_xrVoidFunction*)&table->CreateSwapchain)); - (get_inst_proc_addr(instance, "xrDestroySwapchain", (PFN_xrVoidFunction*)&table->DestroySwapchain)); - (get_inst_proc_addr(instance, "xrEnumerateSwapchainImages", (PFN_xrVoidFunction*)&table->EnumerateSwapchainImages)); - (get_inst_proc_addr(instance, "xrAcquireSwapchainImage", (PFN_xrVoidFunction*)&table->AcquireSwapchainImage)); - (get_inst_proc_addr(instance, "xrWaitSwapchainImage", (PFN_xrVoidFunction*)&table->WaitSwapchainImage)); - (get_inst_proc_addr(instance, "xrReleaseSwapchainImage", (PFN_xrVoidFunction*)&table->ReleaseSwapchainImage)); - (get_inst_proc_addr(instance, "xrBeginSession", (PFN_xrVoidFunction*)&table->BeginSession)); - (get_inst_proc_addr(instance, "xrEndSession", (PFN_xrVoidFunction*)&table->EndSession)); - (get_inst_proc_addr(instance, "xrRequestExitSession", (PFN_xrVoidFunction*)&table->RequestExitSession)); - (get_inst_proc_addr(instance, "xrWaitFrame", (PFN_xrVoidFunction*)&table->WaitFrame)); - (get_inst_proc_addr(instance, "xrBeginFrame", (PFN_xrVoidFunction*)&table->BeginFrame)); - (get_inst_proc_addr(instance, "xrEndFrame", (PFN_xrVoidFunction*)&table->EndFrame)); - (get_inst_proc_addr(instance, "xrLocateViews", (PFN_xrVoidFunction*)&table->LocateViews)); - (get_inst_proc_addr(instance, "xrStringToPath", (PFN_xrVoidFunction*)&table->StringToPath)); - (get_inst_proc_addr(instance, "xrPathToString", (PFN_xrVoidFunction*)&table->PathToString)); - (get_inst_proc_addr(instance, "xrCreateActionSet", (PFN_xrVoidFunction*)&table->CreateActionSet)); - (get_inst_proc_addr(instance, "xrDestroyActionSet", (PFN_xrVoidFunction*)&table->DestroyActionSet)); - (get_inst_proc_addr(instance, "xrCreateAction", (PFN_xrVoidFunction*)&table->CreateAction)); - (get_inst_proc_addr(instance, "xrDestroyAction", (PFN_xrVoidFunction*)&table->DestroyAction)); - (get_inst_proc_addr(instance, "xrSuggestInteractionProfileBindings", (PFN_xrVoidFunction*)&table->SuggestInteractionProfileBindings)); - (get_inst_proc_addr(instance, "xrAttachSessionActionSets", (PFN_xrVoidFunction*)&table->AttachSessionActionSets)); - (get_inst_proc_addr(instance, "xrGetCurrentInteractionProfile", (PFN_xrVoidFunction*)&table->GetCurrentInteractionProfile)); - (get_inst_proc_addr(instance, "xrGetActionStateBoolean", (PFN_xrVoidFunction*)&table->GetActionStateBoolean)); - (get_inst_proc_addr(instance, "xrGetActionStateFloat", (PFN_xrVoidFunction*)&table->GetActionStateFloat)); - (get_inst_proc_addr(instance, "xrGetActionStateVector2f", (PFN_xrVoidFunction*)&table->GetActionStateVector2f)); - (get_inst_proc_addr(instance, "xrGetActionStatePose", (PFN_xrVoidFunction*)&table->GetActionStatePose)); - (get_inst_proc_addr(instance, "xrSyncActions", (PFN_xrVoidFunction*)&table->SyncActions)); - (get_inst_proc_addr(instance, "xrEnumerateBoundSourcesForAction", (PFN_xrVoidFunction*)&table->EnumerateBoundSourcesForAction)); - (get_inst_proc_addr(instance, "xrGetInputSourceLocalizedName", (PFN_xrVoidFunction*)&table->GetInputSourceLocalizedName)); - (get_inst_proc_addr(instance, "xrApplyHapticFeedback", (PFN_xrVoidFunction*)&table->ApplyHapticFeedback)); - (get_inst_proc_addr(instance, "xrStopHapticFeedback", (PFN_xrVoidFunction*)&table->StopHapticFeedback)); - - // ---- XR_KHR_android_thread_settings extension commands -#if defined(XR_USE_PLATFORM_ANDROID) - (get_inst_proc_addr(instance, "xrSetAndroidApplicationThreadKHR", (PFN_xrVoidFunction*)&table->SetAndroidApplicationThreadKHR)); -#endif // defined(XR_USE_PLATFORM_ANDROID) - - // ---- XR_KHR_android_surface_swapchain extension commands -#if defined(XR_USE_PLATFORM_ANDROID) - (get_inst_proc_addr(instance, "xrCreateSwapchainAndroidSurfaceKHR", (PFN_xrVoidFunction*)&table->CreateSwapchainAndroidSurfaceKHR)); -#endif // defined(XR_USE_PLATFORM_ANDROID) - - // ---- XR_KHR_opengl_enable extension commands -#if defined(XR_USE_GRAPHICS_API_OPENGL) - (get_inst_proc_addr(instance, "xrGetOpenGLGraphicsRequirementsKHR", (PFN_xrVoidFunction*)&table->GetOpenGLGraphicsRequirementsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_OPENGL) - - // ---- XR_KHR_opengl_es_enable extension commands -#if defined(XR_USE_GRAPHICS_API_OPENGL_ES) - (get_inst_proc_addr(instance, "xrGetOpenGLESGraphicsRequirementsKHR", (PFN_xrVoidFunction*)&table->GetOpenGLESGraphicsRequirementsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_OPENGL_ES) - - // ---- XR_KHR_vulkan_enable extension commands -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrGetVulkanInstanceExtensionsKHR", (PFN_xrVoidFunction*)&table->GetVulkanInstanceExtensionsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrGetVulkanDeviceExtensionsKHR", (PFN_xrVoidFunction*)&table->GetVulkanDeviceExtensionsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrGetVulkanGraphicsDeviceKHR", (PFN_xrVoidFunction*)&table->GetVulkanGraphicsDeviceKHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrGetVulkanGraphicsRequirementsKHR", (PFN_xrVoidFunction*)&table->GetVulkanGraphicsRequirementsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) - - // ---- XR_KHR_D3D11_enable extension commands -#if defined(XR_USE_GRAPHICS_API_D3D11) - (get_inst_proc_addr(instance, "xrGetD3D11GraphicsRequirementsKHR", (PFN_xrVoidFunction*)&table->GetD3D11GraphicsRequirementsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_D3D11) - - // ---- XR_KHR_D3D12_enable extension commands -#if defined(XR_USE_GRAPHICS_API_D3D12) - (get_inst_proc_addr(instance, "xrGetD3D12GraphicsRequirementsKHR", (PFN_xrVoidFunction*)&table->GetD3D12GraphicsRequirementsKHR)); -#endif // defined(XR_USE_GRAPHICS_API_D3D12) - - // ---- XR_KHR_visibility_mask extension commands - (get_inst_proc_addr(instance, "xrGetVisibilityMaskKHR", (PFN_xrVoidFunction*)&table->GetVisibilityMaskKHR)); - - // ---- XR_KHR_win32_convert_performance_counter_time extension commands -#if defined(XR_USE_PLATFORM_WIN32) - (get_inst_proc_addr(instance, "xrConvertWin32PerformanceCounterToTimeKHR", (PFN_xrVoidFunction*)&table->ConvertWin32PerformanceCounterToTimeKHR)); -#endif // defined(XR_USE_PLATFORM_WIN32) -#if defined(XR_USE_PLATFORM_WIN32) - (get_inst_proc_addr(instance, "xrConvertTimeToWin32PerformanceCounterKHR", (PFN_xrVoidFunction*)&table->ConvertTimeToWin32PerformanceCounterKHR)); -#endif // defined(XR_USE_PLATFORM_WIN32) - - // ---- XR_KHR_convert_timespec_time extension commands -#if defined(XR_USE_TIMESPEC) - (get_inst_proc_addr(instance, "xrConvertTimespecTimeToTimeKHR", (PFN_xrVoidFunction*)&table->ConvertTimespecTimeToTimeKHR)); -#endif // defined(XR_USE_TIMESPEC) -#if defined(XR_USE_TIMESPEC) - (get_inst_proc_addr(instance, "xrConvertTimeToTimespecTimeKHR", (PFN_xrVoidFunction*)&table->ConvertTimeToTimespecTimeKHR)); -#endif // defined(XR_USE_TIMESPEC) - - // ---- XR_KHR_vulkan_enable2 extension commands -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrCreateVulkanInstanceKHR", (PFN_xrVoidFunction*)&table->CreateVulkanInstanceKHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrCreateVulkanDeviceKHR", (PFN_xrVoidFunction*)&table->CreateVulkanDeviceKHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrGetVulkanGraphicsDevice2KHR", (PFN_xrVoidFunction*)&table->GetVulkanGraphicsDevice2KHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - (get_inst_proc_addr(instance, "xrGetVulkanGraphicsRequirements2KHR", (PFN_xrVoidFunction*)&table->GetVulkanGraphicsRequirements2KHR)); -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) - - // ---- XR_EXT_performance_settings extension commands - (get_inst_proc_addr(instance, "xrPerfSettingsSetPerformanceLevelEXT", (PFN_xrVoidFunction*)&table->PerfSettingsSetPerformanceLevelEXT)); - - // ---- XR_EXT_thermal_query extension commands - (get_inst_proc_addr(instance, "xrThermalGetTemperatureTrendEXT", (PFN_xrVoidFunction*)&table->ThermalGetTemperatureTrendEXT)); - - // ---- XR_EXT_debug_utils extension commands - (get_inst_proc_addr(instance, "xrSetDebugUtilsObjectNameEXT", (PFN_xrVoidFunction*)&table->SetDebugUtilsObjectNameEXT)); - (get_inst_proc_addr(instance, "xrCreateDebugUtilsMessengerEXT", (PFN_xrVoidFunction*)&table->CreateDebugUtilsMessengerEXT)); - (get_inst_proc_addr(instance, "xrDestroyDebugUtilsMessengerEXT", (PFN_xrVoidFunction*)&table->DestroyDebugUtilsMessengerEXT)); - (get_inst_proc_addr(instance, "xrSubmitDebugUtilsMessageEXT", (PFN_xrVoidFunction*)&table->SubmitDebugUtilsMessageEXT)); - (get_inst_proc_addr(instance, "xrSessionBeginDebugUtilsLabelRegionEXT", (PFN_xrVoidFunction*)&table->SessionBeginDebugUtilsLabelRegionEXT)); - (get_inst_proc_addr(instance, "xrSessionEndDebugUtilsLabelRegionEXT", (PFN_xrVoidFunction*)&table->SessionEndDebugUtilsLabelRegionEXT)); - (get_inst_proc_addr(instance, "xrSessionInsertDebugUtilsLabelEXT", (PFN_xrVoidFunction*)&table->SessionInsertDebugUtilsLabelEXT)); - - // ---- XR_MSFT_spatial_anchor extension commands - (get_inst_proc_addr(instance, "xrCreateSpatialAnchorMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorMSFT)); - (get_inst_proc_addr(instance, "xrCreateSpatialAnchorSpaceMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorSpaceMSFT)); - (get_inst_proc_addr(instance, "xrDestroySpatialAnchorMSFT", (PFN_xrVoidFunction*)&table->DestroySpatialAnchorMSFT)); - - // ---- XR_EXT_conformance_automation extension commands - (get_inst_proc_addr(instance, "xrSetInputDeviceActiveEXT", (PFN_xrVoidFunction*)&table->SetInputDeviceActiveEXT)); - (get_inst_proc_addr(instance, "xrSetInputDeviceStateBoolEXT", (PFN_xrVoidFunction*)&table->SetInputDeviceStateBoolEXT)); - (get_inst_proc_addr(instance, "xrSetInputDeviceStateFloatEXT", (PFN_xrVoidFunction*)&table->SetInputDeviceStateFloatEXT)); - (get_inst_proc_addr(instance, "xrSetInputDeviceStateVector2fEXT", (PFN_xrVoidFunction*)&table->SetInputDeviceStateVector2fEXT)); - (get_inst_proc_addr(instance, "xrSetInputDeviceLocationEXT", (PFN_xrVoidFunction*)&table->SetInputDeviceLocationEXT)); - - // ---- XR_MSFT_spatial_graph_bridge extension commands - (get_inst_proc_addr(instance, "xrCreateSpatialGraphNodeSpaceMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialGraphNodeSpaceMSFT)); - (get_inst_proc_addr(instance, "xrTryCreateSpatialGraphStaticNodeBindingMSFT", (PFN_xrVoidFunction*)&table->TryCreateSpatialGraphStaticNodeBindingMSFT)); - (get_inst_proc_addr(instance, "xrDestroySpatialGraphNodeBindingMSFT", (PFN_xrVoidFunction*)&table->DestroySpatialGraphNodeBindingMSFT)); - (get_inst_proc_addr(instance, "xrGetSpatialGraphNodeBindingPropertiesMSFT", (PFN_xrVoidFunction*)&table->GetSpatialGraphNodeBindingPropertiesMSFT)); - - // ---- XR_EXT_hand_tracking extension commands - (get_inst_proc_addr(instance, "xrCreateHandTrackerEXT", (PFN_xrVoidFunction*)&table->CreateHandTrackerEXT)); - (get_inst_proc_addr(instance, "xrDestroyHandTrackerEXT", (PFN_xrVoidFunction*)&table->DestroyHandTrackerEXT)); - (get_inst_proc_addr(instance, "xrLocateHandJointsEXT", (PFN_xrVoidFunction*)&table->LocateHandJointsEXT)); - - // ---- XR_MSFT_hand_tracking_mesh extension commands - (get_inst_proc_addr(instance, "xrCreateHandMeshSpaceMSFT", (PFN_xrVoidFunction*)&table->CreateHandMeshSpaceMSFT)); - (get_inst_proc_addr(instance, "xrUpdateHandMeshMSFT", (PFN_xrVoidFunction*)&table->UpdateHandMeshMSFT)); - - // ---- XR_MSFT_controller_model extension commands - (get_inst_proc_addr(instance, "xrGetControllerModelKeyMSFT", (PFN_xrVoidFunction*)&table->GetControllerModelKeyMSFT)); - (get_inst_proc_addr(instance, "xrLoadControllerModelMSFT", (PFN_xrVoidFunction*)&table->LoadControllerModelMSFT)); - (get_inst_proc_addr(instance, "xrGetControllerModelPropertiesMSFT", (PFN_xrVoidFunction*)&table->GetControllerModelPropertiesMSFT)); - (get_inst_proc_addr(instance, "xrGetControllerModelStateMSFT", (PFN_xrVoidFunction*)&table->GetControllerModelStateMSFT)); - - // ---- XR_MSFT_perception_anchor_interop extension commands -#if defined(XR_USE_PLATFORM_WIN32) - (get_inst_proc_addr(instance, "xrCreateSpatialAnchorFromPerceptionAnchorMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorFromPerceptionAnchorMSFT)); -#endif // defined(XR_USE_PLATFORM_WIN32) -#if defined(XR_USE_PLATFORM_WIN32) - (get_inst_proc_addr(instance, "xrTryGetPerceptionAnchorFromSpatialAnchorMSFT", (PFN_xrVoidFunction*)&table->TryGetPerceptionAnchorFromSpatialAnchorMSFT)); -#endif // defined(XR_USE_PLATFORM_WIN32) - - // ---- XR_MSFT_composition_layer_reprojection extension commands - (get_inst_proc_addr(instance, "xrEnumerateReprojectionModesMSFT", (PFN_xrVoidFunction*)&table->EnumerateReprojectionModesMSFT)); - - // ---- XR_FB_swapchain_update_state extension commands - (get_inst_proc_addr(instance, "xrUpdateSwapchainFB", (PFN_xrVoidFunction*)&table->UpdateSwapchainFB)); - (get_inst_proc_addr(instance, "xrGetSwapchainStateFB", (PFN_xrVoidFunction*)&table->GetSwapchainStateFB)); - - // ---- XR_FB_body_tracking extension commands - (get_inst_proc_addr(instance, "xrCreateBodyTrackerFB", (PFN_xrVoidFunction*)&table->CreateBodyTrackerFB)); - (get_inst_proc_addr(instance, "xrDestroyBodyTrackerFB", (PFN_xrVoidFunction*)&table->DestroyBodyTrackerFB)); - (get_inst_proc_addr(instance, "xrLocateBodyJointsFB", (PFN_xrVoidFunction*)&table->LocateBodyJointsFB)); - (get_inst_proc_addr(instance, "xrGetBodySkeletonFB", (PFN_xrVoidFunction*)&table->GetBodySkeletonFB)); - - // ---- XR_MSFT_scene_understanding extension commands - (get_inst_proc_addr(instance, "xrEnumerateSceneComputeFeaturesMSFT", (PFN_xrVoidFunction*)&table->EnumerateSceneComputeFeaturesMSFT)); - (get_inst_proc_addr(instance, "xrCreateSceneObserverMSFT", (PFN_xrVoidFunction*)&table->CreateSceneObserverMSFT)); - (get_inst_proc_addr(instance, "xrDestroySceneObserverMSFT", (PFN_xrVoidFunction*)&table->DestroySceneObserverMSFT)); - (get_inst_proc_addr(instance, "xrCreateSceneMSFT", (PFN_xrVoidFunction*)&table->CreateSceneMSFT)); - (get_inst_proc_addr(instance, "xrDestroySceneMSFT", (PFN_xrVoidFunction*)&table->DestroySceneMSFT)); - (get_inst_proc_addr(instance, "xrComputeNewSceneMSFT", (PFN_xrVoidFunction*)&table->ComputeNewSceneMSFT)); - (get_inst_proc_addr(instance, "xrGetSceneComputeStateMSFT", (PFN_xrVoidFunction*)&table->GetSceneComputeStateMSFT)); - (get_inst_proc_addr(instance, "xrGetSceneComponentsMSFT", (PFN_xrVoidFunction*)&table->GetSceneComponentsMSFT)); - (get_inst_proc_addr(instance, "xrLocateSceneComponentsMSFT", (PFN_xrVoidFunction*)&table->LocateSceneComponentsMSFT)); - (get_inst_proc_addr(instance, "xrGetSceneMeshBuffersMSFT", (PFN_xrVoidFunction*)&table->GetSceneMeshBuffersMSFT)); - - // ---- XR_MSFT_scene_understanding_serialization extension commands - (get_inst_proc_addr(instance, "xrDeserializeSceneMSFT", (PFN_xrVoidFunction*)&table->DeserializeSceneMSFT)); - (get_inst_proc_addr(instance, "xrGetSerializedSceneFragmentDataMSFT", (PFN_xrVoidFunction*)&table->GetSerializedSceneFragmentDataMSFT)); - - // ---- XR_FB_display_refresh_rate extension commands - (get_inst_proc_addr(instance, "xrEnumerateDisplayRefreshRatesFB", (PFN_xrVoidFunction*)&table->EnumerateDisplayRefreshRatesFB)); - (get_inst_proc_addr(instance, "xrGetDisplayRefreshRateFB", (PFN_xrVoidFunction*)&table->GetDisplayRefreshRateFB)); - (get_inst_proc_addr(instance, "xrRequestDisplayRefreshRateFB", (PFN_xrVoidFunction*)&table->RequestDisplayRefreshRateFB)); - - // ---- XR_HTCX_vive_tracker_interaction extension commands - (get_inst_proc_addr(instance, "xrEnumerateViveTrackerPathsHTCX", (PFN_xrVoidFunction*)&table->EnumerateViveTrackerPathsHTCX)); - - // ---- XR_HTC_facial_tracking extension commands - (get_inst_proc_addr(instance, "xrCreateFacialTrackerHTC", (PFN_xrVoidFunction*)&table->CreateFacialTrackerHTC)); - (get_inst_proc_addr(instance, "xrDestroyFacialTrackerHTC", (PFN_xrVoidFunction*)&table->DestroyFacialTrackerHTC)); - (get_inst_proc_addr(instance, "xrGetFacialExpressionsHTC", (PFN_xrVoidFunction*)&table->GetFacialExpressionsHTC)); - - // ---- XR_FB_color_space extension commands - (get_inst_proc_addr(instance, "xrEnumerateColorSpacesFB", (PFN_xrVoidFunction*)&table->EnumerateColorSpacesFB)); - (get_inst_proc_addr(instance, "xrSetColorSpaceFB", (PFN_xrVoidFunction*)&table->SetColorSpaceFB)); - - // ---- XR_FB_hand_tracking_mesh extension commands - (get_inst_proc_addr(instance, "xrGetHandMeshFB", (PFN_xrVoidFunction*)&table->GetHandMeshFB)); - - // ---- XR_FB_spatial_entity extension commands - (get_inst_proc_addr(instance, "xrCreateSpatialAnchorFB", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorFB)); - (get_inst_proc_addr(instance, "xrGetSpaceUuidFB", (PFN_xrVoidFunction*)&table->GetSpaceUuidFB)); - (get_inst_proc_addr(instance, "xrEnumerateSpaceSupportedComponentsFB", (PFN_xrVoidFunction*)&table->EnumerateSpaceSupportedComponentsFB)); - (get_inst_proc_addr(instance, "xrSetSpaceComponentStatusFB", (PFN_xrVoidFunction*)&table->SetSpaceComponentStatusFB)); - (get_inst_proc_addr(instance, "xrGetSpaceComponentStatusFB", (PFN_xrVoidFunction*)&table->GetSpaceComponentStatusFB)); - - // ---- XR_FB_foveation extension commands - (get_inst_proc_addr(instance, "xrCreateFoveationProfileFB", (PFN_xrVoidFunction*)&table->CreateFoveationProfileFB)); - (get_inst_proc_addr(instance, "xrDestroyFoveationProfileFB", (PFN_xrVoidFunction*)&table->DestroyFoveationProfileFB)); - - // ---- XR_FB_keyboard_tracking extension commands - (get_inst_proc_addr(instance, "xrQuerySystemTrackedKeyboardFB", (PFN_xrVoidFunction*)&table->QuerySystemTrackedKeyboardFB)); - (get_inst_proc_addr(instance, "xrCreateKeyboardSpaceFB", (PFN_xrVoidFunction*)&table->CreateKeyboardSpaceFB)); - - // ---- XR_FB_triangle_mesh extension commands - (get_inst_proc_addr(instance, "xrCreateTriangleMeshFB", (PFN_xrVoidFunction*)&table->CreateTriangleMeshFB)); - (get_inst_proc_addr(instance, "xrDestroyTriangleMeshFB", (PFN_xrVoidFunction*)&table->DestroyTriangleMeshFB)); - (get_inst_proc_addr(instance, "xrTriangleMeshGetVertexBufferFB", (PFN_xrVoidFunction*)&table->TriangleMeshGetVertexBufferFB)); - (get_inst_proc_addr(instance, "xrTriangleMeshGetIndexBufferFB", (PFN_xrVoidFunction*)&table->TriangleMeshGetIndexBufferFB)); - (get_inst_proc_addr(instance, "xrTriangleMeshBeginUpdateFB", (PFN_xrVoidFunction*)&table->TriangleMeshBeginUpdateFB)); - (get_inst_proc_addr(instance, "xrTriangleMeshEndUpdateFB", (PFN_xrVoidFunction*)&table->TriangleMeshEndUpdateFB)); - (get_inst_proc_addr(instance, "xrTriangleMeshBeginVertexBufferUpdateFB", (PFN_xrVoidFunction*)&table->TriangleMeshBeginVertexBufferUpdateFB)); - (get_inst_proc_addr(instance, "xrTriangleMeshEndVertexBufferUpdateFB", (PFN_xrVoidFunction*)&table->TriangleMeshEndVertexBufferUpdateFB)); - - // ---- XR_FB_passthrough extension commands - (get_inst_proc_addr(instance, "xrCreatePassthroughFB", (PFN_xrVoidFunction*)&table->CreatePassthroughFB)); - (get_inst_proc_addr(instance, "xrDestroyPassthroughFB", (PFN_xrVoidFunction*)&table->DestroyPassthroughFB)); - (get_inst_proc_addr(instance, "xrPassthroughStartFB", (PFN_xrVoidFunction*)&table->PassthroughStartFB)); - (get_inst_proc_addr(instance, "xrPassthroughPauseFB", (PFN_xrVoidFunction*)&table->PassthroughPauseFB)); - (get_inst_proc_addr(instance, "xrCreatePassthroughLayerFB", (PFN_xrVoidFunction*)&table->CreatePassthroughLayerFB)); - (get_inst_proc_addr(instance, "xrDestroyPassthroughLayerFB", (PFN_xrVoidFunction*)&table->DestroyPassthroughLayerFB)); - (get_inst_proc_addr(instance, "xrPassthroughLayerPauseFB", (PFN_xrVoidFunction*)&table->PassthroughLayerPauseFB)); - (get_inst_proc_addr(instance, "xrPassthroughLayerResumeFB", (PFN_xrVoidFunction*)&table->PassthroughLayerResumeFB)); - (get_inst_proc_addr(instance, "xrPassthroughLayerSetStyleFB", (PFN_xrVoidFunction*)&table->PassthroughLayerSetStyleFB)); - (get_inst_proc_addr(instance, "xrCreateGeometryInstanceFB", (PFN_xrVoidFunction*)&table->CreateGeometryInstanceFB)); - (get_inst_proc_addr(instance, "xrDestroyGeometryInstanceFB", (PFN_xrVoidFunction*)&table->DestroyGeometryInstanceFB)); - (get_inst_proc_addr(instance, "xrGeometryInstanceSetTransformFB", (PFN_xrVoidFunction*)&table->GeometryInstanceSetTransformFB)); - - // ---- XR_FB_render_model extension commands - (get_inst_proc_addr(instance, "xrEnumerateRenderModelPathsFB", (PFN_xrVoidFunction*)&table->EnumerateRenderModelPathsFB)); - (get_inst_proc_addr(instance, "xrGetRenderModelPropertiesFB", (PFN_xrVoidFunction*)&table->GetRenderModelPropertiesFB)); - (get_inst_proc_addr(instance, "xrLoadRenderModelFB", (PFN_xrVoidFunction*)&table->LoadRenderModelFB)); - - // ---- XR_VARJO_environment_depth_estimation extension commands - (get_inst_proc_addr(instance, "xrSetEnvironmentDepthEstimationVARJO", (PFN_xrVoidFunction*)&table->SetEnvironmentDepthEstimationVARJO)); - - // ---- XR_VARJO_marker_tracking extension commands - (get_inst_proc_addr(instance, "xrSetMarkerTrackingVARJO", (PFN_xrVoidFunction*)&table->SetMarkerTrackingVARJO)); - (get_inst_proc_addr(instance, "xrSetMarkerTrackingTimeoutVARJO", (PFN_xrVoidFunction*)&table->SetMarkerTrackingTimeoutVARJO)); - (get_inst_proc_addr(instance, "xrSetMarkerTrackingPredictionVARJO", (PFN_xrVoidFunction*)&table->SetMarkerTrackingPredictionVARJO)); - (get_inst_proc_addr(instance, "xrGetMarkerSizeVARJO", (PFN_xrVoidFunction*)&table->GetMarkerSizeVARJO)); - (get_inst_proc_addr(instance, "xrCreateMarkerSpaceVARJO", (PFN_xrVoidFunction*)&table->CreateMarkerSpaceVARJO)); - - // ---- XR_VARJO_view_offset extension commands - (get_inst_proc_addr(instance, "xrSetViewOffsetVARJO", (PFN_xrVoidFunction*)&table->SetViewOffsetVARJO)); - - // ---- XR_ML_compat extension commands -#if defined(XR_USE_PLATFORM_ML) - (get_inst_proc_addr(instance, "xrCreateSpaceFromCoordinateFrameUIDML", (PFN_xrVoidFunction*)&table->CreateSpaceFromCoordinateFrameUIDML)); -#endif // defined(XR_USE_PLATFORM_ML) - - // ---- XR_MSFT_spatial_anchor_persistence extension commands - (get_inst_proc_addr(instance, "xrCreateSpatialAnchorStoreConnectionMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorStoreConnectionMSFT)); - (get_inst_proc_addr(instance, "xrDestroySpatialAnchorStoreConnectionMSFT", (PFN_xrVoidFunction*)&table->DestroySpatialAnchorStoreConnectionMSFT)); - (get_inst_proc_addr(instance, "xrPersistSpatialAnchorMSFT", (PFN_xrVoidFunction*)&table->PersistSpatialAnchorMSFT)); - (get_inst_proc_addr(instance, "xrEnumeratePersistedSpatialAnchorNamesMSFT", (PFN_xrVoidFunction*)&table->EnumeratePersistedSpatialAnchorNamesMSFT)); - (get_inst_proc_addr(instance, "xrCreateSpatialAnchorFromPersistedNameMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorFromPersistedNameMSFT)); - (get_inst_proc_addr(instance, "xrUnpersistSpatialAnchorMSFT", (PFN_xrVoidFunction*)&table->UnpersistSpatialAnchorMSFT)); - (get_inst_proc_addr(instance, "xrClearSpatialAnchorStoreMSFT", (PFN_xrVoidFunction*)&table->ClearSpatialAnchorStoreMSFT)); - - // ---- XR_FB_spatial_entity_query extension commands - (get_inst_proc_addr(instance, "xrQuerySpacesFB", (PFN_xrVoidFunction*)&table->QuerySpacesFB)); - (get_inst_proc_addr(instance, "xrRetrieveSpaceQueryResultsFB", (PFN_xrVoidFunction*)&table->RetrieveSpaceQueryResultsFB)); - - // ---- XR_FB_spatial_entity_storage extension commands - (get_inst_proc_addr(instance, "xrSaveSpaceFB", (PFN_xrVoidFunction*)&table->SaveSpaceFB)); - (get_inst_proc_addr(instance, "xrEraseSpaceFB", (PFN_xrVoidFunction*)&table->EraseSpaceFB)); - - // ---- XR_OCULUS_audio_device_guid extension commands -#if defined(XR_USE_PLATFORM_WIN32) - (get_inst_proc_addr(instance, "xrGetAudioOutputDeviceGuidOculus", (PFN_xrVoidFunction*)&table->GetAudioOutputDeviceGuidOculus)); -#endif // defined(XR_USE_PLATFORM_WIN32) -#if defined(XR_USE_PLATFORM_WIN32) - (get_inst_proc_addr(instance, "xrGetAudioInputDeviceGuidOculus", (PFN_xrVoidFunction*)&table->GetAudioInputDeviceGuidOculus)); -#endif // defined(XR_USE_PLATFORM_WIN32) - - // ---- XR_FB_spatial_entity_sharing extension commands - (get_inst_proc_addr(instance, "xrShareSpacesFB", (PFN_xrVoidFunction*)&table->ShareSpacesFB)); - - // ---- XR_FB_scene extension commands - (get_inst_proc_addr(instance, "xrGetSpaceBoundingBox2DFB", (PFN_xrVoidFunction*)&table->GetSpaceBoundingBox2DFB)); - (get_inst_proc_addr(instance, "xrGetSpaceBoundingBox3DFB", (PFN_xrVoidFunction*)&table->GetSpaceBoundingBox3DFB)); - (get_inst_proc_addr(instance, "xrGetSpaceSemanticLabelsFB", (PFN_xrVoidFunction*)&table->GetSpaceSemanticLabelsFB)); - (get_inst_proc_addr(instance, "xrGetSpaceBoundary2DFB", (PFN_xrVoidFunction*)&table->GetSpaceBoundary2DFB)); - (get_inst_proc_addr(instance, "xrGetSpaceRoomLayoutFB", (PFN_xrVoidFunction*)&table->GetSpaceRoomLayoutFB)); - - // ---- XR_ALMALENCE_digital_lens_control extension commands - (get_inst_proc_addr(instance, "xrSetDigitalLensControlALMALENCE", (PFN_xrVoidFunction*)&table->SetDigitalLensControlALMALENCE)); - - // ---- XR_FB_scene_capture extension commands - (get_inst_proc_addr(instance, "xrRequestSceneCaptureFB", (PFN_xrVoidFunction*)&table->RequestSceneCaptureFB)); - - // ---- XR_FB_spatial_entity_container extension commands - (get_inst_proc_addr(instance, "xrGetSpaceContainerFB", (PFN_xrVoidFunction*)&table->GetSpaceContainerFB)); - - // ---- XR_META_foveation_eye_tracked extension commands - (get_inst_proc_addr(instance, "xrGetFoveationEyeTrackedStateMETA", (PFN_xrVoidFunction*)&table->GetFoveationEyeTrackedStateMETA)); - - // ---- XR_FB_face_tracking extension commands - (get_inst_proc_addr(instance, "xrCreateFaceTrackerFB", (PFN_xrVoidFunction*)&table->CreateFaceTrackerFB)); - (get_inst_proc_addr(instance, "xrDestroyFaceTrackerFB", (PFN_xrVoidFunction*)&table->DestroyFaceTrackerFB)); - (get_inst_proc_addr(instance, "xrGetFaceExpressionWeightsFB", (PFN_xrVoidFunction*)&table->GetFaceExpressionWeightsFB)); - - // ---- XR_FB_eye_tracking_social extension commands - (get_inst_proc_addr(instance, "xrCreateEyeTrackerFB", (PFN_xrVoidFunction*)&table->CreateEyeTrackerFB)); - (get_inst_proc_addr(instance, "xrDestroyEyeTrackerFB", (PFN_xrVoidFunction*)&table->DestroyEyeTrackerFB)); - (get_inst_proc_addr(instance, "xrGetEyeGazesFB", (PFN_xrVoidFunction*)&table->GetEyeGazesFB)); - - // ---- XR_FB_passthrough_keyboard_hands extension commands - (get_inst_proc_addr(instance, "xrPassthroughLayerSetKeyboardHandsIntensityFB", (PFN_xrVoidFunction*)&table->PassthroughLayerSetKeyboardHandsIntensityFB)); - - // ---- XR_FB_haptic_pcm extension commands - (get_inst_proc_addr(instance, "xrGetDeviceSampleRateFB", (PFN_xrVoidFunction*)&table->GetDeviceSampleRateFB)); - - // ---- XR_META_virtual_keyboard extension commands - (get_inst_proc_addr(instance, "xrCreateVirtualKeyboardMETA", (PFN_xrVoidFunction*)&table->CreateVirtualKeyboardMETA)); - (get_inst_proc_addr(instance, "xrDestroyVirtualKeyboardMETA", (PFN_xrVoidFunction*)&table->DestroyVirtualKeyboardMETA)); - (get_inst_proc_addr(instance, "xrCreateVirtualKeyboardSpaceMETA", (PFN_xrVoidFunction*)&table->CreateVirtualKeyboardSpaceMETA)); - (get_inst_proc_addr(instance, "xrSuggestVirtualKeyboardLocationMETA", (PFN_xrVoidFunction*)&table->SuggestVirtualKeyboardLocationMETA)); - (get_inst_proc_addr(instance, "xrGetVirtualKeyboardScaleMETA", (PFN_xrVoidFunction*)&table->GetVirtualKeyboardScaleMETA)); - (get_inst_proc_addr(instance, "xrSetVirtualKeyboardModelVisibilityMETA", (PFN_xrVoidFunction*)&table->SetVirtualKeyboardModelVisibilityMETA)); - (get_inst_proc_addr(instance, "xrGetVirtualKeyboardModelAnimationStatesMETA", (PFN_xrVoidFunction*)&table->GetVirtualKeyboardModelAnimationStatesMETA)); - (get_inst_proc_addr(instance, "xrGetVirtualKeyboardDirtyTexturesMETA", (PFN_xrVoidFunction*)&table->GetVirtualKeyboardDirtyTexturesMETA)); - (get_inst_proc_addr(instance, "xrGetVirtualKeyboardTextureDataMETA", (PFN_xrVoidFunction*)&table->GetVirtualKeyboardTextureDataMETA)); - (get_inst_proc_addr(instance, "xrSendVirtualKeyboardInputMETA", (PFN_xrVoidFunction*)&table->SendVirtualKeyboardInputMETA)); - (get_inst_proc_addr(instance, "xrChangeVirtualKeyboardTextContextMETA", (PFN_xrVoidFunction*)&table->ChangeVirtualKeyboardTextContextMETA)); - - // ---- XR_OCULUS_external_camera extension commands - (get_inst_proc_addr(instance, "xrEnumerateExternalCamerasOCULUS", (PFN_xrVoidFunction*)&table->EnumerateExternalCamerasOCULUS)); - - // ---- XR_META_performance_metrics extension commands - (get_inst_proc_addr(instance, "xrEnumeratePerformanceMetricsCounterPathsMETA", (PFN_xrVoidFunction*)&table->EnumeratePerformanceMetricsCounterPathsMETA)); - (get_inst_proc_addr(instance, "xrSetPerformanceMetricsStateMETA", (PFN_xrVoidFunction*)&table->SetPerformanceMetricsStateMETA)); - (get_inst_proc_addr(instance, "xrGetPerformanceMetricsStateMETA", (PFN_xrVoidFunction*)&table->GetPerformanceMetricsStateMETA)); - (get_inst_proc_addr(instance, "xrQueryPerformanceMetricsCounterMETA", (PFN_xrVoidFunction*)&table->QueryPerformanceMetricsCounterMETA)); - - // ---- XR_FB_spatial_entity_storage_batch extension commands - (get_inst_proc_addr(instance, "xrSaveSpaceListFB", (PFN_xrVoidFunction*)&table->SaveSpaceListFB)); - - // ---- XR_FB_spatial_entity_user extension commands - (get_inst_proc_addr(instance, "xrCreateSpaceUserFB", (PFN_xrVoidFunction*)&table->CreateSpaceUserFB)); - (get_inst_proc_addr(instance, "xrGetSpaceUserIdFB", (PFN_xrVoidFunction*)&table->GetSpaceUserIdFB)); - (get_inst_proc_addr(instance, "xrDestroySpaceUserFB", (PFN_xrVoidFunction*)&table->DestroySpaceUserFB)); - - // ---- XR_META_passthrough_color_lut extension commands - (get_inst_proc_addr(instance, "xrCreatePassthroughColorLutMETA", (PFN_xrVoidFunction*)&table->CreatePassthroughColorLutMETA)); - (get_inst_proc_addr(instance, "xrDestroyPassthroughColorLutMETA", (PFN_xrVoidFunction*)&table->DestroyPassthroughColorLutMETA)); - (get_inst_proc_addr(instance, "xrUpdatePassthroughColorLutMETA", (PFN_xrVoidFunction*)&table->UpdatePassthroughColorLutMETA)); - - // ---- XR_QCOM_tracking_optimization_settings extension commands - (get_inst_proc_addr(instance, "xrSetTrackingOptimizationSettingsHintQCOM", (PFN_xrVoidFunction*)&table->SetTrackingOptimizationSettingsHintQCOM)); - - // ---- XR_HTC_passthrough extension commands - (get_inst_proc_addr(instance, "xrCreatePassthroughHTC", (PFN_xrVoidFunction*)&table->CreatePassthroughHTC)); - (get_inst_proc_addr(instance, "xrDestroyPassthroughHTC", (PFN_xrVoidFunction*)&table->DestroyPassthroughHTC)); - - // ---- XR_HTC_foveation extension commands - (get_inst_proc_addr(instance, "xrApplyFoveationHTC", (PFN_xrVoidFunction*)&table->ApplyFoveationHTC)); - - // ---- XR_MNDX_force_feedback_curl extension commands - (get_inst_proc_addr(instance, "xrApplyForceFeedbackCurlMNDX", (PFN_xrVoidFunction*)&table->ApplyForceFeedbackCurlMNDX)); - - // ---- XR_EXT_plane_detection extension commands - (get_inst_proc_addr(instance, "xrCreatePlaneDetectorEXT", (PFN_xrVoidFunction*)&table->CreatePlaneDetectorEXT)); - (get_inst_proc_addr(instance, "xrDestroyPlaneDetectorEXT", (PFN_xrVoidFunction*)&table->DestroyPlaneDetectorEXT)); - (get_inst_proc_addr(instance, "xrBeginPlaneDetectionEXT", (PFN_xrVoidFunction*)&table->BeginPlaneDetectionEXT)); - (get_inst_proc_addr(instance, "xrGetPlaneDetectionStateEXT", (PFN_xrVoidFunction*)&table->GetPlaneDetectionStateEXT)); - (get_inst_proc_addr(instance, "xrGetPlaneDetectionsEXT", (PFN_xrVoidFunction*)&table->GetPlaneDetectionsEXT)); - (get_inst_proc_addr(instance, "xrGetPlanePolygonBufferEXT", (PFN_xrVoidFunction*)&table->GetPlanePolygonBufferEXT)); -} - - -#ifdef __cplusplus -} // extern "C" -#endif - diff --git a/thirdparty/openxr/src/xr_generated_dispatch_table.h b/thirdparty/openxr/src/xr_generated_dispatch_table.h deleted file mode 100644 index b6e17f98d4..0000000000 --- a/thirdparty/openxr/src/xr_generated_dispatch_table.h +++ /dev/null @@ -1,475 +0,0 @@ -// Copyright (c) 2017-2023, The Khronos Group Inc. -// Copyright (c) 2017-2019 Valve Corporation -// Copyright (c) 2017-2019 LunarG, Inc. -// SPDX-License-Identifier: Apache-2.0 OR MIT -// *********** THIS FILE IS GENERATED - DO NOT EDIT *********** -// See utility_source_generator.py for modifications -// ************************************************************ - -// Copyright (c) 2017-2023, The Khronos Group Inc. -// Copyright (c) 2017-2019 Valve Corporation -// Copyright (c) 2017-2019 LunarG, Inc. -// -// SPDX-License-Identifier: Apache-2.0 -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Author: Mark Young <marky@lunarg.com> -// - -#pragma once -#include "xr_dependencies.h" -#include <openxr/openxr.h> -#include <openxr/openxr_platform.h> - - -#ifdef __cplusplus -extern "C" { -#endif -// Generated dispatch table -struct XrGeneratedDispatchTable { - - // ---- Core 1.0 commands - PFN_xrGetInstanceProcAddr GetInstanceProcAddr; - PFN_xrEnumerateApiLayerProperties EnumerateApiLayerProperties; - PFN_xrEnumerateInstanceExtensionProperties EnumerateInstanceExtensionProperties; - PFN_xrCreateInstance CreateInstance; - PFN_xrDestroyInstance DestroyInstance; - PFN_xrGetInstanceProperties GetInstanceProperties; - PFN_xrPollEvent PollEvent; - PFN_xrResultToString ResultToString; - PFN_xrStructureTypeToString StructureTypeToString; - PFN_xrGetSystem GetSystem; - PFN_xrGetSystemProperties GetSystemProperties; - PFN_xrEnumerateEnvironmentBlendModes EnumerateEnvironmentBlendModes; - PFN_xrCreateSession CreateSession; - PFN_xrDestroySession DestroySession; - PFN_xrEnumerateReferenceSpaces EnumerateReferenceSpaces; - PFN_xrCreateReferenceSpace CreateReferenceSpace; - PFN_xrGetReferenceSpaceBoundsRect GetReferenceSpaceBoundsRect; - PFN_xrCreateActionSpace CreateActionSpace; - PFN_xrLocateSpace LocateSpace; - PFN_xrDestroySpace DestroySpace; - PFN_xrEnumerateViewConfigurations EnumerateViewConfigurations; - PFN_xrGetViewConfigurationProperties GetViewConfigurationProperties; - PFN_xrEnumerateViewConfigurationViews EnumerateViewConfigurationViews; - PFN_xrEnumerateSwapchainFormats EnumerateSwapchainFormats; - PFN_xrCreateSwapchain CreateSwapchain; - PFN_xrDestroySwapchain DestroySwapchain; - PFN_xrEnumerateSwapchainImages EnumerateSwapchainImages; - PFN_xrAcquireSwapchainImage AcquireSwapchainImage; - PFN_xrWaitSwapchainImage WaitSwapchainImage; - PFN_xrReleaseSwapchainImage ReleaseSwapchainImage; - PFN_xrBeginSession BeginSession; - PFN_xrEndSession EndSession; - PFN_xrRequestExitSession RequestExitSession; - PFN_xrWaitFrame WaitFrame; - PFN_xrBeginFrame BeginFrame; - PFN_xrEndFrame EndFrame; - PFN_xrLocateViews LocateViews; - PFN_xrStringToPath StringToPath; - PFN_xrPathToString PathToString; - PFN_xrCreateActionSet CreateActionSet; - PFN_xrDestroyActionSet DestroyActionSet; - PFN_xrCreateAction CreateAction; - PFN_xrDestroyAction DestroyAction; - PFN_xrSuggestInteractionProfileBindings SuggestInteractionProfileBindings; - PFN_xrAttachSessionActionSets AttachSessionActionSets; - PFN_xrGetCurrentInteractionProfile GetCurrentInteractionProfile; - PFN_xrGetActionStateBoolean GetActionStateBoolean; - PFN_xrGetActionStateFloat GetActionStateFloat; - PFN_xrGetActionStateVector2f GetActionStateVector2f; - PFN_xrGetActionStatePose GetActionStatePose; - PFN_xrSyncActions SyncActions; - PFN_xrEnumerateBoundSourcesForAction EnumerateBoundSourcesForAction; - PFN_xrGetInputSourceLocalizedName GetInputSourceLocalizedName; - PFN_xrApplyHapticFeedback ApplyHapticFeedback; - PFN_xrStopHapticFeedback StopHapticFeedback; - - // ---- XR_KHR_android_thread_settings extension commands -#if defined(XR_USE_PLATFORM_ANDROID) - PFN_xrSetAndroidApplicationThreadKHR SetAndroidApplicationThreadKHR; -#endif // defined(XR_USE_PLATFORM_ANDROID) - - // ---- XR_KHR_android_surface_swapchain extension commands -#if defined(XR_USE_PLATFORM_ANDROID) - PFN_xrCreateSwapchainAndroidSurfaceKHR CreateSwapchainAndroidSurfaceKHR; -#endif // defined(XR_USE_PLATFORM_ANDROID) - - // ---- XR_KHR_opengl_enable extension commands -#if defined(XR_USE_GRAPHICS_API_OPENGL) - PFN_xrGetOpenGLGraphicsRequirementsKHR GetOpenGLGraphicsRequirementsKHR; -#endif // defined(XR_USE_GRAPHICS_API_OPENGL) - - // ---- XR_KHR_opengl_es_enable extension commands -#if defined(XR_USE_GRAPHICS_API_OPENGL_ES) - PFN_xrGetOpenGLESGraphicsRequirementsKHR GetOpenGLESGraphicsRequirementsKHR; -#endif // defined(XR_USE_GRAPHICS_API_OPENGL_ES) - - // ---- XR_KHR_vulkan_enable extension commands -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrGetVulkanInstanceExtensionsKHR GetVulkanInstanceExtensionsKHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrGetVulkanDeviceExtensionsKHR GetVulkanDeviceExtensionsKHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrGetVulkanGraphicsDeviceKHR GetVulkanGraphicsDeviceKHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrGetVulkanGraphicsRequirementsKHR GetVulkanGraphicsRequirementsKHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) - - // ---- XR_KHR_D3D11_enable extension commands -#if defined(XR_USE_GRAPHICS_API_D3D11) - PFN_xrGetD3D11GraphicsRequirementsKHR GetD3D11GraphicsRequirementsKHR; -#endif // defined(XR_USE_GRAPHICS_API_D3D11) - - // ---- XR_KHR_D3D12_enable extension commands -#if defined(XR_USE_GRAPHICS_API_D3D12) - PFN_xrGetD3D12GraphicsRequirementsKHR GetD3D12GraphicsRequirementsKHR; -#endif // defined(XR_USE_GRAPHICS_API_D3D12) - - // ---- XR_KHR_visibility_mask extension commands - PFN_xrGetVisibilityMaskKHR GetVisibilityMaskKHR; - - // ---- XR_KHR_win32_convert_performance_counter_time extension commands -#if defined(XR_USE_PLATFORM_WIN32) - PFN_xrConvertWin32PerformanceCounterToTimeKHR ConvertWin32PerformanceCounterToTimeKHR; -#endif // defined(XR_USE_PLATFORM_WIN32) -#if defined(XR_USE_PLATFORM_WIN32) - PFN_xrConvertTimeToWin32PerformanceCounterKHR ConvertTimeToWin32PerformanceCounterKHR; -#endif // defined(XR_USE_PLATFORM_WIN32) - - // ---- XR_KHR_convert_timespec_time extension commands -#if defined(XR_USE_TIMESPEC) - PFN_xrConvertTimespecTimeToTimeKHR ConvertTimespecTimeToTimeKHR; -#endif // defined(XR_USE_TIMESPEC) -#if defined(XR_USE_TIMESPEC) - PFN_xrConvertTimeToTimespecTimeKHR ConvertTimeToTimespecTimeKHR; -#endif // defined(XR_USE_TIMESPEC) - - // ---- XR_KHR_loader_init extension commands - PFN_xrInitializeLoaderKHR InitializeLoaderKHR; - - // ---- XR_KHR_vulkan_enable2 extension commands -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrCreateVulkanInstanceKHR CreateVulkanInstanceKHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrCreateVulkanDeviceKHR CreateVulkanDeviceKHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrGetVulkanGraphicsDevice2KHR GetVulkanGraphicsDevice2KHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) -#if defined(XR_USE_GRAPHICS_API_VULKAN) - PFN_xrGetVulkanGraphicsRequirements2KHR GetVulkanGraphicsRequirements2KHR; -#endif // defined(XR_USE_GRAPHICS_API_VULKAN) - - // ---- XR_EXT_performance_settings extension commands - PFN_xrPerfSettingsSetPerformanceLevelEXT PerfSettingsSetPerformanceLevelEXT; - - // ---- XR_EXT_thermal_query extension commands - PFN_xrThermalGetTemperatureTrendEXT ThermalGetTemperatureTrendEXT; - - // ---- XR_EXT_debug_utils extension commands - PFN_xrSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT; - PFN_xrCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT; - PFN_xrDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT; - PFN_xrSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT; - PFN_xrSessionBeginDebugUtilsLabelRegionEXT SessionBeginDebugUtilsLabelRegionEXT; - PFN_xrSessionEndDebugUtilsLabelRegionEXT SessionEndDebugUtilsLabelRegionEXT; - PFN_xrSessionInsertDebugUtilsLabelEXT SessionInsertDebugUtilsLabelEXT; - - // ---- XR_MSFT_spatial_anchor extension commands - PFN_xrCreateSpatialAnchorMSFT CreateSpatialAnchorMSFT; - PFN_xrCreateSpatialAnchorSpaceMSFT CreateSpatialAnchorSpaceMSFT; - PFN_xrDestroySpatialAnchorMSFT DestroySpatialAnchorMSFT; - - // ---- XR_EXT_conformance_automation extension commands - PFN_xrSetInputDeviceActiveEXT SetInputDeviceActiveEXT; - PFN_xrSetInputDeviceStateBoolEXT SetInputDeviceStateBoolEXT; - PFN_xrSetInputDeviceStateFloatEXT SetInputDeviceStateFloatEXT; - PFN_xrSetInputDeviceStateVector2fEXT SetInputDeviceStateVector2fEXT; - PFN_xrSetInputDeviceLocationEXT SetInputDeviceLocationEXT; - - // ---- XR_MSFT_spatial_graph_bridge extension commands - PFN_xrCreateSpatialGraphNodeSpaceMSFT CreateSpatialGraphNodeSpaceMSFT; - PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT TryCreateSpatialGraphStaticNodeBindingMSFT; - PFN_xrDestroySpatialGraphNodeBindingMSFT DestroySpatialGraphNodeBindingMSFT; - PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT GetSpatialGraphNodeBindingPropertiesMSFT; - - // ---- XR_EXT_hand_tracking extension commands - PFN_xrCreateHandTrackerEXT CreateHandTrackerEXT; - PFN_xrDestroyHandTrackerEXT DestroyHandTrackerEXT; - PFN_xrLocateHandJointsEXT LocateHandJointsEXT; - - // ---- XR_MSFT_hand_tracking_mesh extension commands - PFN_xrCreateHandMeshSpaceMSFT CreateHandMeshSpaceMSFT; - PFN_xrUpdateHandMeshMSFT UpdateHandMeshMSFT; - - // ---- XR_MSFT_controller_model extension commands - PFN_xrGetControllerModelKeyMSFT GetControllerModelKeyMSFT; - PFN_xrLoadControllerModelMSFT LoadControllerModelMSFT; - PFN_xrGetControllerModelPropertiesMSFT GetControllerModelPropertiesMSFT; - PFN_xrGetControllerModelStateMSFT GetControllerModelStateMSFT; - - // ---- XR_MSFT_perception_anchor_interop extension commands -#if defined(XR_USE_PLATFORM_WIN32) - PFN_xrCreateSpatialAnchorFromPerceptionAnchorMSFT CreateSpatialAnchorFromPerceptionAnchorMSFT; -#endif // defined(XR_USE_PLATFORM_WIN32) -#if defined(XR_USE_PLATFORM_WIN32) - PFN_xrTryGetPerceptionAnchorFromSpatialAnchorMSFT TryGetPerceptionAnchorFromSpatialAnchorMSFT; -#endif // defined(XR_USE_PLATFORM_WIN32) - - // ---- XR_MSFT_composition_layer_reprojection extension commands - PFN_xrEnumerateReprojectionModesMSFT EnumerateReprojectionModesMSFT; - - // ---- XR_FB_swapchain_update_state extension commands - PFN_xrUpdateSwapchainFB UpdateSwapchainFB; - PFN_xrGetSwapchainStateFB GetSwapchainStateFB; - - // ---- XR_FB_body_tracking extension commands - PFN_xrCreateBodyTrackerFB CreateBodyTrackerFB; - PFN_xrDestroyBodyTrackerFB DestroyBodyTrackerFB; - PFN_xrLocateBodyJointsFB LocateBodyJointsFB; - PFN_xrGetBodySkeletonFB GetBodySkeletonFB; - - // ---- XR_MSFT_scene_understanding extension commands - PFN_xrEnumerateSceneComputeFeaturesMSFT EnumerateSceneComputeFeaturesMSFT; - PFN_xrCreateSceneObserverMSFT CreateSceneObserverMSFT; - PFN_xrDestroySceneObserverMSFT DestroySceneObserverMSFT; - PFN_xrCreateSceneMSFT CreateSceneMSFT; - PFN_xrDestroySceneMSFT DestroySceneMSFT; - PFN_xrComputeNewSceneMSFT ComputeNewSceneMSFT; - PFN_xrGetSceneComputeStateMSFT GetSceneComputeStateMSFT; - PFN_xrGetSceneComponentsMSFT GetSceneComponentsMSFT; - PFN_xrLocateSceneComponentsMSFT LocateSceneComponentsMSFT; - PFN_xrGetSceneMeshBuffersMSFT GetSceneMeshBuffersMSFT; - - // ---- XR_MSFT_scene_understanding_serialization extension commands - PFN_xrDeserializeSceneMSFT DeserializeSceneMSFT; - PFN_xrGetSerializedSceneFragmentDataMSFT GetSerializedSceneFragmentDataMSFT; - - // ---- XR_FB_display_refresh_rate extension commands - PFN_xrEnumerateDisplayRefreshRatesFB EnumerateDisplayRefreshRatesFB; - PFN_xrGetDisplayRefreshRateFB GetDisplayRefreshRateFB; - PFN_xrRequestDisplayRefreshRateFB RequestDisplayRefreshRateFB; - - // ---- XR_HTCX_vive_tracker_interaction extension commands - PFN_xrEnumerateViveTrackerPathsHTCX EnumerateViveTrackerPathsHTCX; - - // ---- XR_HTC_facial_tracking extension commands - PFN_xrCreateFacialTrackerHTC CreateFacialTrackerHTC; - PFN_xrDestroyFacialTrackerHTC DestroyFacialTrackerHTC; - PFN_xrGetFacialExpressionsHTC GetFacialExpressionsHTC; - - // ---- XR_FB_color_space extension commands - PFN_xrEnumerateColorSpacesFB EnumerateColorSpacesFB; - PFN_xrSetColorSpaceFB SetColorSpaceFB; - - // ---- XR_FB_hand_tracking_mesh extension commands - PFN_xrGetHandMeshFB GetHandMeshFB; - - // ---- XR_FB_spatial_entity extension commands - PFN_xrCreateSpatialAnchorFB CreateSpatialAnchorFB; - PFN_xrGetSpaceUuidFB GetSpaceUuidFB; - PFN_xrEnumerateSpaceSupportedComponentsFB EnumerateSpaceSupportedComponentsFB; - PFN_xrSetSpaceComponentStatusFB SetSpaceComponentStatusFB; - PFN_xrGetSpaceComponentStatusFB GetSpaceComponentStatusFB; - - // ---- XR_FB_foveation extension commands - PFN_xrCreateFoveationProfileFB CreateFoveationProfileFB; - PFN_xrDestroyFoveationProfileFB DestroyFoveationProfileFB; - - // ---- XR_FB_keyboard_tracking extension commands - PFN_xrQuerySystemTrackedKeyboardFB QuerySystemTrackedKeyboardFB; - PFN_xrCreateKeyboardSpaceFB CreateKeyboardSpaceFB; - - // ---- XR_FB_triangle_mesh extension commands - PFN_xrCreateTriangleMeshFB CreateTriangleMeshFB; - PFN_xrDestroyTriangleMeshFB DestroyTriangleMeshFB; - PFN_xrTriangleMeshGetVertexBufferFB TriangleMeshGetVertexBufferFB; - PFN_xrTriangleMeshGetIndexBufferFB TriangleMeshGetIndexBufferFB; - PFN_xrTriangleMeshBeginUpdateFB TriangleMeshBeginUpdateFB; - PFN_xrTriangleMeshEndUpdateFB TriangleMeshEndUpdateFB; - PFN_xrTriangleMeshBeginVertexBufferUpdateFB TriangleMeshBeginVertexBufferUpdateFB; - PFN_xrTriangleMeshEndVertexBufferUpdateFB TriangleMeshEndVertexBufferUpdateFB; - - // ---- XR_FB_passthrough extension commands - PFN_xrCreatePassthroughFB CreatePassthroughFB; - PFN_xrDestroyPassthroughFB DestroyPassthroughFB; - PFN_xrPassthroughStartFB PassthroughStartFB; - PFN_xrPassthroughPauseFB PassthroughPauseFB; - PFN_xrCreatePassthroughLayerFB CreatePassthroughLayerFB; - PFN_xrDestroyPassthroughLayerFB DestroyPassthroughLayerFB; - PFN_xrPassthroughLayerPauseFB PassthroughLayerPauseFB; - PFN_xrPassthroughLayerResumeFB PassthroughLayerResumeFB; - PFN_xrPassthroughLayerSetStyleFB PassthroughLayerSetStyleFB; - PFN_xrCreateGeometryInstanceFB CreateGeometryInstanceFB; - PFN_xrDestroyGeometryInstanceFB DestroyGeometryInstanceFB; - PFN_xrGeometryInstanceSetTransformFB GeometryInstanceSetTransformFB; - - // ---- XR_FB_render_model extension commands - PFN_xrEnumerateRenderModelPathsFB EnumerateRenderModelPathsFB; - PFN_xrGetRenderModelPropertiesFB GetRenderModelPropertiesFB; - PFN_xrLoadRenderModelFB LoadRenderModelFB; - - // ---- XR_VARJO_environment_depth_estimation extension commands - PFN_xrSetEnvironmentDepthEstimationVARJO SetEnvironmentDepthEstimationVARJO; - - // ---- XR_VARJO_marker_tracking extension commands - PFN_xrSetMarkerTrackingVARJO SetMarkerTrackingVARJO; - PFN_xrSetMarkerTrackingTimeoutVARJO SetMarkerTrackingTimeoutVARJO; - PFN_xrSetMarkerTrackingPredictionVARJO SetMarkerTrackingPredictionVARJO; - PFN_xrGetMarkerSizeVARJO GetMarkerSizeVARJO; - PFN_xrCreateMarkerSpaceVARJO CreateMarkerSpaceVARJO; - - // ---- XR_VARJO_view_offset extension commands - PFN_xrSetViewOffsetVARJO SetViewOffsetVARJO; - - // ---- XR_ML_compat extension commands -#if defined(XR_USE_PLATFORM_ML) - PFN_xrCreateSpaceFromCoordinateFrameUIDML CreateSpaceFromCoordinateFrameUIDML; -#endif // defined(XR_USE_PLATFORM_ML) - - // ---- XR_MSFT_spatial_anchor_persistence extension commands - PFN_xrCreateSpatialAnchorStoreConnectionMSFT CreateSpatialAnchorStoreConnectionMSFT; - PFN_xrDestroySpatialAnchorStoreConnectionMSFT DestroySpatialAnchorStoreConnectionMSFT; - PFN_xrPersistSpatialAnchorMSFT PersistSpatialAnchorMSFT; - PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT EnumeratePersistedSpatialAnchorNamesMSFT; - PFN_xrCreateSpatialAnchorFromPersistedNameMSFT CreateSpatialAnchorFromPersistedNameMSFT; - PFN_xrUnpersistSpatialAnchorMSFT UnpersistSpatialAnchorMSFT; - PFN_xrClearSpatialAnchorStoreMSFT ClearSpatialAnchorStoreMSFT; - - // ---- XR_FB_spatial_entity_query extension commands - PFN_xrQuerySpacesFB QuerySpacesFB; - PFN_xrRetrieveSpaceQueryResultsFB RetrieveSpaceQueryResultsFB; - - // ---- XR_FB_spatial_entity_storage extension commands - PFN_xrSaveSpaceFB SaveSpaceFB; - PFN_xrEraseSpaceFB EraseSpaceFB; - - // ---- XR_OCULUS_audio_device_guid extension commands -#if defined(XR_USE_PLATFORM_WIN32) - PFN_xrGetAudioOutputDeviceGuidOculus GetAudioOutputDeviceGuidOculus; -#endif // defined(XR_USE_PLATFORM_WIN32) -#if defined(XR_USE_PLATFORM_WIN32) - PFN_xrGetAudioInputDeviceGuidOculus GetAudioInputDeviceGuidOculus; -#endif // defined(XR_USE_PLATFORM_WIN32) - - // ---- XR_FB_spatial_entity_sharing extension commands - PFN_xrShareSpacesFB ShareSpacesFB; - - // ---- XR_FB_scene extension commands - PFN_xrGetSpaceBoundingBox2DFB GetSpaceBoundingBox2DFB; - PFN_xrGetSpaceBoundingBox3DFB GetSpaceBoundingBox3DFB; - PFN_xrGetSpaceSemanticLabelsFB GetSpaceSemanticLabelsFB; - PFN_xrGetSpaceBoundary2DFB GetSpaceBoundary2DFB; - PFN_xrGetSpaceRoomLayoutFB GetSpaceRoomLayoutFB; - - // ---- XR_ALMALENCE_digital_lens_control extension commands - PFN_xrSetDigitalLensControlALMALENCE SetDigitalLensControlALMALENCE; - - // ---- XR_FB_scene_capture extension commands - PFN_xrRequestSceneCaptureFB RequestSceneCaptureFB; - - // ---- XR_FB_spatial_entity_container extension commands - PFN_xrGetSpaceContainerFB GetSpaceContainerFB; - - // ---- XR_META_foveation_eye_tracked extension commands - PFN_xrGetFoveationEyeTrackedStateMETA GetFoveationEyeTrackedStateMETA; - - // ---- XR_FB_face_tracking extension commands - PFN_xrCreateFaceTrackerFB CreateFaceTrackerFB; - PFN_xrDestroyFaceTrackerFB DestroyFaceTrackerFB; - PFN_xrGetFaceExpressionWeightsFB GetFaceExpressionWeightsFB; - - // ---- XR_FB_eye_tracking_social extension commands - PFN_xrCreateEyeTrackerFB CreateEyeTrackerFB; - PFN_xrDestroyEyeTrackerFB DestroyEyeTrackerFB; - PFN_xrGetEyeGazesFB GetEyeGazesFB; - - // ---- XR_FB_passthrough_keyboard_hands extension commands - PFN_xrPassthroughLayerSetKeyboardHandsIntensityFB PassthroughLayerSetKeyboardHandsIntensityFB; - - // ---- XR_FB_haptic_pcm extension commands - PFN_xrGetDeviceSampleRateFB GetDeviceSampleRateFB; - - // ---- XR_META_virtual_keyboard extension commands - PFN_xrCreateVirtualKeyboardMETA CreateVirtualKeyboardMETA; - PFN_xrDestroyVirtualKeyboardMETA DestroyVirtualKeyboardMETA; - PFN_xrCreateVirtualKeyboardSpaceMETA CreateVirtualKeyboardSpaceMETA; - PFN_xrSuggestVirtualKeyboardLocationMETA SuggestVirtualKeyboardLocationMETA; - PFN_xrGetVirtualKeyboardScaleMETA GetVirtualKeyboardScaleMETA; - PFN_xrSetVirtualKeyboardModelVisibilityMETA SetVirtualKeyboardModelVisibilityMETA; - PFN_xrGetVirtualKeyboardModelAnimationStatesMETA GetVirtualKeyboardModelAnimationStatesMETA; - PFN_xrGetVirtualKeyboardDirtyTexturesMETA GetVirtualKeyboardDirtyTexturesMETA; - PFN_xrGetVirtualKeyboardTextureDataMETA GetVirtualKeyboardTextureDataMETA; - PFN_xrSendVirtualKeyboardInputMETA SendVirtualKeyboardInputMETA; - PFN_xrChangeVirtualKeyboardTextContextMETA ChangeVirtualKeyboardTextContextMETA; - - // ---- XR_OCULUS_external_camera extension commands - PFN_xrEnumerateExternalCamerasOCULUS EnumerateExternalCamerasOCULUS; - - // ---- XR_META_performance_metrics extension commands - PFN_xrEnumeratePerformanceMetricsCounterPathsMETA EnumeratePerformanceMetricsCounterPathsMETA; - PFN_xrSetPerformanceMetricsStateMETA SetPerformanceMetricsStateMETA; - PFN_xrGetPerformanceMetricsStateMETA GetPerformanceMetricsStateMETA; - PFN_xrQueryPerformanceMetricsCounterMETA QueryPerformanceMetricsCounterMETA; - - // ---- XR_FB_spatial_entity_storage_batch extension commands - PFN_xrSaveSpaceListFB SaveSpaceListFB; - - // ---- XR_FB_spatial_entity_user extension commands - PFN_xrCreateSpaceUserFB CreateSpaceUserFB; - PFN_xrGetSpaceUserIdFB GetSpaceUserIdFB; - PFN_xrDestroySpaceUserFB DestroySpaceUserFB; - - // ---- XR_META_passthrough_color_lut extension commands - PFN_xrCreatePassthroughColorLutMETA CreatePassthroughColorLutMETA; - PFN_xrDestroyPassthroughColorLutMETA DestroyPassthroughColorLutMETA; - PFN_xrUpdatePassthroughColorLutMETA UpdatePassthroughColorLutMETA; - - // ---- XR_QCOM_tracking_optimization_settings extension commands - PFN_xrSetTrackingOptimizationSettingsHintQCOM SetTrackingOptimizationSettingsHintQCOM; - - // ---- XR_HTC_passthrough extension commands - PFN_xrCreatePassthroughHTC CreatePassthroughHTC; - PFN_xrDestroyPassthroughHTC DestroyPassthroughHTC; - - // ---- XR_HTC_foveation extension commands - PFN_xrApplyFoveationHTC ApplyFoveationHTC; - - // ---- XR_MNDX_force_feedback_curl extension commands - PFN_xrApplyForceFeedbackCurlMNDX ApplyForceFeedbackCurlMNDX; - - // ---- XR_EXT_plane_detection extension commands - PFN_xrCreatePlaneDetectorEXT CreatePlaneDetectorEXT; - PFN_xrDestroyPlaneDetectorEXT DestroyPlaneDetectorEXT; - PFN_xrBeginPlaneDetectionEXT BeginPlaneDetectionEXT; - PFN_xrGetPlaneDetectionStateEXT GetPlaneDetectionStateEXT; - PFN_xrGetPlaneDetectionsEXT GetPlaneDetectionsEXT; - PFN_xrGetPlanePolygonBufferEXT GetPlanePolygonBufferEXT; -}; - - -// Prototype for dispatch table helper function -void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table, - XrInstance instance, - PFN_xrGetInstanceProcAddr get_inst_proc_addr); - -#ifdef __cplusplus -} // extern "C" -#endif - diff --git a/thirdparty/openxr/src/xr_generated_dispatch_table_core.c b/thirdparty/openxr/src/xr_generated_dispatch_table_core.c new file mode 100644 index 0000000000..de88ef7e6c --- /dev/null +++ b/thirdparty/openxr/src/xr_generated_dispatch_table_core.c @@ -0,0 +1,113 @@ +// Copyright (c) 2017-2023, The Khronos Group Inc. +// Copyright (c) 2017-2019, Valve Corporation +// Copyright (c) 2017-2019, LunarG, Inc. + +// SPDX-License-Identifier: Apache-2.0 OR MIT + +// *********** THIS FILE IS GENERATED - DO NOT EDIT *********** +// See utility_source_generator.py for modifications +// ************************************************************ + +// Copyright (c) 2017-2023, The Khronos Group Inc. +// Copyright (c) 2017-2019 Valve Corporation +// Copyright (c) 2017-2019 LunarG, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Author: Mark Young <marky@lunarg.com> +// + +#include "xr_generated_dispatch_table_core.h" + + + +#ifdef __cplusplus +extern "C" { +#endif +// Helper function to populate an instance dispatch table +void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table, + XrInstance instance, + PFN_xrGetInstanceProcAddr get_inst_proc_addr) { + + // ---- Core 1.0 commands + table->GetInstanceProcAddr = get_inst_proc_addr; + (get_inst_proc_addr(instance, "xrCreateInstance", (PFN_xrVoidFunction*)&table->CreateInstance)); + (get_inst_proc_addr(instance, "xrDestroyInstance", (PFN_xrVoidFunction*)&table->DestroyInstance)); + (get_inst_proc_addr(instance, "xrGetInstanceProperties", (PFN_xrVoidFunction*)&table->GetInstanceProperties)); + (get_inst_proc_addr(instance, "xrPollEvent", (PFN_xrVoidFunction*)&table->PollEvent)); + (get_inst_proc_addr(instance, "xrResultToString", (PFN_xrVoidFunction*)&table->ResultToString)); + (get_inst_proc_addr(instance, "xrStructureTypeToString", (PFN_xrVoidFunction*)&table->StructureTypeToString)); + (get_inst_proc_addr(instance, "xrGetSystem", (PFN_xrVoidFunction*)&table->GetSystem)); + (get_inst_proc_addr(instance, "xrGetSystemProperties", (PFN_xrVoidFunction*)&table->GetSystemProperties)); + (get_inst_proc_addr(instance, "xrEnumerateEnvironmentBlendModes", (PFN_xrVoidFunction*)&table->EnumerateEnvironmentBlendModes)); + (get_inst_proc_addr(instance, "xrCreateSession", (PFN_xrVoidFunction*)&table->CreateSession)); + (get_inst_proc_addr(instance, "xrDestroySession", (PFN_xrVoidFunction*)&table->DestroySession)); + (get_inst_proc_addr(instance, "xrEnumerateReferenceSpaces", (PFN_xrVoidFunction*)&table->EnumerateReferenceSpaces)); + (get_inst_proc_addr(instance, "xrCreateReferenceSpace", (PFN_xrVoidFunction*)&table->CreateReferenceSpace)); + (get_inst_proc_addr(instance, "xrGetReferenceSpaceBoundsRect", (PFN_xrVoidFunction*)&table->GetReferenceSpaceBoundsRect)); + (get_inst_proc_addr(instance, "xrCreateActionSpace", (PFN_xrVoidFunction*)&table->CreateActionSpace)); + (get_inst_proc_addr(instance, "xrLocateSpace", (PFN_xrVoidFunction*)&table->LocateSpace)); + (get_inst_proc_addr(instance, "xrDestroySpace", (PFN_xrVoidFunction*)&table->DestroySpace)); + (get_inst_proc_addr(instance, "xrEnumerateViewConfigurations", (PFN_xrVoidFunction*)&table->EnumerateViewConfigurations)); + (get_inst_proc_addr(instance, "xrGetViewConfigurationProperties", (PFN_xrVoidFunction*)&table->GetViewConfigurationProperties)); + (get_inst_proc_addr(instance, "xrEnumerateViewConfigurationViews", (PFN_xrVoidFunction*)&table->EnumerateViewConfigurationViews)); + (get_inst_proc_addr(instance, "xrEnumerateSwapchainFormats", (PFN_xrVoidFunction*)&table->EnumerateSwapchainFormats)); + (get_inst_proc_addr(instance, "xrCreateSwapchain", (PFN_xrVoidFunction*)&table->CreateSwapchain)); + (get_inst_proc_addr(instance, "xrDestroySwapchain", (PFN_xrVoidFunction*)&table->DestroySwapchain)); + (get_inst_proc_addr(instance, "xrEnumerateSwapchainImages", (PFN_xrVoidFunction*)&table->EnumerateSwapchainImages)); + (get_inst_proc_addr(instance, "xrAcquireSwapchainImage", (PFN_xrVoidFunction*)&table->AcquireSwapchainImage)); + (get_inst_proc_addr(instance, "xrWaitSwapchainImage", (PFN_xrVoidFunction*)&table->WaitSwapchainImage)); + (get_inst_proc_addr(instance, "xrReleaseSwapchainImage", (PFN_xrVoidFunction*)&table->ReleaseSwapchainImage)); + (get_inst_proc_addr(instance, "xrBeginSession", (PFN_xrVoidFunction*)&table->BeginSession)); + (get_inst_proc_addr(instance, "xrEndSession", (PFN_xrVoidFunction*)&table->EndSession)); + (get_inst_proc_addr(instance, "xrRequestExitSession", (PFN_xrVoidFunction*)&table->RequestExitSession)); + (get_inst_proc_addr(instance, "xrWaitFrame", (PFN_xrVoidFunction*)&table->WaitFrame)); + (get_inst_proc_addr(instance, "xrBeginFrame", (PFN_xrVoidFunction*)&table->BeginFrame)); + (get_inst_proc_addr(instance, "xrEndFrame", (PFN_xrVoidFunction*)&table->EndFrame)); + (get_inst_proc_addr(instance, "xrLocateViews", (PFN_xrVoidFunction*)&table->LocateViews)); + (get_inst_proc_addr(instance, "xrStringToPath", (PFN_xrVoidFunction*)&table->StringToPath)); + (get_inst_proc_addr(instance, "xrPathToString", (PFN_xrVoidFunction*)&table->PathToString)); + (get_inst_proc_addr(instance, "xrCreateActionSet", (PFN_xrVoidFunction*)&table->CreateActionSet)); + (get_inst_proc_addr(instance, "xrDestroyActionSet", (PFN_xrVoidFunction*)&table->DestroyActionSet)); + (get_inst_proc_addr(instance, "xrCreateAction", (PFN_xrVoidFunction*)&table->CreateAction)); + (get_inst_proc_addr(instance, "xrDestroyAction", (PFN_xrVoidFunction*)&table->DestroyAction)); + (get_inst_proc_addr(instance, "xrSuggestInteractionProfileBindings", (PFN_xrVoidFunction*)&table->SuggestInteractionProfileBindings)); + (get_inst_proc_addr(instance, "xrAttachSessionActionSets", (PFN_xrVoidFunction*)&table->AttachSessionActionSets)); + (get_inst_proc_addr(instance, "xrGetCurrentInteractionProfile", (PFN_xrVoidFunction*)&table->GetCurrentInteractionProfile)); + (get_inst_proc_addr(instance, "xrGetActionStateBoolean", (PFN_xrVoidFunction*)&table->GetActionStateBoolean)); + (get_inst_proc_addr(instance, "xrGetActionStateFloat", (PFN_xrVoidFunction*)&table->GetActionStateFloat)); + (get_inst_proc_addr(instance, "xrGetActionStateVector2f", (PFN_xrVoidFunction*)&table->GetActionStateVector2f)); + (get_inst_proc_addr(instance, "xrGetActionStatePose", (PFN_xrVoidFunction*)&table->GetActionStatePose)); + (get_inst_proc_addr(instance, "xrSyncActions", (PFN_xrVoidFunction*)&table->SyncActions)); + (get_inst_proc_addr(instance, "xrEnumerateBoundSourcesForAction", (PFN_xrVoidFunction*)&table->EnumerateBoundSourcesForAction)); + (get_inst_proc_addr(instance, "xrGetInputSourceLocalizedName", (PFN_xrVoidFunction*)&table->GetInputSourceLocalizedName)); + (get_inst_proc_addr(instance, "xrApplyHapticFeedback", (PFN_xrVoidFunction*)&table->ApplyHapticFeedback)); + (get_inst_proc_addr(instance, "xrStopHapticFeedback", (PFN_xrVoidFunction*)&table->StopHapticFeedback)); + + // ---- XR_EXT_debug_utils extension commands + (get_inst_proc_addr(instance, "xrSetDebugUtilsObjectNameEXT", (PFN_xrVoidFunction*)&table->SetDebugUtilsObjectNameEXT)); + (get_inst_proc_addr(instance, "xrCreateDebugUtilsMessengerEXT", (PFN_xrVoidFunction*)&table->CreateDebugUtilsMessengerEXT)); + (get_inst_proc_addr(instance, "xrDestroyDebugUtilsMessengerEXT", (PFN_xrVoidFunction*)&table->DestroyDebugUtilsMessengerEXT)); + (get_inst_proc_addr(instance, "xrSubmitDebugUtilsMessageEXT", (PFN_xrVoidFunction*)&table->SubmitDebugUtilsMessageEXT)); + (get_inst_proc_addr(instance, "xrSessionBeginDebugUtilsLabelRegionEXT", (PFN_xrVoidFunction*)&table->SessionBeginDebugUtilsLabelRegionEXT)); + (get_inst_proc_addr(instance, "xrSessionEndDebugUtilsLabelRegionEXT", (PFN_xrVoidFunction*)&table->SessionEndDebugUtilsLabelRegionEXT)); + (get_inst_proc_addr(instance, "xrSessionInsertDebugUtilsLabelEXT", (PFN_xrVoidFunction*)&table->SessionInsertDebugUtilsLabelEXT)); +} + + +#ifdef __cplusplus +} // extern "C" +#endif + diff --git a/thirdparty/openxr/src/xr_generated_dispatch_table_core.h b/thirdparty/openxr/src/xr_generated_dispatch_table_core.h new file mode 100644 index 0000000000..0f3e7e0502 --- /dev/null +++ b/thirdparty/openxr/src/xr_generated_dispatch_table_core.h @@ -0,0 +1,119 @@ +// Copyright (c) 2017-2023, The Khronos Group Inc. +// Copyright (c) 2017-2019, Valve Corporation +// Copyright (c) 2017-2019, LunarG, Inc. + +// SPDX-License-Identifier: Apache-2.0 OR MIT + +// *********** THIS FILE IS GENERATED - DO NOT EDIT *********** +// See utility_source_generator.py for modifications +// ************************************************************ + +// Copyright (c) 2017-2023, The Khronos Group Inc. +// Copyright (c) 2017-2019 Valve Corporation +// Copyright (c) 2017-2019 LunarG, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Author: Mark Young <marky@lunarg.com> +// + +#pragma once + +#include <openxr/openxr.h> + + +#ifdef __cplusplus +extern "C" { +#endif +// Generated dispatch table +struct XrGeneratedDispatchTable { + + // ---- Core 1.0 commands + PFN_xrGetInstanceProcAddr GetInstanceProcAddr; + PFN_xrEnumerateApiLayerProperties EnumerateApiLayerProperties; + PFN_xrEnumerateInstanceExtensionProperties EnumerateInstanceExtensionProperties; + PFN_xrCreateInstance CreateInstance; + PFN_xrDestroyInstance DestroyInstance; + PFN_xrGetInstanceProperties GetInstanceProperties; + PFN_xrPollEvent PollEvent; + PFN_xrResultToString ResultToString; + PFN_xrStructureTypeToString StructureTypeToString; + PFN_xrGetSystem GetSystem; + PFN_xrGetSystemProperties GetSystemProperties; + PFN_xrEnumerateEnvironmentBlendModes EnumerateEnvironmentBlendModes; + PFN_xrCreateSession CreateSession; + PFN_xrDestroySession DestroySession; + PFN_xrEnumerateReferenceSpaces EnumerateReferenceSpaces; + PFN_xrCreateReferenceSpace CreateReferenceSpace; + PFN_xrGetReferenceSpaceBoundsRect GetReferenceSpaceBoundsRect; + PFN_xrCreateActionSpace CreateActionSpace; + PFN_xrLocateSpace LocateSpace; + PFN_xrDestroySpace DestroySpace; + PFN_xrEnumerateViewConfigurations EnumerateViewConfigurations; + PFN_xrGetViewConfigurationProperties GetViewConfigurationProperties; + PFN_xrEnumerateViewConfigurationViews EnumerateViewConfigurationViews; + PFN_xrEnumerateSwapchainFormats EnumerateSwapchainFormats; + PFN_xrCreateSwapchain CreateSwapchain; + PFN_xrDestroySwapchain DestroySwapchain; + PFN_xrEnumerateSwapchainImages EnumerateSwapchainImages; + PFN_xrAcquireSwapchainImage AcquireSwapchainImage; + PFN_xrWaitSwapchainImage WaitSwapchainImage; + PFN_xrReleaseSwapchainImage ReleaseSwapchainImage; + PFN_xrBeginSession BeginSession; + PFN_xrEndSession EndSession; + PFN_xrRequestExitSession RequestExitSession; + PFN_xrWaitFrame WaitFrame; + PFN_xrBeginFrame BeginFrame; + PFN_xrEndFrame EndFrame; + PFN_xrLocateViews LocateViews; + PFN_xrStringToPath StringToPath; + PFN_xrPathToString PathToString; + PFN_xrCreateActionSet CreateActionSet; + PFN_xrDestroyActionSet DestroyActionSet; + PFN_xrCreateAction CreateAction; + PFN_xrDestroyAction DestroyAction; + PFN_xrSuggestInteractionProfileBindings SuggestInteractionProfileBindings; + PFN_xrAttachSessionActionSets AttachSessionActionSets; + PFN_xrGetCurrentInteractionProfile GetCurrentInteractionProfile; + PFN_xrGetActionStateBoolean GetActionStateBoolean; + PFN_xrGetActionStateFloat GetActionStateFloat; + PFN_xrGetActionStateVector2f GetActionStateVector2f; + PFN_xrGetActionStatePose GetActionStatePose; + PFN_xrSyncActions SyncActions; + PFN_xrEnumerateBoundSourcesForAction EnumerateBoundSourcesForAction; + PFN_xrGetInputSourceLocalizedName GetInputSourceLocalizedName; + PFN_xrApplyHapticFeedback ApplyHapticFeedback; + PFN_xrStopHapticFeedback StopHapticFeedback; + + // ---- XR_EXT_debug_utils extension commands + PFN_xrSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT; + PFN_xrCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT; + PFN_xrDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT; + PFN_xrSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT; + PFN_xrSessionBeginDebugUtilsLabelRegionEXT SessionBeginDebugUtilsLabelRegionEXT; + PFN_xrSessionEndDebugUtilsLabelRegionEXT SessionEndDebugUtilsLabelRegionEXT; + PFN_xrSessionInsertDebugUtilsLabelEXT SessionInsertDebugUtilsLabelEXT; +}; + + +// Prototype for dispatch table helper function +void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table, + XrInstance instance, + PFN_xrGetInstanceProcAddr get_inst_proc_addr); + +#ifdef __cplusplus +} // extern "C" +#endif + |