diff options
author | David Snopek <dsnopek@gmail.com> | 2024-03-25 08:07:28 -0500 |
---|---|---|
committer | David Snopek <dsnopek@gmail.com> | 2024-04-04 09:20:23 -0500 |
commit | 0f2b804059331f2454e060577ae0e1b44675c5aa (patch) | |
tree | f83679824636edffe9827d9d968b0b85d2e54708 /modules/openxr/doc_classes | |
parent | 29b3d9e9e538f0aa8effc8ad8bf19a2915292a89 (diff) | |
download | redot-engine-0f2b804059331f2454e060577ae0e1b44675c5aa.tar.gz |
Add support for OpenXR composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
Diffstat (limited to 'modules/openxr/doc_classes')
4 files changed, 103 insertions, 0 deletions
diff --git a/modules/openxr/doc_classes/OpenXRCompositionLayer.xml b/modules/openxr/doc_classes/OpenXRCompositionLayer.xml new file mode 100644 index 0000000000..66baaf096d --- /dev/null +++ b/modules/openxr/doc_classes/OpenXRCompositionLayer.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="OpenXRCompositionLayer" inherits="Node3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd"> + <brief_description> + The parent class of all OpenXR composition layer nodes. + </brief_description> + <description> + Composition layers allow 2D viewports to be displayed inside of the headset by the XR compositor through special projections that retain their quality. This allows for rendering clear text while keeping the layer at a native resolution. + [b]Note:[/b] If the OpenXR runtime doesn't support the given composition layer type, a fallback mesh can be generated with a [ViewportTexture], in order to emulate the composition layer. + </description> + <tutorials> + </tutorials> + <methods> + <method name="is_natively_supported" qualifiers="const"> + <return type="bool" /> + <description> + Returns true if the OpenXR runtime natively supports this composition layer type. + [b]Note:[/b] This will only return an accurate result after the OpenXR session has started. + </description> + </method> + </methods> + <members> + <member name="alpha_blend" type="bool" setter="set_alpha_blend" getter="get_alpha_blend" default="false"> + Enables the blending the layer using its alpha channel. + Can be combined with [member Viewport.transparent_bg] to give the layer a transparent background. + </member> + <member name="layer_viewport" type="SubViewport" setter="set_layer_viewport" getter="get_layer_viewport"> + The [SubViewport] to render on the composition layer. + </member> + <member name="sort_order" type="int" setter="set_sort_order" getter="get_sort_order" default="1"> + The sort order for this composition layer. Higher numbers will be shown in front of lower numbers. + [b]Note:[/b] This will have no effect if a fallback mesh is being used. + </member> + </members> +</class> diff --git a/modules/openxr/doc_classes/OpenXRCompositionLayerCylinder.xml b/modules/openxr/doc_classes/OpenXRCompositionLayerCylinder.xml new file mode 100644 index 0000000000..2de1977671 --- /dev/null +++ b/modules/openxr/doc_classes/OpenXRCompositionLayerCylinder.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="OpenXRCompositionLayerCylinder" inherits="OpenXRCompositionLayer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd"> + <brief_description> + An OpenXR composition layer that is rendered as an internal slice of a cylinder. + </brief_description> + <description> + An OpenXR composition layer that allows rendering a [SubViewport] on an internal slice of a cylinder. + </description> + <tutorials> + </tutorials> + <members> + <member name="aspect_ratio" type="float" setter="set_aspect_ratio" getter="get_aspect_ratio" default="1.0"> + The aspect ratio of the slice. Used to set the height relative to the width. + </member> + <member name="central_angle" type="float" setter="set_central_angle" getter="get_central_angle" default="1.5708"> + The central angle of the cylinder. Used to set the width. + </member> + <member name="fallback_segments" type="int" setter="set_fallback_segments" getter="get_fallback_segments" default="10"> + The number of segments to use in the fallback mesh. + </member> + <member name="radius" type="float" setter="set_radius" getter="get_radius" default="1.0"> + The radius of the cylinder. + </member> + </members> +</class> diff --git a/modules/openxr/doc_classes/OpenXRCompositionLayerEquirect.xml b/modules/openxr/doc_classes/OpenXRCompositionLayerEquirect.xml new file mode 100644 index 0000000000..f6eba7e228 --- /dev/null +++ b/modules/openxr/doc_classes/OpenXRCompositionLayerEquirect.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="OpenXRCompositionLayerEquirect" inherits="OpenXRCompositionLayer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd"> + <brief_description> + An OpenXR composition layer that is rendered as an internal slice of a sphere. + </brief_description> + <description> + An OpenXR composition layer that allows rendering a [SubViewport] on an internal slice of a sphere. + </description> + <tutorials> + </tutorials> + <members> + <member name="central_horizontal_angle" type="float" setter="set_central_horizontal_angle" getter="get_central_horizontal_angle" default="1.5708"> + The central horizontal angle of the sphere. Used to set the width. + </member> + <member name="fallback_segments" type="int" setter="set_fallback_segments" getter="get_fallback_segments" default="10"> + The number of segments to use in the fallback mesh. + </member> + <member name="lower_vertical_angle" type="float" setter="set_lower_vertical_angle" getter="get_lower_vertical_angle" default="0.785398"> + The lower vertical angle of the sphere. Used (together with [member upper_vertical_angle]) to set the height. + </member> + <member name="radius" type="float" setter="set_radius" getter="get_radius" default="1.0"> + The radius of the sphere. + </member> + <member name="upper_vertical_angle" type="float" setter="set_upper_vertical_angle" getter="get_upper_vertical_angle" default="0.785398"> + The upper vertical angle of the sphere. Used (together with [member lower_vertical_angle]) to set the height. + </member> + </members> +</class> diff --git a/modules/openxr/doc_classes/OpenXRCompositionLayerQuad.xml b/modules/openxr/doc_classes/OpenXRCompositionLayerQuad.xml new file mode 100644 index 0000000000..fff592bc4f --- /dev/null +++ b/modules/openxr/doc_classes/OpenXRCompositionLayerQuad.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="OpenXRCompositionLayerQuad" inherits="OpenXRCompositionLayer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd"> + <brief_description> + An OpenXR composition layer that is rendered as a quad. + </brief_description> + <description> + An OpenXR composition layer that allows rendering a [SubViewport] on a quad. + </description> + <tutorials> + </tutorials> + <members> + <member name="quad_size" type="Vector2" setter="set_quad_size" getter="get_quad_size" default="Vector2(1, 1)"> + The dimensions of the quad. + </member> + </members> +</class> |