Base class for XR interface extensions (plugins).
External XR interface plugins should inherit from this class.
$DOCS_URL/tutorials/xr/index.html
Called if interface is active and queues have been submitted.
Return [code]true[/code] if anchor detection is enabled for this interface.
Returns the camera feed ID for the [CameraFeed] registered with the [CameraServer] that should be presented as the background on an AR capable device (if applicable).
Returns the [Transform3D] that positions the [XRCamera3D] in the world.
Returns the capabilities of this interface.
Return color texture into which to render (if applicable).
Return depth texture into which to render (if applicable).
Returns the name of this interface.
Returns an [PackedVector3Array] that denotes the play areas boundaries (if applicable).
Returns the [enum XRInterface.PlayAreaMode] that sets up our play area.
Returns the projection matrix for the given view as a [PackedFloat64Array].
Returns the size of our render target for this interface, this overrides the size of the [Viewport] marked as the xr viewport.
Returns a [PackedStringArray] with pose names configured by this interface. Note that user configuration can override this list.
Returns a [PackedStringArray] with tracker names configured by this interface. Note that user configuration can override this list.
Returns a [Dictionary] with system information related to this interface.
Returns a [enum XRInterface.TrackingStatus] specifying the current status of our tracking.
Returns a [Transform3D] for a given view.
Return velocity texture into which to render (if applicable).
Returns the number of views this interface requires, 1 for mono, 2 for stereoscopic.
Initializes the interface, returns [code]true[/code] on success.
Returns [code]true[/code] if this interface has been initialized.
Called after the XR [Viewport] draw logic has completed.
Called if this is our primary [XRInterfaceExtension] before we start processing a [Viewport] for every active XR [Viewport], returns [code]true[/code] if that viewport should be rendered. An XR interface may return [code]false[/code] if the user has taken off their headset and we can pause rendering.
Called if this [XRInterfaceExtension] is active before rendering starts. Most XR interfaces will sync tracking at this point in time.
Called if this [XRInterfaceExtension] is active before our physics and game process is called. Most XR interfaces will update its [XRPositionalTracker]s at this point in time.
Enables anchor detection on this interface if supported.
Set the play area mode for this interface.
Returns [code]true[/code] if this interface supports this play area mode.
Triggers a haptic pulse to be emitted on the specified tracker.
Uninitialize the interface.
Blits our render results to screen optionally applying lens distortion. This can only be called while processing [code]_commit_views[/code].
Returns a valid [RID] for a texture to which we should render the current frame if supported by the interface.