@@ -356,6 +356,43 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR(
356356#endif /* !XR_NO_PROTOTYPES */
357357#endif /* XR_USE_GRAPHICS_API_D3D12 */
358358
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
366+ typedef struct XrGraphicsBindingMetalKHR {
367+ XrStructureType type ;
368+ const void * XR_MAY_ALIAS next ;
369+ void * XR_MAY_ALIAS commandQueue ;
370+ } XrGraphicsBindingMetalKHR ;
371+
372+ typedef struct XrSwapchainImageMetalKHR {
373+ XrStructureType type ;
374+ const void * XR_MAY_ALIAS next ;
375+ void * XR_MAY_ALIAS texture ;
376+ } XrSwapchainImageMetalKHR ;
377+
378+ typedef struct XrGraphicsRequirementsMetalKHR {
379+ XrStructureType type ;
380+ void * XR_MAY_ALIAS next ;
381+ void * XR_MAY_ALIAS metalDevice ;
382+ } XrGraphicsRequirementsMetalKHR ;
383+
384+ typedef XrResult (XRAPI_PTR * PFN_xrGetMetalGraphicsRequirementsKHR )(XrInstance instance , XrSystemId systemId , XrGraphicsRequirementsMetalKHR * graphicsRequirements );
385+
386+ #ifndef XR_NO_PROTOTYPES
387+ #ifdef XR_EXTENSION_PROTOTYPES
388+ XRAPI_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+
359396#ifdef XR_USE_PLATFORM_WIN32
360397
361398// XR_KHR_win32_convert_performance_counter_time is a preprocessor guard. Do not pass it to API calls.
0 commit comments