Atlas - openxr_platform.h
Home / ext / SDL / src / video / khronos / openxr Lines: 1 | Size: 33338 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1#ifndef OPENXR_PLATFORM_H_ 2#define OPENXR_PLATFORM_H_ 1 3 4/* 5** Copyright 2017-2025 The Khronos Group Inc. 6** 7** SPDX-License-Identifier: Apache-2.0 OR MIT 8*/ 9 10/* 11** This header is generated from the Khronos OpenXR XML API Registry. 12** 13*/ 14 15#include "openxr.h" 16 17#ifdef __cplusplus 18extern "C" { 19#endif 20 21 22#ifdef XR_USE_PLATFORM_ANDROID 23 24// XR_KHR_android_thread_settings is a preprocessor guard. Do not pass it to API calls. 25#define XR_KHR_android_thread_settings 1 26#define XR_KHR_android_thread_settings_SPEC_VERSION 6 27#define XR_KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME "XR_KHR_android_thread_settings" 28 29typedef enum XrAndroidThreadTypeKHR { 30 XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR = 1, 31 XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR = 2, 32 XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR = 3, 33 XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR = 4, 34 XR_ANDROID_THREAD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF 35} XrAndroidThreadTypeKHR; 36typedef XrResult (XRAPI_PTR *PFN_xrSetAndroidApplicationThreadKHR)(XrSession session, XrAndroidThreadTypeKHR threadType, uint32_t threadId); 37 38#ifndef XR_NO_PROTOTYPES 39#ifdef XR_EXTENSION_PROTOTYPES 40XRAPI_ATTR XrResult XRAPI_CALL xrSetAndroidApplicationThreadKHR( 41 XrSession session, 42 XrAndroidThreadTypeKHR threadType, 43 uint32_t threadId); 44#endif /* XR_EXTENSION_PROTOTYPES */ 45#endif /* !XR_NO_PROTOTYPES */ 46#endif /* XR_USE_PLATFORM_ANDROID */ 47 48#ifdef XR_USE_PLATFORM_ANDROID 49 50// XR_KHR_android_surface_swapchain is a preprocessor guard. Do not pass it to API calls. 51#define XR_KHR_android_surface_swapchain 1 52#define XR_KHR_android_surface_swapchain_SPEC_VERSION 4 53#define XR_KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME "XR_KHR_android_surface_swapchain" 54typedef XrResult (XRAPI_PTR *PFN_xrCreateSwapchainAndroidSurfaceKHR)(XrSession session, const XrSwapchainCreateInfo* info, XrSwapchain* swapchain, jobject* surface); 55 56#ifndef XR_NO_PROTOTYPES 57#ifdef XR_EXTENSION_PROTOTYPES 58XRAPI_ATTR XrResult XRAPI_CALL xrCreateSwapchainAndroidSurfaceKHR( 59 XrSession session, 60 const XrSwapchainCreateInfo* info, 61 XrSwapchain* swapchain, 62 jobject* surface); 63#endif /* XR_EXTENSION_PROTOTYPES */ 64#endif /* !XR_NO_PROTOTYPES */ 65#endif /* XR_USE_PLATFORM_ANDROID */ 66 67#ifdef XR_USE_PLATFORM_ANDROID 68 69// XR_KHR_android_create_instance is a preprocessor guard. Do not pass it to API calls. 70#define XR_KHR_android_create_instance 1 71#define XR_KHR_android_create_instance_SPEC_VERSION 3 72#define XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME "XR_KHR_android_create_instance" 73// XrInstanceCreateInfoAndroidKHR extends XrInstanceCreateInfo 74typedef struct XrInstanceCreateInfoAndroidKHR { 75 XrStructureType type; 76 const void* XR_MAY_ALIAS next; 77 void* XR_MAY_ALIAS applicationVM; 78 void* XR_MAY_ALIAS applicationActivity; 79} XrInstanceCreateInfoAndroidKHR; 80 81#endif /* XR_USE_PLATFORM_ANDROID */ 82 83#ifdef XR_USE_GRAPHICS_API_VULKAN 84 85// XR_KHR_vulkan_swapchain_format_list is a preprocessor guard. Do not pass it to API calls. 86#define XR_KHR_vulkan_swapchain_format_list 1 87#define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 5 88#define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list" 89typedef struct XrVulkanSwapchainFormatListCreateInfoKHR { 90 XrStructureType type; 91 const void* XR_MAY_ALIAS next; 92 uint32_t viewFormatCount; 93 const VkFormat* viewFormats; 94} XrVulkanSwapchainFormatListCreateInfoKHR; 95 96#endif /* XR_USE_GRAPHICS_API_VULKAN */ 97 98#ifdef XR_USE_GRAPHICS_API_OPENGL 99 100// XR_KHR_opengl_enable is a preprocessor guard. Do not pass it to API calls. 101#define XR_KHR_opengl_enable 1 102#define XR_KHR_opengl_enable_SPEC_VERSION 10 103#define XR_KHR_OPENGL_ENABLE_EXTENSION_NAME "XR_KHR_opengl_enable" 104#ifdef XR_USE_PLATFORM_WIN32 105// XrGraphicsBindingOpenGLWin32KHR extends XrSessionCreateInfo 106typedef struct XrGraphicsBindingOpenGLWin32KHR { 107 XrStructureType type; 108 const void* XR_MAY_ALIAS next; 109 HDC hDC; 110 HGLRC hGLRC; 111} XrGraphicsBindingOpenGLWin32KHR; 112#endif // XR_USE_PLATFORM_WIN32 113 114#ifdef XR_USE_PLATFORM_XLIB 115// XrGraphicsBindingOpenGLXlibKHR extends XrSessionCreateInfo 116typedef struct XrGraphicsBindingOpenGLXlibKHR { 117 XrStructureType type; 118 const void* XR_MAY_ALIAS next; 119 Display* xDisplay; 120 uint32_t visualid; 121 GLXFBConfig glxFBConfig; 122 GLXDrawable glxDrawable; 123 GLXContext glxContext; 124} XrGraphicsBindingOpenGLXlibKHR; 125#endif // XR_USE_PLATFORM_XLIB 126 127#ifdef XR_USE_PLATFORM_XCB 128// XrGraphicsBindingOpenGLXcbKHR extends XrSessionCreateInfo 129typedef struct XrGraphicsBindingOpenGLXcbKHR { 130 XrStructureType type; 131 const void* XR_MAY_ALIAS next; 132 xcb_connection_t* connection; 133 uint32_t screenNumber; 134 xcb_glx_fbconfig_t fbconfigid; 135 xcb_visualid_t visualid; 136 xcb_glx_drawable_t glxDrawable; 137 xcb_glx_context_t glxContext; 138} XrGraphicsBindingOpenGLXcbKHR; 139#endif // XR_USE_PLATFORM_XCB 140 141#ifdef XR_USE_PLATFORM_WAYLAND 142// XrGraphicsBindingOpenGLWaylandKHR extends XrSessionCreateInfo 143typedef struct XrGraphicsBindingOpenGLWaylandKHR { 144 XrStructureType type; 145 const void* XR_MAY_ALIAS next; 146 struct wl_display* display; 147} XrGraphicsBindingOpenGLWaylandKHR; 148#endif // XR_USE_PLATFORM_WAYLAND 149 150typedef struct XrSwapchainImageOpenGLKHR { 151 XrStructureType type; 152 void* XR_MAY_ALIAS next; 153 uint32_t image; 154} XrSwapchainImageOpenGLKHR; 155 156typedef struct XrGraphicsRequirementsOpenGLKHR { 157 XrStructureType type; 158 void* XR_MAY_ALIAS next; 159 XrVersion minApiVersionSupported; 160 XrVersion maxApiVersionSupported; 161} XrGraphicsRequirementsOpenGLKHR; 162 163typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLKHR* graphicsRequirements); 164 165#ifndef XR_NO_PROTOTYPES 166#ifdef XR_EXTENSION_PROTOTYPES 167XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLGraphicsRequirementsKHR( 168 XrInstance instance, 169 XrSystemId systemId, 170 XrGraphicsRequirementsOpenGLKHR* graphicsRequirements); 171#endif /* XR_EXTENSION_PROTOTYPES */ 172#endif /* !XR_NO_PROTOTYPES */ 173#endif /* XR_USE_GRAPHICS_API_OPENGL */ 174 175#ifdef XR_USE_GRAPHICS_API_OPENGL_ES 176 177// XR_KHR_opengl_es_enable is a preprocessor guard. Do not pass it to API calls. 178#define XR_KHR_opengl_es_enable 1 179#define XR_KHR_opengl_es_enable_SPEC_VERSION 8 180#define XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME "XR_KHR_opengl_es_enable" 181#ifdef XR_USE_PLATFORM_ANDROID 182// XrGraphicsBindingOpenGLESAndroidKHR extends XrSessionCreateInfo 183typedef struct XrGraphicsBindingOpenGLESAndroidKHR { 184 XrStructureType type; 185 const void* XR_MAY_ALIAS next; 186 EGLDisplay display; 187 EGLConfig config; 188 EGLContext context; 189} XrGraphicsBindingOpenGLESAndroidKHR; 190#endif // XR_USE_PLATFORM_ANDROID 191 192typedef struct XrSwapchainImageOpenGLESKHR { 193 XrStructureType type; 194 void* XR_MAY_ALIAS next; 195 uint32_t image; 196} XrSwapchainImageOpenGLESKHR; 197 198typedef struct XrGraphicsRequirementsOpenGLESKHR { 199 XrStructureType type; 200 void* XR_MAY_ALIAS next; 201 XrVersion minApiVersionSupported; 202 XrVersion maxApiVersionSupported; 203} XrGraphicsRequirementsOpenGLESKHR; 204 205typedef XrResult (XRAPI_PTR *PFN_xrGetOpenGLESGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements); 206 207#ifndef XR_NO_PROTOTYPES 208#ifdef XR_EXTENSION_PROTOTYPES 209XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLESGraphicsRequirementsKHR( 210 XrInstance instance, 211 XrSystemId systemId, 212 XrGraphicsRequirementsOpenGLESKHR* graphicsRequirements); 213#endif /* XR_EXTENSION_PROTOTYPES */ 214#endif /* !XR_NO_PROTOTYPES */ 215#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */ 216 217#ifdef XR_USE_GRAPHICS_API_VULKAN 218 219// XR_KHR_vulkan_enable is a preprocessor guard. Do not pass it to API calls. 220#define XR_KHR_vulkan_enable 1 221#define XR_KHR_vulkan_enable_SPEC_VERSION 8 222#define XR_KHR_VULKAN_ENABLE_EXTENSION_NAME "XR_KHR_vulkan_enable" 223// XrGraphicsBindingVulkanKHR extends XrSessionCreateInfo 224typedef struct XrGraphicsBindingVulkanKHR { 225 XrStructureType type; 226 const void* XR_MAY_ALIAS next; 227 VkInstance instance; 228 VkPhysicalDevice physicalDevice; 229 VkDevice device; 230 uint32_t queueFamilyIndex; 231 uint32_t queueIndex; 232} XrGraphicsBindingVulkanKHR; 233 234typedef struct XrSwapchainImageVulkanKHR { 235 XrStructureType type; 236 void* XR_MAY_ALIAS next; 237 VkImage image; 238} XrSwapchainImageVulkanKHR; 239 240typedef struct XrGraphicsRequirementsVulkanKHR { 241 XrStructureType type; 242 void* XR_MAY_ALIAS next; 243 XrVersion minApiVersionSupported; 244 XrVersion maxApiVersionSupported; 245} XrGraphicsRequirementsVulkanKHR; 246 247typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanInstanceExtensionsKHR)(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); 248typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanDeviceExtensionsKHR)(XrInstance instance, XrSystemId systemId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer); 249typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDeviceKHR)(XrInstance instance, XrSystemId systemId, VkInstance vkInstance, VkPhysicalDevice* vkPhysicalDevice); 250typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR* graphicsRequirements); 251 252#ifndef XR_NO_PROTOTYPES 253#ifdef XR_EXTENSION_PROTOTYPES 254XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanInstanceExtensionsKHR( 255 XrInstance instance, 256 XrSystemId systemId, 257 uint32_t bufferCapacityInput, 258 uint32_t* bufferCountOutput, 259 char* buffer); 260 261XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanDeviceExtensionsKHR( 262 XrInstance instance, 263 XrSystemId systemId, 264 uint32_t bufferCapacityInput, 265 uint32_t* bufferCountOutput, 266 char* buffer); 267 268XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsDeviceKHR( 269 XrInstance instance, 270 XrSystemId systemId, 271 VkInstance vkInstance, 272 VkPhysicalDevice* vkPhysicalDevice); 273 274XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR( 275 XrInstance instance, 276 XrSystemId systemId, 277 XrGraphicsRequirementsVulkanKHR* graphicsRequirements); 278#endif /* XR_EXTENSION_PROTOTYPES */ 279#endif /* !XR_NO_PROTOTYPES */ 280#endif /* XR_USE_GRAPHICS_API_VULKAN */ 281 282#ifdef XR_USE_GRAPHICS_API_D3D11 283 284// XR_KHR_D3D11_enable is a preprocessor guard. Do not pass it to API calls. 285#define XR_KHR_D3D11_enable 1 286#define XR_KHR_D3D11_enable_SPEC_VERSION 9 287#define XR_KHR_D3D11_ENABLE_EXTENSION_NAME "XR_KHR_D3D11_enable" 288// XrGraphicsBindingD3D11KHR extends XrSessionCreateInfo 289typedef struct XrGraphicsBindingD3D11KHR { 290 XrStructureType type; 291 const void* XR_MAY_ALIAS next; 292 ID3D11Device* device; 293} XrGraphicsBindingD3D11KHR; 294 295typedef struct XrSwapchainImageD3D11KHR { 296 XrStructureType type; 297 void* XR_MAY_ALIAS next; 298 ID3D11Texture2D* texture; 299} XrSwapchainImageD3D11KHR; 300 301typedef struct XrGraphicsRequirementsD3D11KHR { 302 XrStructureType type; 303 void* XR_MAY_ALIAS next; 304 LUID adapterLuid; 305 D3D_FEATURE_LEVEL minFeatureLevel; 306} XrGraphicsRequirementsD3D11KHR; 307 308typedef XrResult (XRAPI_PTR *PFN_xrGetD3D11GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D11KHR* graphicsRequirements); 309 310#ifndef XR_NO_PROTOTYPES 311#ifdef XR_EXTENSION_PROTOTYPES 312XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR( 313 XrInstance instance, 314 XrSystemId systemId, 315 XrGraphicsRequirementsD3D11KHR* graphicsRequirements); 316#endif /* XR_EXTENSION_PROTOTYPES */ 317#endif /* !XR_NO_PROTOTYPES */ 318#endif /* XR_USE_GRAPHICS_API_D3D11 */ 319 320#ifdef XR_USE_GRAPHICS_API_D3D12 321 322// XR_KHR_D3D12_enable is a preprocessor guard. Do not pass it to API calls. 323#define XR_KHR_D3D12_enable 1 324#define XR_KHR_D3D12_enable_SPEC_VERSION 9 325#define XR_KHR_D3D12_ENABLE_EXTENSION_NAME "XR_KHR_D3D12_enable" 326// XrGraphicsBindingD3D12KHR extends XrSessionCreateInfo 327typedef struct XrGraphicsBindingD3D12KHR { 328 XrStructureType type; 329 const void* XR_MAY_ALIAS next; 330 ID3D12Device* device; 331 ID3D12CommandQueue* queue; 332} XrGraphicsBindingD3D12KHR; 333 334typedef struct XrSwapchainImageD3D12KHR { 335 XrStructureType type; 336 void* XR_MAY_ALIAS next; 337 ID3D12Resource* texture; 338} XrSwapchainImageD3D12KHR; 339 340typedef struct XrGraphicsRequirementsD3D12KHR { 341 XrStructureType type; 342 void* XR_MAY_ALIAS next; 343 LUID adapterLuid; 344 D3D_FEATURE_LEVEL minFeatureLevel; 345} XrGraphicsRequirementsD3D12KHR; 346 347typedef XrResult (XRAPI_PTR *PFN_xrGetD3D12GraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsD3D12KHR* graphicsRequirements); 348 349#ifndef XR_NO_PROTOTYPES 350#ifdef XR_EXTENSION_PROTOTYPES 351XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR( 352 XrInstance instance, 353 XrSystemId systemId, 354 XrGraphicsRequirementsD3D12KHR* graphicsRequirements); 355#endif /* XR_EXTENSION_PROTOTYPES */ 356#endif /* !XR_NO_PROTOTYPES */ 357#endif /* XR_USE_GRAPHICS_API_D3D12 */ 358 359#ifdef XR_USE_GRAPHICS_API_METAL 360 361// XR_KHR_metal_enable is a preprocessor guard. Do not pass it to API calls. 362#define XR_KHR_metal_enable 1 363#define XR_KHR_metal_enable_SPEC_VERSION 1 364#define XR_KHR_METAL_ENABLE_EXTENSION_NAME "XR_KHR_metal_enable" 365// XrGraphicsBindingMetalKHR extends XrSessionCreateInfo 366typedef struct XrGraphicsBindingMetalKHR { 367 XrStructureType type; 368 const void* XR_MAY_ALIAS next; 369 void* XR_MAY_ALIAS commandQueue; 370} XrGraphicsBindingMetalKHR; 371 372typedef struct XrSwapchainImageMetalKHR { 373 XrStructureType type; 374 const void* XR_MAY_ALIAS next; 375 void* XR_MAY_ALIAS texture; 376} XrSwapchainImageMetalKHR; 377 378typedef struct XrGraphicsRequirementsMetalKHR { 379 XrStructureType type; 380 void* XR_MAY_ALIAS next; 381 void* XR_MAY_ALIAS metalDevice; 382} XrGraphicsRequirementsMetalKHR; 383 384typedef XrResult (XRAPI_PTR *PFN_xrGetMetalGraphicsRequirementsKHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsMetalKHR* graphicsRequirements); 385 386#ifndef XR_NO_PROTOTYPES 387#ifdef XR_EXTENSION_PROTOTYPES 388XRAPI_ATTR XrResult XRAPI_CALL xrGetMetalGraphicsRequirementsKHR( 389 XrInstance instance, 390 XrSystemId systemId, 391 XrGraphicsRequirementsMetalKHR* graphicsRequirements); 392#endif /* XR_EXTENSION_PROTOTYPES */ 393#endif /* !XR_NO_PROTOTYPES */ 394#endif /* XR_USE_GRAPHICS_API_METAL */ 395 396#ifdef XR_USE_PLATFORM_WIN32 397 398// XR_KHR_win32_convert_performance_counter_time is a preprocessor guard. Do not pass it to API calls. 399#define XR_KHR_win32_convert_performance_counter_time 1 400#define XR_KHR_win32_convert_performance_counter_time_SPEC_VERSION 1 401#define XR_KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME "XR_KHR_win32_convert_performance_counter_time" 402typedef XrResult (XRAPI_PTR *PFN_xrConvertWin32PerformanceCounterToTimeKHR)(XrInstance instance, const LARGE_INTEGER* performanceCounter, XrTime* time); 403typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToWin32PerformanceCounterKHR)(XrInstance instance, XrTime time, LARGE_INTEGER* performanceCounter); 404 405#ifndef XR_NO_PROTOTYPES 406#ifdef XR_EXTENSION_PROTOTYPES 407XRAPI_ATTR XrResult XRAPI_CALL xrConvertWin32PerformanceCounterToTimeKHR( 408 XrInstance instance, 409 const LARGE_INTEGER* performanceCounter, 410 XrTime* time); 411 412XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToWin32PerformanceCounterKHR( 413 XrInstance instance, 414 XrTime time, 415 LARGE_INTEGER* performanceCounter); 416#endif /* XR_EXTENSION_PROTOTYPES */ 417#endif /* !XR_NO_PROTOTYPES */ 418#endif /* XR_USE_PLATFORM_WIN32 */ 419 420#ifdef XR_USE_TIMESPEC 421 422// XR_KHR_convert_timespec_time is a preprocessor guard. Do not pass it to API calls. 423#define XR_KHR_convert_timespec_time 1 424#define XR_KHR_convert_timespec_time_SPEC_VERSION 1 425#define XR_KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME "XR_KHR_convert_timespec_time" 426typedef XrResult (XRAPI_PTR *PFN_xrConvertTimespecTimeToTimeKHR)(XrInstance instance, const struct timespec* timespecTime, XrTime* time); 427typedef XrResult (XRAPI_PTR *PFN_xrConvertTimeToTimespecTimeKHR)(XrInstance instance, XrTime time, struct timespec* timespecTime); 428 429#ifndef XR_NO_PROTOTYPES 430#ifdef XR_EXTENSION_PROTOTYPES 431XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimespecTimeToTimeKHR( 432 XrInstance instance, 433 const struct timespec* timespecTime, 434 XrTime* time); 435 436XRAPI_ATTR XrResult XRAPI_CALL xrConvertTimeToTimespecTimeKHR( 437 XrInstance instance, 438 XrTime time, 439 struct timespec* timespecTime); 440#endif /* XR_EXTENSION_PROTOTYPES */ 441#endif /* !XR_NO_PROTOTYPES */ 442#endif /* XR_USE_TIMESPEC */ 443 444#ifdef XR_USE_PLATFORM_ANDROID 445 446// XR_KHR_loader_init_android is a preprocessor guard. Do not pass it to API calls. 447#define XR_KHR_loader_init_android 1 448#define XR_KHR_loader_init_android_SPEC_VERSION 1 449#define XR_KHR_LOADER_INIT_ANDROID_EXTENSION_NAME "XR_KHR_loader_init_android" 450typedef struct XrLoaderInitInfoAndroidKHR { 451 XrStructureType type; 452 const void* XR_MAY_ALIAS next; 453 void* XR_MAY_ALIAS applicationVM; 454 void* XR_MAY_ALIAS applicationContext; 455} XrLoaderInitInfoAndroidKHR; 456 457#endif /* XR_USE_PLATFORM_ANDROID */ 458 459#ifdef XR_USE_GRAPHICS_API_VULKAN 460 461// XR_KHR_vulkan_enable2 is a preprocessor guard. Do not pass it to API calls. 462#define XR_KHR_vulkan_enable2 1 463#define XR_KHR_vulkan_enable2_SPEC_VERSION 2 464#define XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME "XR_KHR_vulkan_enable2" 465typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR; 466 467// Flag bits for XrVulkanInstanceCreateFlagsKHR 468 469typedef XrFlags64 XrVulkanDeviceCreateFlagsKHR; 470 471// Flag bits for XrVulkanDeviceCreateFlagsKHR 472 473typedef struct XrVulkanInstanceCreateInfoKHR { 474 XrStructureType type; 475 const void* XR_MAY_ALIAS next; 476 XrSystemId systemId; 477 XrVulkanInstanceCreateFlagsKHR createFlags; 478 PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; 479 const VkInstanceCreateInfo* vulkanCreateInfo; 480 const VkAllocationCallbacks* vulkanAllocator; 481} XrVulkanInstanceCreateInfoKHR; 482 483typedef struct XrVulkanDeviceCreateInfoKHR { 484 XrStructureType type; 485 const void* XR_MAY_ALIAS next; 486 XrSystemId systemId; 487 XrVulkanDeviceCreateFlagsKHR createFlags; 488 PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; 489 VkPhysicalDevice vulkanPhysicalDevice; 490 const VkDeviceCreateInfo* vulkanCreateInfo; 491 const VkAllocationCallbacks* vulkanAllocator; 492} XrVulkanDeviceCreateInfoKHR; 493 494typedef XrGraphicsBindingVulkanKHR XrGraphicsBindingVulkan2KHR; 495 496typedef struct XrVulkanGraphicsDeviceGetInfoKHR { 497 XrStructureType type; 498 const void* XR_MAY_ALIAS next; 499 XrSystemId systemId; 500 VkInstance vulkanInstance; 501} XrVulkanGraphicsDeviceGetInfoKHR; 502 503typedef XrSwapchainImageVulkanKHR XrSwapchainImageVulkan2KHR; 504 505typedef XrGraphicsRequirementsVulkanKHR XrGraphicsRequirementsVulkan2KHR; 506 507typedef XrResult (XRAPI_PTR *PFN_xrCreateVulkanInstanceKHR)(XrInstance instance, const XrVulkanInstanceCreateInfoKHR* createInfo, VkInstance* vulkanInstance, VkResult* vulkanResult); 508typedef XrResult (XRAPI_PTR *PFN_xrCreateVulkanDeviceKHR)(XrInstance instance, const XrVulkanDeviceCreateInfoKHR* createInfo, VkDevice* vulkanDevice, VkResult* vulkanResult); 509typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsDevice2KHR)(XrInstance instance, const XrVulkanGraphicsDeviceGetInfoKHR* getInfo, VkPhysicalDevice* vulkanPhysicalDevice); 510typedef XrResult (XRAPI_PTR *PFN_xrGetVulkanGraphicsRequirements2KHR)(XrInstance instance, XrSystemId systemId, XrGraphicsRequirementsVulkanKHR* graphicsRequirements); 511 512#ifndef XR_NO_PROTOTYPES 513#ifdef XR_EXTENSION_PROTOTYPES 514XRAPI_ATTR XrResult XRAPI_CALL xrCreateVulkanInstanceKHR( 515 XrInstance instance, 516 const XrVulkanInstanceCreateInfoKHR* createInfo, 517 VkInstance* vulkanInstance, 518 VkResult* vulkanResult); 519 520XRAPI_ATTR XrResult XRAPI_CALL xrCreateVulkanDeviceKHR( 521 XrInstance instance, 522 const XrVulkanDeviceCreateInfoKHR* createInfo, 523 VkDevice* vulkanDevice, 524 VkResult* vulkanResult); 525 526XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsDevice2KHR( 527 XrInstance instance, 528 const XrVulkanGraphicsDeviceGetInfoKHR* getInfo, 529 VkPhysicalDevice* vulkanPhysicalDevice); 530 531XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirements2KHR( 532 XrInstance instance, 533 XrSystemId systemId, 534 XrGraphicsRequirementsVulkanKHR* graphicsRequirements); 535#endif /* XR_EXTENSION_PROTOTYPES */ 536#endif /* !XR_NO_PROTOTYPES */ 537#endif /* XR_USE_GRAPHICS_API_VULKAN */ 538 539#ifdef XR_USE_PLATFORM_EGL 540 541// XR_MNDX_egl_enable is a preprocessor guard. Do not pass it to API calls. 542#define XR_MNDX_egl_enable 1 543#define XR_MNDX_egl_enable_SPEC_VERSION 2 544#define XR_MNDX_EGL_ENABLE_EXTENSION_NAME "XR_MNDX_egl_enable" 545typedef PFN_xrVoidFunction (*PFN_xrEglGetProcAddressMNDX)(const char *name); 546// XrGraphicsBindingEGLMNDX extends XrSessionCreateInfo 547typedef struct XrGraphicsBindingEGLMNDX { 548 XrStructureType type; 549 const void* XR_MAY_ALIAS next; 550 PFN_xrEglGetProcAddressMNDX getProcAddress; 551 EGLDisplay display; 552 EGLConfig config; 553 EGLContext context; 554} XrGraphicsBindingEGLMNDX; 555 556#endif /* XR_USE_PLATFORM_EGL */ 557 558#ifdef XR_USE_PLATFORM_WIN32 559 560// XR_MSFT_perception_anchor_interop is a preprocessor guard. Do not pass it to API calls. 561#define XR_MSFT_perception_anchor_interop 1 562#define XR_MSFT_perception_anchor_interop_SPEC_VERSION 1 563#define XR_MSFT_PERCEPTION_ANCHOR_INTEROP_EXTENSION_NAME "XR_MSFT_perception_anchor_interop" 564typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPerceptionAnchorMSFT)(XrSession session, IUnknown* perceptionAnchor, XrSpatialAnchorMSFT* anchor); 565typedef XrResult (XRAPI_PTR *PFN_xrTryGetPerceptionAnchorFromSpatialAnchorMSFT)(XrSession session, XrSpatialAnchorMSFT anchor, IUnknown** perceptionAnchor); 566 567#ifndef XR_NO_PROTOTYPES 568#ifdef XR_EXTENSION_PROTOTYPES 569XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPerceptionAnchorMSFT( 570 XrSession session, 571 IUnknown* perceptionAnchor, 572 XrSpatialAnchorMSFT* anchor); 573 574XRAPI_ATTR XrResult XRAPI_CALL xrTryGetPerceptionAnchorFromSpatialAnchorMSFT( 575 XrSession session, 576 XrSpatialAnchorMSFT anchor, 577 IUnknown** perceptionAnchor); 578#endif /* XR_EXTENSION_PROTOTYPES */ 579#endif /* !XR_NO_PROTOTYPES */ 580#endif /* XR_USE_PLATFORM_WIN32 */ 581 582#ifdef XR_USE_PLATFORM_WIN32 583 584// XR_MSFT_holographic_window_attachment is a preprocessor guard. Do not pass it to API calls. 585#define XR_MSFT_holographic_window_attachment 1 586#define XR_MSFT_holographic_window_attachment_SPEC_VERSION 1 587#define XR_MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME "XR_MSFT_holographic_window_attachment" 588#ifdef XR_USE_PLATFORM_WIN32 589// XrHolographicWindowAttachmentMSFT extends XrSessionCreateInfo 590typedef struct XrHolographicWindowAttachmentMSFT { 591 XrStructureType type; 592 const void* XR_MAY_ALIAS next; 593 IUnknown* holographicSpace; 594 IUnknown* coreWindow; 595} XrHolographicWindowAttachmentMSFT; 596#endif // XR_USE_PLATFORM_WIN32 597 598#endif /* XR_USE_PLATFORM_WIN32 */ 599 600#ifdef XR_USE_PLATFORM_ANDROID 601 602// XR_FB_android_surface_swapchain_create is a preprocessor guard. Do not pass it to API calls. 603#define XR_FB_android_surface_swapchain_create 1 604#define XR_FB_android_surface_swapchain_create_SPEC_VERSION 1 605#define XR_FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME "XR_FB_android_surface_swapchain_create" 606typedef XrFlags64 XrAndroidSurfaceSwapchainFlagsFB; 607 608// Flag bits for XrAndroidSurfaceSwapchainFlagsFB 609static const XrAndroidSurfaceSwapchainFlagsFB XR_ANDROID_SURFACE_SWAPCHAIN_SYNCHRONOUS_BIT_FB = 0x00000001; 610static const XrAndroidSurfaceSwapchainFlagsFB XR_ANDROID_SURFACE_SWAPCHAIN_USE_TIMESTAMPS_BIT_FB = 0x00000002; 611 612#ifdef XR_USE_PLATFORM_ANDROID 613// XrAndroidSurfaceSwapchainCreateInfoFB extends XrSwapchainCreateInfo 614typedef struct XrAndroidSurfaceSwapchainCreateInfoFB { 615 XrStructureType type; 616 const void* XR_MAY_ALIAS next; 617 XrAndroidSurfaceSwapchainFlagsFB createFlags; 618} XrAndroidSurfaceSwapchainCreateInfoFB; 619#endif // XR_USE_PLATFORM_ANDROID 620 621#endif /* XR_USE_PLATFORM_ANDROID */ 622 623#ifdef XR_USE_PLATFORM_ML 624 625// XR_ML_compat is a preprocessor guard. Do not pass it to API calls. 626#define XR_ML_compat 1 627#define XR_ML_compat_SPEC_VERSION 1 628#define XR_ML_COMPAT_EXTENSION_NAME "XR_ML_compat" 629typedef struct XrCoordinateSpaceCreateInfoML { 630 XrStructureType type; 631 const void* XR_MAY_ALIAS next; 632 MLCoordinateFrameUID cfuid; 633 XrPosef poseInCoordinateSpace; 634} XrCoordinateSpaceCreateInfoML; 635 636typedef XrResult (XRAPI_PTR *PFN_xrCreateSpaceFromCoordinateFrameUIDML)(XrSession session, const XrCoordinateSpaceCreateInfoML *createInfo, XrSpace* space); 637 638#ifndef XR_NO_PROTOTYPES 639#ifdef XR_EXTENSION_PROTOTYPES 640XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpaceFromCoordinateFrameUIDML( 641 XrSession session, 642 const XrCoordinateSpaceCreateInfoML * createInfo, 643 XrSpace* space); 644#endif /* XR_EXTENSION_PROTOTYPES */ 645#endif /* !XR_NO_PROTOTYPES */ 646#endif /* XR_USE_PLATFORM_ML */ 647 648#ifdef XR_USE_PLATFORM_WIN32 649 650// XR_OCULUS_audio_device_guid is a preprocessor guard. Do not pass it to API calls. 651#define XR_OCULUS_audio_device_guid 1 652#define XR_OCULUS_audio_device_guid_SPEC_VERSION 1 653#define XR_OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME "XR_OCULUS_audio_device_guid" 654#define XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS 128 655typedef XrResult (XRAPI_PTR *PFN_xrGetAudioOutputDeviceGuidOculus)(XrInstance instance, wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]); 656typedef XrResult (XRAPI_PTR *PFN_xrGetAudioInputDeviceGuidOculus)(XrInstance instance, wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]); 657 658#ifndef XR_NO_PROTOTYPES 659#ifdef XR_EXTENSION_PROTOTYPES 660XRAPI_ATTR XrResult XRAPI_CALL xrGetAudioOutputDeviceGuidOculus( 661 XrInstance instance, 662 wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]); 663 664XRAPI_ATTR XrResult XRAPI_CALL xrGetAudioInputDeviceGuidOculus( 665 XrInstance instance, 666 wchar_t buffer[XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS]); 667#endif /* XR_EXTENSION_PROTOTYPES */ 668#endif /* !XR_NO_PROTOTYPES */ 669#endif /* XR_USE_PLATFORM_WIN32 */ 670 671#ifdef XR_USE_GRAPHICS_API_VULKAN 672 673// XR_FB_foveation_vulkan is a preprocessor guard. Do not pass it to API calls. 674#define XR_FB_foveation_vulkan 1 675#define XR_FB_foveation_vulkan_SPEC_VERSION 1 676#define XR_FB_FOVEATION_VULKAN_EXTENSION_NAME "XR_FB_foveation_vulkan" 677// XrSwapchainImageFoveationVulkanFB extends XrSwapchainImageVulkanKHR 678typedef struct XrSwapchainImageFoveationVulkanFB { 679 XrStructureType type; 680 void* XR_MAY_ALIAS next; 681 VkImage image; 682 uint32_t width; 683 uint32_t height; 684} XrSwapchainImageFoveationVulkanFB; 685 686#endif /* XR_USE_GRAPHICS_API_VULKAN */ 687 688#ifdef XR_USE_PLATFORM_ANDROID 689 690// XR_FB_swapchain_update_state_android_surface is a preprocessor guard. Do not pass it to API calls. 691#define XR_FB_swapchain_update_state_android_surface 1 692#define XR_FB_swapchain_update_state_android_surface_SPEC_VERSION 1 693#define XR_FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME "XR_FB_swapchain_update_state_android_surface" 694#ifdef XR_USE_PLATFORM_ANDROID 695typedef struct XrSwapchainStateAndroidSurfaceDimensionsFB { 696 XrStructureType type; 697 void* XR_MAY_ALIAS next; 698 uint32_t width; 699 uint32_t height; 700} XrSwapchainStateAndroidSurfaceDimensionsFB; 701#endif // XR_USE_PLATFORM_ANDROID 702 703#endif /* XR_USE_PLATFORM_ANDROID */ 704 705#ifdef XR_USE_GRAPHICS_API_OPENGL_ES 706 707// XR_FB_swapchain_update_state_opengl_es is a preprocessor guard. Do not pass it to API calls. 708#define XR_FB_swapchain_update_state_opengl_es 1 709#define XR_FB_swapchain_update_state_opengl_es_SPEC_VERSION 1 710#define XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME "XR_FB_swapchain_update_state_opengl_es" 711#ifdef XR_USE_GRAPHICS_API_OPENGL_ES 712typedef struct XrSwapchainStateSamplerOpenGLESFB { 713 XrStructureType type; 714 void* XR_MAY_ALIAS next; 715 EGLenum minFilter; 716 EGLenum magFilter; 717 EGLenum wrapModeS; 718 EGLenum wrapModeT; 719 EGLenum swizzleRed; 720 EGLenum swizzleGreen; 721 EGLenum swizzleBlue; 722 EGLenum swizzleAlpha; 723 float maxAnisotropy; 724 XrColor4f borderColor; 725} XrSwapchainStateSamplerOpenGLESFB; 726#endif // XR_USE_GRAPHICS_API_OPENGL_ES 727 728#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */ 729 730#ifdef XR_USE_GRAPHICS_API_VULKAN 731 732// XR_FB_swapchain_update_state_vulkan is a preprocessor guard. Do not pass it to API calls. 733#define XR_FB_swapchain_update_state_vulkan 1 734#define XR_FB_swapchain_update_state_vulkan_SPEC_VERSION 1 735#define XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME "XR_FB_swapchain_update_state_vulkan" 736#ifdef XR_USE_GRAPHICS_API_VULKAN 737typedef struct XrSwapchainStateSamplerVulkanFB { 738 XrStructureType type; 739 void* XR_MAY_ALIAS next; 740 VkFilter minFilter; 741 VkFilter magFilter; 742 VkSamplerMipmapMode mipmapMode; 743 VkSamplerAddressMode wrapModeS; 744 VkSamplerAddressMode wrapModeT; 745 VkComponentSwizzle swizzleRed; 746 VkComponentSwizzle swizzleGreen; 747 VkComponentSwizzle swizzleBlue; 748 VkComponentSwizzle swizzleAlpha; 749 float maxAnisotropy; 750 XrColor4f borderColor; 751} XrSwapchainStateSamplerVulkanFB; 752#endif // XR_USE_GRAPHICS_API_VULKAN 753 754#endif /* XR_USE_GRAPHICS_API_VULKAN */ 755 756#ifdef XR_USE_GRAPHICS_API_VULKAN 757 758// XR_META_vulkan_swapchain_create_info is a preprocessor guard. Do not pass it to API calls. 759#define XR_META_vulkan_swapchain_create_info 1 760#define XR_META_vulkan_swapchain_create_info_SPEC_VERSION 1 761#define XR_META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME "XR_META_vulkan_swapchain_create_info" 762// XrVulkanSwapchainCreateInfoMETA extends XrSwapchainCreateInfo 763typedef struct XrVulkanSwapchainCreateInfoMETA { 764 XrStructureType type; 765 const void* XR_MAY_ALIAS next; 766 VkImageCreateFlags additionalCreateFlags; 767 VkImageUsageFlags additionalUsageFlags; 768} XrVulkanSwapchainCreateInfoMETA; 769 770#endif /* XR_USE_GRAPHICS_API_VULKAN */ 771 772#ifdef __cplusplus 773} 774#endif 775 776#endif 777[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.