:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the XRInterfaceExtension.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_XRInterfaceExtension: XRInterfaceExtension ==================== **Inherits:** :ref:`XRInterface` **<** :ref:`RefCounted` **<** :ref:`Object` Base class for XR interface extensions (plugins). Description ----------- External XR interface plugins should inherit from this class. Methods ------- +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_end_frame` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_get_anchor_detection_is_enabled` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_camera_feed_id` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform3D` | :ref:`_get_camera_transform` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_capabilities` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`_get_name` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedVector3Array` | :ref:`_get_play_area` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_play_area_mode` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedFloat64Array` | :ref:`_get_projection_for_view` **(** :ref:`int` view, :ref:`float` aspect, :ref:`float` z_near, :ref:`float` z_far **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`_get_render_target_size` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`_get_suggested_pose_names` **(** :ref:`StringName` tracker_name **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`_get_suggested_tracker_names` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_tracking_status` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform3D` | :ref:`_get_transform_for_view` **(** :ref:`int` view, :ref:`Transform3D` cam_transform **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_get_view_count` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_initialize` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_is_initialized` **(** **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_notification` **(** :ref:`int` what **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_post_draw_viewport` **(** :ref:`RID` render_target, :ref:`Rect2` screen_rect **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_pre_draw_viewport` **(** :ref:`RID` render_target **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_pre_render` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_process` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_set_anchor_detection_is_enabled` **(** :ref:`bool` enabled **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_set_play_area_mode` **(** :ref:`int` mode **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_supports_play_area_mode` **(** :ref:`PlayAreaMode` mode **)** |virtual| |const| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_trigger_haptic_pulse` **(** :ref:`String` action_name, :ref:`StringName` tracker_name, :ref:`float` frequency, :ref:`float` amplitude, :ref:`float` duration_sec, :ref:`float` delay_sec **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_uninitialize` **(** **)** |virtual| | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_blit` **(** :ref:`RID` render_target, :ref:`Rect2` src_rect, :ref:`Rect2i` dst_rect, :ref:`bool` use_layer, :ref:`int` layer, :ref:`bool` apply_lens_distortion, :ref:`Vector2` eye_center, :ref:`float` k1, :ref:`float` k2, :ref:`float` upscale, :ref:`float` aspect_ratio **)** | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`get_render_target_texture` **(** :ref:`RID` render_target **)** | +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Method Descriptions ------------------- .. _class_XRInterfaceExtension_method__end_frame: - void **_end_frame** **(** **)** |virtual| Called if interface is active and queues have been submitted. ---- .. _class_XRInterfaceExtension_method__get_anchor_detection_is_enabled: - :ref:`bool` **_get_anchor_detection_is_enabled** **(** **)** |virtual| |const| Return ``true`` if anchor detection is enabled for this interface. ---- .. _class_XRInterfaceExtension_method__get_camera_feed_id: - :ref:`int` **_get_camera_feed_id** **(** **)** |virtual| |const| Returns the camera feed id for the :ref:`CameraFeed` registered with the :ref:`CameraServer` that should be presented as the background on an AR capable device (if applicable). ---- .. _class_XRInterfaceExtension_method__get_camera_transform: - :ref:`Transform3D` **_get_camera_transform** **(** **)** |virtual| Returns the :ref:`Transform3D` that positions the :ref:`XRCamera3D` in the world. ---- .. _class_XRInterfaceExtension_method__get_capabilities: - :ref:`int` **_get_capabilities** **(** **)** |virtual| |const| Returns the capabilities of this interface. ---- .. _class_XRInterfaceExtension_method__get_name: - :ref:`StringName` **_get_name** **(** **)** |virtual| |const| Returns the name of this interface. ---- .. _class_XRInterfaceExtension_method__get_play_area: - :ref:`PackedVector3Array` **_get_play_area** **(** **)** |virtual| |const| Returns an :ref:`PackedVector3Array` that denotes the play areas boundaries (if applicable). ---- .. _class_XRInterfaceExtension_method__get_play_area_mode: - :ref:`int` **_get_play_area_mode** **(** **)** |virtual| |const| Returns the :ref:`PlayAreaMode` that sets up our play area. ---- .. _class_XRInterfaceExtension_method__get_projection_for_view: - :ref:`PackedFloat64Array` **_get_projection_for_view** **(** :ref:`int` view, :ref:`float` aspect, :ref:`float` z_near, :ref:`float` z_far **)** |virtual| Returns the projection matrix for the given view as a :ref:`PackedFloat64Array`. ---- .. _class_XRInterfaceExtension_method__get_render_target_size: - :ref:`Vector2` **_get_render_target_size** **(** **)** |virtual| Returns the size of our render target for this interface, this overrides the size of the :ref:`Viewport` marked as the xr viewport. ---- .. _class_XRInterfaceExtension_method__get_suggested_pose_names: - :ref:`PackedStringArray` **_get_suggested_pose_names** **(** :ref:`StringName` tracker_name **)** |virtual| |const| Returns a :ref:`PackedStringArray` with pose names configured by this interface. Note that user configuration can override this list. ---- .. _class_XRInterfaceExtension_method__get_suggested_tracker_names: - :ref:`PackedStringArray` **_get_suggested_tracker_names** **(** **)** |virtual| |const| Returns a :ref:`PackedStringArray` with tracker names configured by this interface. Note that user configuration can override this list. ---- .. _class_XRInterfaceExtension_method__get_tracking_status: - :ref:`int` **_get_tracking_status** **(** **)** |virtual| |const| Returns a :ref:`TrackingStatus` specifying the current status of our tracking. ---- .. _class_XRInterfaceExtension_method__get_transform_for_view: - :ref:`Transform3D` **_get_transform_for_view** **(** :ref:`int` view, :ref:`Transform3D` cam_transform **)** |virtual| Returns a :ref:`Transform3D` for a given view. ---- .. _class_XRInterfaceExtension_method__get_view_count: - :ref:`int` **_get_view_count** **(** **)** |virtual| Returns the number of views this interface requires, 1 for mono, 2 for stereoscopic. ---- .. _class_XRInterfaceExtension_method__initialize: - :ref:`bool` **_initialize** **(** **)** |virtual| Initializes the interface, returns ``true`` on success. ---- .. _class_XRInterfaceExtension_method__is_initialized: - :ref:`bool` **_is_initialized** **(** **)** |virtual| |const| Returns ``true`` if this interface has been initialised. ---- .. _class_XRInterfaceExtension_method__notification: - void **_notification** **(** :ref:`int` what **)** |virtual| Informs the interface of an applicable system notification. ---- .. _class_XRInterfaceExtension_method__post_draw_viewport: - void **_post_draw_viewport** **(** :ref:`RID` render_target, :ref:`Rect2` screen_rect **)** |virtual| Called after the XR :ref:`Viewport` draw logic has completed. ---- .. _class_XRInterfaceExtension_method__pre_draw_viewport: - :ref:`bool` **_pre_draw_viewport** **(** :ref:`RID` render_target **)** |virtual| Called if this is our primary ``XRInterfaceExtension`` before we start processing a :ref:`Viewport` for every active XR :ref:`Viewport`, returns ``true`` if that viewport should be rendered. An XR interface may return ``false`` if the user has taken off their headset and we can pause rendering. ---- .. _class_XRInterfaceExtension_method__pre_render: - void **_pre_render** **(** **)** |virtual| Called if this ``XRInterfaceExtension`` is active before rendering starts, most XR interfaces will sync tracking at this point in time. ---- .. _class_XRInterfaceExtension_method__process: - void **_process** **(** **)** |virtual| Called if this ``XRInterfaceExtension`` is active before our physics and game process is called. most XR interfaces will update its :ref:`XRPositionalTracker`\ s at this point in time. ---- .. _class_XRInterfaceExtension_method__set_anchor_detection_is_enabled: - void **_set_anchor_detection_is_enabled** **(** :ref:`bool` enabled **)** |virtual| Enables anchor detection on this interface if supported. ---- .. _class_XRInterfaceExtension_method__set_play_area_mode: - :ref:`bool` **_set_play_area_mode** **(** :ref:`int` mode **)** |virtual| |const| Set the play area mode for this interface. ---- .. _class_XRInterfaceExtension_method__supports_play_area_mode: - :ref:`bool` **_supports_play_area_mode** **(** :ref:`PlayAreaMode` mode **)** |virtual| |const| Returns ``true`` if this interface supports this play area mode. ---- .. _class_XRInterfaceExtension_method__trigger_haptic_pulse: - void **_trigger_haptic_pulse** **(** :ref:`String` action_name, :ref:`StringName` tracker_name, :ref:`float` frequency, :ref:`float` amplitude, :ref:`float` duration_sec, :ref:`float` delay_sec **)** |virtual| Triggers a haptic pulse to be emitted on the specified tracker. ---- .. _class_XRInterfaceExtension_method__uninitialize: - void **_uninitialize** **(** **)** |virtual| Uninitialize the interface. ---- .. _class_XRInterfaceExtension_method_add_blit: - void **add_blit** **(** :ref:`RID` render_target, :ref:`Rect2` src_rect, :ref:`Rect2i` dst_rect, :ref:`bool` use_layer, :ref:`int` layer, :ref:`bool` apply_lens_distortion, :ref:`Vector2` eye_center, :ref:`float` k1, :ref:`float` k2, :ref:`float` upscale, :ref:`float` aspect_ratio **)** Blits our render results to screen optionally applying lens distortion. This can only be called while processing ``_commit_views``. ---- .. _class_XRInterfaceExtension_method_get_render_target_texture: - :ref:`RID` **get_render_target_texture** **(** :ref:`RID` render_target **)** Returns a valid :ref:`RID` for a texture to which we should render the current frame if supported by the interface. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`