Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 221 additions & 0 deletions client_schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"definitions": {
"extension_name": {
"type": "string",
"description": "Name of an OpenXR extension",
"pattern": "^XR_([A-Z]+)(_([a-zA-Z0-9])+)+$"
},
"extension_with_details": {
"type": "object",
"properties": {
"name": {
"allOf": [
{
"title": "Extension name"
},
{
"$ref": "#/definitions/extension_name"
}
]
},
"notes": {
"type": "string",
"title": "Notes",
"description": "Free-form text about support of this extension"
}
},
"required": [
"name",
"notes"
]
},
"extension": {
"allOf": [
{
"title": "Supported Extension"
},
{
"anyOf": [
{
"$ref": "#/definitions/extension_name"
},
{
"$ref": "#/definitions/extension_with_details"
}
]
}
],
"examples": [
"XR_KHR_composition_layer_cylinder",
{
"name": "XR_EXT_hand_tracking",
"notes": "Currently in beta"
}
]
},
"platform": {
"type": "string",
"enum": [
"Windows (Desktop)",
"Windows (HoloLens 2)",
"Linux (Desktop/Embedded)",
"Android (All-in-one)",
"Android (Phone/Installable)",
"MacOS (Desktop)"
]
},
"form_factor": {
"type": "string",
"title": "XrFormFactor",
"enum": [
"XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY",
"XR_FORM_FACTOR_HANDHELD_DISPLAY"
]
},
"view_configuration": {
"type": "string",
"title": "XrViewConfigurationType",
"enum": [
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO",
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO",
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO",
"XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT",
"XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET"
]
},
"environment_blend_mode": {
"type": "string",
"enum": [
"OPAQUE",
"ADDITIVE",
"ALPHA_BLEND"
]
},
"component": {
"type": "object",
"title": "Component",
"properties": {
"name": {
"title": "Name of this component",
"type": "string"
},
"abbreviation": {
"title": "Abbreviation shown in matrix",
"type": "string"
},
"notes": {
"title": "Additional information about this component",
"type": "string"
},
"extensions": {
"title": "Supported extensions",
"description": "A list of all supported extensions in this client, on this platform. Details or caveats may be included in 'notes'.",
"type": "array",
"items": {
"$ref": "#/definitions/extension"
}
}
},
"required": [
"name",
"abbreviation",
"extensions"
]
},
"view_configuration_data": {
"type": "object",
"title": "View Configuration Data",
"properties": {
"view_configuration": {
"$ref": "#/definitions/view_configuration"
},
"secondary_msft": {
"title": "Secondary (MSFT) view configuration?",
"type": "boolean",
"default": false
},
"environment_blend_modes": {
"title": "Supported environment blend modes in this view configuration",
"type": "array",
"items": {
"$ref": "#/definitions/environment_blend_mode"
},
"minItems": 1
}
},
"required": [
"view_configuration",
"environment_blend_modes"
]
},
"form_factor_data": {
"type": "object",
"title": "Form Factor Data",
"properties": {
"form_factor": {
"$ref": "#/definitions/form_factor"
},
"view_configurations": {
"type": "array",
"items": {
"$ref": "#/definitions/view_configuration_data"
},
"minItems": 1
}
},
"required": [
"form_factor",
"view_configurations"
]
}
},
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Client Name"
},
"vendor": {
"type": "string",
"title": "Vendor"
},
"platform": {
"$description": "Platforms this client supports.",
"type": "array",
"items": {
"$ref": "#/definitions/platform"
}
},
"updated": {
"type": "string",
"title": "Last updated",
"description": "Date this document was last reflective of the reality"
},
"notes": {
"type": "string",
"title": "Notes",
"description": "Freeform notes about this data file"
},
"components": {
"title": "Components",
"description": "A list of all components for this client.",
"type": "array",
"items": {
"$ref": "#/definitions/component"
}
},
"form_factors": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/form_factor_data"
}
}
},
"required": [
"name",
"vendor",
"components"
]
}
2 changes: 2 additions & 0 deletions client_schema.json.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Copyright 2025, The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
159 changes: 159 additions & 0 deletions clients/godot.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
{
"$schema": "../client_schema.json",
"name": "Godot Game Engine",
"vendor": "Godot Community",
"notes": "Some extensions require the use of the Godot OpenXR Vendors Plugin.",
"platforms": [
"Windows (Desktop)",
"Linux (Desktop/Embedded)",
"Android (All-in-one)",
"Android (Phone/Installable)",
"macOS (Desktop)"
],
"components": [
{
"name": "Godot Core",
"abbreviation": "Core",
"extensions": [
"XR_KHR_android_create_instance",
"XR_KHR_android_surface_swapchain",
"XR_KHR_binding_modification",
"XR_KHR_composition_layer_cylinder",
"XR_KHR_composition_layer_depth",
"XR_KHR_composition_layer_equirect2",
"XR_KHR_D3D12_enable",
"XR_KHR_loader_init",
"XR_KHR_loader_init_android",
"XR_KHR_metal_enable",
"XR_KHR_opengl_enable",
"XR_KHR_opengl_es_enable",
"XR_KHR_visibility_mask",
"XR_KHR_vulkan_enable2",
"XR_EXT_debug_utils",
"XR_EXT_dpad_binding",
"XR_EXT_eye_gaze_interaction",
"XR_EXT_future",
"XR_EXT_hand_interaction",
"XR_EXT_hand_joints_motion_range",
"XR_EXT_hand_tracking",
"XR_EXT_hand_tracking_data_source",
"XR_EXT_interaction_render_model",
"XR_EXT_performance_settings",
"XR_EXT_render_model",
"XR_EXT_hp_mixed_reality_controller",
"XR_EXT_local_floor",
"XR_EXT_palm_pose",
"XR_EXT_samsung_odyssey_controller",
"XR_EXT_uuid",
"XR_BD_controller_interaction",
"XR_FB_display_refresh_rate",
"XR_FB_foveation",
"XR_FB_foveation_configuration",
"XR_FB_foveation_vulkan",
"XR_EXT_spatial_anchor",
"XR_EXT_spatial_entity",
"XR_EXT_spatial_marker_tracking",
"XR_EXT_spatial_persistence",
"XR_EXT_spatial_persistence_operations",
"XR_EXT_spatial_plane_tracking",
"XR_FB_swapchain_update_state",
"XR_FB_swapchain_update_state_android_surface",
"XR_FB_swapchain_update_state_opengl_es",
"XR_FB_swapchain_update_state_vulkan",
"XR_FB_touch_controller_proximity",
"XR_FB_touch_controller_pro",
"XR_HTC_hand_interaction",
"XR_HTC_vive_cosmos_controller_interaction",
"XR_HTC_vive_focus3_controller_interaction",
"XR_HTCX_vive_tracker_interaction",
"XR_LOGITECH_mx_ink_stylus_interaction",
"XR_META_hand_tracking_microgestures",
"XR_META_touch_controller_plus",
"XR_ML_ml2_controller_interaction",
"XR_MSFT_hand_interaction",
"XR_MNDX_egl_enable",
"XR_VALVE_analog_threshold"
]
},
{
"name": "Godot Vendors plugin",
"abbreviation": "Vendors",
"notes": "Optional plugin exposing vendor extensions and additional export configurations.",
"extensions": [
"XR_FB_android_surface_swapchain_create",
"XR_FB_body_tracking",
"XR_FB_color_space",
"XR_FB_composition_layer_alpha_blend",
"XR_FB_composition_layer_depth_test",
"XR_FB_composition_layer_image_layout",
"XR_FB_composition_layer_secure_content",
"XR_FB_composition_layer_settings",
"XR_FB_face_tracking2",
"XR_FB_hand_tracking_aim",
"XR_FB_hand_tracking_capsules",
"XR_FB_hand_tracking_mesh",
"XR_FB_passthrough",
"XR_FB_render_model",
"XR_FB_scene",
"XR_FB_scene_capture",
"XR_FB_space_warp",
"XR_FB_spatial_entity",
"XR_FB_spatial_entity_container",
"XR_FB_spatial_entity_query",
"XR_FB_spatial_entity_sharing",
"XR_FB_spatial_entity_storage",
"XR_FB_spatial_entity_storage_batch",
"XR_FB_spatial_entity_user",
"XR_FB_triangle_mesh",
"XR_HTC_facial_tracking",
"XR_HTC_passthrough",
"XR_META_automatic_layer_filter",
"XR_META_body_tracking_full_body",
"XR_META_environment_depth",
"XR_META_headset_id",
"XR_META_passthrough_color_lut",
"XR_META_passthrough_preferences",
"XR_META_performance_metrics",
"XR_META_recommended_layer_resolution",
"XR_META_simultaneous_hands_and_controllers",
"XR_META_spatial_entity_mesh"
]
}
],
"form_factors": [
{
"form_factor": "XR_FORM_FACTOR_HANDHELD_DISPLAY",
"view_configurations": [
{
"view_configuration": "XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO",
"environment_blend_modes": [
"OPAQUE",
"ADDITIVE",
"ALPHA_BLEND"
]
}
]
},
{
"form_factor": "XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY",
"view_configurations": [
{
"view_configuration": "XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO",
"environment_blend_modes": [
"OPAQUE",
"ADDITIVE",
"ALPHA_BLEND"
]
},
{
"view_configuration": "XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO",
"environment_blend_modes": [
"OPAQUE",
"ADDITIVE",
"ALPHA_BLEND"
]
}
]
}
]
}
2 changes: 2 additions & 0 deletions clients/godot.json.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Copyright 2025, The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
Loading