diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index 9bf3df61..b011d795 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -33,12 +33,6 @@ set_target_properties(uv PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${platform_spec_path}/include/uv ) -add_library(openxr SHARED IMPORTED GLOBAL) -set_target_properties(openxr PROPERTIES - IMPORTED_LOCATION ${platform_spec_path}/libxr_loader.so - INTERFACE_INCLUDE_DIRECTORIES ${platform_spec_path}/include/openxr -) - add_library(webp STATIC IMPORTED GLOBAL) set_target_properties(webp PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/libwebp.a @@ -69,6 +63,35 @@ target_include_directories(android_platform PUBLIC # android log dl # ) +if(USE_XR) + include(${CMAKE_CURRENT_LIST_DIR}/xr.cmake) + if(BUILD_XR_NATIVE) + list(APPEND XR_EXTERNAL_SOURCES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/xr/Xr.h) + list(APPEND XR_EXTERNAL_SOURCES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/platform/interfaces/modules/XRCommon.h) + list(APPEND XR_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/xr) + list(APPEND XR_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/platform/interfaces/modules) + include(${CMAKE_CURRENT_LIST_DIR}/../../../../CCOpenXR/internal/CMakeLists.txt) + else() + add_library(xr STATIC IMPORTED GLOBAL) + set_target_properties(xr PROPERTIES + IMPORTED_LOCATION ${platform_spec_path}/xr/${XR_FOLDER}/libxr.a + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/xr + ) + + set_property(TARGET xr APPEND PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/../../cocos/platform/interfaces/modules + ) + + target_link_libraries(xr INTERFACE + ${XR_EXTERNAL_LIBS} + ) + endif() + + list(APPEND CC_EXTERNAL_LIBS + xr + ) +endif() + set(se_libs_name) if(USE_SE_V8) @@ -76,6 +99,7 @@ if(USE_SE_V8) add_library(v8_monolith STATIC IMPORTED GLOBAL) set_target_properties(v8_monolith PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/v8/libv8_monolith.a + INTERFACE_INCLUDE_DIRECTORIES ${platform_spec_path}/include/v8 ) if(ANDROID_ABI STREQUAL "arm64-v8a" OR ANDROID_ABI STREQUAL "x86_64") @@ -92,7 +116,7 @@ if(USE_SE_V8) set(se_libs_name v8_monolith v8_inspector) endif() -if(USE_SOCKET) +if(USE_WEBSOCKET_SERVER) list(APPEND CC_EXTERNAL_LIBS websockets ssl @@ -100,19 +124,19 @@ if(USE_SOCKET) ) endif() -if(USE_SE_V8 AND USE_V8_DEBUGGER) +if(USE_SE_V8 AND USE_V8_DEBUGGER ) list(APPEND CC_EXTERNAL_LIBS v8_inspector ) endif() ############################# glslang ############################# - set(glslang_libs_name glslang glslang-default-resource-limits MachineIndependent OGLCompiler OSDependent SPIRV SPIRV-Tools-opt SPIRV-Tools GenericCodeGen) foreach(lib IN LISTS glslang_libs_name) add_library(${lib} STATIC IMPORTED GLOBAL) set_target_properties(${lib} PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/glslang/lib${lib}.a + # INTERFACE_INCLUDE_DIRECTORIES ${platform_spec_path}/include/glslang ) endforeach() @@ -145,14 +169,24 @@ endif() list(APPEND CC_EXTERNAL_LIBS jpeg png - uv webp + uv android_platform - ${glslang_libs_name} - ${tbb_libs_name} ${PhysXSDK} ) +if(USE_JOB_SYSTEM_TBB OR CC_USE_VULKAN) ## VKDevice.cpp use tbb_allocator.h + list(APPEND CC_EXTERNAL_LIBS + ${tbb_libs_name} + ) +endif() + +if(CC_USE_VULKAN) + list(APPEND CC_EXTERNAL_LIBS + ${glslang_libs_name} + ) +endif() + set(ZLIB z) if(NOT USE_MODULES) list(APPEND CC_EXTERNAL_LIBS ${ZLIB} ${se_libs_name}) @@ -162,8 +196,5 @@ endif() list(APPEND CC_EXTERNAL_INCLUDES ${platform_spec_path}/include - ${platform_spec_path}/include/v8 - ${platform_spec_path}/include/uv - ${platform_spec_path}/include/glslang ${CMAKE_ANDROID_NDK}/sources/android/native_app_glue ) diff --git a/android/arm64-v8a/include/openxr/openxr.h b/android/arm64-v8a/include/openxr/openxr.h deleted file mode 100644 index 33fb1014..00000000 --- a/android/arm64-v8a/include/openxr/openxr.h +++ /dev/null @@ -1,1612 +0,0 @@ -#ifndef OPENXR_H_ -#define OPENXR_H_ 1 - -/* -** Copyright (c) 2017-2019 The Khronos Group Inc. -** -** 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. -*/ - -/* -** This header is generated from the Khronos OpenXR XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define XR_VERSION_1_0 1 -#include "openxr_platform_defines.h" -#define XR_MAKE_VERSION(major, minor, patch) \ - ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL)) - -// OpenXR current version number. -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 3) - -#define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL) -#define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL) -#define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) - -#if !defined(XR_NULL_HANDLE) -#if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED - #define XR_NULL_HANDLE nullptr -#else - #define XR_NULL_HANDLE 0 -#endif -#endif - - - -#define XR_NULL_SYSTEM_ID 0 - - -#define XR_NULL_PATH 0 - - -#define XR_SUCCEEDED(result) ((result) >= 0) - - -#define XR_FAILED(result) ((result) < 0) - - -#define XR_UNQUALIFIED_SUCCESS(result) ((result) == 0) - - -#define XR_NO_DURATION 0 - - -#define XR_INFINITE_DURATION 0x7fffffffffffffffLL - - -#define XR_MIN_HAPTIC_DURATION -1 - - -#define XR_FREQUENCY_UNSPECIFIED 0 - - -#define XR_MAX_EVENT_DATA_SIZE sizeof(XrEventDataBuffer) - - -#if !defined(XR_MAY_ALIAS) -#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4)) -#define XR_MAY_ALIAS __attribute__((__may_alias__)) -#else -#define XR_MAY_ALIAS -#endif -#endif - - -#if !defined(XR_DEFINE_HANDLE) -#if (XR_PTR_SIZE == 8) - #define XR_DEFINE_HANDLE(object) typedef struct object##_T* object; -#else - #define XR_DEFINE_HANDLE(object) typedef uint64_t object; -#endif -#endif - - - -#if !defined(XR_DEFINE_ATOM) - #define XR_DEFINE_ATOM(object) typedef uint64_t object; -#endif - - -typedef uint64_t XrVersion; -typedef uint64_t XrFlags64; -XR_DEFINE_ATOM(XrSystemId) -typedef uint32_t XrBool32; -XR_DEFINE_ATOM(XrPath) -typedef int64_t XrTime; -typedef int64_t XrDuration; -XR_DEFINE_HANDLE(XrInstance) -XR_DEFINE_HANDLE(XrSession) -XR_DEFINE_HANDLE(XrSpace) -XR_DEFINE_HANDLE(XrAction) -XR_DEFINE_HANDLE(XrSwapchain) -XR_DEFINE_HANDLE(XrActionSet) -#define XR_TRUE 1 -#define XR_FALSE 0 -#define XR_MAX_EXTENSION_NAME_SIZE 128 -#define XR_MAX_API_LAYER_NAME_SIZE 256 -#define XR_MAX_API_LAYER_DESCRIPTION_SIZE 256 -#define XR_MAX_SYSTEM_NAME_SIZE 256 -#define XR_MAX_APPLICATION_NAME_SIZE 128 -#define XR_MAX_ENGINE_NAME_SIZE 128 -#define XR_MAX_RUNTIME_NAME_SIZE 128 -#define XR_MAX_PATH_LENGTH 256 -#define XR_MAX_STRUCTURE_NAME_SIZE 64 -#define XR_MAX_RESULT_STRING_SIZE 64 -#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16 -#define XR_MAX_ACTION_SET_NAME_SIZE 64 -#define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE 128 -#define XR_MAX_ACTION_NAME_SIZE 64 -#define XR_MAX_LOCALIZED_ACTION_NAME_SIZE 128 - -typedef enum XrResult { - XR_SUCCESS = 0, - XR_TIMEOUT_EXPIRED = 1, - XR_SESSION_LOSS_PENDING = 3, - XR_EVENT_UNAVAILABLE = 4, - XR_SPACE_BOUNDS_UNAVAILABLE = 7, - XR_SESSION_NOT_FOCUSED = 8, - XR_FRAME_DISCARDED = 9, - XR_ERROR_VALIDATION_FAILURE = -1, - XR_ERROR_RUNTIME_FAILURE = -2, - XR_ERROR_OUT_OF_MEMORY = -3, - XR_ERROR_API_VERSION_UNSUPPORTED = -4, - XR_ERROR_INITIALIZATION_FAILED = -6, - XR_ERROR_FUNCTION_UNSUPPORTED = -7, - XR_ERROR_FEATURE_UNSUPPORTED = -8, - XR_ERROR_EXTENSION_NOT_PRESENT = -9, - XR_ERROR_LIMIT_REACHED = -10, - XR_ERROR_SIZE_INSUFFICIENT = -11, - XR_ERROR_HANDLE_INVALID = -12, - XR_ERROR_INSTANCE_LOST = -13, - XR_ERROR_SESSION_RUNNING = -14, - XR_ERROR_SESSION_NOT_RUNNING = -16, - XR_ERROR_SESSION_LOST = -17, - XR_ERROR_SYSTEM_INVALID = -18, - XR_ERROR_PATH_INVALID = -19, - XR_ERROR_PATH_COUNT_EXCEEDED = -20, - XR_ERROR_PATH_FORMAT_INVALID = -21, - XR_ERROR_PATH_UNSUPPORTED = -22, - XR_ERROR_LAYER_INVALID = -23, - XR_ERROR_LAYER_LIMIT_EXCEEDED = -24, - XR_ERROR_SWAPCHAIN_RECT_INVALID = -25, - XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26, - XR_ERROR_ACTION_TYPE_MISMATCH = -27, - XR_ERROR_SESSION_NOT_READY = -28, - XR_ERROR_SESSION_NOT_STOPPING = -29, - XR_ERROR_TIME_INVALID = -30, - XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31, - XR_ERROR_FILE_ACCESS_ERROR = -32, - XR_ERROR_FILE_CONTENTS_INVALID = -33, - XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34, - XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35, - XR_ERROR_API_LAYER_NOT_PRESENT = -36, - XR_ERROR_CALL_ORDER_INVALID = -37, - XR_ERROR_GRAPHICS_DEVICE_INVALID = -38, - XR_ERROR_POSE_INVALID = -39, - XR_ERROR_INDEX_OUT_OF_RANGE = -40, - XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41, - XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42, - XR_ERROR_NAME_DUPLICATED = -44, - XR_ERROR_NAME_INVALID = -45, - XR_ERROR_ACTIONSET_NOT_ATTACHED = -46, - XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47, - XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48, - XR_ERROR_LOCALIZED_NAME_INVALID = -49, - XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000, - XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001, - XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, - XR_RESULT_MAX_ENUM = 0x7FFFFFFF -} XrResult; - -typedef enum XrStructureType { - XR_TYPE_UNKNOWN = 0, - XR_TYPE_API_LAYER_PROPERTIES = 1, - XR_TYPE_EXTENSION_PROPERTIES = 2, - XR_TYPE_INSTANCE_CREATE_INFO = 3, - XR_TYPE_SYSTEM_GET_INFO = 4, - XR_TYPE_SYSTEM_PROPERTIES = 5, - XR_TYPE_VIEW_LOCATE_INFO = 6, - XR_TYPE_VIEW = 7, - XR_TYPE_SESSION_CREATE_INFO = 8, - XR_TYPE_SWAPCHAIN_CREATE_INFO = 9, - XR_TYPE_SESSION_BEGIN_INFO = 10, - XR_TYPE_VIEW_STATE = 11, - XR_TYPE_FRAME_END_INFO = 12, - XR_TYPE_HAPTIC_VIBRATION = 13, - XR_TYPE_EVENT_DATA_BUFFER = 16, - XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17, - XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18, - XR_TYPE_ACTION_STATE_BOOLEAN = 23, - XR_TYPE_ACTION_STATE_FLOAT = 24, - XR_TYPE_ACTION_STATE_VECTOR2F = 25, - XR_TYPE_ACTION_STATE_POSE = 27, - XR_TYPE_ACTION_SET_CREATE_INFO = 28, - XR_TYPE_ACTION_CREATE_INFO = 29, - XR_TYPE_INSTANCE_PROPERTIES = 32, - XR_TYPE_FRAME_WAIT_INFO = 33, - XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35, - XR_TYPE_COMPOSITION_LAYER_QUAD = 36, - XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37, - XR_TYPE_ACTION_SPACE_CREATE_INFO = 38, - XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40, - XR_TYPE_VIEW_CONFIGURATION_VIEW = 41, - XR_TYPE_SPACE_LOCATION = 42, - XR_TYPE_SPACE_VELOCITY = 43, - XR_TYPE_FRAME_STATE = 44, - XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45, - XR_TYPE_FRAME_BEGIN_INFO = 46, - XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48, - XR_TYPE_EVENT_DATA_EVENTS_LOST = 49, - XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51, - XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52, - XR_TYPE_INTERACTION_PROFILE_STATE = 53, - XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55, - XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56, - XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57, - XR_TYPE_ACTION_STATE_GET_INFO = 58, - XR_TYPE_HAPTIC_ACTION_INFO = 59, - XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO = 60, - XR_TYPE_ACTIONS_SYNC_INFO = 61, - XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO = 62, - XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO = 63, - XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000, - XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000, - XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000, - XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000, - XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000, - XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000, - XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000, - XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000, - XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001, - XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002, - XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003, - XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000, - XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001, - XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002, - XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003, - XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004, - XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005, - XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001, - XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002, - XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003, - XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000, - XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001, - XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002, - XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000, - XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001, - XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002, - XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000, - XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001, - XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002, - XR_TYPE_VISIBILITY_MASK_KHR = 1000031000, - XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001, - XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000, - XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001, - XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, - XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrStructureType; - -typedef enum XrFormFactor { - XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY = 1, - XR_FORM_FACTOR_HANDHELD_DISPLAY = 2, - XR_FORM_FACTOR_MAX_ENUM = 0x7FFFFFFF -} XrFormFactor; - -typedef enum XrViewConfigurationType { - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1, - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2, - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = 1000037000, - XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrViewConfigurationType; - -typedef enum XrEnvironmentBlendMode { - XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1, - XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2, - XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3, - XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF -} XrEnvironmentBlendMode; - -typedef enum XrReferenceSpaceType { - XR_REFERENCE_SPACE_TYPE_VIEW = 1, - XR_REFERENCE_SPACE_TYPE_LOCAL = 2, - XR_REFERENCE_SPACE_TYPE_STAGE = 3, - XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000, - XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrReferenceSpaceType; - -typedef enum XrActionType { - XR_ACTION_TYPE_BOOLEAN_INPUT = 1, - XR_ACTION_TYPE_FLOAT_INPUT = 2, - XR_ACTION_TYPE_VECTOR2F_INPUT = 3, - XR_ACTION_TYPE_POSE_INPUT = 4, - XR_ACTION_TYPE_VIBRATION_OUTPUT = 100, - XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrActionType; - -typedef enum XrEyeVisibility { - XR_EYE_VISIBILITY_BOTH = 0, - XR_EYE_VISIBILITY_LEFT = 1, - XR_EYE_VISIBILITY_RIGHT = 2, - XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF -} XrEyeVisibility; - -typedef enum XrSessionState { - XR_SESSION_STATE_UNKNOWN = 0, - XR_SESSION_STATE_IDLE = 1, - XR_SESSION_STATE_READY = 2, - XR_SESSION_STATE_SYNCHRONIZED = 3, - XR_SESSION_STATE_VISIBLE = 4, - XR_SESSION_STATE_FOCUSED = 5, - XR_SESSION_STATE_STOPPING = 6, - XR_SESSION_STATE_LOSS_PENDING = 7, - XR_SESSION_STATE_EXITING = 8, - XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF -} XrSessionState; - -typedef enum XrObjectType { - XR_OBJECT_TYPE_UNKNOWN = 0, - XR_OBJECT_TYPE_INSTANCE = 1, - XR_OBJECT_TYPE_SESSION = 2, - XR_OBJECT_TYPE_SWAPCHAIN = 3, - XR_OBJECT_TYPE_SPACE = 4, - XR_OBJECT_TYPE_ACTION_SET = 5, - XR_OBJECT_TYPE_ACTION = 6, - XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000, - XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, - XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrObjectType; -typedef XrFlags64 XrInstanceCreateFlags; - -// Flag bits for XrInstanceCreateFlags - -typedef XrFlags64 XrSessionCreateFlags; - -// Flag bits for XrSessionCreateFlags - -typedef XrFlags64 XrSpaceVelocityFlags; - -// Flag bits for XrSpaceVelocityFlags -static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001; -static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002; - -typedef XrFlags64 XrSpaceLocationFlags; - -// Flag bits for XrSpaceLocationFlags -static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = 0x00000001; -static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_VALID_BIT = 0x00000002; -static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = 0x00000004; -static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_TRACKED_BIT = 0x00000008; - -typedef XrFlags64 XrSwapchainCreateFlags; - -// Flag bits for XrSwapchainCreateFlags -static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001; -static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002; - -typedef XrFlags64 XrSwapchainUsageFlags; - -// Flag bits for XrSwapchainUsageFlags -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040; - -typedef XrFlags64 XrCompositionLayerFlags; - -// Flag bits for XrCompositionLayerFlags -static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001; -static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002; -static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT = 0x00000004; - -typedef XrFlags64 XrViewStateFlags; - -// Flag bits for XrViewStateFlags -static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT = 0x00000001; -static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT = 0x00000002; -static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT = 0x00000004; -static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT = 0x00000008; - -typedef XrFlags64 XrInputSourceLocalizedNameFlags; - -// Flag bits for XrInputSourceLocalizedNameFlags -static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001; -static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002; -static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004; - -typedef void (XRAPI_PTR *PFN_xrVoidFunction)(void); -typedef struct XrApiLayerProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - char layerName[XR_MAX_API_LAYER_NAME_SIZE]; - XrVersion specVersion; - uint32_t layerVersion; - char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; -} XrApiLayerProperties; - -typedef struct XrExtensionProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - char extensionName[XR_MAX_EXTENSION_NAME_SIZE]; - uint32_t extensionVersion; -} XrExtensionProperties; - -typedef struct XrApplicationInfo { - char applicationName[XR_MAX_APPLICATION_NAME_SIZE]; - uint32_t applicationVersion; - char engineName[XR_MAX_ENGINE_NAME_SIZE]; - uint32_t engineVersion; - XrVersion apiVersion; -} XrApplicationInfo; - -typedef struct XrInstanceCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrInstanceCreateFlags createFlags; - XrApplicationInfo applicationInfo; - uint32_t enabledApiLayerCount; - const char* const* enabledApiLayerNames; - uint32_t enabledExtensionCount; - const char* const* enabledExtensionNames; -} XrInstanceCreateInfo; - -typedef struct XrInstanceProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion runtimeVersion; - char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; -} XrInstanceProperties; - -typedef struct XrEventDataBuffer { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint8_t varying[4000]; -} XrEventDataBuffer; - -typedef struct XrSystemGetInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrFormFactor formFactor; -} XrSystemGetInfo; - -typedef struct XrSystemGraphicsProperties { - uint32_t maxSwapchainImageHeight; - uint32_t maxSwapchainImageWidth; - uint32_t maxLayerCount; -} XrSystemGraphicsProperties; - -typedef struct XrSystemTrackingProperties { - XrBool32 orientationTracking; - XrBool32 positionTracking; -} XrSystemTrackingProperties; - -typedef struct XrSystemProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrSystemId systemId; - uint32_t vendorId; - char systemName[XR_MAX_SYSTEM_NAME_SIZE]; - XrSystemGraphicsProperties graphicsProperties; - XrSystemTrackingProperties trackingProperties; -} XrSystemProperties; - -typedef struct XrSessionCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSessionCreateFlags createFlags; - XrSystemId systemId; -} XrSessionCreateInfo; - -typedef struct XrVector3f { - float x; - float y; - float z; -} XrVector3f; - -typedef struct XrSpaceVelocity { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrSpaceVelocityFlags velocityFlags; - XrVector3f linearVelocity; - XrVector3f angularVelocity; -} XrSpaceVelocity; - -typedef struct XrQuaternionf { - float x; - float y; - float z; - float w; -} XrQuaternionf; - -typedef struct XrPosef { - XrQuaternionf orientation; - XrVector3f position; -} XrPosef; - -typedef struct XrReferenceSpaceCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrReferenceSpaceType referenceSpaceType; - XrPosef poseInReferenceSpace; -} XrReferenceSpaceCreateInfo; - -typedef struct XrExtent2Df { - float width; - float height; -} XrExtent2Df; - -typedef struct XrActionSpaceCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; - XrPath subactionPath; - XrPosef poseInActionSpace; -} XrActionSpaceCreateInfo; - -typedef struct XrSpaceLocation { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrSpaceLocationFlags locationFlags; - XrPosef pose; -} XrSpaceLocation; - -typedef struct XrViewConfigurationProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrViewConfigurationType viewConfigurationType; - XrBool32 fovMutable; -} XrViewConfigurationProperties; - -typedef struct XrViewConfigurationView { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t recommendedImageRectWidth; - uint32_t maxImageRectWidth; - uint32_t recommendedImageRectHeight; - uint32_t maxImageRectHeight; - uint32_t recommendedSwapchainSampleCount; - uint32_t maxSwapchainSampleCount; -} XrViewConfigurationView; - -typedef struct XrSwapchainCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSwapchainCreateFlags createFlags; - XrSwapchainUsageFlags usageFlags; - int64_t format; - uint32_t sampleCount; - uint32_t width; - uint32_t height; - uint32_t faceCount; - uint32_t arraySize; - uint32_t mipCount; -} XrSwapchainCreateInfo; - -typedef struct XR_MAY_ALIAS XrSwapchainImageBaseHeader { - XrStructureType type; - void* XR_MAY_ALIAS next; -} XrSwapchainImageBaseHeader; - -typedef struct XrSwapchainImageAcquireInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrSwapchainImageAcquireInfo; - -typedef struct XrSwapchainImageWaitInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrDuration timeout; -} XrSwapchainImageWaitInfo; - -typedef struct XrSwapchainImageReleaseInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrSwapchainImageReleaseInfo; - -typedef struct XrSessionBeginInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrViewConfigurationType primaryViewConfigurationType; -} XrSessionBeginInfo; - -typedef struct XrFrameWaitInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrFrameWaitInfo; - -typedef struct XrFrameState { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrTime predictedDisplayTime; - XrDuration predictedDisplayPeriod; - XrBool32 shouldRender; -} XrFrameState; - -typedef struct XrFrameBeginInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrFrameBeginInfo; - -typedef struct XR_MAY_ALIAS XrCompositionLayerBaseHeader { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; -} XrCompositionLayerBaseHeader; - -typedef struct XrFrameEndInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrTime displayTime; - XrEnvironmentBlendMode environmentBlendMode; - uint32_t layerCount; - const XrCompositionLayerBaseHeader* const* layers; -} XrFrameEndInfo; - -typedef struct XrViewLocateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrViewConfigurationType viewConfigurationType; - XrTime displayTime; - XrSpace space; -} XrViewLocateInfo; - -typedef struct XrViewState { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrViewStateFlags viewStateFlags; -} XrViewState; - -typedef struct XrFovf { - float angleLeft; - float angleRight; - float angleUp; - float angleDown; -} XrFovf; - -typedef struct XrView { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrPosef pose; - XrFovf fov; -} XrView; - -typedef struct XrActionSetCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - char actionSetName[XR_MAX_ACTION_SET_NAME_SIZE]; - char localizedActionSetName[XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE]; - uint32_t priority; -} XrActionSetCreateInfo; - -typedef struct XrActionCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - char actionName[XR_MAX_ACTION_NAME_SIZE]; - XrActionType actionType; - uint32_t countSubactionPaths; - const XrPath* subactionPaths; - char localizedActionName[XR_MAX_LOCALIZED_ACTION_NAME_SIZE]; -} XrActionCreateInfo; - -typedef struct XrActionSuggestedBinding { - XrAction action; - XrPath binding; -} XrActionSuggestedBinding; - -typedef struct XrInteractionProfileSuggestedBinding { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPath interactionProfile; - uint32_t countSuggestedBindings; - const XrActionSuggestedBinding* suggestedBindings; -} XrInteractionProfileSuggestedBinding; - -typedef struct XrSessionActionSetsAttachInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t countActionSets; - const XrActionSet* actionSets; -} XrSessionActionSetsAttachInfo; - -typedef struct XrInteractionProfileState { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrPath interactionProfile; -} XrInteractionProfileState; - -typedef struct XrActionStateGetInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; - XrPath subactionPath; -} XrActionStateGetInfo; - -typedef struct XrActionStateBoolean { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrBool32 currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -} XrActionStateBoolean; - -typedef struct XrActionStateFloat { - XrStructureType type; - void* XR_MAY_ALIAS next; - float currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -} XrActionStateFloat; - -typedef struct XrVector2f { - float x; - float y; -} XrVector2f; - -typedef struct XrActionStateVector2f { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVector2f currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -} XrActionStateVector2f; - -typedef struct XrActionStatePose { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrBool32 isActive; -} XrActionStatePose; - -typedef struct XrActiveActionSet { - XrActionSet actionSet; - XrPath subactionPath; -} XrActiveActionSet; - -typedef struct XrActionsSyncInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t countActiveActionSets; - const XrActiveActionSet* activeActionSets; -} XrActionsSyncInfo; - -typedef struct XrBoundSourcesForActionEnumerateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; -} XrBoundSourcesForActionEnumerateInfo; - -typedef struct XrInputSourceLocalizedNameGetInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPath sourcePath; - XrInputSourceLocalizedNameFlags whichComponents; -} XrInputSourceLocalizedNameGetInfo; - -typedef struct XrHapticActionInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; - XrPath subactionPath; -} XrHapticActionInfo; - -typedef struct XR_MAY_ALIAS XrHapticBaseHeader { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrHapticBaseHeader; - -typedef struct XR_MAY_ALIAS XrBaseInStructure { - XrStructureType type; - const struct XrBaseInStructure* next; -} XrBaseInStructure; - -typedef struct XR_MAY_ALIAS XrBaseOutStructure { - XrStructureType type; - struct XrBaseOutStructure* next; -} XrBaseOutStructure; - -typedef struct XrOffset2Di { - int32_t x; - int32_t y; -} XrOffset2Di; - -typedef struct XrExtent2Di { - int32_t width; - int32_t height; -} XrExtent2Di; - -typedef struct XrRect2Di { - XrOffset2Di offset; - XrExtent2Di extent; -} XrRect2Di; - -typedef struct XrSwapchainSubImage { - XrSwapchain swapchain; - XrRect2Di imageRect; - uint32_t imageArrayIndex; -} XrSwapchainSubImage; - -typedef struct XrCompositionLayerProjectionView { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPosef pose; - XrFovf fov; - XrSwapchainSubImage subImage; -} XrCompositionLayerProjectionView; - -typedef struct XrCompositionLayerProjection { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - uint32_t viewCount; - const XrCompositionLayerProjectionView* views; -} XrCompositionLayerProjection; - -typedef struct XrCompositionLayerQuad { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - XrExtent2Df size; -} XrCompositionLayerQuad; - -typedef struct XR_MAY_ALIAS XrEventDataBaseHeader { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrEventDataBaseHeader; - -typedef struct XrEventDataEventsLost { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t lostEventCount; -} XrEventDataEventsLost; - -typedef struct XrEventDataInstanceLossPending { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrTime lossTime; -} XrEventDataInstanceLossPending; - -typedef struct XrEventDataSessionStateChanged { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; - XrSessionState state; - XrTime time; -} XrEventDataSessionStateChanged; - -typedef struct XrEventDataReferenceSpaceChangePending { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; - XrReferenceSpaceType referenceSpaceType; - XrTime changeTime; - XrBool32 poseValid; - XrPosef poseInPreviousSpace; -} XrEventDataReferenceSpaceChangePending; - -typedef struct XrEventDataInteractionProfileChanged { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; -} XrEventDataInteractionProfileChanged; - -typedef struct XrHapticVibration { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrDuration duration; - float frequency; - float amplitude; -} XrHapticVibration; - -typedef struct XrOffset2Df { - float x; - float y; -} XrOffset2Df; - -typedef struct XrRect2Df { - XrOffset2Df offset; - XrExtent2Df extent; -} XrRect2Df; - -typedef struct XrVector4f { - float x; - float y; - float z; - float w; -} XrVector4f; - -typedef struct XrColor4f { - float r; - float g; - float b; - float a; -} XrColor4f; - -typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance instance, const char* name, PFN_xrVoidFunction* function); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateApiLayerProperties)(uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrApiLayerProperties* properties); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char* layerName, uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrExtensionProperties* properties); -typedef XrResult (XRAPI_PTR *PFN_xrCreateInstance)(const XrInstanceCreateInfo* createInfo, XrInstance* instance); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyInstance)(XrInstance instance); -typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProperties)(XrInstance instance, XrInstanceProperties* instanceProperties); -typedef XrResult (XRAPI_PTR *PFN_xrPollEvent)(XrInstance instance, XrEventDataBuffer* eventData); -typedef XrResult (XRAPI_PTR *PFN_xrResultToString)(XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE]); -typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString)(XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE]); -typedef XrResult (XRAPI_PTR *PFN_xrGetSystem)(XrInstance instance, const XrSystemGetInfo* getInfo, XrSystemId* systemId); -typedef XrResult (XRAPI_PTR *PFN_xrGetSystemProperties)(XrInstance instance, XrSystemId systemId, XrSystemProperties* properties); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t* environmentBlendModeCountOutput, XrEnvironmentBlendMode* environmentBlendModes); -typedef XrResult (XRAPI_PTR *PFN_xrCreateSession)(XrInstance instance, const XrSessionCreateInfo* createInfo, XrSession* session); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySession)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession session, uint32_t spaceCapacityInput, uint32_t* spaceCountOutput, XrReferenceSpaceType* spaces); -typedef XrResult (XRAPI_PTR *PFN_xrCreateReferenceSpace)(XrSession session, const XrReferenceSpaceCreateInfo* createInfo, XrSpace* space); -typedef XrResult (XRAPI_PTR *PFN_xrGetReferenceSpaceBoundsRect)(XrSession session, XrReferenceSpaceType referenceSpaceType, XrExtent2Df* bounds); -typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSpace)(XrSession session, const XrActionSpaceCreateInfo* createInfo, XrSpace* space); -typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation* location); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySpace)(XrSpace space); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurations)(XrInstance instance, XrSystemId systemId, uint32_t viewConfigurationTypeCapacityInput, uint32_t* viewConfigurationTypeCountOutput, XrViewConfigurationType* viewConfigurationTypes); -typedef XrResult (XRAPI_PTR *PFN_xrGetViewConfigurationProperties)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, XrViewConfigurationProperties* configurationProperties); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurationViews)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrViewConfigurationView* views); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainFormats)(XrSession session, uint32_t formatCapacityInput, uint32_t* formatCountOutput, int64_t* formats); -typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchain)(XrSession session, const XrSwapchainCreateInfo* createInfo, XrSwapchain* swapchain); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySwapchain)(XrSwapchain swapchain); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainImages)(XrSwapchain swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images); -typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageAcquireInfo* acquireInfo, uint32_t* index); -typedef XrResult (XRAPI_PTR *PFN_xrWaitSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageWaitInfo* waitInfo); -typedef XrResult (XRAPI_PTR *PFN_xrReleaseSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo* releaseInfo); -typedef XrResult (XRAPI_PTR *PFN_xrBeginSession)(XrSession session, const XrSessionBeginInfo* beginInfo); -typedef XrResult (XRAPI_PTR *PFN_xrEndSession)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrRequestExitSession)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrWaitFrame)(XrSession session, const XrFrameWaitInfo* frameWaitInfo, XrFrameState* frameState); -typedef XrResult (XRAPI_PTR *PFN_xrBeginFrame)(XrSession session, const XrFrameBeginInfo* frameBeginInfo); -typedef XrResult (XRAPI_PTR *PFN_xrEndFrame)(XrSession session, const XrFrameEndInfo* frameEndInfo); -typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession session, const XrViewLocateInfo* viewLocateInfo, XrViewState* viewState, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrView* views); -typedef XrResult (XRAPI_PTR *PFN_xrStringToPath)(XrInstance instance, const char* pathString, XrPath* path); -typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSet)(XrInstance instance, const XrActionSetCreateInfo* createInfo, XrActionSet* actionSet); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyActionSet)(XrActionSet actionSet); -typedef XrResult (XRAPI_PTR *PFN_xrCreateAction)(XrActionSet actionSet, const XrActionCreateInfo* createInfo, XrAction* action); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyAction)(XrAction action); -typedef XrResult (XRAPI_PTR *PFN_xrSuggestInteractionProfileBindings)(XrInstance instance, const XrInteractionProfileSuggestedBinding* suggestedBindings); -typedef XrResult (XRAPI_PTR *PFN_xrAttachSessionActionSets)(XrSession session, const XrSessionActionSetsAttachInfo* attachInfo); -typedef XrResult (XRAPI_PTR *PFN_xrGetCurrentInteractionProfile)(XrSession session, XrPath topLevelUserPath, XrInteractionProfileState* interactionProfile); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateBoolean)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateBoolean* state); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateFloat)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateFloat* state); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateVector2f)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateVector2f* state); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStatePose)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStatePose* state); -typedef XrResult (XRAPI_PTR *PFN_xrSyncActions)(XrSession session, const XrActionsSyncInfo* syncInfo); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateBoundSourcesForAction)(XrSession session, const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, uint32_t sourceCapacityInput, uint32_t* sourceCountOutput, XrPath* sources); -typedef XrResult (XRAPI_PTR *PFN_xrGetInputSourceLocalizedName)(XrSession session, const XrInputSourceLocalizedNameGetInfo* getInfo, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrApplyHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo, const XrHapticBaseHeader* hapticFeedback); -typedef XrResult (XRAPI_PTR *PFN_xrStopHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProcAddr( - XrInstance instance, - const char* name, - PFN_xrVoidFunction* function); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateApiLayerProperties( - uint32_t propertyCapacityInput, - uint32_t* propertyCountOutput, - XrApiLayerProperties* properties); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties( - const char* layerName, - uint32_t propertyCapacityInput, - uint32_t* propertyCountOutput, - XrExtensionProperties* properties); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateInstance( - const XrInstanceCreateInfo* createInfo, - XrInstance* instance); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyInstance( - XrInstance instance); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProperties( - XrInstance instance, - XrInstanceProperties* instanceProperties); - -XRAPI_ATTR XrResult XRAPI_CALL xrPollEvent( - XrInstance instance, - XrEventDataBuffer* eventData); - -XRAPI_ATTR XrResult XRAPI_CALL xrResultToString( - XrInstance instance, - XrResult value, - char buffer[XR_MAX_RESULT_STRING_SIZE]); - -XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString( - XrInstance instance, - XrStructureType value, - char buffer[XR_MAX_STRUCTURE_NAME_SIZE]); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetSystem( - XrInstance instance, - const XrSystemGetInfo* getInfo, - XrSystemId* systemId); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetSystemProperties( - XrInstance instance, - XrSystemId systemId, - XrSystemProperties* properties); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes( - XrInstance instance, - XrSystemId systemId, - XrViewConfigurationType viewConfigurationType, - uint32_t environmentBlendModeCapacityInput, - uint32_t* environmentBlendModeCountOutput, - XrEnvironmentBlendMode* environmentBlendModes); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSession( - XrInstance instance, - const XrSessionCreateInfo* createInfo, - XrSession* session); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySession( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReferenceSpaces( - XrSession session, - uint32_t spaceCapacityInput, - uint32_t* spaceCountOutput, - XrReferenceSpaceType* spaces); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateReferenceSpace( - XrSession session, - const XrReferenceSpaceCreateInfo* createInfo, - XrSpace* space); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetReferenceSpaceBoundsRect( - XrSession session, - XrReferenceSpaceType referenceSpaceType, - XrExtent2Df* bounds); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSpace( - XrSession session, - const XrActionSpaceCreateInfo* createInfo, - XrSpace* space); - -XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpace( - XrSpace space, - XrSpace baseSpace, - XrTime time, - XrSpaceLocation* location); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpace( - XrSpace space); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurations( - XrInstance instance, - XrSystemId systemId, - uint32_t viewConfigurationTypeCapacityInput, - uint32_t* viewConfigurationTypeCountOutput, - XrViewConfigurationType* viewConfigurationTypes); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetViewConfigurationProperties( - XrInstance instance, - XrSystemId systemId, - XrViewConfigurationType viewConfigurationType, - XrViewConfigurationProperties* configurationProperties); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurationViews( - XrInstance instance, - XrSystemId systemId, - XrViewConfigurationType viewConfigurationType, - uint32_t viewCapacityInput, - uint32_t* viewCountOutput, - XrViewConfigurationView* views); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainFormats( - XrSession session, - uint32_t formatCapacityInput, - uint32_t* formatCountOutput, - int64_t* formats); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchain( - XrSession session, - const XrSwapchainCreateInfo* createInfo, - XrSwapchain* swapchain); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySwapchain( - XrSwapchain swapchain); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainImages( - XrSwapchain swapchain, - uint32_t imageCapacityInput, - uint32_t* imageCountOutput, - XrSwapchainImageBaseHeader* images); - -XRAPI_ATTR XrResult XRAPI_CALL xrAcquireSwapchainImage( - XrSwapchain swapchain, - const XrSwapchainImageAcquireInfo* acquireInfo, - uint32_t* index); - -XRAPI_ATTR XrResult XRAPI_CALL xrWaitSwapchainImage( - XrSwapchain swapchain, - const XrSwapchainImageWaitInfo* waitInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrReleaseSwapchainImage( - XrSwapchain swapchain, - const XrSwapchainImageReleaseInfo* releaseInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrBeginSession( - XrSession session, - const XrSessionBeginInfo* beginInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrEndSession( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrRequestExitSession( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrWaitFrame( - XrSession session, - const XrFrameWaitInfo* frameWaitInfo, - XrFrameState* frameState); - -XRAPI_ATTR XrResult XRAPI_CALL xrBeginFrame( - XrSession session, - const XrFrameBeginInfo* frameBeginInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrEndFrame( - XrSession session, - const XrFrameEndInfo* frameEndInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrLocateViews( - XrSession session, - const XrViewLocateInfo* viewLocateInfo, - XrViewState* viewState, - uint32_t viewCapacityInput, - uint32_t* viewCountOutput, - XrView* views); - -XRAPI_ATTR XrResult XRAPI_CALL xrStringToPath( - XrInstance instance, - const char* pathString, - XrPath* path); - -XRAPI_ATTR XrResult XRAPI_CALL xrPathToString( - XrInstance instance, - XrPath path, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSet( - XrInstance instance, - const XrActionSetCreateInfo* createInfo, - XrActionSet* actionSet); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyActionSet( - XrActionSet actionSet); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateAction( - XrActionSet actionSet, - const XrActionCreateInfo* createInfo, - XrAction* action); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAction( - XrAction action); - -XRAPI_ATTR XrResult XRAPI_CALL xrSuggestInteractionProfileBindings( - XrInstance instance, - const XrInteractionProfileSuggestedBinding* suggestedBindings); - -XRAPI_ATTR XrResult XRAPI_CALL xrAttachSessionActionSets( - XrSession session, - const XrSessionActionSetsAttachInfo* attachInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetCurrentInteractionProfile( - XrSession session, - XrPath topLevelUserPath, - XrInteractionProfileState* interactionProfile); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateBoolean( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStateBoolean* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateFloat( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStateFloat* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateVector2f( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStateVector2f* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStatePose( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStatePose* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrSyncActions( - XrSession session, - const XrActionsSyncInfo* syncInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateBoundSourcesForAction( - XrSession session, - const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, - uint32_t sourceCapacityInput, - uint32_t* sourceCountOutput, - XrPath* sources); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetInputSourceLocalizedName( - XrSession session, - const XrInputSourceLocalizedNameGetInfo* getInfo, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrApplyHapticFeedback( - XrSession session, - const XrHapticActionInfo* hapticActionInfo, - const XrHapticBaseHeader* hapticFeedback); - -XRAPI_ATTR XrResult XRAPI_CALL xrStopHapticFeedback( - XrSession session, - const XrHapticActionInfo* hapticActionInfo); -#endif - - -#define XR_KHR_composition_layer_cube 1 -#define XR_KHR_composition_layer_cube_SPEC_VERSION 8 -#define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME "XR_KHR_composition_layer_cube" -typedef struct XrCompositionLayerCubeKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchain swapchain; - uint32_t imageArrayIndex; - XrQuaternionf orientation; -} XrCompositionLayerCubeKHR; - - - -#define XR_KHR_composition_layer_depth 1 -#define XR_KHR_composition_layer_depth_SPEC_VERSION 5 -#define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth" -typedef struct XrCompositionLayerDepthInfoKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSwapchainSubImage subImage; - float minDepth; - float maxDepth; - float nearZ; - float farZ; -} XrCompositionLayerDepthInfoKHR; - - - -#define XR_KHR_composition_layer_cylinder 1 -#define XR_KHR_composition_layer_cylinder_SPEC_VERSION 4 -#define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME "XR_KHR_composition_layer_cylinder" -typedef struct XrCompositionLayerCylinderKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - float radius; - float centralAngle; - float aspectRatio; -} XrCompositionLayerCylinderKHR; - - - -#define XR_KHR_composition_layer_equirect 1 -#define XR_KHR_composition_layer_equirect_SPEC_VERSION 3 -#define XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME "XR_KHR_composition_layer_equirect" -typedef struct XrCompositionLayerEquirectKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - float radius; - XrVector2f scale; - XrVector2f bias; -} XrCompositionLayerEquirectKHR; - - - -#define XR_KHR_visibility_mask 1 -#define XR_KHR_visibility_mask_SPEC_VERSION 2 -#define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME "XR_KHR_visibility_mask" - -typedef enum XrVisibilityMaskTypeKHR { - XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR = 1, - XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR = 2, - XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR = 3, - XR_VISIBILITY_MASK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} XrVisibilityMaskTypeKHR; -typedef struct XrVisibilityMaskKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrVector2f* vertices; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t* indices; -} XrVisibilityMaskKHR; - -typedef struct XrEventDataVisibilityMaskChangedKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; - XrViewConfigurationType viewConfigurationType; - uint32_t viewIndex; -} XrEventDataVisibilityMaskChangedKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetVisibilityMaskKHR)(XrSession session, XrViewConfigurationType viewConfigurationType, uint32_t viewIndex, XrVisibilityMaskTypeKHR visibilityMaskType, XrVisibilityMaskKHR* visibilityMask); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetVisibilityMaskKHR( - XrSession session, - XrViewConfigurationType viewConfigurationType, - uint32_t viewIndex, - XrVisibilityMaskTypeKHR visibilityMaskType, - XrVisibilityMaskKHR* visibilityMask); -#endif - - -#define XR_EXT_performance_settings 1 -#define XR_EXT_performance_settings_SPEC_VERSION 1 -#define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings" - -typedef enum XrPerfSettingsDomainEXT { - XR_PERF_SETTINGS_DOMAIN_CPU_EXT = 1, - XR_PERF_SETTINGS_DOMAIN_GPU_EXT = 2, - XR_PERF_SETTINGS_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsDomainEXT; - -typedef enum XrPerfSettingsSubDomainEXT { - XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT = 1, - XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT = 2, - XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT = 3, - XR_PERF_SETTINGS_SUB_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsSubDomainEXT; - -typedef enum XrPerfSettingsLevelEXT { - XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT = 0, - XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT = 25, - XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT = 50, - XR_PERF_SETTINGS_LEVEL_BOOST_EXT = 75, - XR_PERF_SETTINGS_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsLevelEXT; - -typedef enum XrPerfSettingsNotificationLevelEXT { - XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT = 0, - XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT = 25, - XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT = 75, - XR_PERF_SETTINGS_NOTIFICATION_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsNotificationLevelEXT; -typedef struct XrEventDataPerfSettingsEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPerfSettingsDomainEXT domain; - XrPerfSettingsSubDomainEXT subDomain; - XrPerfSettingsNotificationLevelEXT fromLevel; - XrPerfSettingsNotificationLevelEXT toLevel; -} XrEventDataPerfSettingsEXT; - -typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT( - XrSession session, - XrPerfSettingsDomainEXT domain, - XrPerfSettingsLevelEXT level); -#endif - - -#define XR_EXT_thermal_query 1 -#define XR_EXT_thermal_query_SPEC_VERSION 1 -#define XR_EXT_THERMAL_QUERY_EXTENSION_NAME "XR_EXT_thermal_query" -typedef XrResult (XRAPI_PTR *PFN_xrThermalGetTemperatureTrendEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT* notificationLevel, float* tempHeadroom, float* tempSlope); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT( - XrSession session, - XrPerfSettingsDomainEXT domain, - XrPerfSettingsNotificationLevelEXT* notificationLevel, - float* tempHeadroom, - float* tempSlope); -#endif - - -#define XR_EXT_debug_utils 1 -XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT) -#define XR_EXT_debug_utils_SPEC_VERSION 3 -#define XR_EXT_DEBUG_UTILS_EXTENSION_NAME "XR_EXT_debug_utils" -typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT; - -// Flag bits for XrDebugUtilsMessageSeverityFlagsEXT -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001; -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010; -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100; -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000; - -typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT; - -// Flag bits for XrDebugUtilsMessageTypeFlagsEXT -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001; -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002; -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004; -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT = 0x00000008; - -typedef struct XrDebugUtilsObjectNameInfoEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrObjectType objectType; - uint64_t objectHandle; - const char* objectName; -} XrDebugUtilsObjectNameInfoEXT; - -typedef struct XrDebugUtilsLabelEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - const char* labelName; -} XrDebugUtilsLabelEXT; - -typedef struct XrDebugUtilsMessengerCallbackDataEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - const char* messageId; - const char* functionName; - const char* message; - uint32_t objectCount; - XrDebugUtilsObjectNameInfoEXT* objects; - uint32_t sessionLabelCount; - XrDebugUtilsLabelEXT* sessionLabels; -} XrDebugUtilsMessengerCallbackDataEXT; - -typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)( - XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, - XrDebugUtilsMessageTypeFlagsEXT messageTypes, - const XrDebugUtilsMessengerCallbackDataEXT* callbackData, - void* userData); - - -typedef struct XrDebugUtilsMessengerCreateInfoEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrDebugUtilsMessageSeverityFlagsEXT messageSeverities; - XrDebugUtilsMessageTypeFlagsEXT messageTypes; - PFN_xrDebugUtilsMessengerCallbackEXT userCallback; - void* XR_MAY_ALIAS userData; -} XrDebugUtilsMessengerCreateInfoEXT; - -typedef XrResult (XRAPI_PTR *PFN_xrSetDebugUtilsObjectNameEXT)(XrInstance instance, const XrDebugUtilsObjectNameInfoEXT* nameInfo); -typedef XrResult (XRAPI_PTR *PFN_xrCreateDebugUtilsMessengerEXT)(XrInstance instance, const XrDebugUtilsMessengerCreateInfoEXT* createInfo, XrDebugUtilsMessengerEXT* messenger); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyDebugUtilsMessengerEXT)(XrDebugUtilsMessengerEXT messenger); -typedef XrResult (XRAPI_PTR *PFN_xrSubmitDebugUtilsMessageEXT)(XrInstance instance, XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData); -typedef XrResult (XRAPI_PTR *PFN_xrSessionBeginDebugUtilsLabelRegionEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo); -typedef XrResult (XRAPI_PTR *PFN_xrSessionEndDebugUtilsLabelRegionEXT)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrSessionInsertDebugUtilsLabelEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrSetDebugUtilsObjectNameEXT( - XrInstance instance, - const XrDebugUtilsObjectNameInfoEXT* nameInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateDebugUtilsMessengerEXT( - XrInstance instance, - const XrDebugUtilsMessengerCreateInfoEXT* createInfo, - XrDebugUtilsMessengerEXT* messenger); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDebugUtilsMessengerEXT( - XrDebugUtilsMessengerEXT messenger); - -XRAPI_ATTR XrResult XRAPI_CALL xrSubmitDebugUtilsMessageEXT( - XrInstance instance, - XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, - XrDebugUtilsMessageTypeFlagsEXT messageTypes, - const XrDebugUtilsMessengerCallbackDataEXT* callbackData); - -XRAPI_ATTR XrResult XRAPI_CALL xrSessionBeginDebugUtilsLabelRegionEXT( - XrSession session, - const XrDebugUtilsLabelEXT* labelInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrSessionEndDebugUtilsLabelRegionEXT( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT( - XrSession session, - const XrDebugUtilsLabelEXT* labelInfo); -#endif - - -#define XR_VARJO_quad_views 1 -#define XR_VARJO_quad_views_SPEC_VERSION 1 -#define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views" - - -#define XR_MSFT_unbounded_reference_space 1 -#define XR_MSFT_unbounded_reference_space_SPEC_VERSION 1 -#define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_MSFT_unbounded_reference_space" - - -#define XR_MSFT_spatial_anchor 1 -XR_DEFINE_HANDLE(XrSpatialAnchorMSFT) -#define XR_MSFT_spatial_anchor_SPEC_VERSION 1 -#define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_MSFT_spatial_anchor" -typedef struct XrSpatialAnchorCreateInfoMSFT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSpace space; - XrPosef pose; - XrTime time; -} XrSpatialAnchorCreateInfoMSFT; - -typedef struct XrSpatialAnchorSpaceCreateInfoMSFT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSpatialAnchorMSFT anchor; - XrPosef poseInAnchorSpace; -} XrSpatialAnchorSpaceCreateInfoMSFT; - -typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorMSFT)(XrSession session, const XrSpatialAnchorCreateInfoMSFT* createInfo, XrSpatialAnchorMSFT* anchor); -typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, XrSpace* space); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT anchor); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT( - XrSession session, - const XrSpatialAnchorCreateInfoMSFT* createInfo, - XrSpatialAnchorMSFT* anchor); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT( - XrSession session, - const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, - XrSpace* space); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT( - XrSpatialAnchorMSFT anchor); -#endif - - -#define XR_MND_headless 1 -#define XR_MND_headless_SPEC_VERSION 1 -#define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless" - - -#define XR_OCULUS_android_session_state_enable 1 -#define XR_OCULUS_android_session_state_enable_SPEC_VERSION 1 -#define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME "XR_OCULUS_android_session_state_enable" - - -#define XR_EXT_view_configuration_depth_range 1 -#define XR_EXT_view_configuration_depth_range_SPEC_VERSION 1 -#define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME "XR_EXT_view_configuration_depth_range" -typedef struct XrViewConfigurationDepthRangeEXT { - XrStructureType type; - void* XR_MAY_ALIAS next; - float recommendedNearZ; - float minNearZ; - float recommendedFarZ; - float maxFarZ; -} XrViewConfigurationDepthRangeEXT; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/android/arm64-v8a/include/openxr/openxr_platform.h b/android/arm64-v8a/include/openxr/openxr_platform.h deleted file mode 100644 index f84dd8d2..00000000 --- a/android/arm64-v8a/include/openxr/openxr_platform.h +++ /dev/null @@ -1,383 +0,0 @@ -#ifndef OPENXR_PLATFORM_H_ -#define OPENXR_PLATFORM_H_ 1 - -/* -** Copyright (c) 2017-2019 The Khronos Group Inc. -** -** 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. -*/ - -/* -** This header is generated from the Khronos OpenXR XML API Registry. -** -*/ - -#include "openxr.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef XR_USE_PLATFORM_ANDROID - -#define XR_KHR_android_thread_settings 1 -#define XR_KHR_android_thread_settings_SPEC_VERSION 5 -#define XR_KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME "XR_KHR_android_thread_settings" - -typedef enum XrAndroidThreadTypeKHR { - XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR = 1, - XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR = 2, - XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR = 3, - XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR = 4, - XR_ANDROID_THREAD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} XrAndroidThreadTypeKHR; -typedef XrResult (XRAPI_PTR *PFN_xrSetAndroidApplicationThreadKHR)(XrSession session, XrAndroidThreadTypeKHR threadType, uint32_t threadId); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrSetAndroidApplicationThreadKHR( - XrSession session, - XrAndroidThreadTypeKHR threadType, - uint32_t threadId); -#endif -#endif /* XR_USE_PLATFORM_ANDROID */ - -#ifdef XR_USE_PLATFORM_ANDROID - -#define XR_KHR_android_surface_swapchain 1 -#define XR_KHR_android_surface_swapchain_SPEC_VERSION 4 -#define XR_KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME "XR_KHR_android_surface_swapchain" -typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchainAndroidSurfaceKHR)(XrSession session, const XrSwapchainCreateInfo* info, XrSwapchain* swapchain, jobject* surface); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchainAndroidSurfaceKHR( - XrSession session, - const XrSwapchainCreateInfo* info, - XrSwapchain* swapchain, - jobject* surface); -#endif -#endif /* XR_USE_PLATFORM_ANDROID */ - -#ifdef XR_USE_PLATFORM_ANDROID - -#define XR_KHR_android_create_instance 1 -#define XR_KHR_android_create_instance_SPEC_VERSION 3 -#define XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME "XR_KHR_android_create_instance" -typedef struct XrInstanceCreateInfoAndroidKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - void* XR_MAY_ALIAS applicationVM; - void* XR_MAY_ALIAS applicationActivity; -} XrInstanceCreateInfoAndroidKHR; - -#endif /* XR_USE_PLATFORM_ANDROID */ - -#ifdef XR_USE_GRAPHICS_API_VULKAN - -#define XR_KHR_vulkan_swapchain_format_list 1 -#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 2 -#define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list" -typedef struct XrVulkanSwapchainFormatListCreateInfoKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t viewFormatCount; - const VkFormat* viewFormats; -} XrVulkanSwapchainFormatListCreateInfoKHR; - -#endif /* XR_USE_GRAPHICS_API_VULKAN */ - -#ifdef XR_USE_GRAPHICS_API_OPENGL - -#define XR_KHR_opengl_enable 1 -#define XR_KHR_opengl_enable_SPEC_VERSION 7 -#define XR_KHR_OPENGL_ENABLE_EXTENSION_NAME "XR_KHR_opengl_enable" -#ifdef XR_USE_PLATFORM_WIN32 -typedef struct XrGraphicsBindingOpenGLWin32KHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - HDC hDC; - HGLRC hGLRC; -} XrGraphicsBindingOpenGLWin32KHR; -#endif // XR_USE_PLATFORM_WIN32 - -#ifdef XR_USE_PLATFORM_XLIB -typedef struct XrGraphicsBindingOpenGLXlibKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - Display* xDisplay; - uint32_t visualid; - GLXFBConfig glxFBConfig; - GLXDrawable glxDrawable; - GLXContext glxContext; -} XrGraphicsBindingOpenGLXlibKHR; -#endif // XR_USE_PLATFORM_XLIB - -#ifdef XR_USE_PLATFORM_XCB -typedef struct XrGraphicsBindingOpenGLXcbKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - xcb_connection_t* connection; - uint32_t screenNumber; - xcb_glx_fbconfig_t fbconfigid; - xcb_visualid_t visualid; - xcb_glx_drawable_t glxDrawable; - xcb_glx_context_t glxContext; -} XrGraphicsBindingOpenGLXcbKHR; -#endif // XR_USE_PLATFORM_XCB - -#ifdef XR_USE_PLATFORM_WAYLAND -typedef struct XrGraphicsBindingOpenGLWaylandKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - struct wl_display* display; -} XrGraphicsBindingOpenGLWaylandKHR; -#endif // XR_USE_PLATFORM_WAYLAND - -typedef struct XrSwapchainImageOpenGLKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t image; -} XrSwapchainImageOpenGLKHR; - -typedef struct XrGraphicsRequirementsOpenGLKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -} XrGraphicsRequirementsOpenGLKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLKHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLGraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsOpenGLKHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_OPENGL */ - -#ifdef XR_USE_GRAPHICS_API_OPENGL_ES - -#define XR_KHR_opengl_es_enable 1 -#define XR_KHR_opengl_es_enable_SPEC_VERSION 6 -#define XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME "XR_KHR_opengl_es_enable" -#ifdef XR_USE_PLATFORM_ANDROID -typedef struct XrGraphicsBindingOpenGLESAndroidKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - EGLDisplay display; - EGLConfig config; - EGLContext context; -} XrGraphicsBindingOpenGLESAndroidKHR; -#endif // XR_USE_PLATFORM_ANDROID - -typedef struct XrSwapchainImageOpenGLESKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t image; -} XrSwapchainImageOpenGLESKHR; - -typedef struct XrGraphicsRequirementsOpenGLESKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -} XrGraphicsRequirementsOpenGLESKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLESGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLESGraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */ - -#ifdef XR_USE_GRAPHICS_API_VULKAN - -#define XR_KHR_vulkan_enable 1 -#define XR_KHR_vulkan_enable_SPEC_VERSION 6 -#define XR_KHR_VULKAN_ENABLE_EXTENSION_NAME "XR_KHR_vulkan_enable" -typedef struct XrGraphicsBindingVulkanKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - VkInstance instance; - VkPhysicalDevice physicalDevice; - VkDevice device; - uint32_t queueFamilyIndex; - uint32_t queueIndex; -} XrGraphicsBindingVulkanKHR; - -typedef struct XrSwapchainImageVulkanKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - VkImage image; -} XrSwapchainImageVulkanKHR; - -typedef struct XrGraphicsRequirementsVulkanKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -} XrGraphicsRequirementsVulkanKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanInstanceExtensionsKHR)(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanDeviceExtensionsKHR)(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDeviceKHR)(XrInstance instance, XrSystemId systemId, VkInstance vkInstance, VkPhysicalDevice* vkPhysicalDevice); -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanInstanceExtensionsKHR( - XrInstance instance, - XrSystemId systemId, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanDeviceExtensionsKHR( - XrInstance instance, - XrSystemId systemId, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsDeviceKHR( - XrInstance instance, - XrSystemId systemId, - VkInstance vkInstance, - VkPhysicalDevice* vkPhysicalDevice); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsVulkanKHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_VULKAN */ - -#ifdef XR_USE_GRAPHICS_API_D3D11 - -#define XR_KHR_D3D11_enable 1 -#define XR_KHR_D3D11_enable_SPEC_VERSION 4 -#define XR_KHR_D3D11_ENABLE_EXTENSION_NAME "XR_KHR_D3D11_enable" -typedef struct XrGraphicsBindingD3D11KHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - ID3D11Device* device; -} XrGraphicsBindingD3D11KHR; - -typedef struct XrSwapchainImageD3D11KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - ID3D11Texture2D* texture; -} XrSwapchainImageD3D11KHR; - -typedef struct XrGraphicsRequirementsD3D11KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - LUID adapterLuid; - D3D_FEATURE_LEVEL minFeatureLevel; -} XrGraphicsRequirementsD3D11KHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetD3D11GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D11KHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsD3D11KHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_D3D11 */ - -#ifdef XR_USE_GRAPHICS_API_D3D12 - -#define XR_KHR_D3D12_enable 1 -#define XR_KHR_D3D12_enable_SPEC_VERSION 5 -#define XR_KHR_D3D12_ENABLE_EXTENSION_NAME "XR_KHR_D3D12_enable" -typedef struct XrGraphicsBindingD3D12KHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - ID3D12Device* device; - ID3D12CommandQueue* queue; -} XrGraphicsBindingD3D12KHR; - -typedef struct XrSwapchainImageD3D12KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - ID3D12Resource* texture; -} XrSwapchainImageD3D12KHR; - -typedef struct XrGraphicsRequirementsD3D12KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - LUID adapterLuid; - D3D_FEATURE_LEVEL minFeatureLevel; -} XrGraphicsRequirementsD3D12KHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetD3D12GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D12KHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsD3D12KHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_D3D12 */ - -#ifdef XR_USE_PLATFORM_WIN32 - -#define XR_KHR_win32_convert_performance_counter_time 1 -#define XR_KHR_win32_convert_performance_counter_time_SPEC_VERSION 1 -#define XR_KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME "XR_KHR_win32_convert_performance_counter_time" -typedef XrResult (XRAPI_PTR *PFN_xrConvertWin32PerformanceCounterToTimeKHR)(XrInstance instance, const LARGE_INTEGER* performanceCounter, XrTime* time); -typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToWin32PerformanceCounterKHR)(XrInstance instance, XrTime time, LARGE_INTEGER* performanceCounter); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrConvertWin32PerformanceCounterToTimeKHR( - XrInstance instance, - const LARGE_INTEGER* performanceCounter, - XrTime* time); - -XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToWin32PerformanceCounterKHR( - XrInstance instance, - XrTime time, - LARGE_INTEGER* performanceCounter); -#endif -#endif /* XR_USE_PLATFORM_WIN32 */ - -#ifdef XR_USE_TIMESPEC - -#define XR_KHR_convert_timespec_time 1 -#define XR_KHR_convert_timespec_time_SPEC_VERSION 1 -#define XR_KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME "XR_KHR_convert_timespec_time" -typedef XrResult (XRAPI_PTR *PFN_xrConvertTimespecTimeToTimeKHR)(XrInstance instance, const struct timespec* timespecTime, XrTime* time); -typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToTimespecTimeKHR)(XrInstance instance, XrTime time, struct timespec* timespecTime); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimespecTimeToTimeKHR( - XrInstance instance, - const struct timespec* timespecTime, - XrTime* time); - -XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToTimespecTimeKHR( - XrInstance instance, - XrTime time, - struct timespec* timespecTime); -#endif -#endif /* XR_USE_TIMESPEC */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/android/arm64-v8a/include/openxr/openxr_platform_defines.h b/android/arm64-v8a/include/openxr/openxr_platform_defines.h deleted file mode 100644 index 805a5b05..00000000 --- a/android/arm64-v8a/include/openxr/openxr_platform_defines.h +++ /dev/null @@ -1,120 +0,0 @@ -/* -** Copyright (c) 2017-2019 The Khronos Group Inc. -** -** 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. -*/ - -#ifndef OPENXR_PLATFORM_DEFINES_H_ -#define OPENXR_PLATFORM_DEFINES_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* Platform-specific calling convention macros. - * - * Platforms should define these so that OpenXR clients call OpenXR functions - * with the same calling conventions that the OpenXR implementation expects. - * - * XRAPI_ATTR - Placed before the return type in function declarations. - * Useful for C++11 and GCC/Clang-style function attribute syntax. - * XRAPI_CALL - Placed after the return type in function declarations. - * Useful for MSVC-style calling convention syntax. - * XRAPI_PTR - Placed between the '(' and '*' in function pointer types. - * - * Function declaration: XRAPI_ATTR void XRAPI_CALL xrFunction(void); - * Function pointer type: typedef void (XRAPI_PTR *PFN_xrFunction)(void); - */ -#if defined(_WIN32) -#define XRAPI_ATTR -// On Windows, functions use the stdcall convention -#define XRAPI_CALL __stdcall -#define XRAPI_PTR XRAPI_CALL -#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 -#error "API not supported for the 'armeabi' NDK ABI" -#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) -// On Android 32-bit ARM targets, functions use the "hardfloat" -// calling convention, i.e. float parameters are passed in registers. This -// is true even if the rest of the application passes floats on the stack, -// as it does by default when compiling for the armeabi-v7a NDK ABI. -#define XRAPI_ATTR __attribute__((pcs("aapcs-vfp"))) -#define XRAPI_CALL -#define XRAPI_PTR XRAPI_ATTR -#else -// On other platforms, use the default calling convention -#define XRAPI_ATTR -#define XRAPI_CALL -#define XRAPI_PTR -#endif - -#include - -#if !defined(XR_NO_STDINT_H) -#if defined(_MSC_VER) && (_MSC_VER < 1600) -typedef signed __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef signed __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef signed __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include -#endif -#endif // !defined( XR_NO_STDINT_H ) - -// XR_PTR_SIZE (in bytes) -#if (defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)) -#define XR_PTR_SIZE 8 -#else -#define XR_PTR_SIZE 4 -#endif - -// Needed so we can use clang __has_feature portably. -#if !defined(XR_COMPILER_HAS_FEATURE) -#if defined(__clang__) -#define XR_COMPILER_HAS_FEATURE(x) __has_feature(x) -#else -#define XR_COMPILER_HAS_FEATURE(x) 0 -#endif -#endif - -// Identifies if the current compiler has C++11 support enabled. -// Does not by itself identify if any given C++11 feature is present. -#if !defined(XR_CPP11_ENABLED) && defined(__cplusplus) -#if defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__) -#define XR_CPP11_ENABLED 1 -#elif defined(_MSC_VER) && (_MSC_VER >= 1600) -#define XR_CPP11_ENABLED 1 -#elif (__cplusplus >= 201103L) // 201103 is the first C++11 version. -#define XR_CPP11_ENABLED 1 -#endif -#endif - -// Identifies if the current compiler supports C++11 nullptr. -#if !defined(XR_CPP_NULLPTR_SUPPORTED) -#if defined(XR_CPP11_ENABLED) && \ - ((defined(__clang__) && XR_COMPILER_HAS_FEATURE(cxx_nullptr)) || \ - (defined(__GNUC__) && (((__GNUC__ * 1000) + __GNUC_MINOR__) >= 4006)) || \ - (defined(_MSC_VER) && (_MSC_VER >= 1600)) || \ - (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 403))) -#define XR_CPP_NULLPTR_SUPPORTED 1 -#endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/android/arm64-v8a/libxr_loader.so b/android/arm64-v8a/libxr_loader.so deleted file mode 100644 index c6d8b945..00000000 Binary files a/android/arm64-v8a/libxr_loader.so and /dev/null differ diff --git a/android/arm64-v8a/xr/huaweivr/libxr.a b/android/arm64-v8a/xr/huaweivr/libxr.a new file mode 100644 index 00000000..8eb4c7b2 Binary files /dev/null and b/android/arm64-v8a/xr/huaweivr/libxr.a differ diff --git a/android/arm64-v8a/xr/huaweivr/libxr_loader.so b/android/arm64-v8a/xr/huaweivr/libxr_loader.so new file mode 100644 index 00000000..215fae51 Binary files /dev/null and b/android/arm64-v8a/xr/huaweivr/libxr_loader.so differ diff --git a/android/arm64-v8a/xr/meta/libopenxr_loader.so b/android/arm64-v8a/xr/meta/libopenxr_loader.so new file mode 100644 index 00000000..f61dea92 Binary files /dev/null and b/android/arm64-v8a/xr/meta/libopenxr_loader.so differ diff --git a/android/arm64-v8a/xr/meta/libxr.a b/android/arm64-v8a/xr/meta/libxr.a new file mode 100644 index 00000000..9102b913 Binary files /dev/null and b/android/arm64-v8a/xr/meta/libxr.a differ diff --git a/android/arm64-v8a/xr/monado/libopenxr_loader.so b/android/arm64-v8a/xr/monado/libopenxr_loader.so new file mode 100644 index 00000000..7e02e283 Binary files /dev/null and b/android/arm64-v8a/xr/monado/libopenxr_loader.so differ diff --git a/android/arm64-v8a/xr/monado/libxr.a b/android/arm64-v8a/xr/monado/libxr.a new file mode 100644 index 00000000..72eea2a6 Binary files /dev/null and b/android/arm64-v8a/xr/monado/libxr.a differ diff --git a/android/arm64-v8a/xr/pico/libopenxr_loader.so b/android/arm64-v8a/xr/pico/libopenxr_loader.so new file mode 100644 index 00000000..784337e6 Binary files /dev/null and b/android/arm64-v8a/xr/pico/libopenxr_loader.so differ diff --git a/android/arm64-v8a/xr/pico/libxr.a b/android/arm64-v8a/xr/pico/libxr.a new file mode 100644 index 00000000..e8588d3e Binary files /dev/null and b/android/arm64-v8a/xr/pico/libxr.a differ diff --git a/android/arm64-v8a/xr/rokid/libopenxr_loader.so b/android/arm64-v8a/xr/rokid/libopenxr_loader.so new file mode 100644 index 00000000..976da7fb Binary files /dev/null and b/android/arm64-v8a/xr/rokid/libopenxr_loader.so differ diff --git a/android/arm64-v8a/xr/rokid/libxr.a b/android/arm64-v8a/xr/rokid/libxr.a new file mode 100644 index 00000000..379fc6ea Binary files /dev/null and b/android/arm64-v8a/xr/rokid/libxr.a differ diff --git a/android/armeabi-v7a/include/openxr/openxr.h b/android/armeabi-v7a/include/openxr/openxr.h deleted file mode 100644 index 33fb1014..00000000 --- a/android/armeabi-v7a/include/openxr/openxr.h +++ /dev/null @@ -1,1612 +0,0 @@ -#ifndef OPENXR_H_ -#define OPENXR_H_ 1 - -/* -** Copyright (c) 2017-2019 The Khronos Group Inc. -** -** 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. -*/ - -/* -** This header is generated from the Khronos OpenXR XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define XR_VERSION_1_0 1 -#include "openxr_platform_defines.h" -#define XR_MAKE_VERSION(major, minor, patch) \ - ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL)) - -// OpenXR current version number. -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 3) - -#define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL) -#define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL) -#define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) - -#if !defined(XR_NULL_HANDLE) -#if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED - #define XR_NULL_HANDLE nullptr -#else - #define XR_NULL_HANDLE 0 -#endif -#endif - - - -#define XR_NULL_SYSTEM_ID 0 - - -#define XR_NULL_PATH 0 - - -#define XR_SUCCEEDED(result) ((result) >= 0) - - -#define XR_FAILED(result) ((result) < 0) - - -#define XR_UNQUALIFIED_SUCCESS(result) ((result) == 0) - - -#define XR_NO_DURATION 0 - - -#define XR_INFINITE_DURATION 0x7fffffffffffffffLL - - -#define XR_MIN_HAPTIC_DURATION -1 - - -#define XR_FREQUENCY_UNSPECIFIED 0 - - -#define XR_MAX_EVENT_DATA_SIZE sizeof(XrEventDataBuffer) - - -#if !defined(XR_MAY_ALIAS) -#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4)) -#define XR_MAY_ALIAS __attribute__((__may_alias__)) -#else -#define XR_MAY_ALIAS -#endif -#endif - - -#if !defined(XR_DEFINE_HANDLE) -#if (XR_PTR_SIZE == 8) - #define XR_DEFINE_HANDLE(object) typedef struct object##_T* object; -#else - #define XR_DEFINE_HANDLE(object) typedef uint64_t object; -#endif -#endif - - - -#if !defined(XR_DEFINE_ATOM) - #define XR_DEFINE_ATOM(object) typedef uint64_t object; -#endif - - -typedef uint64_t XrVersion; -typedef uint64_t XrFlags64; -XR_DEFINE_ATOM(XrSystemId) -typedef uint32_t XrBool32; -XR_DEFINE_ATOM(XrPath) -typedef int64_t XrTime; -typedef int64_t XrDuration; -XR_DEFINE_HANDLE(XrInstance) -XR_DEFINE_HANDLE(XrSession) -XR_DEFINE_HANDLE(XrSpace) -XR_DEFINE_HANDLE(XrAction) -XR_DEFINE_HANDLE(XrSwapchain) -XR_DEFINE_HANDLE(XrActionSet) -#define XR_TRUE 1 -#define XR_FALSE 0 -#define XR_MAX_EXTENSION_NAME_SIZE 128 -#define XR_MAX_API_LAYER_NAME_SIZE 256 -#define XR_MAX_API_LAYER_DESCRIPTION_SIZE 256 -#define XR_MAX_SYSTEM_NAME_SIZE 256 -#define XR_MAX_APPLICATION_NAME_SIZE 128 -#define XR_MAX_ENGINE_NAME_SIZE 128 -#define XR_MAX_RUNTIME_NAME_SIZE 128 -#define XR_MAX_PATH_LENGTH 256 -#define XR_MAX_STRUCTURE_NAME_SIZE 64 -#define XR_MAX_RESULT_STRING_SIZE 64 -#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16 -#define XR_MAX_ACTION_SET_NAME_SIZE 64 -#define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE 128 -#define XR_MAX_ACTION_NAME_SIZE 64 -#define XR_MAX_LOCALIZED_ACTION_NAME_SIZE 128 - -typedef enum XrResult { - XR_SUCCESS = 0, - XR_TIMEOUT_EXPIRED = 1, - XR_SESSION_LOSS_PENDING = 3, - XR_EVENT_UNAVAILABLE = 4, - XR_SPACE_BOUNDS_UNAVAILABLE = 7, - XR_SESSION_NOT_FOCUSED = 8, - XR_FRAME_DISCARDED = 9, - XR_ERROR_VALIDATION_FAILURE = -1, - XR_ERROR_RUNTIME_FAILURE = -2, - XR_ERROR_OUT_OF_MEMORY = -3, - XR_ERROR_API_VERSION_UNSUPPORTED = -4, - XR_ERROR_INITIALIZATION_FAILED = -6, - XR_ERROR_FUNCTION_UNSUPPORTED = -7, - XR_ERROR_FEATURE_UNSUPPORTED = -8, - XR_ERROR_EXTENSION_NOT_PRESENT = -9, - XR_ERROR_LIMIT_REACHED = -10, - XR_ERROR_SIZE_INSUFFICIENT = -11, - XR_ERROR_HANDLE_INVALID = -12, - XR_ERROR_INSTANCE_LOST = -13, - XR_ERROR_SESSION_RUNNING = -14, - XR_ERROR_SESSION_NOT_RUNNING = -16, - XR_ERROR_SESSION_LOST = -17, - XR_ERROR_SYSTEM_INVALID = -18, - XR_ERROR_PATH_INVALID = -19, - XR_ERROR_PATH_COUNT_EXCEEDED = -20, - XR_ERROR_PATH_FORMAT_INVALID = -21, - XR_ERROR_PATH_UNSUPPORTED = -22, - XR_ERROR_LAYER_INVALID = -23, - XR_ERROR_LAYER_LIMIT_EXCEEDED = -24, - XR_ERROR_SWAPCHAIN_RECT_INVALID = -25, - XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26, - XR_ERROR_ACTION_TYPE_MISMATCH = -27, - XR_ERROR_SESSION_NOT_READY = -28, - XR_ERROR_SESSION_NOT_STOPPING = -29, - XR_ERROR_TIME_INVALID = -30, - XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31, - XR_ERROR_FILE_ACCESS_ERROR = -32, - XR_ERROR_FILE_CONTENTS_INVALID = -33, - XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34, - XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35, - XR_ERROR_API_LAYER_NOT_PRESENT = -36, - XR_ERROR_CALL_ORDER_INVALID = -37, - XR_ERROR_GRAPHICS_DEVICE_INVALID = -38, - XR_ERROR_POSE_INVALID = -39, - XR_ERROR_INDEX_OUT_OF_RANGE = -40, - XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41, - XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42, - XR_ERROR_NAME_DUPLICATED = -44, - XR_ERROR_NAME_INVALID = -45, - XR_ERROR_ACTIONSET_NOT_ATTACHED = -46, - XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47, - XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48, - XR_ERROR_LOCALIZED_NAME_INVALID = -49, - XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000, - XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001, - XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, - XR_RESULT_MAX_ENUM = 0x7FFFFFFF -} XrResult; - -typedef enum XrStructureType { - XR_TYPE_UNKNOWN = 0, - XR_TYPE_API_LAYER_PROPERTIES = 1, - XR_TYPE_EXTENSION_PROPERTIES = 2, - XR_TYPE_INSTANCE_CREATE_INFO = 3, - XR_TYPE_SYSTEM_GET_INFO = 4, - XR_TYPE_SYSTEM_PROPERTIES = 5, - XR_TYPE_VIEW_LOCATE_INFO = 6, - XR_TYPE_VIEW = 7, - XR_TYPE_SESSION_CREATE_INFO = 8, - XR_TYPE_SWAPCHAIN_CREATE_INFO = 9, - XR_TYPE_SESSION_BEGIN_INFO = 10, - XR_TYPE_VIEW_STATE = 11, - XR_TYPE_FRAME_END_INFO = 12, - XR_TYPE_HAPTIC_VIBRATION = 13, - XR_TYPE_EVENT_DATA_BUFFER = 16, - XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17, - XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18, - XR_TYPE_ACTION_STATE_BOOLEAN = 23, - XR_TYPE_ACTION_STATE_FLOAT = 24, - XR_TYPE_ACTION_STATE_VECTOR2F = 25, - XR_TYPE_ACTION_STATE_POSE = 27, - XR_TYPE_ACTION_SET_CREATE_INFO = 28, - XR_TYPE_ACTION_CREATE_INFO = 29, - XR_TYPE_INSTANCE_PROPERTIES = 32, - XR_TYPE_FRAME_WAIT_INFO = 33, - XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35, - XR_TYPE_COMPOSITION_LAYER_QUAD = 36, - XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37, - XR_TYPE_ACTION_SPACE_CREATE_INFO = 38, - XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40, - XR_TYPE_VIEW_CONFIGURATION_VIEW = 41, - XR_TYPE_SPACE_LOCATION = 42, - XR_TYPE_SPACE_VELOCITY = 43, - XR_TYPE_FRAME_STATE = 44, - XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45, - XR_TYPE_FRAME_BEGIN_INFO = 46, - XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48, - XR_TYPE_EVENT_DATA_EVENTS_LOST = 49, - XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51, - XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52, - XR_TYPE_INTERACTION_PROFILE_STATE = 53, - XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55, - XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56, - XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57, - XR_TYPE_ACTION_STATE_GET_INFO = 58, - XR_TYPE_HAPTIC_ACTION_INFO = 59, - XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO = 60, - XR_TYPE_ACTIONS_SYNC_INFO = 61, - XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO = 62, - XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO = 63, - XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000, - XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000, - XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000, - XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000, - XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000, - XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000, - XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000, - XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000, - XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001, - XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002, - XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003, - XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000, - XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001, - XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002, - XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003, - XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004, - XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005, - XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001, - XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002, - XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003, - XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000, - XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001, - XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002, - XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000, - XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001, - XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002, - XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000, - XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001, - XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002, - XR_TYPE_VISIBILITY_MASK_KHR = 1000031000, - XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001, - XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000, - XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001, - XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, - XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrStructureType; - -typedef enum XrFormFactor { - XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY = 1, - XR_FORM_FACTOR_HANDHELD_DISPLAY = 2, - XR_FORM_FACTOR_MAX_ENUM = 0x7FFFFFFF -} XrFormFactor; - -typedef enum XrViewConfigurationType { - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1, - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2, - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = 1000037000, - XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrViewConfigurationType; - -typedef enum XrEnvironmentBlendMode { - XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1, - XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2, - XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3, - XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF -} XrEnvironmentBlendMode; - -typedef enum XrReferenceSpaceType { - XR_REFERENCE_SPACE_TYPE_VIEW = 1, - XR_REFERENCE_SPACE_TYPE_LOCAL = 2, - XR_REFERENCE_SPACE_TYPE_STAGE = 3, - XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000, - XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrReferenceSpaceType; - -typedef enum XrActionType { - XR_ACTION_TYPE_BOOLEAN_INPUT = 1, - XR_ACTION_TYPE_FLOAT_INPUT = 2, - XR_ACTION_TYPE_VECTOR2F_INPUT = 3, - XR_ACTION_TYPE_POSE_INPUT = 4, - XR_ACTION_TYPE_VIBRATION_OUTPUT = 100, - XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrActionType; - -typedef enum XrEyeVisibility { - XR_EYE_VISIBILITY_BOTH = 0, - XR_EYE_VISIBILITY_LEFT = 1, - XR_EYE_VISIBILITY_RIGHT = 2, - XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF -} XrEyeVisibility; - -typedef enum XrSessionState { - XR_SESSION_STATE_UNKNOWN = 0, - XR_SESSION_STATE_IDLE = 1, - XR_SESSION_STATE_READY = 2, - XR_SESSION_STATE_SYNCHRONIZED = 3, - XR_SESSION_STATE_VISIBLE = 4, - XR_SESSION_STATE_FOCUSED = 5, - XR_SESSION_STATE_STOPPING = 6, - XR_SESSION_STATE_LOSS_PENDING = 7, - XR_SESSION_STATE_EXITING = 8, - XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF -} XrSessionState; - -typedef enum XrObjectType { - XR_OBJECT_TYPE_UNKNOWN = 0, - XR_OBJECT_TYPE_INSTANCE = 1, - XR_OBJECT_TYPE_SESSION = 2, - XR_OBJECT_TYPE_SWAPCHAIN = 3, - XR_OBJECT_TYPE_SPACE = 4, - XR_OBJECT_TYPE_ACTION_SET = 5, - XR_OBJECT_TYPE_ACTION = 6, - XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000, - XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, - XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF -} XrObjectType; -typedef XrFlags64 XrInstanceCreateFlags; - -// Flag bits for XrInstanceCreateFlags - -typedef XrFlags64 XrSessionCreateFlags; - -// Flag bits for XrSessionCreateFlags - -typedef XrFlags64 XrSpaceVelocityFlags; - -// Flag bits for XrSpaceVelocityFlags -static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001; -static const XrSpaceVelocityFlags XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002; - -typedef XrFlags64 XrSpaceLocationFlags; - -// Flag bits for XrSpaceLocationFlags -static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = 0x00000001; -static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_VALID_BIT = 0x00000002; -static const XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = 0x00000004; -static const XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_TRACKED_BIT = 0x00000008; - -typedef XrFlags64 XrSwapchainCreateFlags; - -// Flag bits for XrSwapchainCreateFlags -static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001; -static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002; - -typedef XrFlags64 XrSwapchainUsageFlags; - -// Flag bits for XrSwapchainUsageFlags -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020; -static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040; - -typedef XrFlags64 XrCompositionLayerFlags; - -// Flag bits for XrCompositionLayerFlags -static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001; -static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002; -static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT = 0x00000004; - -typedef XrFlags64 XrViewStateFlags; - -// Flag bits for XrViewStateFlags -static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT = 0x00000001; -static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT = 0x00000002; -static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT = 0x00000004; -static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT = 0x00000008; - -typedef XrFlags64 XrInputSourceLocalizedNameFlags; - -// Flag bits for XrInputSourceLocalizedNameFlags -static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001; -static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002; -static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004; - -typedef void (XRAPI_PTR *PFN_xrVoidFunction)(void); -typedef struct XrApiLayerProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - char layerName[XR_MAX_API_LAYER_NAME_SIZE]; - XrVersion specVersion; - uint32_t layerVersion; - char description[XR_MAX_API_LAYER_DESCRIPTION_SIZE]; -} XrApiLayerProperties; - -typedef struct XrExtensionProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - char extensionName[XR_MAX_EXTENSION_NAME_SIZE]; - uint32_t extensionVersion; -} XrExtensionProperties; - -typedef struct XrApplicationInfo { - char applicationName[XR_MAX_APPLICATION_NAME_SIZE]; - uint32_t applicationVersion; - char engineName[XR_MAX_ENGINE_NAME_SIZE]; - uint32_t engineVersion; - XrVersion apiVersion; -} XrApplicationInfo; - -typedef struct XrInstanceCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrInstanceCreateFlags createFlags; - XrApplicationInfo applicationInfo; - uint32_t enabledApiLayerCount; - const char* const* enabledApiLayerNames; - uint32_t enabledExtensionCount; - const char* const* enabledExtensionNames; -} XrInstanceCreateInfo; - -typedef struct XrInstanceProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion runtimeVersion; - char runtimeName[XR_MAX_RUNTIME_NAME_SIZE]; -} XrInstanceProperties; - -typedef struct XrEventDataBuffer { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint8_t varying[4000]; -} XrEventDataBuffer; - -typedef struct XrSystemGetInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrFormFactor formFactor; -} XrSystemGetInfo; - -typedef struct XrSystemGraphicsProperties { - uint32_t maxSwapchainImageHeight; - uint32_t maxSwapchainImageWidth; - uint32_t maxLayerCount; -} XrSystemGraphicsProperties; - -typedef struct XrSystemTrackingProperties { - XrBool32 orientationTracking; - XrBool32 positionTracking; -} XrSystemTrackingProperties; - -typedef struct XrSystemProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrSystemId systemId; - uint32_t vendorId; - char systemName[XR_MAX_SYSTEM_NAME_SIZE]; - XrSystemGraphicsProperties graphicsProperties; - XrSystemTrackingProperties trackingProperties; -} XrSystemProperties; - -typedef struct XrSessionCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSessionCreateFlags createFlags; - XrSystemId systemId; -} XrSessionCreateInfo; - -typedef struct XrVector3f { - float x; - float y; - float z; -} XrVector3f; - -typedef struct XrSpaceVelocity { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrSpaceVelocityFlags velocityFlags; - XrVector3f linearVelocity; - XrVector3f angularVelocity; -} XrSpaceVelocity; - -typedef struct XrQuaternionf { - float x; - float y; - float z; - float w; -} XrQuaternionf; - -typedef struct XrPosef { - XrQuaternionf orientation; - XrVector3f position; -} XrPosef; - -typedef struct XrReferenceSpaceCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrReferenceSpaceType referenceSpaceType; - XrPosef poseInReferenceSpace; -} XrReferenceSpaceCreateInfo; - -typedef struct XrExtent2Df { - float width; - float height; -} XrExtent2Df; - -typedef struct XrActionSpaceCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; - XrPath subactionPath; - XrPosef poseInActionSpace; -} XrActionSpaceCreateInfo; - -typedef struct XrSpaceLocation { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrSpaceLocationFlags locationFlags; - XrPosef pose; -} XrSpaceLocation; - -typedef struct XrViewConfigurationProperties { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrViewConfigurationType viewConfigurationType; - XrBool32 fovMutable; -} XrViewConfigurationProperties; - -typedef struct XrViewConfigurationView { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t recommendedImageRectWidth; - uint32_t maxImageRectWidth; - uint32_t recommendedImageRectHeight; - uint32_t maxImageRectHeight; - uint32_t recommendedSwapchainSampleCount; - uint32_t maxSwapchainSampleCount; -} XrViewConfigurationView; - -typedef struct XrSwapchainCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSwapchainCreateFlags createFlags; - XrSwapchainUsageFlags usageFlags; - int64_t format; - uint32_t sampleCount; - uint32_t width; - uint32_t height; - uint32_t faceCount; - uint32_t arraySize; - uint32_t mipCount; -} XrSwapchainCreateInfo; - -typedef struct XR_MAY_ALIAS XrSwapchainImageBaseHeader { - XrStructureType type; - void* XR_MAY_ALIAS next; -} XrSwapchainImageBaseHeader; - -typedef struct XrSwapchainImageAcquireInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrSwapchainImageAcquireInfo; - -typedef struct XrSwapchainImageWaitInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrDuration timeout; -} XrSwapchainImageWaitInfo; - -typedef struct XrSwapchainImageReleaseInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrSwapchainImageReleaseInfo; - -typedef struct XrSessionBeginInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrViewConfigurationType primaryViewConfigurationType; -} XrSessionBeginInfo; - -typedef struct XrFrameWaitInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrFrameWaitInfo; - -typedef struct XrFrameState { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrTime predictedDisplayTime; - XrDuration predictedDisplayPeriod; - XrBool32 shouldRender; -} XrFrameState; - -typedef struct XrFrameBeginInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrFrameBeginInfo; - -typedef struct XR_MAY_ALIAS XrCompositionLayerBaseHeader { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; -} XrCompositionLayerBaseHeader; - -typedef struct XrFrameEndInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrTime displayTime; - XrEnvironmentBlendMode environmentBlendMode; - uint32_t layerCount; - const XrCompositionLayerBaseHeader* const* layers; -} XrFrameEndInfo; - -typedef struct XrViewLocateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrViewConfigurationType viewConfigurationType; - XrTime displayTime; - XrSpace space; -} XrViewLocateInfo; - -typedef struct XrViewState { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrViewStateFlags viewStateFlags; -} XrViewState; - -typedef struct XrFovf { - float angleLeft; - float angleRight; - float angleUp; - float angleDown; -} XrFovf; - -typedef struct XrView { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrPosef pose; - XrFovf fov; -} XrView; - -typedef struct XrActionSetCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - char actionSetName[XR_MAX_ACTION_SET_NAME_SIZE]; - char localizedActionSetName[XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE]; - uint32_t priority; -} XrActionSetCreateInfo; - -typedef struct XrActionCreateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - char actionName[XR_MAX_ACTION_NAME_SIZE]; - XrActionType actionType; - uint32_t countSubactionPaths; - const XrPath* subactionPaths; - char localizedActionName[XR_MAX_LOCALIZED_ACTION_NAME_SIZE]; -} XrActionCreateInfo; - -typedef struct XrActionSuggestedBinding { - XrAction action; - XrPath binding; -} XrActionSuggestedBinding; - -typedef struct XrInteractionProfileSuggestedBinding { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPath interactionProfile; - uint32_t countSuggestedBindings; - const XrActionSuggestedBinding* suggestedBindings; -} XrInteractionProfileSuggestedBinding; - -typedef struct XrSessionActionSetsAttachInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t countActionSets; - const XrActionSet* actionSets; -} XrSessionActionSetsAttachInfo; - -typedef struct XrInteractionProfileState { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrPath interactionProfile; -} XrInteractionProfileState; - -typedef struct XrActionStateGetInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; - XrPath subactionPath; -} XrActionStateGetInfo; - -typedef struct XrActionStateBoolean { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrBool32 currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -} XrActionStateBoolean; - -typedef struct XrActionStateFloat { - XrStructureType type; - void* XR_MAY_ALIAS next; - float currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -} XrActionStateFloat; - -typedef struct XrVector2f { - float x; - float y; -} XrVector2f; - -typedef struct XrActionStateVector2f { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVector2f currentState; - XrBool32 changedSinceLastSync; - XrTime lastChangeTime; - XrBool32 isActive; -} XrActionStateVector2f; - -typedef struct XrActionStatePose { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrBool32 isActive; -} XrActionStatePose; - -typedef struct XrActiveActionSet { - XrActionSet actionSet; - XrPath subactionPath; -} XrActiveActionSet; - -typedef struct XrActionsSyncInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t countActiveActionSets; - const XrActiveActionSet* activeActionSets; -} XrActionsSyncInfo; - -typedef struct XrBoundSourcesForActionEnumerateInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; -} XrBoundSourcesForActionEnumerateInfo; - -typedef struct XrInputSourceLocalizedNameGetInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPath sourcePath; - XrInputSourceLocalizedNameFlags whichComponents; -} XrInputSourceLocalizedNameGetInfo; - -typedef struct XrHapticActionInfo { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrAction action; - XrPath subactionPath; -} XrHapticActionInfo; - -typedef struct XR_MAY_ALIAS XrHapticBaseHeader { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrHapticBaseHeader; - -typedef struct XR_MAY_ALIAS XrBaseInStructure { - XrStructureType type; - const struct XrBaseInStructure* next; -} XrBaseInStructure; - -typedef struct XR_MAY_ALIAS XrBaseOutStructure { - XrStructureType type; - struct XrBaseOutStructure* next; -} XrBaseOutStructure; - -typedef struct XrOffset2Di { - int32_t x; - int32_t y; -} XrOffset2Di; - -typedef struct XrExtent2Di { - int32_t width; - int32_t height; -} XrExtent2Di; - -typedef struct XrRect2Di { - XrOffset2Di offset; - XrExtent2Di extent; -} XrRect2Di; - -typedef struct XrSwapchainSubImage { - XrSwapchain swapchain; - XrRect2Di imageRect; - uint32_t imageArrayIndex; -} XrSwapchainSubImage; - -typedef struct XrCompositionLayerProjectionView { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPosef pose; - XrFovf fov; - XrSwapchainSubImage subImage; -} XrCompositionLayerProjectionView; - -typedef struct XrCompositionLayerProjection { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - uint32_t viewCount; - const XrCompositionLayerProjectionView* views; -} XrCompositionLayerProjection; - -typedef struct XrCompositionLayerQuad { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - XrExtent2Df size; -} XrCompositionLayerQuad; - -typedef struct XR_MAY_ALIAS XrEventDataBaseHeader { - XrStructureType type; - const void* XR_MAY_ALIAS next; -} XrEventDataBaseHeader; - -typedef struct XrEventDataEventsLost { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t lostEventCount; -} XrEventDataEventsLost; - -typedef struct XrEventDataInstanceLossPending { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrTime lossTime; -} XrEventDataInstanceLossPending; - -typedef struct XrEventDataSessionStateChanged { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; - XrSessionState state; - XrTime time; -} XrEventDataSessionStateChanged; - -typedef struct XrEventDataReferenceSpaceChangePending { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; - XrReferenceSpaceType referenceSpaceType; - XrTime changeTime; - XrBool32 poseValid; - XrPosef poseInPreviousSpace; -} XrEventDataReferenceSpaceChangePending; - -typedef struct XrEventDataInteractionProfileChanged { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; -} XrEventDataInteractionProfileChanged; - -typedef struct XrHapticVibration { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrDuration duration; - float frequency; - float amplitude; -} XrHapticVibration; - -typedef struct XrOffset2Df { - float x; - float y; -} XrOffset2Df; - -typedef struct XrRect2Df { - XrOffset2Df offset; - XrExtent2Df extent; -} XrRect2Df; - -typedef struct XrVector4f { - float x; - float y; - float z; - float w; -} XrVector4f; - -typedef struct XrColor4f { - float r; - float g; - float b; - float a; -} XrColor4f; - -typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance instance, const char* name, PFN_xrVoidFunction* function); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateApiLayerProperties)(uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrApiLayerProperties* properties); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateInstanceExtensionProperties)(const char* layerName, uint32_t propertyCapacityInput, uint32_t* propertyCountOutput, XrExtensionProperties* properties); -typedef XrResult (XRAPI_PTR *PFN_xrCreateInstance)(const XrInstanceCreateInfo* createInfo, XrInstance* instance); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyInstance)(XrInstance instance); -typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProperties)(XrInstance instance, XrInstanceProperties* instanceProperties); -typedef XrResult (XRAPI_PTR *PFN_xrPollEvent)(XrInstance instance, XrEventDataBuffer* eventData); -typedef XrResult (XRAPI_PTR *PFN_xrResultToString)(XrInstance instance, XrResult value, char buffer[XR_MAX_RESULT_STRING_SIZE]); -typedef XrResult (XRAPI_PTR *PFN_xrStructureTypeToString)(XrInstance instance, XrStructureType value, char buffer[XR_MAX_STRUCTURE_NAME_SIZE]); -typedef XrResult (XRAPI_PTR *PFN_xrGetSystem)(XrInstance instance, const XrSystemGetInfo* getInfo, XrSystemId* systemId); -typedef XrResult (XRAPI_PTR *PFN_xrGetSystemProperties)(XrInstance instance, XrSystemId systemId, XrSystemProperties* properties); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateEnvironmentBlendModes)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t environmentBlendModeCapacityInput, uint32_t* environmentBlendModeCountOutput, XrEnvironmentBlendMode* environmentBlendModes); -typedef XrResult (XRAPI_PTR *PFN_xrCreateSession)(XrInstance instance, const XrSessionCreateInfo* createInfo, XrSession* session); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySession)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateReferenceSpaces)(XrSession session, uint32_t spaceCapacityInput, uint32_t* spaceCountOutput, XrReferenceSpaceType* spaces); -typedef XrResult (XRAPI_PTR *PFN_xrCreateReferenceSpace)(XrSession session, const XrReferenceSpaceCreateInfo* createInfo, XrSpace* space); -typedef XrResult (XRAPI_PTR *PFN_xrGetReferenceSpaceBoundsRect)(XrSession session, XrReferenceSpaceType referenceSpaceType, XrExtent2Df* bounds); -typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSpace)(XrSession session, const XrActionSpaceCreateInfo* createInfo, XrSpace* space); -typedef XrResult (XRAPI_PTR *PFN_xrLocateSpace)(XrSpace space, XrSpace baseSpace, XrTime time, XrSpaceLocation* location); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySpace)(XrSpace space); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurations)(XrInstance instance, XrSystemId systemId, uint32_t viewConfigurationTypeCapacityInput, uint32_t* viewConfigurationTypeCountOutput, XrViewConfigurationType* viewConfigurationTypes); -typedef XrResult (XRAPI_PTR *PFN_xrGetViewConfigurationProperties)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, XrViewConfigurationProperties* configurationProperties); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateViewConfigurationViews)(XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrViewConfigurationView* views); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainFormats)(XrSession session, uint32_t formatCapacityInput, uint32_t* formatCountOutput, int64_t* formats); -typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchain)(XrSession session, const XrSwapchainCreateInfo* createInfo, XrSwapchain* swapchain); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySwapchain)(XrSwapchain swapchain); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSwapchainImages)(XrSwapchain swapchain, uint32_t imageCapacityInput, uint32_t* imageCountOutput, XrSwapchainImageBaseHeader* images); -typedef XrResult (XRAPI_PTR *PFN_xrAcquireSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageAcquireInfo* acquireInfo, uint32_t* index); -typedef XrResult (XRAPI_PTR *PFN_xrWaitSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageWaitInfo* waitInfo); -typedef XrResult (XRAPI_PTR *PFN_xrReleaseSwapchainImage)(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo* releaseInfo); -typedef XrResult (XRAPI_PTR *PFN_xrBeginSession)(XrSession session, const XrSessionBeginInfo* beginInfo); -typedef XrResult (XRAPI_PTR *PFN_xrEndSession)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrRequestExitSession)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrWaitFrame)(XrSession session, const XrFrameWaitInfo* frameWaitInfo, XrFrameState* frameState); -typedef XrResult (XRAPI_PTR *PFN_xrBeginFrame)(XrSession session, const XrFrameBeginInfo* frameBeginInfo); -typedef XrResult (XRAPI_PTR *PFN_xrEndFrame)(XrSession session, const XrFrameEndInfo* frameEndInfo); -typedef XrResult (XRAPI_PTR *PFN_xrLocateViews)(XrSession session, const XrViewLocateInfo* viewLocateInfo, XrViewState* viewState, uint32_t viewCapacityInput, uint32_t* viewCountOutput, XrView* views); -typedef XrResult (XRAPI_PTR *PFN_xrStringToPath)(XrInstance instance, const char* pathString, XrPath* path); -typedef XrResult (XRAPI_PTR *PFN_xrPathToString)(XrInstance instance, XrPath path, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrCreateActionSet)(XrInstance instance, const XrActionSetCreateInfo* createInfo, XrActionSet* actionSet); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyActionSet)(XrActionSet actionSet); -typedef XrResult (XRAPI_PTR *PFN_xrCreateAction)(XrActionSet actionSet, const XrActionCreateInfo* createInfo, XrAction* action); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyAction)(XrAction action); -typedef XrResult (XRAPI_PTR *PFN_xrSuggestInteractionProfileBindings)(XrInstance instance, const XrInteractionProfileSuggestedBinding* suggestedBindings); -typedef XrResult (XRAPI_PTR *PFN_xrAttachSessionActionSets)(XrSession session, const XrSessionActionSetsAttachInfo* attachInfo); -typedef XrResult (XRAPI_PTR *PFN_xrGetCurrentInteractionProfile)(XrSession session, XrPath topLevelUserPath, XrInteractionProfileState* interactionProfile); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateBoolean)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateBoolean* state); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateFloat)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateFloat* state); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStateVector2f)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStateVector2f* state); -typedef XrResult (XRAPI_PTR *PFN_xrGetActionStatePose)(XrSession session, const XrActionStateGetInfo* getInfo, XrActionStatePose* state); -typedef XrResult (XRAPI_PTR *PFN_xrSyncActions)(XrSession session, const XrActionsSyncInfo* syncInfo); -typedef XrResult (XRAPI_PTR *PFN_xrEnumerateBoundSourcesForAction)(XrSession session, const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, uint32_t sourceCapacityInput, uint32_t* sourceCountOutput, XrPath* sources); -typedef XrResult (XRAPI_PTR *PFN_xrGetInputSourceLocalizedName)(XrSession session, const XrInputSourceLocalizedNameGetInfo* getInfo, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrApplyHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo, const XrHapticBaseHeader* hapticFeedback); -typedef XrResult (XRAPI_PTR *PFN_xrStopHapticFeedback)(XrSession session, const XrHapticActionInfo* hapticActionInfo); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProcAddr( - XrInstance instance, - const char* name, - PFN_xrVoidFunction* function); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateApiLayerProperties( - uint32_t propertyCapacityInput, - uint32_t* propertyCountOutput, - XrApiLayerProperties* properties); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateInstanceExtensionProperties( - const char* layerName, - uint32_t propertyCapacityInput, - uint32_t* propertyCountOutput, - XrExtensionProperties* properties); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateInstance( - const XrInstanceCreateInfo* createInfo, - XrInstance* instance); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyInstance( - XrInstance instance); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetInstanceProperties( - XrInstance instance, - XrInstanceProperties* instanceProperties); - -XRAPI_ATTR XrResult XRAPI_CALL xrPollEvent( - XrInstance instance, - XrEventDataBuffer* eventData); - -XRAPI_ATTR XrResult XRAPI_CALL xrResultToString( - XrInstance instance, - XrResult value, - char buffer[XR_MAX_RESULT_STRING_SIZE]); - -XRAPI_ATTR XrResult XRAPI_CALL xrStructureTypeToString( - XrInstance instance, - XrStructureType value, - char buffer[XR_MAX_STRUCTURE_NAME_SIZE]); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetSystem( - XrInstance instance, - const XrSystemGetInfo* getInfo, - XrSystemId* systemId); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetSystemProperties( - XrInstance instance, - XrSystemId systemId, - XrSystemProperties* properties); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateEnvironmentBlendModes( - XrInstance instance, - XrSystemId systemId, - XrViewConfigurationType viewConfigurationType, - uint32_t environmentBlendModeCapacityInput, - uint32_t* environmentBlendModeCountOutput, - XrEnvironmentBlendMode* environmentBlendModes); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSession( - XrInstance instance, - const XrSessionCreateInfo* createInfo, - XrSession* session); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySession( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateReferenceSpaces( - XrSession session, - uint32_t spaceCapacityInput, - uint32_t* spaceCountOutput, - XrReferenceSpaceType* spaces); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateReferenceSpace( - XrSession session, - const XrReferenceSpaceCreateInfo* createInfo, - XrSpace* space); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetReferenceSpaceBoundsRect( - XrSession session, - XrReferenceSpaceType referenceSpaceType, - XrExtent2Df* bounds); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSpace( - XrSession session, - const XrActionSpaceCreateInfo* createInfo, - XrSpace* space); - -XRAPI_ATTR XrResult XRAPI_CALL xrLocateSpace( - XrSpace space, - XrSpace baseSpace, - XrTime time, - XrSpaceLocation* location); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpace( - XrSpace space); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurations( - XrInstance instance, - XrSystemId systemId, - uint32_t viewConfigurationTypeCapacityInput, - uint32_t* viewConfigurationTypeCountOutput, - XrViewConfigurationType* viewConfigurationTypes); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetViewConfigurationProperties( - XrInstance instance, - XrSystemId systemId, - XrViewConfigurationType viewConfigurationType, - XrViewConfigurationProperties* configurationProperties); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateViewConfigurationViews( - XrInstance instance, - XrSystemId systemId, - XrViewConfigurationType viewConfigurationType, - uint32_t viewCapacityInput, - uint32_t* viewCountOutput, - XrViewConfigurationView* views); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainFormats( - XrSession session, - uint32_t formatCapacityInput, - uint32_t* formatCountOutput, - int64_t* formats); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchain( - XrSession session, - const XrSwapchainCreateInfo* createInfo, - XrSwapchain* swapchain); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySwapchain( - XrSwapchain swapchain); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSwapchainImages( - XrSwapchain swapchain, - uint32_t imageCapacityInput, - uint32_t* imageCountOutput, - XrSwapchainImageBaseHeader* images); - -XRAPI_ATTR XrResult XRAPI_CALL xrAcquireSwapchainImage( - XrSwapchain swapchain, - const XrSwapchainImageAcquireInfo* acquireInfo, - uint32_t* index); - -XRAPI_ATTR XrResult XRAPI_CALL xrWaitSwapchainImage( - XrSwapchain swapchain, - const XrSwapchainImageWaitInfo* waitInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrReleaseSwapchainImage( - XrSwapchain swapchain, - const XrSwapchainImageReleaseInfo* releaseInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrBeginSession( - XrSession session, - const XrSessionBeginInfo* beginInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrEndSession( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrRequestExitSession( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrWaitFrame( - XrSession session, - const XrFrameWaitInfo* frameWaitInfo, - XrFrameState* frameState); - -XRAPI_ATTR XrResult XRAPI_CALL xrBeginFrame( - XrSession session, - const XrFrameBeginInfo* frameBeginInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrEndFrame( - XrSession session, - const XrFrameEndInfo* frameEndInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrLocateViews( - XrSession session, - const XrViewLocateInfo* viewLocateInfo, - XrViewState* viewState, - uint32_t viewCapacityInput, - uint32_t* viewCountOutput, - XrView* views); - -XRAPI_ATTR XrResult XRAPI_CALL xrStringToPath( - XrInstance instance, - const char* pathString, - XrPath* path); - -XRAPI_ATTR XrResult XRAPI_CALL xrPathToString( - XrInstance instance, - XrPath path, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateActionSet( - XrInstance instance, - const XrActionSetCreateInfo* createInfo, - XrActionSet* actionSet); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyActionSet( - XrActionSet actionSet); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateAction( - XrActionSet actionSet, - const XrActionCreateInfo* createInfo, - XrAction* action); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyAction( - XrAction action); - -XRAPI_ATTR XrResult XRAPI_CALL xrSuggestInteractionProfileBindings( - XrInstance instance, - const XrInteractionProfileSuggestedBinding* suggestedBindings); - -XRAPI_ATTR XrResult XRAPI_CALL xrAttachSessionActionSets( - XrSession session, - const XrSessionActionSetsAttachInfo* attachInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetCurrentInteractionProfile( - XrSession session, - XrPath topLevelUserPath, - XrInteractionProfileState* interactionProfile); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateBoolean( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStateBoolean* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateFloat( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStateFloat* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStateVector2f( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStateVector2f* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetActionStatePose( - XrSession session, - const XrActionStateGetInfo* getInfo, - XrActionStatePose* state); - -XRAPI_ATTR XrResult XRAPI_CALL xrSyncActions( - XrSession session, - const XrActionsSyncInfo* syncInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateBoundSourcesForAction( - XrSession session, - const XrBoundSourcesForActionEnumerateInfo* enumerateInfo, - uint32_t sourceCapacityInput, - uint32_t* sourceCountOutput, - XrPath* sources); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetInputSourceLocalizedName( - XrSession session, - const XrInputSourceLocalizedNameGetInfo* getInfo, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrApplyHapticFeedback( - XrSession session, - const XrHapticActionInfo* hapticActionInfo, - const XrHapticBaseHeader* hapticFeedback); - -XRAPI_ATTR XrResult XRAPI_CALL xrStopHapticFeedback( - XrSession session, - const XrHapticActionInfo* hapticActionInfo); -#endif - - -#define XR_KHR_composition_layer_cube 1 -#define XR_KHR_composition_layer_cube_SPEC_VERSION 8 -#define XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME "XR_KHR_composition_layer_cube" -typedef struct XrCompositionLayerCubeKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchain swapchain; - uint32_t imageArrayIndex; - XrQuaternionf orientation; -} XrCompositionLayerCubeKHR; - - - -#define XR_KHR_composition_layer_depth 1 -#define XR_KHR_composition_layer_depth_SPEC_VERSION 5 -#define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth" -typedef struct XrCompositionLayerDepthInfoKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSwapchainSubImage subImage; - float minDepth; - float maxDepth; - float nearZ; - float farZ; -} XrCompositionLayerDepthInfoKHR; - - - -#define XR_KHR_composition_layer_cylinder 1 -#define XR_KHR_composition_layer_cylinder_SPEC_VERSION 4 -#define XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME "XR_KHR_composition_layer_cylinder" -typedef struct XrCompositionLayerCylinderKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - float radius; - float centralAngle; - float aspectRatio; -} XrCompositionLayerCylinderKHR; - - - -#define XR_KHR_composition_layer_equirect 1 -#define XR_KHR_composition_layer_equirect_SPEC_VERSION 3 -#define XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME "XR_KHR_composition_layer_equirect" -typedef struct XrCompositionLayerEquirectKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrCompositionLayerFlags layerFlags; - XrSpace space; - XrEyeVisibility eyeVisibility; - XrSwapchainSubImage subImage; - XrPosef pose; - float radius; - XrVector2f scale; - XrVector2f bias; -} XrCompositionLayerEquirectKHR; - - - -#define XR_KHR_visibility_mask 1 -#define XR_KHR_visibility_mask_SPEC_VERSION 2 -#define XR_KHR_VISIBILITY_MASK_EXTENSION_NAME "XR_KHR_visibility_mask" - -typedef enum XrVisibilityMaskTypeKHR { - XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR = 1, - XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR = 2, - XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR = 3, - XR_VISIBILITY_MASK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} XrVisibilityMaskTypeKHR; -typedef struct XrVisibilityMaskKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t vertexCapacityInput; - uint32_t vertexCountOutput; - XrVector2f* vertices; - uint32_t indexCapacityInput; - uint32_t indexCountOutput; - uint32_t* indices; -} XrVisibilityMaskKHR; - -typedef struct XrEventDataVisibilityMaskChangedKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSession session; - XrViewConfigurationType viewConfigurationType; - uint32_t viewIndex; -} XrEventDataVisibilityMaskChangedKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetVisibilityMaskKHR)(XrSession session, XrViewConfigurationType viewConfigurationType, uint32_t viewIndex, XrVisibilityMaskTypeKHR visibilityMaskType, XrVisibilityMaskKHR* visibilityMask); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetVisibilityMaskKHR( - XrSession session, - XrViewConfigurationType viewConfigurationType, - uint32_t viewIndex, - XrVisibilityMaskTypeKHR visibilityMaskType, - XrVisibilityMaskKHR* visibilityMask); -#endif - - -#define XR_EXT_performance_settings 1 -#define XR_EXT_performance_settings_SPEC_VERSION 1 -#define XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME "XR_EXT_performance_settings" - -typedef enum XrPerfSettingsDomainEXT { - XR_PERF_SETTINGS_DOMAIN_CPU_EXT = 1, - XR_PERF_SETTINGS_DOMAIN_GPU_EXT = 2, - XR_PERF_SETTINGS_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsDomainEXT; - -typedef enum XrPerfSettingsSubDomainEXT { - XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT = 1, - XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT = 2, - XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT = 3, - XR_PERF_SETTINGS_SUB_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsSubDomainEXT; - -typedef enum XrPerfSettingsLevelEXT { - XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT = 0, - XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT = 25, - XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT = 50, - XR_PERF_SETTINGS_LEVEL_BOOST_EXT = 75, - XR_PERF_SETTINGS_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsLevelEXT; - -typedef enum XrPerfSettingsNotificationLevelEXT { - XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT = 0, - XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT = 25, - XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT = 75, - XR_PERF_SETTINGS_NOTIFICATION_LEVEL_MAX_ENUM_EXT = 0x7FFFFFFF -} XrPerfSettingsNotificationLevelEXT; -typedef struct XrEventDataPerfSettingsEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrPerfSettingsDomainEXT domain; - XrPerfSettingsSubDomainEXT subDomain; - XrPerfSettingsNotificationLevelEXT fromLevel; - XrPerfSettingsNotificationLevelEXT toLevel; -} XrEventDataPerfSettingsEXT; - -typedef XrResult (XRAPI_PTR *PFN_xrPerfSettingsSetPerformanceLevelEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrPerfSettingsSetPerformanceLevelEXT( - XrSession session, - XrPerfSettingsDomainEXT domain, - XrPerfSettingsLevelEXT level); -#endif - - -#define XR_EXT_thermal_query 1 -#define XR_EXT_thermal_query_SPEC_VERSION 1 -#define XR_EXT_THERMAL_QUERY_EXTENSION_NAME "XR_EXT_thermal_query" -typedef XrResult (XRAPI_PTR *PFN_xrThermalGetTemperatureTrendEXT)(XrSession session, XrPerfSettingsDomainEXT domain, XrPerfSettingsNotificationLevelEXT* notificationLevel, float* tempHeadroom, float* tempSlope); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT( - XrSession session, - XrPerfSettingsDomainEXT domain, - XrPerfSettingsNotificationLevelEXT* notificationLevel, - float* tempHeadroom, - float* tempSlope); -#endif - - -#define XR_EXT_debug_utils 1 -XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT) -#define XR_EXT_debug_utils_SPEC_VERSION 3 -#define XR_EXT_DEBUG_UTILS_EXTENSION_NAME "XR_EXT_debug_utils" -typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT; - -// Flag bits for XrDebugUtilsMessageSeverityFlagsEXT -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001; -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010; -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100; -static const XrDebugUtilsMessageSeverityFlagsEXT XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000; - -typedef XrFlags64 XrDebugUtilsMessageTypeFlagsEXT; - -// Flag bits for XrDebugUtilsMessageTypeFlagsEXT -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001; -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002; -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004; -static const XrDebugUtilsMessageTypeFlagsEXT XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT = 0x00000008; - -typedef struct XrDebugUtilsObjectNameInfoEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrObjectType objectType; - uint64_t objectHandle; - const char* objectName; -} XrDebugUtilsObjectNameInfoEXT; - -typedef struct XrDebugUtilsLabelEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - const char* labelName; -} XrDebugUtilsLabelEXT; - -typedef struct XrDebugUtilsMessengerCallbackDataEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - const char* messageId; - const char* functionName; - const char* message; - uint32_t objectCount; - XrDebugUtilsObjectNameInfoEXT* objects; - uint32_t sessionLabelCount; - XrDebugUtilsLabelEXT* sessionLabels; -} XrDebugUtilsMessengerCallbackDataEXT; - -typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)( - XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, - XrDebugUtilsMessageTypeFlagsEXT messageTypes, - const XrDebugUtilsMessengerCallbackDataEXT* callbackData, - void* userData); - - -typedef struct XrDebugUtilsMessengerCreateInfoEXT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrDebugUtilsMessageSeverityFlagsEXT messageSeverities; - XrDebugUtilsMessageTypeFlagsEXT messageTypes; - PFN_xrDebugUtilsMessengerCallbackEXT userCallback; - void* XR_MAY_ALIAS userData; -} XrDebugUtilsMessengerCreateInfoEXT; - -typedef XrResult (XRAPI_PTR *PFN_xrSetDebugUtilsObjectNameEXT)(XrInstance instance, const XrDebugUtilsObjectNameInfoEXT* nameInfo); -typedef XrResult (XRAPI_PTR *PFN_xrCreateDebugUtilsMessengerEXT)(XrInstance instance, const XrDebugUtilsMessengerCreateInfoEXT* createInfo, XrDebugUtilsMessengerEXT* messenger); -typedef XrResult (XRAPI_PTR *PFN_xrDestroyDebugUtilsMessengerEXT)(XrDebugUtilsMessengerEXT messenger); -typedef XrResult (XRAPI_PTR *PFN_xrSubmitDebugUtilsMessageEXT)(XrInstance instance, XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, XrDebugUtilsMessageTypeFlagsEXT messageTypes, const XrDebugUtilsMessengerCallbackDataEXT* callbackData); -typedef XrResult (XRAPI_PTR *PFN_xrSessionBeginDebugUtilsLabelRegionEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo); -typedef XrResult (XRAPI_PTR *PFN_xrSessionEndDebugUtilsLabelRegionEXT)(XrSession session); -typedef XrResult (XRAPI_PTR *PFN_xrSessionInsertDebugUtilsLabelEXT)(XrSession session, const XrDebugUtilsLabelEXT* labelInfo); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrSetDebugUtilsObjectNameEXT( - XrInstance instance, - const XrDebugUtilsObjectNameInfoEXT* nameInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateDebugUtilsMessengerEXT( - XrInstance instance, - const XrDebugUtilsMessengerCreateInfoEXT* createInfo, - XrDebugUtilsMessengerEXT* messenger); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroyDebugUtilsMessengerEXT( - XrDebugUtilsMessengerEXT messenger); - -XRAPI_ATTR XrResult XRAPI_CALL xrSubmitDebugUtilsMessageEXT( - XrInstance instance, - XrDebugUtilsMessageSeverityFlagsEXT messageSeverity, - XrDebugUtilsMessageTypeFlagsEXT messageTypes, - const XrDebugUtilsMessengerCallbackDataEXT* callbackData); - -XRAPI_ATTR XrResult XRAPI_CALL xrSessionBeginDebugUtilsLabelRegionEXT( - XrSession session, - const XrDebugUtilsLabelEXT* labelInfo); - -XRAPI_ATTR XrResult XRAPI_CALL xrSessionEndDebugUtilsLabelRegionEXT( - XrSession session); - -XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT( - XrSession session, - const XrDebugUtilsLabelEXT* labelInfo); -#endif - - -#define XR_VARJO_quad_views 1 -#define XR_VARJO_quad_views_SPEC_VERSION 1 -#define XR_VARJO_QUAD_VIEWS_EXTENSION_NAME "XR_VARJO_quad_views" - - -#define XR_MSFT_unbounded_reference_space 1 -#define XR_MSFT_unbounded_reference_space_SPEC_VERSION 1 -#define XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME "XR_MSFT_unbounded_reference_space" - - -#define XR_MSFT_spatial_anchor 1 -XR_DEFINE_HANDLE(XrSpatialAnchorMSFT) -#define XR_MSFT_spatial_anchor_SPEC_VERSION 1 -#define XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME "XR_MSFT_spatial_anchor" -typedef struct XrSpatialAnchorCreateInfoMSFT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSpace space; - XrPosef pose; - XrTime time; -} XrSpatialAnchorCreateInfoMSFT; - -typedef struct XrSpatialAnchorSpaceCreateInfoMSFT { - XrStructureType type; - const void* XR_MAY_ALIAS next; - XrSpatialAnchorMSFT anchor; - XrPosef poseInAnchorSpace; -} XrSpatialAnchorSpaceCreateInfoMSFT; - -typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorMSFT)(XrSession session, const XrSpatialAnchorCreateInfoMSFT* createInfo, XrSpatialAnchorMSFT* anchor); -typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorSpaceMSFT)(XrSession session, const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, XrSpace* space); -typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT anchor); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorMSFT( - XrSession session, - const XrSpatialAnchorCreateInfoMSFT* createInfo, - XrSpatialAnchorMSFT* anchor); - -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorSpaceMSFT( - XrSession session, - const XrSpatialAnchorSpaceCreateInfoMSFT* createInfo, - XrSpace* space); - -XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT( - XrSpatialAnchorMSFT anchor); -#endif - - -#define XR_MND_headless 1 -#define XR_MND_headless_SPEC_VERSION 1 -#define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless" - - -#define XR_OCULUS_android_session_state_enable 1 -#define XR_OCULUS_android_session_state_enable_SPEC_VERSION 1 -#define XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME "XR_OCULUS_android_session_state_enable" - - -#define XR_EXT_view_configuration_depth_range 1 -#define XR_EXT_view_configuration_depth_range_SPEC_VERSION 1 -#define XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME "XR_EXT_view_configuration_depth_range" -typedef struct XrViewConfigurationDepthRangeEXT { - XrStructureType type; - void* XR_MAY_ALIAS next; - float recommendedNearZ; - float minNearZ; - float recommendedFarZ; - float maxFarZ; -} XrViewConfigurationDepthRangeEXT; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/android/armeabi-v7a/include/openxr/openxr_platform.h b/android/armeabi-v7a/include/openxr/openxr_platform.h deleted file mode 100644 index f84dd8d2..00000000 --- a/android/armeabi-v7a/include/openxr/openxr_platform.h +++ /dev/null @@ -1,383 +0,0 @@ -#ifndef OPENXR_PLATFORM_H_ -#define OPENXR_PLATFORM_H_ 1 - -/* -** Copyright (c) 2017-2019 The Khronos Group Inc. -** -** 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. -*/ - -/* -** This header is generated from the Khronos OpenXR XML API Registry. -** -*/ - -#include "openxr.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef XR_USE_PLATFORM_ANDROID - -#define XR_KHR_android_thread_settings 1 -#define XR_KHR_android_thread_settings_SPEC_VERSION 5 -#define XR_KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME "XR_KHR_android_thread_settings" - -typedef enum XrAndroidThreadTypeKHR { - XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR = 1, - XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR = 2, - XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR = 3, - XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR = 4, - XR_ANDROID_THREAD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} XrAndroidThreadTypeKHR; -typedef XrResult (XRAPI_PTR *PFN_xrSetAndroidApplicationThreadKHR)(XrSession session, XrAndroidThreadTypeKHR threadType, uint32_t threadId); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrSetAndroidApplicationThreadKHR( - XrSession session, - XrAndroidThreadTypeKHR threadType, - uint32_t threadId); -#endif -#endif /* XR_USE_PLATFORM_ANDROID */ - -#ifdef XR_USE_PLATFORM_ANDROID - -#define XR_KHR_android_surface_swapchain 1 -#define XR_KHR_android_surface_swapchain_SPEC_VERSION 4 -#define XR_KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME "XR_KHR_android_surface_swapchain" -typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchainAndroidSurfaceKHR)(XrSession session, const XrSwapchainCreateInfo* info, XrSwapchain* swapchain, jobject* surface); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchainAndroidSurfaceKHR( - XrSession session, - const XrSwapchainCreateInfo* info, - XrSwapchain* swapchain, - jobject* surface); -#endif -#endif /* XR_USE_PLATFORM_ANDROID */ - -#ifdef XR_USE_PLATFORM_ANDROID - -#define XR_KHR_android_create_instance 1 -#define XR_KHR_android_create_instance_SPEC_VERSION 3 -#define XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME "XR_KHR_android_create_instance" -typedef struct XrInstanceCreateInfoAndroidKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - void* XR_MAY_ALIAS applicationVM; - void* XR_MAY_ALIAS applicationActivity; -} XrInstanceCreateInfoAndroidKHR; - -#endif /* XR_USE_PLATFORM_ANDROID */ - -#ifdef XR_USE_GRAPHICS_API_VULKAN - -#define XR_KHR_vulkan_swapchain_format_list 1 -#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 2 -#define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list" -typedef struct XrVulkanSwapchainFormatListCreateInfoKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - uint32_t viewFormatCount; - const VkFormat* viewFormats; -} XrVulkanSwapchainFormatListCreateInfoKHR; - -#endif /* XR_USE_GRAPHICS_API_VULKAN */ - -#ifdef XR_USE_GRAPHICS_API_OPENGL - -#define XR_KHR_opengl_enable 1 -#define XR_KHR_opengl_enable_SPEC_VERSION 7 -#define XR_KHR_OPENGL_ENABLE_EXTENSION_NAME "XR_KHR_opengl_enable" -#ifdef XR_USE_PLATFORM_WIN32 -typedef struct XrGraphicsBindingOpenGLWin32KHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - HDC hDC; - HGLRC hGLRC; -} XrGraphicsBindingOpenGLWin32KHR; -#endif // XR_USE_PLATFORM_WIN32 - -#ifdef XR_USE_PLATFORM_XLIB -typedef struct XrGraphicsBindingOpenGLXlibKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - Display* xDisplay; - uint32_t visualid; - GLXFBConfig glxFBConfig; - GLXDrawable glxDrawable; - GLXContext glxContext; -} XrGraphicsBindingOpenGLXlibKHR; -#endif // XR_USE_PLATFORM_XLIB - -#ifdef XR_USE_PLATFORM_XCB -typedef struct XrGraphicsBindingOpenGLXcbKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - xcb_connection_t* connection; - uint32_t screenNumber; - xcb_glx_fbconfig_t fbconfigid; - xcb_visualid_t visualid; - xcb_glx_drawable_t glxDrawable; - xcb_glx_context_t glxContext; -} XrGraphicsBindingOpenGLXcbKHR; -#endif // XR_USE_PLATFORM_XCB - -#ifdef XR_USE_PLATFORM_WAYLAND -typedef struct XrGraphicsBindingOpenGLWaylandKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - struct wl_display* display; -} XrGraphicsBindingOpenGLWaylandKHR; -#endif // XR_USE_PLATFORM_WAYLAND - -typedef struct XrSwapchainImageOpenGLKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t image; -} XrSwapchainImageOpenGLKHR; - -typedef struct XrGraphicsRequirementsOpenGLKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -} XrGraphicsRequirementsOpenGLKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLKHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLGraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsOpenGLKHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_OPENGL */ - -#ifdef XR_USE_GRAPHICS_API_OPENGL_ES - -#define XR_KHR_opengl_es_enable 1 -#define XR_KHR_opengl_es_enable_SPEC_VERSION 6 -#define XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME "XR_KHR_opengl_es_enable" -#ifdef XR_USE_PLATFORM_ANDROID -typedef struct XrGraphicsBindingOpenGLESAndroidKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - EGLDisplay display; - EGLConfig config; - EGLContext context; -} XrGraphicsBindingOpenGLESAndroidKHR; -#endif // XR_USE_PLATFORM_ANDROID - -typedef struct XrSwapchainImageOpenGLESKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - uint32_t image; -} XrSwapchainImageOpenGLESKHR; - -typedef struct XrGraphicsRequirementsOpenGLESKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -} XrGraphicsRequirementsOpenGLESKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLESGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLESGraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */ - -#ifdef XR_USE_GRAPHICS_API_VULKAN - -#define XR_KHR_vulkan_enable 1 -#define XR_KHR_vulkan_enable_SPEC_VERSION 6 -#define XR_KHR_VULKAN_ENABLE_EXTENSION_NAME "XR_KHR_vulkan_enable" -typedef struct XrGraphicsBindingVulkanKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - VkInstance instance; - VkPhysicalDevice physicalDevice; - VkDevice device; - uint32_t queueFamilyIndex; - uint32_t queueIndex; -} XrGraphicsBindingVulkanKHR; - -typedef struct XrSwapchainImageVulkanKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - VkImage image; -} XrSwapchainImageVulkanKHR; - -typedef struct XrGraphicsRequirementsVulkanKHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - XrVersion minApiVersionSupported; - XrVersion maxApiVersionSupported; -} XrGraphicsRequirementsVulkanKHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanInstanceExtensionsKHR)(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanDeviceExtensionsKHR)(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDeviceKHR)(XrInstance instance, XrSystemId systemId, VkInstance vkInstance, VkPhysicalDevice* vkPhysicalDevice); -typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanInstanceExtensionsKHR( - XrInstance instance, - XrSystemId systemId, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanDeviceExtensionsKHR( - XrInstance instance, - XrSystemId systemId, - uint32_t bufferCapacityInput, - uint32_t* bufferCountOutput, - char* buffer); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsDeviceKHR( - XrInstance instance, - XrSystemId systemId, - VkInstance vkInstance, - VkPhysicalDevice* vkPhysicalDevice); - -XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsVulkanKHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_VULKAN */ - -#ifdef XR_USE_GRAPHICS_API_D3D11 - -#define XR_KHR_D3D11_enable 1 -#define XR_KHR_D3D11_enable_SPEC_VERSION 4 -#define XR_KHR_D3D11_ENABLE_EXTENSION_NAME "XR_KHR_D3D11_enable" -typedef struct XrGraphicsBindingD3D11KHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - ID3D11Device* device; -} XrGraphicsBindingD3D11KHR; - -typedef struct XrSwapchainImageD3D11KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - ID3D11Texture2D* texture; -} XrSwapchainImageD3D11KHR; - -typedef struct XrGraphicsRequirementsD3D11KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - LUID adapterLuid; - D3D_FEATURE_LEVEL minFeatureLevel; -} XrGraphicsRequirementsD3D11KHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetD3D11GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D11KHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsD3D11KHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_D3D11 */ - -#ifdef XR_USE_GRAPHICS_API_D3D12 - -#define XR_KHR_D3D12_enable 1 -#define XR_KHR_D3D12_enable_SPEC_VERSION 5 -#define XR_KHR_D3D12_ENABLE_EXTENSION_NAME "XR_KHR_D3D12_enable" -typedef struct XrGraphicsBindingD3D12KHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - ID3D12Device* device; - ID3D12CommandQueue* queue; -} XrGraphicsBindingD3D12KHR; - -typedef struct XrSwapchainImageD3D12KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - ID3D12Resource* texture; -} XrSwapchainImageD3D12KHR; - -typedef struct XrGraphicsRequirementsD3D12KHR { - XrStructureType type; - void* XR_MAY_ALIAS next; - LUID adapterLuid; - D3D_FEATURE_LEVEL minFeatureLevel; -} XrGraphicsRequirementsD3D12KHR; - -typedef XrResult (XRAPI_PTR *PFN_xrGetD3D12GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D12KHR* graphicsRequirements); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR( - XrInstance instance, - XrSystemId systemId, - XrGraphicsRequirementsD3D12KHR* graphicsRequirements); -#endif -#endif /* XR_USE_GRAPHICS_API_D3D12 */ - -#ifdef XR_USE_PLATFORM_WIN32 - -#define XR_KHR_win32_convert_performance_counter_time 1 -#define XR_KHR_win32_convert_performance_counter_time_SPEC_VERSION 1 -#define XR_KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME "XR_KHR_win32_convert_performance_counter_time" -typedef XrResult (XRAPI_PTR *PFN_xrConvertWin32PerformanceCounterToTimeKHR)(XrInstance instance, const LARGE_INTEGER* performanceCounter, XrTime* time); -typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToWin32PerformanceCounterKHR)(XrInstance instance, XrTime time, LARGE_INTEGER* performanceCounter); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrConvertWin32PerformanceCounterToTimeKHR( - XrInstance instance, - const LARGE_INTEGER* performanceCounter, - XrTime* time); - -XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToWin32PerformanceCounterKHR( - XrInstance instance, - XrTime time, - LARGE_INTEGER* performanceCounter); -#endif -#endif /* XR_USE_PLATFORM_WIN32 */ - -#ifdef XR_USE_TIMESPEC - -#define XR_KHR_convert_timespec_time 1 -#define XR_KHR_convert_timespec_time_SPEC_VERSION 1 -#define XR_KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME "XR_KHR_convert_timespec_time" -typedef XrResult (XRAPI_PTR *PFN_xrConvertTimespecTimeToTimeKHR)(XrInstance instance, const struct timespec* timespecTime, XrTime* time); -typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToTimespecTimeKHR)(XrInstance instance, XrTime time, struct timespec* timespecTime); - -#ifndef XR_NO_PROTOTYPES -XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimespecTimeToTimeKHR( - XrInstance instance, - const struct timespec* timespecTime, - XrTime* time); - -XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToTimespecTimeKHR( - XrInstance instance, - XrTime time, - struct timespec* timespecTime); -#endif -#endif /* XR_USE_TIMESPEC */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/android/armeabi-v7a/include/openxr/openxr_platform_defines.h b/android/armeabi-v7a/include/openxr/openxr_platform_defines.h deleted file mode 100644 index 805a5b05..00000000 --- a/android/armeabi-v7a/include/openxr/openxr_platform_defines.h +++ /dev/null @@ -1,120 +0,0 @@ -/* -** Copyright (c) 2017-2019 The Khronos Group Inc. -** -** 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. -*/ - -#ifndef OPENXR_PLATFORM_DEFINES_H_ -#define OPENXR_PLATFORM_DEFINES_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* Platform-specific calling convention macros. - * - * Platforms should define these so that OpenXR clients call OpenXR functions - * with the same calling conventions that the OpenXR implementation expects. - * - * XRAPI_ATTR - Placed before the return type in function declarations. - * Useful for C++11 and GCC/Clang-style function attribute syntax. - * XRAPI_CALL - Placed after the return type in function declarations. - * Useful for MSVC-style calling convention syntax. - * XRAPI_PTR - Placed between the '(' and '*' in function pointer types. - * - * Function declaration: XRAPI_ATTR void XRAPI_CALL xrFunction(void); - * Function pointer type: typedef void (XRAPI_PTR *PFN_xrFunction)(void); - */ -#if defined(_WIN32) -#define XRAPI_ATTR -// On Windows, functions use the stdcall convention -#define XRAPI_CALL __stdcall -#define XRAPI_PTR XRAPI_CALL -#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 -#error "API not supported for the 'armeabi' NDK ABI" -#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) -// On Android 32-bit ARM targets, functions use the "hardfloat" -// calling convention, i.e. float parameters are passed in registers. This -// is true even if the rest of the application passes floats on the stack, -// as it does by default when compiling for the armeabi-v7a NDK ABI. -#define XRAPI_ATTR __attribute__((pcs("aapcs-vfp"))) -#define XRAPI_CALL -#define XRAPI_PTR XRAPI_ATTR -#else -// On other platforms, use the default calling convention -#define XRAPI_ATTR -#define XRAPI_CALL -#define XRAPI_PTR -#endif - -#include - -#if !defined(XR_NO_STDINT_H) -#if defined(_MSC_VER) && (_MSC_VER < 1600) -typedef signed __int8 int8_t; -typedef unsigned __int8 uint8_t; -typedef signed __int16 int16_t; -typedef unsigned __int16 uint16_t; -typedef signed __int32 int32_t; -typedef unsigned __int32 uint32_t; -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -#include -#endif -#endif // !defined( XR_NO_STDINT_H ) - -// XR_PTR_SIZE (in bytes) -#if (defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)) -#define XR_PTR_SIZE 8 -#else -#define XR_PTR_SIZE 4 -#endif - -// Needed so we can use clang __has_feature portably. -#if !defined(XR_COMPILER_HAS_FEATURE) -#if defined(__clang__) -#define XR_COMPILER_HAS_FEATURE(x) __has_feature(x) -#else -#define XR_COMPILER_HAS_FEATURE(x) 0 -#endif -#endif - -// Identifies if the current compiler has C++11 support enabled. -// Does not by itself identify if any given C++11 feature is present. -#if !defined(XR_CPP11_ENABLED) && defined(__cplusplus) -#if defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__) -#define XR_CPP11_ENABLED 1 -#elif defined(_MSC_VER) && (_MSC_VER >= 1600) -#define XR_CPP11_ENABLED 1 -#elif (__cplusplus >= 201103L) // 201103 is the first C++11 version. -#define XR_CPP11_ENABLED 1 -#endif -#endif - -// Identifies if the current compiler supports C++11 nullptr. -#if !defined(XR_CPP_NULLPTR_SUPPORTED) -#if defined(XR_CPP11_ENABLED) && \ - ((defined(__clang__) && XR_COMPILER_HAS_FEATURE(cxx_nullptr)) || \ - (defined(__GNUC__) && (((__GNUC__ * 1000) + __GNUC_MINOR__) >= 4006)) || \ - (defined(_MSC_VER) && (_MSC_VER >= 1600)) || \ - (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 403))) -#define XR_CPP_NULLPTR_SUPPORTED 1 -#endif -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/android/armeabi-v7a/libxr_loader.so b/android/armeabi-v7a/libxr_loader.so deleted file mode 100644 index 7b3b88e5..00000000 Binary files a/android/armeabi-v7a/libxr_loader.so and /dev/null differ diff --git a/android/x86_64/xr/monado/libopenxr_loader.so b/android/x86_64/xr/monado/libopenxr_loader.so new file mode 100644 index 00000000..a5cd4ada Binary files /dev/null and b/android/x86_64/xr/monado/libopenxr_loader.so differ diff --git a/android/x86_64/xr/monado/libxr.a b/android/x86_64/xr/monado/libxr.a new file mode 100644 index 00000000..ec389f48 Binary files /dev/null and b/android/x86_64/xr/monado/libxr.a differ diff --git a/android/xr.cmake b/android/xr.cmake new file mode 100644 index 00000000..4e58a89a --- /dev/null +++ b/android/xr.cmake @@ -0,0 +1,111 @@ + + +################################# options ############################################ +# default fallback options +cc_set_if_undefined(BUILD_XR_NATIVE OFF) +cc_set_if_undefined(XR_OEM_META OFF) +cc_set_if_undefined(XR_OEM_HUAWEIVR OFF) +cc_set_if_undefined(XR_OEM_PICO OFF) +cc_set_if_undefined(XR_OEM_ROKID OFF) +cc_set_if_undefined(XR_OEM_SEED OFF) +cc_set_if_undefined(XR_USE_GRAPHICS_API_OPENGL_ES ON) +cc_set_if_undefined(XR_USE_GRAPHICS_API_VULKAN ON) +cc_set_if_undefined(XR_USE_GRAPHICS_API_OPENGL OFF) +cc_set_if_undefined(XR_USE_GRAPHICS_API_D3D11 OFF) +cc_set_if_undefined(XR_USE_GRAPHICS_API_D3D12 OFF) + + +# Several files use these compile time platform switches +if(WIN32) + cc_set_if_undefined(XR_USE_PLATFORM_WIN32 ON) +elseif(ANDROID) + cc_set_if_undefined(XR_USE_PLATFORM_ANDROID ON) +elseif(PRESENTATION_BACKEND MATCHES "xlib") + cc_set_if_undefined(XR_USE_PLATFORM_XLIB ON) +elseif(PRESENTATION_BACKEND MATCHES "xcb") + cc_set_if_undefined(XR_USE_PLATFORM_XCB ON) +elseif(PRESENTATION_BACKEND MATCHES "wayland") + cc_set_if_undefined(XR_USE_PLATFORM_WAYLAND ON) +endif() + + +################################# list all option values ############################## +cc_inspect_values( + BUILD_XR_NATIVE + XR_OEM_META + XR_OEM_HUAWEIVR + XR_OEM_PICO + XR_OEM_ROKID + XR_OEM_SEED + XR_USE_GRAPHICS_API_OPENGL_ES + XR_USE_GRAPHICS_API_VULKAN + XR_USE_GRAPHICS_API_OPENGL + XR_USE_GRAPHICS_API_D3D11 + XR_USE_GRAPHICS_API_D3D12 + XR_USE_PLATFORM_WIN32 + XR_USE_PLATFORM_ANDROID + XR_USE_PLATFORM_XLIB + XR_USE_PLATFORM_XCB + XR_USE_PLATFORM_WAYLAND +) + + +################################# cc_xr_apply_definations ################################### +function(cc_xr_apply_definations target) + target_compile_definitions(${target} PUBLIC + $,XR_OEM_META=1,XR_OEM_META=0> + $,XR_OEM_HUAWEIVR=1,XR_OEM_HUAWEIVR=0> + $,XR_OEM_PICO=1,XR_OEM_PICO=0> + $,XR_OEM_ROKID=1,XR_OEM_ROKID=0> + $,XR_OEM_SEED=1,XR_OEM_SEED=0> + $<$:XR_USE_GRAPHICS_API_OPENGL_ES=1> + $<$:XR_USE_GRAPHICS_API_VULKAN=1> + $<$:XR_USE_GRAPHICS_API_OPENGL=1> + $<$:XR_USE_GRAPHICS_API_D3D11=1> + $<$:XR_USE_GRAPHICS_API_D3D12=1> + $<$:XR_USE_PLATFORM_WIN32=1> + $<$:XR_USE_PLATFORM_ANDROID=1> + $<$:XR_USE_PLATFORM_XLIB=1> + $<$:XR_USE_PLATFORM_XCB=1> + $<$:XR_USE_PLATFORM_WAYLAND=1> + ) +endfunction() + +set(XR_EXTERNAL_LIBS) +set(XR_EXTERNAL_INCLUDES) +set(XR_EXTERNAL_SOURCES) + +list(APPEND XR_EXTERNAL_INCLUDES + ${CMAKE_CURRENT_LIST_DIR} +) + +set(XR_OEM_LOADER_NAME openxr_loader) +if(XR_OEM_META) + set(XR_OEM_FOLDER meta) + set(XR_FOLDER meta) +elseif(XR_OEM_HUAWEIVR) + set(XR_OEM_FOLDER huaweivr) + set(XR_OEM_LOADER_NAME xr_loader) + set(XR_FOLDER huaweivr) +elseif(XR_OEM_PICO) + set(XR_OEM_FOLDER pico) + set(XR_FOLDER pico) +elseif(XR_OEM_ROKID) + set(XR_OEM_FOLDER rokid) + set(XR_FOLDER rokid) +elseif(XR_OEM_SEED) + set(XR_OEM_FOLDER monado) + set(XR_FOLDER seed) +else() + set(XR_OEM_FOLDER monado) + set(XR_FOLDER monado) +endif() + +add_library(openxr SHARED IMPORTED GLOBAL) +set_target_properties(openxr PROPERTIES + IMPORTED_LOCATION ${platform_spec_path}/xr/${XR_OEM_FOLDER}/lib${XR_OEM_LOADER_NAME}.so +) + +list(APPEND XR_EXTERNAL_LIBS + openxr +) diff --git a/emscripten/webgpu/glslang.js b/emscripten/webgpu/glslang.js new file mode 100644 index 00000000..c5759a65 --- /dev/null +++ b/emscripten/webgpu/glslang.js @@ -0,0 +1,137 @@ +var Module = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( + function(Module) { + Module = Module || {}; + + var c;c||(c=typeof Module !== 'undefined' ? Module : {}); + c.compileGLSLZeroCopy=function(a,b,d,e){d=!!d;switch(b){case "vertex":var g=0;break;case "fragment":g=4;break;case "compute":g=5;break;default:throw Error("shader_stage must be 'vertex', 'fragment', or 'compute'.");}switch(e||"1.0"){case "1.0":var f=65536;break;case "1.1":f=65792;break;case "1.2":f=66048;break;case "1.3":f=66304;break;case "1.4":f=66560;break;case "1.5":f=66816;break;default:throw Error("spirv_version must be '1.0' ~ '1.5'.");}e=c._malloc(4);b=c._malloc(4);var h=aa([a,g,d,f,e,b]); + d=k(e);a=k(b);c._free(e);c._free(b);if(0===h)throw Error("GLSL compilation failed");e={};d/=4;e.data=c.HEAPU32.subarray(d,d+a);e.free=function(){c._destroy_output_buffer(h)};return e};c.compileGLSL=function(a,b,d,e){a=c.compileGLSLZeroCopy(a,b,d,e);b=a.data.slice();a.free();return b};var p={},q;for(q in c)c.hasOwnProperty(q)&&(p[q]=c[q]);var r="./this.program",t=!1,u=!1;t="object"===typeof window;u="function"===typeof importScripts;var v="",w; + if(t||u)u?v=self.location.href:document.currentScript&&(v=document.currentScript.src),_scriptDir&&(v=_scriptDir),0!==v.indexOf("blob:")?v=v.substr(0,v.lastIndexOf("/")+1):v="",u&&(w=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});var x=c.print||console.log.bind(console),y=c.printErr||console.warn.bind(console);for(q in p)p.hasOwnProperty(q)&&(c[q]=p[q]);p=null;c.thisProgram&&(r=c.thisProgram);var A; + c.wasmBinary&&(A=c.wasmBinary);"object"!==typeof WebAssembly&&y("no native wasm support detected");function k(a){var b="i32";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return B[a>>0];case "i8":return B[a>>0];case "i16":return ba[a>>1];case "i32":return C[a>>2];case "i64":return C[a>>2];case "float":return ca[a>>2];case "double":return da[a>>3];default:D("invalid type for getValue: "+b)}return null}var E,ea=new WebAssembly.Table({initial:859,maximum:859,element:"anyfunc"}),fa=!1; + function ha(){var a=c._convert_glsl_to_spirv;a||D("Assertion failed: Cannot call unknown function convert_glsl_to_spirv, make sure it is exported");return a} + function aa(a){var b="string number boolean number number number".split(" "),d={string:function(a){var b=0;if(null!==a&&void 0!==a&&0!==a){var d=(a.length<<2)+1;b=G(d);ia(a,H,b,d)}return b},array:function(a){var b=G(a.length);B.set(a,b);return b}},e=ha(),g=[],f=0;if(a)for(var h=0;h=e);)++d;if(16g?e+=String.fromCharCode(g):(g-=65536,e+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else e+=String.fromCharCode(g)}return e} + function ia(a,b,d,e){if(0=f){var h=a.charCodeAt(++g);f=65536+((f&1023)<<10)|h&1023}if(127>=f){if(d>=e)break;b[d++]=f}else{if(2047>=f){if(d+1>=e)break;b[d++]=192|f>>6}else{if(65535>=f){if(d+2>=e)break;b[d++]=224|f>>12}else{if(d+3>=e)break;b[d++]=240|f>>18;b[d++]=128|f>>12&63}b[d++]=128|f>>6&63}b[d++]=128|f&63}}b[d]=0}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var J,B,H,ba,C,ca,da; + function ma(a){J=a;c.HEAP8=B=new Int8Array(a);c.HEAP16=ba=new Int16Array(a);c.HEAP32=C=new Int32Array(a);c.HEAPU8=H=new Uint8Array(a);c.HEAPU16=new Uint16Array(a);c.HEAPU32=new Uint32Array(a);c.HEAPF32=ca=new Float32Array(a);c.HEAPF64=da=new Float64Array(a)}var na=c.TOTAL_MEMORY||16777216;c.wasmMemory?E=c.wasmMemory:E=new WebAssembly.Memory({initial:na/65536});E&&(J=E.buffer);na=J.byteLength;ma(J);C[84916]=5582704; + function K(a){for(;0>2]}var Q={},Ba={}; + function Ca(){if(!R){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:r},b;for(b in Ba)a[b]=Ba[b];var d=[];for(b in a)d.push(b+"="+a[b]);R=d}return R}var R;function S(a){return 0===a%4&&(0!==a%100||0===a%400)}function T(a,b){for(var d=0,e=0;e<=b;d+=a[e++]);return d}var U=[31,29,31,30,31,30,31,31,30,31,30,31],W=[31,28,31,30,31,30,31,31,30,31,30,31]; + function X(a,b){for(a=new Date(a.getTime());0e-a.getDate())b-=e-a.getDate()+1,a.setDate(1),11>d?a.setMonth(d+1):(a.setMonth(0),a.setFullYear(a.getFullYear()+1));else{a.setDate(a.getDate()+b);break}}return a} + function Da(a,b,d,e){function g(a,b,d){for(a="number"===typeof a?a.toString():a||"";a.lengtha?-1:0=h(n(new Date(a.getFullYear(),0,4)),a)?0>=h(b,a)?a.getFullYear()+1:a.getFullYear():a.getFullYear()-1}var m=C[e+40>>2];e={N:C[e>>2],M:C[e+4>>2],D:C[e+8>>2],C:C[e+12>>2],B:C[e+16>>2],A:C[e+20>>2],F:C[e+24>>2],G:C[e+28>>2],X:C[e+32>>2],L:C[e+36>>2],O:m?m?I(H,m,void 0): + "":""};d=d?I(H,d,void 0):"";m={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var l in m)d=d.replace(new RegExp(l,"g"),m[l]);var F="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), + va="January February March April May June July August September October November December".split(" ");m={"%a":function(a){return F[a.F].substring(0,3)},"%A":function(a){return F[a.F]},"%b":function(a){return va[a.B].substring(0,3)},"%B":function(a){return va[a.B]},"%C":function(a){return f((a.A+1900)/100|0,2)},"%d":function(a){return f(a.C,2)},"%e":function(a){return g(a.C,2," ")},"%g":function(a){return z(a).toString().substring(2)},"%G":function(a){return z(a)},"%H":function(a){return f(a.D,2)}, + "%I":function(a){a=a.D;0==a?a=12:12a.D?"AM":"PM"},"%S":function(a){return f(a.N,2)},"%t":function(){return"\t"},"%u":function(a){return a.F||7},"%U":function(a){var b=new Date(a.A+1900,0,1),d=0===b.getDay()?b:X(b,7-b.getDay());a=new Date(a.A+1900,a.B,a.C);return 0>h(d,a)?f(Math.ceil((31- + d.getDate()+(T(S(a.getFullYear())?U:W,a.getMonth()-1)-31)+a.getDate())/7),2):0===h(d,b)?"01":"00"},"%V":function(a){var b=n(new Date(a.A+1900,0,4)),d=n(new Date(a.A+1901,0,4)),e=X(new Date(a.A+1900,0,1),a.G);return 0>h(e,b)?"53":0>=h(d,e)?"01":f(Math.ceil((b.getFullYear()h(d,a)?f(Math.ceil((31- + d.getDate()+(T(S(a.getFullYear())?U:W,a.getMonth()-1)-31)+a.getDate())/7),2):0===h(d,b)?"01":"00"},"%y":function(a){return(a.A+1900).toString().substring(2)},"%Y":function(a){return a.A+1900},"%z":function(a){a=a.L;var b=0<=a;a=Math.abs(a)/60;return(b?"+":"-")+String("0000"+(a/60*100+a%60)).slice(-4)},"%Z":function(a){return a.O},"%%":function(){return"%"}};for(l in m)0<=d.indexOf(l)&&(d=d.replace(new RegExp(l,"g"),m[l](e)));l=Ea(d);if(l.length>b)return 0;B.set(l,a);return l.length-1} + function Ea(a){for(var b=0,d=0;d=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++d)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:b+4}b=Array(b+1);ia(a,b,0,b.length);return b} + var Ga={f:function(){},c:function(){c.___errno_location&&(C[c.___errno_location()>>2]=63);return-1},n:function(a,b){P=b;try{var d=Aa();var e=Aa();if(-1===d||0===e)var g=-28;else{var f=Q.K[d];if(f&&e===f.U){var h=(void 0).T(f.S);Q.R(d,h,e,f.flags,f.offset);(void 0).W(h);Q.K[d]=null;f.P&&Fa(f.V)}g=0}return g}catch(n){return D(n),-n.I}},a:function(){},b:function(){D()},k:function(a,b,d){H.set(H.subarray(b,b+d),a)},l:function(a){var b=B.length;if(2147418112=d;d*=2){var e=b*(1+ + .2/d);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>16);ma(E.buffer);var g=1;break a}catch(f){}g=void 0}if(g)return!0}return!1},d:function(a,b){var d=0;Ca().forEach(function(e,g){var f=b+d;g=C[a+4*g>>2]=f;for(f=0;f>0]=e.charCodeAt(f);B[g>>0]=0;d+=e.length+1});return 0},e:function(a,b){var d=Ca();C[a>>2]=d.length;var e=0;d.forEach(function(a){e+=a.length+1});C[b>>2]=e;return 0},h:function(){return 0}, + j:function(){return 0},g:function(a,b,d,e){try{for(var g=0,f=0;f>2],n=C[b+(8*f+4)>>2],z=0;z>2]=g;return 0}catch(F){return D(F),F.I}},memory:E,o:function(){},i:function(){},m:function(a,b,d,e){return Da(a,b,d,e)},table:ea},Ha=function(){function a(a){c.asm=a.exports;L--;c.monitorRunDependencies&&c.monitorRunDependencies(L);0==L&&(null!==M&&(clearInterval(M),M=null),N&&(a=N,N=null, + a()))}function b(b){a(b.instance)}function d(a){return xa().then(function(a){return WebAssembly.instantiate(a,e)}).then(a,function(a){y("failed to asynchronously prepare wasm: "+a);D(a)})}var e={env:Ga,wasi_snapshot_preview1:Ga};L++;c.monitorRunDependencies&&c.monitorRunDependencies(L);if(c.instantiateWasm)try{return c.instantiateWasm(e,a)}catch(g){return y("Module.instantiateWasm callback failed with error: "+g),!1}(function(){if(A||"function"!==typeof WebAssembly.instantiateStreaming||ta()||"function"!== + typeof fetch)return d(b);fetch(O,{credentials:"same-origin"}).then(function(a){return WebAssembly.instantiateStreaming(a,e).then(b,function(a){y("wasm streaming compile failed: "+a);y("falling back to ArrayBuffer instantiation");d(b)})})})();return{}}();c.asm=Ha;var ya=c.___wasm_call_ctors=function(){return(ya=c.___wasm_call_ctors=c.asm.p).apply(null,arguments)};c._convert_glsl_to_spirv=function(){return(c._convert_glsl_to_spirv=c.asm.q).apply(null,arguments)}; + c._destroy_output_buffer=function(){return(c._destroy_output_buffer=c.asm.r).apply(null,arguments)};c._malloc=function(){return(c._malloc=c.asm.s).apply(null,arguments)};var Fa=c._free=function(){return(Fa=c._free=c.asm.t).apply(null,arguments)},ja=c.stackSave=function(){return(ja=c.stackSave=c.asm.u).apply(null,arguments)},G=c.stackAlloc=function(){return(G=c.stackAlloc=c.asm.v).apply(null,arguments)},ka=c.stackRestore=function(){return(ka=c.stackRestore=c.asm.w).apply(null,arguments)}; + c.dynCall_vi=function(){return(c.dynCall_vi=c.asm.x).apply(null,arguments)};c.dynCall_v=function(){return(c.dynCall_v=c.asm.y).apply(null,arguments)};c.asm=Ha;var Y;c.then=function(a){if(Y)a(c);else{var b=c.onRuntimeInitialized;c.onRuntimeInitialized=function(){b&&b();a(c)}}return c};N=function Ia(){Y||Z();Y||(N=Ia)}; + function Z(){function a(){if(!Y&&(Y=!0,!fa)){K(pa);K(qa);if(c.onRuntimeInitialized)c.onRuntimeInitialized();if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;){var a=c.postRun.shift();ra.unshift(a)}K(ra)}}if(!(0 { + // const initialize = () => { + // return new Promise(resolve => { + // Module({ + // locateFile() { + // const i = import.meta.url.lastIndexOf('/') + // return import.meta.url.substring(0, i) + '/glslang.wasm'; + // }, + // onRuntimeInitialized() { + // resolve({ + // compileGLSLZeroCopy: this.compileGLSLZeroCopy, + // compileGLSL: this.compileGLSL, + // }); + // }, + // }); + // }); + // }; + + // let instance; + // return () => { + // if (!instance) { + // instance = initialize(); + // } + // return instance; + // }; + // })(); + // (function tryToExport(root, factory) { + // if (typeof exports === 'object' && typeof module === 'object') + // module.exports = factory(); + // else if (typeof define === 'function' && define.amd) + // define("glslang", [], factory); + // else if (typeof exports === 'object') + // exports["glslang"] = factory(); + // else + // root["glslang"] = factory(); + // })(typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this, () => { + // const initialize = (wasmPath) => { + // wasmPath = 'http://localhost:7456/glslang.wasm' + // return new Promise(resolve => { + // Module({ + // locateFile() { + // return wasmPath; + // }, + // onRuntimeInitialized() { + // resolve({ + // compileGLSLZeroCopy: this.compileGLSLZeroCopy, + // compileGLSL: this.compileGLSL, + // }); + // }, + // }); + // }); + // }; + + // let instance; + // return (wasmPath) => { + // if (!instance) { + // instance = initialize(wasmPath); + // } + // return instance; + // }; + // }); + + + const initialize = (wasmPath) => { + return new Promise(resolve => { + Module({ + locateFile() { + return wasmPath; + }, + onRuntimeInitialized() { + resolve({ + compileGLSLZeroCopy: this.compileGLSLZeroCopy, + compileGLSL: this.compileGLSL, + }); + }, + }); + }); + }; + + let instance; + export default (wasmPath) => { + if (!instance) { + instance = initialize(wasmPath); + } + return instance; + }; \ No newline at end of file diff --git a/emscripten/webgpu/glslang.wasm b/emscripten/webgpu/glslang.wasm new file mode 100644 index 00000000..d951d65e Binary files /dev/null and b/emscripten/webgpu/glslang.wasm differ diff --git a/emscripten/webgpu/webgpu_wasm.js b/emscripten/webgpu/webgpu_wasm.js new file mode 100644 index 00000000..900e8289 --- /dev/null +++ b/emscripten/webgpu/webgpu_wasm.js @@ -0,0 +1,16 @@ + +var wasmDevice = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(wasmDevice) { + wasmDevice = wasmDevice || {}; + +var Module=typeof wasmDevice!="undefined"?wasmDevice:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var POINTER_SIZE=4;var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="webgpu_wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["Wa"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Ya"];addOnInit(Module["asm"]["Xa"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+embindRepr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+embindRepr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+embindRepr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+" is a read-only property")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAPU32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_new_object(){return Emval.toHandle({})}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var WebGPU={initManagers:function(){if(WebGPU.mgrDevice)return;function Manager(){this.objects={};this.nextId=1;this.create=function(object,wrapper){wrapper=wrapper||{};var id=this.nextId++;wrapper.refcount=1;wrapper.object=object;this.objects[id]=wrapper;return id};this.get=function(id){if(!id)return undefined;var o=this.objects[id];return o.object};this.reference=function(id){var o=this.objects[id];o.refcount++};this.release=function(id){var o=this.objects[id];o.refcount--;if(o.refcount<=0){delete this.objects[id]}}}WebGPU.mgrSurface=WebGPU.mgrSurface||new Manager;WebGPU.mgrSwapChain=WebGPU.mgrSwapChain||new Manager;WebGPU.mgrAdapter=WebGPU.mgrAdapter||new Manager;WebGPU.mgrDevice=WebGPU.mgrDevice||new Manager;WebGPU.mgrQueue=WebGPU.mgrQueue||new Manager;WebGPU.mgrCommandBuffer=WebGPU.mgrCommandBuffer||new Manager;WebGPU.mgrCommandEncoder=WebGPU.mgrCommandEncoder||new Manager;WebGPU.mgrRenderPassEncoder=WebGPU.mgrRenderPassEncoder||new Manager;WebGPU.mgrComputePassEncoder=WebGPU.mgrComputePassEncoder||new Manager;WebGPU.mgrBindGroup=WebGPU.mgrBindGroup||new Manager;WebGPU.mgrBuffer=WebGPU.mgrBuffer||new Manager;WebGPU.mgrSampler=WebGPU.mgrSampler||new Manager;WebGPU.mgrTexture=WebGPU.mgrTexture||new Manager;WebGPU.mgrTextureView=WebGPU.mgrTextureView||new Manager;WebGPU.mgrQuerySet=WebGPU.mgrQuerySet||new Manager;WebGPU.mgrBindGroupLayout=WebGPU.mgrBindGroupLayout||new Manager;WebGPU.mgrPipelineLayout=WebGPU.mgrPipelineLayout||new Manager;WebGPU.mgrRenderPipeline=WebGPU.mgrRenderPipeline||new Manager;WebGPU.mgrComputePipeline=WebGPU.mgrComputePipeline||new Manager;WebGPU.mgrShaderModule=WebGPU.mgrShaderModule||new Manager;WebGPU.mgrRenderBundleEncoder=WebGPU.mgrRenderBundleEncoder||new Manager;WebGPU.mgrRenderBundle=WebGPU.mgrRenderBundle||new Manager},makeColor:function(ptr){return{"r":HEAPF64[ptr>>3],"g":HEAPF64[ptr+8>>3],"b":HEAPF64[ptr+16>>3],"a":HEAPF64[ptr+24>>3]}},makeExtent3D:function(ptr){return{"width":HEAPU32[ptr>>2],"height":HEAPU32[ptr+4>>2],"depthOrArrayLayers":HEAPU32[ptr+8>>2]}},makeOrigin3D:function(ptr){return{"x":HEAPU32[ptr>>2],"y":HEAPU32[ptr+4>>2],"z":HEAPU32[ptr+8>>2]}},makeImageCopyTexture:function(ptr){return{"texture":WebGPU.mgrTexture.get(HEAPU32[ptr+4>>2]),"mipLevel":HEAPU32[ptr+8>>2],"origin":WebGPU.makeOrigin3D(ptr+12),"aspect":WebGPU.TextureAspect[HEAPU32[ptr+24>>2]]}},makeTextureDataLayout:function(ptr){var bytesPerRow=HEAPU32[ptr+16>>2];var rowsPerImage=HEAPU32[ptr+20>>2];return{"offset":HEAPU32[ptr+4+8>>2]*4294967296+HEAPU32[ptr+8>>2],"bytesPerRow":bytesPerRow===4294967295?undefined:bytesPerRow,"rowsPerImage":rowsPerImage===4294967295?undefined:rowsPerImage}},makeImageCopyBuffer:function(ptr){var layoutPtr=ptr+8;var bufferCopyView=WebGPU.makeTextureDataLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.mgrBuffer.get(HEAPU32[ptr+32>>2]);return bufferCopyView},makePipelineConstants:function(constantCount,constantsPtr){if(!constantCount)return;var constants={};for(var i=0;i>2]);constants[key]=HEAPF64[entryPtr+8>>3]}return constants},makeProgrammableStageDescriptor:function(ptr){if(!ptr)return undefined;return{"module":WebGPU.mgrShaderModule.get(HEAPU32[ptr+4>>2]),"entryPoint":UTF8ToString(HEAPU32[ptr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[ptr+12>>2],HEAPU32[ptr+16>>2])}},DeviceLostReason:{undefined:0,destroyed:1},PreferredFormat:{rgba8unorm:18,bgra8unorm:23},AddressMode:["repeat","mirror-repeat","clamp-to-edge"],BlendFactor:["zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant"],BlendOperation:["add","subtract","reverse-subtract","min","max"],BufferBindingType:[,"uniform","storage","read-only-storage"],CompareFunction:[,"never","less","less-equal","greater","greater-equal","equal","not-equal","always"],CompilationInfoRequestStatus:["success","error","device-lost","unknown"],ComputePassTimestampLocation:["beginning","end"],CullMode:["none","front","back"],ErrorFilter:["validation","out-of-memory"],FeatureName:{0:undefined,1:"depth-clip-control",2:"depth24unorm-stencil8",3:"depth32float-stencil8",4:"timestamp-query",5:"pipeline-statistics-query",6:"texture-compression-bc",7:"texture-compression-etc2",8:"texture-compression-astc",9:"indirect-first-instance",1e3:"depth-clamping"},FilterMode:["nearest","linear"],FrontFace:["ccw","cw"],IndexFormat:[,"uint16","uint32"],LoadOp:[,"clear","load"],PipelineStatisticName:["vertex-shader-invocations","clipper-invocations","clipper-primitives-out","fragment-shader-invocations","compute-shader-invocations"],PowerPreference:[,"low-power","high-performance"],PredefinedColorSpace:[,"srgb"],PrimitiveTopology:["point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:["occlusion","pipeline-statistics","timestamp"],RenderPassTimestampLocation:["beginning","end"],SamplerBindingType:[,"filtering","non-filtering","comparison"],StencilOperation:["keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,"write-only"],StoreOp:[,"store","discard"],TextureAspect:["all","stencil-only","depth-only"],TextureComponentType:["float","sint","uint","depth-comparison"],TextureDimension:["1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth24unorm-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],VertexFormat:[,"uint8x2","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4"],VertexStepMode:["vertex","instance"],FeatureNameString2Enum:{undefined:"0","depth-clip-control":"1","depth24unorm-stencil8":"2","depth32float-stencil8":"3","timestamp-query":"4","pipeline-statistics-query":"5","texture-compression-bc":"6","texture-compression-etc2":"7","texture-compression-astc":"8","indirect-first-instance":"9","depth-clamping":"1000"}};function _emscripten_webgpu_get_device(){var device=Module["preinitializedWebGPUDevice"];var deviceWrapper={queueId:WebGPU.mgrQueue.create(device["queue"])};return WebGPU.mgrDevice.create(device,deviceWrapper)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}function _wgpuAdapterGetProperties(adapterId,properties){HEAP32[properties+4>>2]=0;HEAP32[properties+8>>2]=0;HEAP32[properties+12>>2]=0;HEAP32[properties+16>>2]=0;HEAP32[properties+20>>2]=3;HEAP32[properties+24>>2]=1}function _wgpuAdapterHasFeature(adapterId,featureEnumValue){var adapter=WebGPU.mgrAdapter.get(adapterId);return adapter.features.has(WebGPU.FeatureName[featureEnumValue])}function _wgpuBindGroupRelease(id){WebGPU.mgrBindGroup.release(id)}function _wgpuBufferDestroy(bufferId){WebGPU.mgrBuffer.get(bufferId)["destroy"]()}function _wgpuBufferGetMappedRange(bufferId,offset,size){var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(size===0)warnOnce("getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE");size=size>>>0;if(size===4294967295)size=undefined;if(bufferWrapper.mapMode!==2){return 0}var mapped;try{mapped=bufferWrapper.object["getMappedRange"](offset,size)}catch(ex){return 0}var data=_malloc(mapped.byteLength);HEAPU8.fill(0,data,mapped.byteLength);bufferWrapper.onUnmap.push(function(){new Uint8Array(mapped).set(HEAPU8.subarray(data,data+mapped.byteLength));_free(data)});return data}function _wgpuBufferRelease(id){WebGPU.mgrBuffer.release(id)}function _wgpuBufferUnmap(bufferId){var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(!bufferWrapper.onUnmap){return}for(var i=0;i>2]),"queryIndex":HEAPU32[twPtr+4>>2],"location":WebGPU.ComputePassTimestampLocation[HEAPU32[twPtr+8>>2]]}}function makeComputePassTimestampWrites(count,twPtr){var timestampWrites=[];for(var i=0;i>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var timestampWriteCount=HEAPU32[descriptor+8>>2];if(timestampWriteCount){desc["timestampWrites"]=makeComputePassTimestampWrites(timestampWriteCount,HEAPU32[descriptor+12>>2])}}var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrComputePassEncoder.create(commandEncoder["beginComputePass"](desc))}function _wgpuCommandEncoderBeginRenderPass(encoderId,descriptor){function makeColorAttachment(caPtr){var viewPtr=HEAPU32[caPtr>>2];if(viewPtr===0){return undefined}var loadOpInt=HEAPU32[caPtr+8>>2];var storeOpInt=HEAPU32[caPtr+12>>2];var clearValue=WebGPU.makeColor(caPtr+16);return{"view":WebGPU.mgrTextureView.get(viewPtr),"resolveTarget":WebGPU.mgrTextureView.get(HEAPU32[caPtr+4>>2]),"clearValue":clearValue,"loadOp":WebGPU.LoadOp[loadOpInt],"storeOp":WebGPU.StoreOp[storeOpInt]}}function makeColorAttachments(count,caPtr){var attachments=[];for(var i=0;i>2]),"depthClearValue":HEAPF32[dsaPtr+12>>2],"depthLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+4>>2]],"depthStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+8>>2]],"depthReadOnly":HEAP8[dsaPtr+16>>0]!==0,"stencilClearValue":HEAPU32[dsaPtr+28>>2],"stencilLoadOp":WebGPU.LoadOp[HEAPU32[dsaPtr+20>>2]],"stencilStoreOp":WebGPU.StoreOp[HEAPU32[dsaPtr+24>>2]],"stencilReadOnly":HEAP8[dsaPtr+32>>0]!==0}}function makeRenderPassTimestampWrite(twPtr){return{"querySet":WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),"queryIndex":HEAPU32[twPtr+4>>2],"location":WebGPU.RenderPassTimestampLocation[HEAPU32[twPtr+8>>2]]}}function makeRenderPassTimestampWrites(count,twPtr){var timestampWrites=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2]),"depthStencilAttachment":makeDepthStencilAttachment(HEAPU32[descriptor+16>>2]),"occlusionQuerySet":WebGPU.mgrQuerySet.get(HEAPU32[descriptor+20>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var timestampWriteCount=HEAPU32[descriptor+24>>2];if(timestampWriteCount){desc["timestampWrites"]=makeRenderPassTimestampWrites(timestampWriteCount,HEAPU32[descriptor+28>>2])}return desc}var desc=makeRenderPassDescriptor(descriptor);var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrRenderPassEncoder.create(commandEncoder["beginRenderPass"](desc))}function _wgpuCommandEncoderCopyBufferToBuffer(encoderId,srcId,srcOffset_low,srcOffset_high,dstId,dstOffset_low,dstOffset_high,size_low,size_high){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var src=WebGPU.mgrBuffer.get(srcId);var dst=WebGPU.mgrBuffer.get(dstId);commandEncoder["copyBufferToBuffer"](src,srcOffset_high*4294967296+srcOffset_low,dst,dstOffset_high*4294967296+dstOffset_low,size_high*4294967296+size_low)}function _wgpuCommandEncoderCopyTextureToTexture(encoderId,srcPtr,dstPtr,copySizePtr){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder["copyTextureToTexture"](WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)}function _wgpuCommandEncoderFinish(encoderId){var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrCommandBuffer.create(commandEncoder["finish"]())}function _wgpuCommandEncoderRelease(id){WebGPU.mgrCommandEncoder.release(id)}function _wgpuComputePassEncoderDispatchWorkgroups(passId,x,y,z){var pass=WebGPU.mgrComputePassEncoder.get(passId);if(pass["dispatchWorkgroups"]){pass["dispatchWorkgroups"](x,y,z)}else{pass["dispatch"](x,y,z)}}function _wgpuComputePassEncoderDispatchWorkgroupsIndirect(passId,indirectBufferId,indirectOffset_low,indirectOffset_high){var indirectBuffer=WebGPU.mgrBuffer.get(indirectBufferId);var indirectOffset=indirectOffset_high*4294967296+indirectOffset_low;var pass=WebGPU.mgrComputePassEncoder.get(passId);if(pass["dispatchWorkgroupsIndirect"]){pass["dispatchWorkgroupsIndirect"](indirectBuffer,indirectOffset)}else{pass["dispatchIndirect"](indirectBuffer,indirectOffset)}}function _wgpuComputePassEncoderEnd(passId){var pass=WebGPU.mgrComputePassEncoder.get(passId);pass["end"]()}function _wgpuComputePassEncoderRelease(id){WebGPU.mgrComputePassEncoder.release(id)}function _wgpuComputePassEncoderSetBindGroup(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr){var pass=WebGPU.mgrComputePassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}}function _wgpuComputePassEncoderSetPipeline(passId,pipelineId){var pass=WebGPU.mgrComputePassEncoder.get(passId);var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);pass["setPipeline"](pipeline)}function _wgpuComputePipelineRelease(id){WebGPU.mgrComputePipeline.release(id)}function _wgpuCreateInstance(){}function _wgpuDeviceCreateBindGroup(deviceId,descriptor){function makeEntry(entryPtr){var bufferId=HEAPU32[entryPtr+8>>2];var samplerId=HEAPU32[entryPtr+32>>2];var textureViewId=HEAPU32[entryPtr+36>>2];var binding=HEAPU32[entryPtr+4>>2];if(bufferId){var size_low=HEAPU32[entryPtr+24>>2];var size_high=HEAPU32[entryPtr+28>>2];var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;return{"binding":binding,"resource":{"buffer":WebGPU.mgrBuffer.get(bufferId),"offset":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2],"size":size}}}else if(samplerId){return{"binding":binding,"resource":WebGPU.mgrSampler.get(samplerId)}}else{return{"binding":binding,"resource":WebGPU.mgrTextureView.get(textureViewId)}}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2]),"entries":makeEntries(HEAPU32[descriptor+12>>2],HEAPU32[descriptor+16>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroup.create(device["createBindGroup"](desc))}function _wgpuDeviceCreateBindGroupLayout(deviceId,descriptor){function makeBufferEntry(entryPtr){var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.BufferBindingType[typeInt],"hasDynamicOffset":HEAP8[entryPtr+8>>0]!==0,"minBindingSize":HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2]}}function makeSamplerEntry(entryPtr){var typeInt=HEAPU32[entryPtr+4>>2];if(!typeInt)return undefined;return{"type":WebGPU.SamplerBindingType[typeInt]}}function makeTextureEntry(entryPtr){var sampleTypeInt=HEAPU32[entryPtr+4>>2];if(!sampleTypeInt)return undefined;return{"sampleType":WebGPU.TextureSampleType[sampleTypeInt],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+8>>2]],"multisampled":HEAP8[entryPtr+12>>0]!==0}}function makeStorageTextureEntry(entryPtr){var accessInt=HEAPU32[entryPtr+4>>2];if(!accessInt)return undefined;return{"access":WebGPU.StorageTextureAccess[accessInt],"format":WebGPU.TextureFormat[HEAPU32[entryPtr+8>>2]],"viewDimension":WebGPU.TextureViewDimension[HEAPU32[entryPtr+12>>2]]}}function makeEntry(entryPtr){return{"binding":HEAPU32[entryPtr+4>>2],"visibility":HEAPU32[entryPtr+8>>2],"buffer":makeBufferEntry(entryPtr+16),"sampler":makeSamplerEntry(entryPtr+40),"texture":makeTextureEntry(entryPtr+48),"storageTexture":makeStorageTextureEntry(entryPtr+64)}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2],HEAPU32[descriptor+12>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroupLayout.create(device["createBindGroupLayout"](desc))}function _wgpuDeviceCreateBuffer(deviceId,descriptor){var mappedAtCreation=HEAP8[descriptor+24>>0]!==0;var desc={"label":undefined,"usage":HEAPU32[descriptor+8>>2],"size":HEAPU32[descriptor+4+16>>2]*4294967296+HEAPU32[descriptor+16>>2],"mappedAtCreation":mappedAtCreation};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);var bufferWrapper={};var id=WebGPU.mgrBuffer.create(device["createBuffer"](desc),bufferWrapper);if(mappedAtCreation){bufferWrapper.mapMode=2;bufferWrapper.onUnmap=[]}return id}function _wgpuDeviceCreateCommandEncoder(deviceId,descriptor){var desc;if(descriptor){desc={"label":undefined};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrCommandEncoder.create(device["createCommandEncoder"](desc))}function _wgpuDeviceCreateComputePipeline(deviceId,descriptor){var desc={"label":undefined,"layout":WebGPU.mgrPipelineLayout.get(HEAPU32[descriptor+8>>2]),"compute":WebGPU.makeProgrammableStageDescriptor(descriptor+12)};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrComputePipeline.create(device["createComputePipeline"](desc))}function _wgpuDeviceCreatePipelineLayout(deviceId,descriptor){var bglCount=HEAPU32[descriptor+8>>2];var bglPtr=HEAPU32[descriptor+12>>2];var bgls=[];for(var i=0;i>2]))}var desc={"label":undefined,"bindGroupLayouts":bgls};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrPipelineLayout.create(device["createPipelineLayout"](desc))}function _wgpuDeviceCreateRenderPipeline(deviceId,descriptor){function makePrimitiveState(rsPtr){if(!rsPtr)return undefined;return{"topology":WebGPU.PrimitiveTopology[HEAPU32[rsPtr+4>>2]],"stripIndexFormat":WebGPU.IndexFormat[HEAPU32[rsPtr+8>>2]],"frontFace":WebGPU.FrontFace[HEAPU32[rsPtr+12>>2]],"cullMode":WebGPU.CullMode[HEAPU32[rsPtr+16>>2]]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{"operation":WebGPU.BlendOperation[HEAPU32[bdPtr>>2]],"srcFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+4>>2]],"dstFactor":WebGPU.BlendFactor[HEAPU32[bdPtr+8>>2]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{"alpha":makeBlendComponent(bsPtr+12),"color":makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var formatInt=HEAPU32[csPtr+4>>2];return formatInt===0?undefined:{"format":WebGPU.TextureFormat[formatInt],"blend":makeBlendState(HEAPU32[csPtr+8>>2]),"writeMask":HEAPU32[csPtr+12>>2]}}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>2]],"failOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+4>>2]],"depthFailOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+8>>2]],"passOp":WebGPU.StencilOperation[HEAPU32[ssfPtr+12>>2]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{"format":WebGPU.TextureFormat[HEAPU32[dssPtr+4>>2]],"depthWriteEnabled":HEAP8[dssPtr+8>>0]!==0,"depthCompare":WebGPU.CompareFunction[HEAPU32[dssPtr+12>>2]],"stencilFront":makeStencilStateFace(dssPtr+16),"stencilBack":makeStencilStateFace(dssPtr+32),"stencilReadMask":HEAPU32[dssPtr+48>>2],"stencilWriteMask":HEAPU32[dssPtr+52>>2],"depthBias":HEAPU32[dssPtr+56>>2],"depthBiasSlopeScale":HEAPF32[dssPtr+60>>2],"depthBiasClamp":HEAPF32[dssPtr+64>>2]}}function makeVertexAttribute(vaPtr){return{"format":WebGPU.VertexFormat[HEAPU32[vaPtr>>2]],"offset":HEAPU32[vaPtr+4+8>>2]*4294967296+HEAPU32[vaPtr+8>>2],"shaderLocation":HEAPU32[vaPtr+16>>2]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>2]*4294967296+HEAPU32[vbPtr>>2],"stepMode":WebGPU.VertexStepMode[HEAPU32[vbPtr+8>>2]],"attributes":makeVertexAttributes(HEAPU32[vbPtr+12>>2],HEAPU32[vbPtr+16>>2])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>2]),"entryPoint":UTF8ToString(HEAPU32[viPtr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[viPtr+12>>2],HEAPU32[viPtr+16>>2]),"buffers":makeVertexBuffers(HEAPU32[viPtr+20>>2],HEAPU32[viPtr+24>>2])}}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{"count":HEAPU32[msPtr+4>>2],"mask":HEAPU32[msPtr+8>>2],"alphaToCoverageEnabled":HEAP8[msPtr+12>>0]!==0}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;return{"module":WebGPU.mgrShaderModule.get(HEAPU32[fsPtr+4>>2]),"entryPoint":UTF8ToString(HEAPU32[fsPtr+8>>2]),"constants":WebGPU.makePipelineConstants(HEAPU32[fsPtr+12>>2],HEAPU32[fsPtr+16>>2]),"targets":makeColorStates(HEAPU32[fsPtr+20>>2],HEAPU32[fsPtr+24>>2])}}var desc={"label":undefined,"layout":WebGPU.mgrPipelineLayout.get(HEAPU32[descriptor+8>>2]),"vertex":makeVertexState(descriptor+12),"primitive":makePrimitiveState(descriptor+40),"depthStencil":makeDepthStencilState(HEAPU32[descriptor+60>>2]),"multisample":makeMultisampleState(descriptor+64),"fragment":makeFragmentState(HEAPU32[descriptor+80>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrRenderPipeline.create(device["createRenderPipeline"](desc))}function _wgpuDeviceCreateSampler(deviceId,descriptor){var desc={"label":undefined,"addressModeU":WebGPU.AddressMode[HEAPU32[descriptor+8>>2]],"addressModeV":WebGPU.AddressMode[HEAPU32[descriptor+12>>2]],"addressModeW":WebGPU.AddressMode[HEAPU32[descriptor+16>>2]],"magFilter":WebGPU.FilterMode[HEAPU32[descriptor+20>>2]],"minFilter":WebGPU.FilterMode[HEAPU32[descriptor+24>>2]],"mipmapFilter":WebGPU.FilterMode[HEAPU32[descriptor+28>>2]],"lodMinClamp":HEAPF32[descriptor+32>>2],"lodMaxClamp":HEAPF32[descriptor+36>>2],"compare":WebGPU.CompareFunction[HEAPU32[descriptor+40>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrSampler.create(device["createSampler"](desc))}function _wgpuDeviceCreateShaderModule(deviceId,descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var sType=HEAPU32[nextInChainPtr+4>>2];var desc={"label":undefined,"code":""};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);switch(sType){case 5:{var count=HEAPU32[nextInChainPtr+8>>2];var start=HEAPU32[nextInChainPtr+12>>2];desc["code"]=HEAPU32.subarray(start>>2,(start>>2)+count);break}case 6:{var sourcePtr=HEAPU32[nextInChainPtr+8>>2];if(sourcePtr){desc["code"]=UTF8ToString(sourcePtr)}break}}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrShaderModule.create(device["createShaderModule"](desc))}function _wgpuDeviceCreateSwapChain(deviceId,surfaceId,descriptor){var device=WebGPU.mgrDevice.get(deviceId);var context=WebGPU.mgrSurface.get(surfaceId);var canvasSize=[HEAPU32[descriptor+16>>2],HEAPU32[descriptor+20>>2]];if(canvasSize[0]!==0){context["canvas"]["width"]=canvasSize[0]}if(canvasSize[1]!==0){context["canvas"]["height"]=canvasSize[1]}var configuration={"device":device,"format":WebGPU.TextureFormat[HEAPU32[descriptor+12>>2]],"usage":HEAPU32[descriptor+8>>2],"alphaMode":"opaque"};context["configure"](configuration);return WebGPU.mgrSwapChain.create(context)}function _wgpuDeviceCreateTexture(deviceId,descriptor){var desc={"label":undefined,"size":WebGPU.makeExtent3D(descriptor+16),"mipLevelCount":HEAPU32[descriptor+32>>2],"sampleCount":HEAPU32[descriptor+36>>2],"dimension":WebGPU.TextureDimension[HEAPU32[descriptor+12>>2]],"format":WebGPU.TextureFormat[HEAPU32[descriptor+28>>2]],"usage":HEAPU32[descriptor+8>>2]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var viewFormatCount=HEAPU32[descriptor+40>>2];if(viewFormatCount){var viewFormatsPtr=HEAPU32[descriptor+44>>2];desc["viewFormats"]=Array.from(HEAP32.subarray(viewFormatsPtr>>2,(viewFormatsPtr>>2)+viewFormatCount),function(format){return WebGPU.TextureFormat[format]})}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrTexture.create(device["createTexture"](desc))}function _wgpuDeviceGetQueue(deviceId){var queueId=WebGPU.mgrDevice.objects[deviceId].queueId;WebGPU.mgrQueue.reference(queueId);return queueId}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,document,window];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||document.querySelector(target);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _wgpuInstanceCreateSurface(instanceId,descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var descriptorFromCanvasHTMLSelector=nextInChainPtr;var selectorPtr=HEAPU32[descriptorFromCanvasHTMLSelector+8>>2];var canvas=findCanvasEventTarget(selectorPtr);var context=canvas.getContext("webgpu");if(!context)return 0;var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)context.surfaceLabelWebGPU=UTF8ToString(labelPtr);return WebGPU.mgrSurface.create(context)}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function _wgpuInstanceRequestAdapter(instanceId,options,callback,userdata){var opts;if(options){opts={"powerPreference":WebGPU.PowerPreference[HEAPU32[options+8>>2]],"forceFallbackAdapter":HEAP8[options+12>>0]!==0}}if(!("gpu"in navigator)){var messagePtr=allocateUTF8("WebGPU not available on this browser (navigator.gpu is not available)");getWasmTableEntry(callback)(1,0,messagePtr,userdata);_free(messagePtr);return}navigator["gpu"]["requestAdapter"](opts).then(function(adapter){callUserCallback(function(){if(adapter){var adapterId=WebGPU.mgrAdapter.create(adapter);getWasmTableEntry(callback)(0,adapterId,0,userdata)}else{var messagePtr=allocateUTF8("WebGPU not available on this system (requestAdapter returned null)");getWasmTableEntry(callback)(1,0,messagePtr,userdata);_free(messagePtr)}})},function(ex){callUserCallback(function(){var messagePtr=allocateUTF8(ex.message);getWasmTableEntry(callback)(2,0,messagePtr,userdata);_free(messagePtr)})})}function _wgpuPipelineLayoutRelease(id){WebGPU.mgrPipelineLayout.release(id)}function _wgpuQuerySetDestroy(querySetId){WebGPU.mgrQuerySet.get(querySetId)["destroy"]()}function _wgpuQuerySetRelease(id){WebGPU.mgrQuerySet.release(id)}function _wgpuQueueOnSubmittedWorkDone(queueId,signalValue_low,signalValue_high,callback,userdata){var queue=WebGPU.mgrQueue.get(queueId);queue["onSubmittedWorkDone"]().then(function(){callUserCallback(function(){getWasmTableEntry(callback)(0,userdata)})},function(){callUserCallback(function(){getWasmTableEntry(callback)(1,userdata)})})}function _wgpuQueueRelease(id){WebGPU.mgrQueue.release(id)}function _wgpuQueueSubmit(queueId,commandCount,commands){var queue=WebGPU.mgrQueue.get(queueId);var cmds=Array.from(HEAP32.subarray(commands>>2,(commands>>2)+commandCount),function(id){return WebGPU.mgrCommandBuffer.get(id)});queue["submit"](cmds)}function _wgpuQueueWriteBuffer(queueId,bufferId,bufferOffset_low,bufferOffset_high,data,size){var queue=WebGPU.mgrQueue.get(queueId);var buffer=WebGPU.mgrBuffer.get(bufferId);var bufferOffset=bufferOffset_high*4294967296+bufferOffset_low;var subarray=HEAPU8.subarray(data,data+size);queue["writeBuffer"](buffer,bufferOffset,subarray,0,size)}function _wgpuQueueWriteTexture(queueId,destinationPtr,data,dataSize,dataLayoutPtr,writeSizePtr){var queue=WebGPU.mgrQueue.get(queueId);var destination=WebGPU.makeImageCopyTexture(destinationPtr);var dataLayout=WebGPU.makeTextureDataLayout(dataLayoutPtr);var writeSize=WebGPU.makeExtent3D(writeSizePtr);var subarray=HEAPU8.subarray(data,data+dataSize);queue["writeTexture"](destination,subarray,dataLayout,writeSize)}function _wgpuRenderPassEncoderDraw(passId,vertexCount,instanceCount,firstVertex,firstInstance){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["draw"](vertexCount,instanceCount,firstVertex,firstInstance)}function _wgpuRenderPassEncoderDrawIndexed(passId,indexCount,instanceCount,firstIndex,baseVertex,firstInstance){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndexed"](indexCount,instanceCount,firstIndex,baseVertex,firstInstance)}function _wgpuRenderPassEncoderDrawIndirect(passId,indirectBufferId,indirectOffset_low,indirectOffset_high){var indirectBuffer=WebGPU.mgrBuffer.get(indirectBufferId);var indirectOffset=indirectOffset_high*4294967296+indirectOffset_low;var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["drawIndirect"](indirectBuffer,indirectOffset)}function _wgpuRenderPassEncoderEnd(passId){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["end"]()}function _wgpuRenderPassEncoderRelease(id){WebGPU.mgrRenderPassEncoder.release(id)}function _wgpuRenderPassEncoderSetBindGroup(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass["setBindGroup"](groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass["setBindGroup"](groupIndex,group,offsets)}}function _wgpuRenderPassEncoderSetBlendConstant(passId,colorPtr){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var color=WebGPU.makeColor(colorPtr);pass["setBlendConstant"](color)}function _wgpuRenderPassEncoderSetIndexBuffer(passId,bufferId,format,offset_low,offset_high,size_low,size_high){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);var offset=offset_high*4294967296+offset_low;var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;pass["setIndexBuffer"](buffer,WebGPU.IndexFormat[format],offset,size)}function _wgpuRenderPassEncoderSetPipeline(passId,pipelineId){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);pass["setPipeline"](pipeline)}function _wgpuRenderPassEncoderSetScissorRect(passId,x,y,w,h){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setScissorRect"](x,y,w,h)}function _wgpuRenderPassEncoderSetStencilReference(passId,reference){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setStencilReference"](reference)}function _wgpuRenderPassEncoderSetVertexBuffer(passId,slot,bufferId,offset_low,offset_high,size_low,size_high){var pass=WebGPU.mgrRenderPassEncoder.get(passId);var buffer=WebGPU.mgrBuffer.get(bufferId);var offset=offset_high*4294967296+offset_low;var size=size_high===-1&&size_low===-1?undefined:size_high*4294967296+size_low;pass["setVertexBuffer"](slot,buffer,offset,size)}function _wgpuRenderPassEncoderSetViewport(passId,x,y,w,h,minDepth,maxDepth){var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass["setViewport"](x,y,w,h,minDepth,maxDepth)}function _wgpuRenderPipelineRelease(id){WebGPU.mgrRenderPipeline.release(id)}function _wgpuSamplerRelease(id){WebGPU.mgrSampler.release(id)}function _wgpuShaderModuleRelease(id){WebGPU.mgrShaderModule.release(id)}function _wgpuSwapChainGetCurrentTextureView(swapChainId){var context=WebGPU.mgrSwapChain.get(swapChainId);return WebGPU.mgrTextureView.create(context["getCurrentTexture"]()["createView"]())}function _wgpuTextureCreateView(textureId,descriptor){var desc;if(descriptor){var mipLevelCount=HEAPU32[descriptor+20>>2];var arrayLayerCount=HEAPU32[descriptor+28>>2];desc={"format":WebGPU.TextureFormat[HEAPU32[descriptor+8>>2]],"dimension":WebGPU.TextureViewDimension[HEAPU32[descriptor+12>>2]],"baseMipLevel":HEAPU32[descriptor+16>>2],"mipLevelCount":mipLevelCount===4294967295?undefined:mipLevelCount,"baseArrayLayer":HEAPU32[descriptor+24>>2],"arrayLayerCount":arrayLayerCount===4294967295?undefined:arrayLayerCount,"aspect":WebGPU.TextureAspect[HEAPU32[descriptor+32>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.mgrTextureView.create(texture["createView"](desc))}function _wgpuTextureDestroy(textureId){WebGPU.mgrTexture.get(textureId)["destroy"]()}function _wgpuTextureRelease(id){WebGPU.mgrTexture.release(id)}function _wgpuTextureViewRelease(id){WebGPU.mgrTextureView.release(id)}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();WebGPU.initManagers();var asmLibraryArg={"w":__embind_finalize_value_object,"Ta":__embind_register_bigint,"ka":__embind_register_bool,"j":__embind_register_class,"I":__embind_register_class_class_function,"n":__embind_register_class_constructor,"f":__embind_register_class_function,"l":__embind_register_class_property,"ja":__embind_register_emval,"O":__embind_register_float,"o":__embind_register_integer,"m":__embind_register_memory_view,"P":__embind_register_std_string,"A":__embind_register_std_wstring,"x":__embind_register_value_object,"k":__embind_register_value_object_field,"la":__embind_register_void,"d":__emval_as,"E":__emval_call_void_method,"a":__emval_decref,"F":__emval_get_method_caller,"b":__emval_get_property,"u":__emval_incref,"r":__emval_new_array,"e":__emval_new_cstring,"t":__emval_new_object,"c":__emval_run_destructors,"i":__emval_set_property,"h":__emval_take_value,"g":_abort,"ia":_emscripten_memcpy_big,"z":_emscripten_resize_heap,"Ea":_emscripten_webgpu_get_device,"ea":_environ_get,"fa":_environ_sizes_get,"ha":_fd_write,"da":_setTempRet0,"Fa":_wgpuAdapterGetProperties,"H":_wgpuAdapterHasFeature,"Ga":_wgpuBindGroupRelease,"wa":_wgpuBufferDestroy,"Ka":_wgpuBufferGetMappedRange,"va":_wgpuBufferRelease,"Y":_wgpuBufferUnmap,"W":_wgpuCommandBufferRelease,"Ia":_wgpuCommandEncoderBeginComputePass,"ma":_wgpuCommandEncoderBeginRenderPass,"_":_wgpuCommandEncoderCopyBufferToBuffer,"Ja":_wgpuCommandEncoderCopyTextureToTexture,"v":_wgpuCommandEncoderFinish,"G":_wgpuCommandEncoderRelease,"Ha":_wgpuComputePassEncoderDispatchWorkgroups,"Z":_wgpuComputePassEncoderDispatchWorkgroupsIndirect,"za":_wgpuComputePassEncoderEnd,"ra":_wgpuComputePassEncoderRelease,"Sa":_wgpuComputePassEncoderSetBindGroup,"Ra":_wgpuComputePassEncoderSetPipeline,"R":_wgpuComputePipelineRelease,"Da":_wgpuCreateInstance,"L":_wgpuDeviceCreateBindGroup,"J":_wgpuDeviceCreateBindGroupLayout,"N":_wgpuDeviceCreateBuffer,"K":_wgpuDeviceCreateCommandEncoder,"ya":_wgpuDeviceCreateComputePipeline,"Aa":_wgpuDeviceCreatePipelineLayout,"xa":_wgpuDeviceCreateRenderPipeline,"pa":_wgpuDeviceCreateSampler,"D":_wgpuDeviceCreateShaderModule,"na":_wgpuDeviceCreateSwapChain,"B":_wgpuDeviceCreateTexture,"U":_wgpuDeviceGetQueue,"Ca":_wgpuInstanceCreateSurface,"Ba":_wgpuInstanceRequestAdapter,"T":_wgpuPipelineLayoutRelease,"sa":_wgpuQuerySetDestroy,"qa":_wgpuQuerySetRelease,"Ua":_wgpuQueueOnSubmittedWorkDone,"Q":_wgpuQueueRelease,"M":_wgpuQueueSubmit,"ca":_wgpuQueueWriteBuffer,"V":_wgpuQueueWriteTexture,"La":_wgpuRenderPassEncoderDraw,"X":_wgpuRenderPassEncoderDrawIndexed,"$":_wgpuRenderPassEncoderDrawIndirect,"ga":_wgpuRenderPassEncoderEnd,"Va":_wgpuRenderPassEncoderRelease,"y":_wgpuRenderPassEncoderSetBindGroup,"Pa":_wgpuRenderPassEncoderSetBlendConstant,"aa":_wgpuRenderPassEncoderSetIndexBuffer,"Qa":_wgpuRenderPassEncoderSetPipeline,"Na":_wgpuRenderPassEncoderSetScissorRect,"Ma":_wgpuRenderPassEncoderSetStencilReference,"ba":_wgpuRenderPassEncoderSetVertexBuffer,"Oa":_wgpuRenderPassEncoderSetViewport,"S":_wgpuRenderPipelineRelease,"oa":_wgpuSamplerRelease,"p":_wgpuShaderModuleRelease,"C":_wgpuSwapChainGetCurrentTextureView,"s":_wgpuTextureCreateView,"ua":_wgpuTextureDestroy,"ta":_wgpuTextureRelease,"q":_wgpuTextureViewRelease};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Xa"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Za"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["_a"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["$a"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["ab"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["bb"]).apply(null,arguments)};var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return wasmDevice.ready +} +); +})(); +export default wasmDevice; \ No newline at end of file diff --git a/emscripten/webgpu/webgpu_wasm.wasm b/emscripten/webgpu/webgpu_wasm.wasm new file mode 100644 index 00000000..046e9bd9 Binary files /dev/null and b/emscripten/webgpu/webgpu_wasm.wasm differ diff --git a/ohos/CMakeLists.txt b/ohos/CMakeLists.txt index 67357ef6..1baafc0d 100644 --- a/ohos/CMakeLists.txt +++ b/ohos/CMakeLists.txt @@ -10,6 +10,7 @@ if (USE_DEBUG_RENDERER) add_library(freetype STATIC IMPORTED GLOBAL) set_target_properties(freetype PROPERTIES IMPORTED_LOCATION ${ohos_lib_dir}/libfreetype.a + INTERFACE_INCLUDE_DIRECTORIES ${platform_spec_path}/include/freetype ) endif() diff --git a/ohos/arm64-v8a/include/freetype2/freetype/config/ftconfig.h b/ohos/arm64-v8a/include/freetype/freetype/config/ftconfig.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/config/ftconfig.h rename to ohos/arm64-v8a/include/freetype/freetype/config/ftconfig.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/config/ftheader.h b/ohos/arm64-v8a/include/freetype/freetype/config/ftheader.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/config/ftheader.h rename to ohos/arm64-v8a/include/freetype/freetype/config/ftheader.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/config/ftmodule.h b/ohos/arm64-v8a/include/freetype/freetype/config/ftmodule.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/config/ftmodule.h rename to ohos/arm64-v8a/include/freetype/freetype/config/ftmodule.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/config/ftoption.h b/ohos/arm64-v8a/include/freetype/freetype/config/ftoption.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/config/ftoption.h rename to ohos/arm64-v8a/include/freetype/freetype/config/ftoption.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/config/ftstdlib.h b/ohos/arm64-v8a/include/freetype/freetype/config/ftstdlib.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/config/ftstdlib.h rename to ohos/arm64-v8a/include/freetype/freetype/config/ftstdlib.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/freetype.h b/ohos/arm64-v8a/include/freetype/freetype/freetype.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/freetype.h rename to ohos/arm64-v8a/include/freetype/freetype/freetype.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftadvanc.h b/ohos/arm64-v8a/include/freetype/freetype/ftadvanc.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftadvanc.h rename to ohos/arm64-v8a/include/freetype/freetype/ftadvanc.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftbbox.h b/ohos/arm64-v8a/include/freetype/freetype/ftbbox.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftbbox.h rename to ohos/arm64-v8a/include/freetype/freetype/ftbbox.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftbdf.h b/ohos/arm64-v8a/include/freetype/freetype/ftbdf.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftbdf.h rename to ohos/arm64-v8a/include/freetype/freetype/ftbdf.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftbitmap.h b/ohos/arm64-v8a/include/freetype/freetype/ftbitmap.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftbitmap.h rename to ohos/arm64-v8a/include/freetype/freetype/ftbitmap.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftbzip2.h b/ohos/arm64-v8a/include/freetype/freetype/ftbzip2.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftbzip2.h rename to ohos/arm64-v8a/include/freetype/freetype/ftbzip2.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftcache.h b/ohos/arm64-v8a/include/freetype/freetype/ftcache.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftcache.h rename to ohos/arm64-v8a/include/freetype/freetype/ftcache.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftchapters.h b/ohos/arm64-v8a/include/freetype/freetype/ftchapters.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftchapters.h rename to ohos/arm64-v8a/include/freetype/freetype/ftchapters.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftcid.h b/ohos/arm64-v8a/include/freetype/freetype/ftcid.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftcid.h rename to ohos/arm64-v8a/include/freetype/freetype/ftcid.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftcolor.h b/ohos/arm64-v8a/include/freetype/freetype/ftcolor.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftcolor.h rename to ohos/arm64-v8a/include/freetype/freetype/ftcolor.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftdriver.h b/ohos/arm64-v8a/include/freetype/freetype/ftdriver.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftdriver.h rename to ohos/arm64-v8a/include/freetype/freetype/ftdriver.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/fterrdef.h b/ohos/arm64-v8a/include/freetype/freetype/fterrdef.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/fterrdef.h rename to ohos/arm64-v8a/include/freetype/freetype/fterrdef.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/fterrors.h b/ohos/arm64-v8a/include/freetype/freetype/fterrors.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/fterrors.h rename to ohos/arm64-v8a/include/freetype/freetype/fterrors.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftfntfmt.h b/ohos/arm64-v8a/include/freetype/freetype/ftfntfmt.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftfntfmt.h rename to ohos/arm64-v8a/include/freetype/freetype/ftfntfmt.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftgasp.h b/ohos/arm64-v8a/include/freetype/freetype/ftgasp.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftgasp.h rename to ohos/arm64-v8a/include/freetype/freetype/ftgasp.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftglyph.h b/ohos/arm64-v8a/include/freetype/freetype/ftglyph.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftglyph.h rename to ohos/arm64-v8a/include/freetype/freetype/ftglyph.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftgxval.h b/ohos/arm64-v8a/include/freetype/freetype/ftgxval.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftgxval.h rename to ohos/arm64-v8a/include/freetype/freetype/ftgxval.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftgzip.h b/ohos/arm64-v8a/include/freetype/freetype/ftgzip.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftgzip.h rename to ohos/arm64-v8a/include/freetype/freetype/ftgzip.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftimage.h b/ohos/arm64-v8a/include/freetype/freetype/ftimage.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftimage.h rename to ohos/arm64-v8a/include/freetype/freetype/ftimage.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftincrem.h b/ohos/arm64-v8a/include/freetype/freetype/ftincrem.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftincrem.h rename to ohos/arm64-v8a/include/freetype/freetype/ftincrem.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftlcdfil.h b/ohos/arm64-v8a/include/freetype/freetype/ftlcdfil.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftlcdfil.h rename to ohos/arm64-v8a/include/freetype/freetype/ftlcdfil.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftlist.h b/ohos/arm64-v8a/include/freetype/freetype/ftlist.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftlist.h rename to ohos/arm64-v8a/include/freetype/freetype/ftlist.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftlzw.h b/ohos/arm64-v8a/include/freetype/freetype/ftlzw.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftlzw.h rename to ohos/arm64-v8a/include/freetype/freetype/ftlzw.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftmac.h b/ohos/arm64-v8a/include/freetype/freetype/ftmac.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftmac.h rename to ohos/arm64-v8a/include/freetype/freetype/ftmac.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftmm.h b/ohos/arm64-v8a/include/freetype/freetype/ftmm.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftmm.h rename to ohos/arm64-v8a/include/freetype/freetype/ftmm.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftmodapi.h b/ohos/arm64-v8a/include/freetype/freetype/ftmodapi.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftmodapi.h rename to ohos/arm64-v8a/include/freetype/freetype/ftmodapi.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftmoderr.h b/ohos/arm64-v8a/include/freetype/freetype/ftmoderr.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftmoderr.h rename to ohos/arm64-v8a/include/freetype/freetype/ftmoderr.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftotval.h b/ohos/arm64-v8a/include/freetype/freetype/ftotval.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftotval.h rename to ohos/arm64-v8a/include/freetype/freetype/ftotval.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftoutln.h b/ohos/arm64-v8a/include/freetype/freetype/ftoutln.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftoutln.h rename to ohos/arm64-v8a/include/freetype/freetype/ftoutln.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftparams.h b/ohos/arm64-v8a/include/freetype/freetype/ftparams.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftparams.h rename to ohos/arm64-v8a/include/freetype/freetype/ftparams.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftpfr.h b/ohos/arm64-v8a/include/freetype/freetype/ftpfr.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftpfr.h rename to ohos/arm64-v8a/include/freetype/freetype/ftpfr.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftrender.h b/ohos/arm64-v8a/include/freetype/freetype/ftrender.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftrender.h rename to ohos/arm64-v8a/include/freetype/freetype/ftrender.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftsizes.h b/ohos/arm64-v8a/include/freetype/freetype/ftsizes.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftsizes.h rename to ohos/arm64-v8a/include/freetype/freetype/ftsizes.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftsnames.h b/ohos/arm64-v8a/include/freetype/freetype/ftsnames.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftsnames.h rename to ohos/arm64-v8a/include/freetype/freetype/ftsnames.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftstroke.h b/ohos/arm64-v8a/include/freetype/freetype/ftstroke.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftstroke.h rename to ohos/arm64-v8a/include/freetype/freetype/ftstroke.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftsynth.h b/ohos/arm64-v8a/include/freetype/freetype/ftsynth.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftsynth.h rename to ohos/arm64-v8a/include/freetype/freetype/ftsynth.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftsystem.h b/ohos/arm64-v8a/include/freetype/freetype/ftsystem.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftsystem.h rename to ohos/arm64-v8a/include/freetype/freetype/ftsystem.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/fttrigon.h b/ohos/arm64-v8a/include/freetype/freetype/fttrigon.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/fttrigon.h rename to ohos/arm64-v8a/include/freetype/freetype/fttrigon.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/fttypes.h b/ohos/arm64-v8a/include/freetype/freetype/fttypes.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/fttypes.h rename to ohos/arm64-v8a/include/freetype/freetype/fttypes.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ftwinfnt.h b/ohos/arm64-v8a/include/freetype/freetype/ftwinfnt.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ftwinfnt.h rename to ohos/arm64-v8a/include/freetype/freetype/ftwinfnt.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/t1tables.h b/ohos/arm64-v8a/include/freetype/freetype/t1tables.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/t1tables.h rename to ohos/arm64-v8a/include/freetype/freetype/t1tables.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/ttnameid.h b/ohos/arm64-v8a/include/freetype/freetype/ttnameid.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/ttnameid.h rename to ohos/arm64-v8a/include/freetype/freetype/ttnameid.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/tttables.h b/ohos/arm64-v8a/include/freetype/freetype/tttables.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/tttables.h rename to ohos/arm64-v8a/include/freetype/freetype/tttables.h diff --git a/ohos/arm64-v8a/include/freetype2/freetype/tttags.h b/ohos/arm64-v8a/include/freetype/freetype/tttags.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/freetype/tttags.h rename to ohos/arm64-v8a/include/freetype/freetype/tttags.h diff --git a/ohos/arm64-v8a/include/freetype2/ft2build.h b/ohos/arm64-v8a/include/freetype/ft2build.h similarity index 100% rename from ohos/arm64-v8a/include/freetype2/ft2build.h rename to ohos/arm64-v8a/include/freetype/ft2build.h