mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
webxr: Update XRInputSource interface to latest spec (#33155)
* Update XRInputSource interface to latest spec Signed-off-by: Daniel Adams <msub2official@gmail.com> * Bump webxr version Signed-off-by: Daniel Adams <msub2official@gmail.com> * Add missing spec link Signed-off-by: Daniel Adams <msub2official@gmail.com> --------- Signed-off-by: Daniel Adams <msub2official@gmail.com>
This commit is contained in:
parent
56280c6242
commit
7501e3e12f
7 changed files with 19 additions and 10 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -7758,7 +7758,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webxr"
|
name = "webxr"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/webxr#474d53835cec0ad6e054dca3c97c98ae2dcff9f0"
|
source = "git+https://github.com/servo/webxr#13a0b240d10479180a9e100d7b4e25cfc142db8d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
"euclid",
|
"euclid",
|
||||||
|
@ -7775,7 +7775,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webxr-api"
|
name = "webxr-api"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/webxr#474d53835cec0ad6e054dca3c97c98ae2dcff9f0"
|
source = "git+https://github.com/servo/webxr#13a0b240d10479180a9e100d7b4e25cfc142db8d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"euclid",
|
"euclid",
|
||||||
"ipc-channel",
|
"ipc-channel",
|
||||||
|
|
|
@ -327,6 +327,7 @@ impl From<XRTargetRayMode> for TargetRayMode {
|
||||||
XRTargetRayMode::Gaze => TargetRayMode::Gaze,
|
XRTargetRayMode::Gaze => TargetRayMode::Gaze,
|
||||||
XRTargetRayMode::Tracked_pointer => TargetRayMode::TrackedPointer,
|
XRTargetRayMode::Tracked_pointer => TargetRayMode::TrackedPointer,
|
||||||
XRTargetRayMode::Screen => TargetRayMode::Screen,
|
XRTargetRayMode::Screen => TargetRayMode::Screen,
|
||||||
|
XRTargetRayMode::Transient_pointer => TargetRayMode::TransientPointer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,6 +126,7 @@ impl FakeXRInputControllerMethods for FakeXRInputController {
|
||||||
XRTargetRayMode::Gaze => TargetRayMode::Gaze,
|
XRTargetRayMode::Gaze => TargetRayMode::Gaze,
|
||||||
XRTargetRayMode::Tracked_pointer => TargetRayMode::TrackedPointer,
|
XRTargetRayMode::Tracked_pointer => TargetRayMode::TrackedPointer,
|
||||||
XRTargetRayMode::Screen => TargetRayMode::Screen,
|
XRTargetRayMode::Screen => TargetRayMode::Screen,
|
||||||
|
XRTargetRayMode::Transient_pointer => TargetRayMode::TransientPointer,
|
||||||
};
|
};
|
||||||
self.send_message(MockInputMsg::SetTargetRayMode(t));
|
self.send_message(MockInputMsg::SetTargetRayMode(t));
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,8 @@ enum XRHandedness {
|
||||||
enum XRTargetRayMode {
|
enum XRTargetRayMode {
|
||||||
"gaze",
|
"gaze",
|
||||||
"tracked-pointer",
|
"tracked-pointer",
|
||||||
"screen"
|
"screen",
|
||||||
|
"transient-pointer"
|
||||||
};
|
};
|
||||||
|
|
||||||
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
@ -22,9 +23,13 @@ interface XRInputSource {
|
||||||
readonly attribute XRTargetRayMode targetRayMode;
|
readonly attribute XRTargetRayMode targetRayMode;
|
||||||
[SameObject] readonly attribute XRSpace targetRaySpace;
|
[SameObject] readonly attribute XRSpace targetRaySpace;
|
||||||
[SameObject] readonly attribute XRSpace? gripSpace;
|
[SameObject] readonly attribute XRSpace? gripSpace;
|
||||||
[SameObject] readonly attribute Gamepad? gamepad;
|
|
||||||
/* [SameObject] */ readonly attribute /* FrozenArray<DOMString> */ any profiles;
|
/* [SameObject] */ readonly attribute /* FrozenArray<DOMString> */ any profiles;
|
||||||
|
readonly attribute boolean skipRendering;
|
||||||
|
|
||||||
|
// WebXR Gamepads Module
|
||||||
|
[SameObject] readonly attribute Gamepad? gamepad;
|
||||||
|
|
||||||
|
// Hand Input
|
||||||
[Pref="dom.webxr.hands.enabled"]
|
[Pref="dom.webxr.hands.enabled"]
|
||||||
readonly attribute XRHand? hand;
|
readonly attribute XRHand? hand;
|
||||||
};
|
};
|
||||||
|
|
|
@ -127,6 +127,7 @@ impl XRInputSourceMethods for XRInputSource {
|
||||||
TargetRayMode::Gaze => XRTargetRayMode::Gaze,
|
TargetRayMode::Gaze => XRTargetRayMode::Gaze,
|
||||||
TargetRayMode::TrackedPointer => XRTargetRayMode::Tracked_pointer,
|
TargetRayMode::TrackedPointer => XRTargetRayMode::Tracked_pointer,
|
||||||
TargetRayMode::Screen => XRTargetRayMode::Screen,
|
TargetRayMode::Screen => XRTargetRayMode::Screen,
|
||||||
|
TargetRayMode::TransientPointer => XRTargetRayMode::Transient_pointer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,6 +155,13 @@ impl XRInputSourceMethods for XRInputSource {
|
||||||
self.profiles.get()
|
self.profiles.get()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <https://www.w3.org/TR/webxr/#dom-xrinputsource-skiprendering>
|
||||||
|
fn SkipRendering(&self) -> bool {
|
||||||
|
// Servo is not currently supported anywhere that would allow for skipped
|
||||||
|
// controller rendering.
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
/// <https://www.w3.org/TR/webxr-gamepads-module-1/#xrinputsource-interface>
|
/// <https://www.w3.org/TR/webxr-gamepads-module-1/#xrinputsource-interface>
|
||||||
fn GetGamepad(&self) -> Option<DomRoot<Gamepad>> {
|
fn GetGamepad(&self) -> Option<DomRoot<Gamepad>> {
|
||||||
Some(DomRoot::from_ref(&*self.gamepad))
|
Some(DomRoot::from_ref(&*self.gamepad))
|
||||||
|
|
|
@ -340,6 +340,3 @@
|
||||||
|
|
||||||
[XRSession interface: xrSession must inherit property "isSystemKeyboardSupported" with the proper type]
|
[XRSession interface: xrSession must inherit property "isSystemKeyboardSupported" with the proper type]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[XRInputSource interface: attribute skipRendering]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -283,6 +283,3 @@
|
||||||
|
|
||||||
[XRSession interface: xrSession must inherit property "isSystemKeyboardSupported" with the proper type]
|
[XRSession interface: xrSession must inherit property "isSystemKeyboardSupported" with the proper type]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[XRInputSource interface: attribute skipRendering]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue