Atlas - openxr_loader_negotiation.h

Home / ext / SDL / src / video / khronos / openxr Lines: 1 | Size: 5008 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)]
[FILE BEGIN]
1#ifndef OPENXR_LOADER_NEGOTIATION_H_ 2#define OPENXR_LOADER_NEGOTIATION_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 23// XR_LOADER_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls. 24#define XR_LOADER_VERSION_1_0 1 25 26#define XR_CURRENT_LOADER_API_LAYER_VERSION 1 27 28 29#define XR_CURRENT_LOADER_RUNTIME_VERSION 1 30 31 32#define XR_LOADER_INFO_STRUCT_VERSION 1 33 34 35#define XR_API_LAYER_INFO_STRUCT_VERSION 1 36 37 38#define XR_RUNTIME_INFO_STRUCT_VERSION 1 39 40 41#define XR_API_LAYER_NEXT_INFO_STRUCT_VERSION 1 42 43 44#define XR_API_LAYER_CREATE_INFO_STRUCT_VERSION 1 45 46 47#define XR_API_LAYER_MAX_SETTINGS_PATH_SIZE 512 48 49 50typedef enum XrLoaderInterfaceStructs { 51 XR_LOADER_INTERFACE_STRUCT_UNINTIALIZED = 0, 52 XR_LOADER_INTERFACE_STRUCT_LOADER_INFO = 1, 53 XR_LOADER_INTERFACE_STRUCT_API_LAYER_REQUEST = 2, 54 XR_LOADER_INTERFACE_STRUCT_RUNTIME_REQUEST = 3, 55 XR_LOADER_INTERFACE_STRUCT_API_LAYER_CREATE_INFO = 4, 56 XR_LOADER_INTERFACE_STRUCT_API_LAYER_NEXT_INFO = 5, 57 XR_LOADER_INTERFACE_STRUCTS_MAX_ENUM = 0x7FFFFFFF 58} XrLoaderInterfaceStructs; 59typedef XrResult (XRAPI_PTR *PFN_xrGetInstanceProcAddr)(XrInstance instance, const char* name, PFN_xrVoidFunction* function); 60 61typedef struct XrApiLayerCreateInfo XrApiLayerCreateInfo; 62typedef XrResult (XRAPI_PTR *PFN_xrCreateApiLayerInstance)( 63 const XrInstanceCreateInfo* info, 64 const XrApiLayerCreateInfo* apiLayerInfo, 65 XrInstance* instance); 66 67typedef struct XrApiLayerNextInfo { 68 XrLoaderInterfaceStructs structType; 69 uint32_t structVersion; 70 size_t structSize; 71 char layerName[XR_MAX_API_LAYER_NAME_SIZE]; 72 PFN_xrGetInstanceProcAddr nextGetInstanceProcAddr; 73 PFN_xrCreateApiLayerInstance nextCreateApiLayerInstance; 74 struct XrApiLayerNextInfo* next; 75} XrApiLayerNextInfo; 76 77typedef struct XrApiLayerCreateInfo { 78 XrLoaderInterfaceStructs structType; 79 uint32_t structVersion; 80 size_t structSize; 81 void* XR_MAY_ALIAS loaderInstance; 82 char settings_file_location[XR_API_LAYER_MAX_SETTINGS_PATH_SIZE]; 83 XrApiLayerNextInfo* nextInfo; 84} XrApiLayerCreateInfo; 85 86typedef struct XrNegotiateLoaderInfo { 87 XrLoaderInterfaceStructs structType; 88 uint32_t structVersion; 89 size_t structSize; 90 uint32_t minInterfaceVersion; 91 uint32_t maxInterfaceVersion; 92 XrVersion minApiVersion; 93 XrVersion maxApiVersion; 94} XrNegotiateLoaderInfo; 95 96typedef struct XrNegotiateRuntimeRequest { 97 XrLoaderInterfaceStructs structType; 98 uint32_t structVersion; 99 size_t structSize; 100 uint32_t runtimeInterfaceVersion; 101 XrVersion runtimeApiVersion; 102 PFN_xrGetInstanceProcAddr getInstanceProcAddr; 103} XrNegotiateRuntimeRequest; 104 105typedef struct XrNegotiateApiLayerRequest { 106 XrLoaderInterfaceStructs structType; 107 uint32_t structVersion; 108 size_t structSize; 109 uint32_t layerInterfaceVersion; 110 XrVersion layerApiVersion; 111 PFN_xrGetInstanceProcAddr getInstanceProcAddr; 112 PFN_xrCreateApiLayerInstance createApiLayerInstance; 113} XrNegotiateApiLayerRequest; 114 115typedef XrResult (XRAPI_PTR *PFN_xrCreateApiLayerInstance)(const XrInstanceCreateInfo* info, const XrApiLayerCreateInfo* layerInfo, XrInstance* instance); 116typedef XrResult (XRAPI_PTR *PFN_xrNegotiateLoaderRuntimeInterface)(const XrNegotiateLoaderInfo* loaderInfo, XrNegotiateRuntimeRequest* runtimeRequest); 117typedef XrResult (XRAPI_PTR *PFN_xrNegotiateLoaderApiLayerInterface)(const XrNegotiateLoaderInfo* loaderInfo, const char* layerName, XrNegotiateApiLayerRequest* apiLayerRequest); 118 119#ifndef XR_NO_PROTOTYPES 120#ifdef XR_EXTENSION_PROTOTYPES 121XRAPI_ATTR XrResult XRAPI_CALL xrCreateApiLayerInstance( 122 const XrInstanceCreateInfo* info, 123 const XrApiLayerCreateInfo* layerInfo, 124 XrInstance* instance); 125 126XRAPI_ATTR XrResult XRAPI_CALL xrNegotiateLoaderRuntimeInterface( 127 const XrNegotiateLoaderInfo* loaderInfo, 128 XrNegotiateRuntimeRequest* runtimeRequest); 129 130XRAPI_ATTR XrResult XRAPI_CALL xrNegotiateLoaderApiLayerInterface( 131 const XrNegotiateLoaderInfo* loaderInfo, 132 const char* layerName, 133 XrNegotiateApiLayerRequest* apiLayerRequest); 134#endif /* XR_EXTENSION_PROTOTYPES */ 135#endif /* !XR_NO_PROTOTYPES */ 136 137#ifdef __cplusplus 138} 139#endif 140 141#endif 142
[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.