Files
ladybird/Libraries/LibWeb/Internals/FakeXRDevice.idl

71 lines
3.4 KiB
Plaintext

#import <WebIDL/Function.idl>
#import <WebXR/XRSystem.idl>
// https://github.com/immersive-web/webxr-test-api/blob/main/explainer.md
dictionary FakeXRDeviceInit {
// Deprecated - use `supportedModes` instead.
// FIXME: required boolean supportsImmersive;
// Sequence of modes that should be supported by this device.
sequence<XRSessionMode> supportedModes;
// FIXME: required sequence<FakeXRViewInit> views;
// FIXME: sequence<FakeXRViewInit> secondaryViews;
// https://immersive-web.github.io/webxr/#feature-name
// The list of feature names that this device supports.
// Any requests for features not in this list should be rejected, with the exception of those
// that are guaranteed regardless of device availability (e.g. 'viewer').
// If not specified/empty, the device supports no features.
// NOTE: This is meant to emulate hardware support, not whether a feature is
// currently available (e.g. bounds not being tracked per below)
sequence<DOMString> supportedFeatures;
// The bounds coordinates. If empty, no bounded reference space is currently tracked.
// If not, must have at least three elements.
// FIXME: sequence<FakeXRBoundsPoint> boundsCoordinates;
// A transform used to identify the physical position of the user's floor.
// If not set, indicates that the device cannot identify the physical floor.
// FIXME: FakeXRRigidTransformInit floorOrigin;
// native origin of the viewer
// If not set, the device is currently assumed to not be tracking, and xrFrame.getViewerPose should
// not return a pose.
//
// This sets the viewer origin *shortly after* initialization; since the viewer origin at initialization
// is used to provide a reference origin for all matrices.
// FIXME: FakeXRRigidTransformInit viewerOrigin;
};
[Exposed=Nobody]
interface FakeXRDevice {
// Sets the values to be used for subsequent
// requestAnimationFrame() callbacks.
// FIXME: undefined setViews(sequence<FakeXRViewInit> primaryViews, sequence<FakeXRViewInit> secondaryViews);
// behaves as if device was disconnected
Promise<undefined> disconnect();
// Sets the origin of the viewer
// FIXME: undefined setViewerOrigin(FakeXRRigidTransformInit origin, optional boolean emulatedPosition = false);
// If an origin is not specified, then the device is assumed to not be tracking, emulatedPosition should
// be assumed for cases where the UA must always provide a pose.
// FIXME: undefined clearViewerOrigin();
// Simulates devices focusing and blurring sessions.
// FIXME: undefined simulateVisibilityChange(XRVisibilityState state);
// FIXME: undefined setBoundsGeometry(sequence<FakeXRBoundsPoint> boundsCoordinates);
// Sets the native origin of the physical floor
// FIXME: undefined setFloorOrigin(FakeXRRigidTransformInit floorOrigin);
// Indicates that the device can no longer identify the location of the physical floor.
// FIXME: undefined clearFloorOrigin();
// Used to simulate a major change in tracking and that a reset pose event should be fired
// https://immersive-web.github.io/webxr/#event-types
// FIXME: undefined simulateResetPose();
// Used to connect and send input events
// FIXME: FakeXRInputController simulateInputSourceConnection(FakeXRInputSourceInit init);
};