mirror of
https://github.com/servo/servo.git
synced 2025-07-04 05:53:39 +01:00
Add blank XRInputSource
This commit is contained in:
parent
c1a8605c3d
commit
0f952c7ff8
3 changed files with 60 additions and 0 deletions
|
@ -540,6 +540,7 @@ pub mod xmlhttprequestupload;
|
||||||
pub mod xmlserializer;
|
pub mod xmlserializer;
|
||||||
pub mod xr;
|
pub mod xr;
|
||||||
pub mod xrframe;
|
pub mod xrframe;
|
||||||
|
pub mod xrinputsource;
|
||||||
pub mod xrlayer;
|
pub mod xrlayer;
|
||||||
pub mod xrpose;
|
pub mod xrpose;
|
||||||
pub mod xrreferencespace;
|
pub mod xrreferencespace;
|
||||||
|
|
26
components/script/dom/webidls/XRInputSource.webidl
Normal file
26
components/script/dom/webidls/XRInputSource.webidl
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
// https://immersive-web.github.io/webxr/#xrinputsource-interface
|
||||||
|
|
||||||
|
enum XRHandedness {
|
||||||
|
"none",
|
||||||
|
"left",
|
||||||
|
"right"
|
||||||
|
};
|
||||||
|
|
||||||
|
enum XRTargetRayMode {
|
||||||
|
"gaze",
|
||||||
|
"tracked-pointer",
|
||||||
|
"screen"
|
||||||
|
};
|
||||||
|
|
||||||
|
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||||
|
interface XRInputSource {
|
||||||
|
// [SameObject] readonly attribute XRHandedness handedness;
|
||||||
|
// [SameObject] readonly attribute XRTargetRayMode targetRayMode;
|
||||||
|
// [SameObject] readonly attribute XRSpace targetRaySpace;
|
||||||
|
// [SameObject] readonly attribute XRSpace? gripSpace;
|
||||||
|
// [SameObject] readonly attribute Gamepad? gamepad;
|
||||||
|
};
|
33
components/script/dom/xrinputsource.rs
Normal file
33
components/script/dom/xrinputsource.rs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use crate::dom::bindings::codegen::Bindings::XRInputSourceBinding;
|
||||||
|
use crate::dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||||
|
use crate::dom::bindings::root::{Dom, DomRoot};
|
||||||
|
use crate::dom::globalscope::GlobalScope;
|
||||||
|
use crate::dom::xrsession::XRSession;
|
||||||
|
use dom_struct::dom_struct;
|
||||||
|
|
||||||
|
#[dom_struct]
|
||||||
|
pub struct XRInputSource {
|
||||||
|
reflector: Reflector,
|
||||||
|
session: Dom<XRSession>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl XRInputSource {
|
||||||
|
pub fn new_inherited(session: &XRSession) -> XRInputSource {
|
||||||
|
XRInputSource {
|
||||||
|
reflector: Reflector::new(),
|
||||||
|
session: Dom::from_ref(session),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new(global: &GlobalScope, session: &XRSession) -> DomRoot<XRInputSource> {
|
||||||
|
reflect_dom_object(
|
||||||
|
Box::new(XRInputSource::new_inherited(session)),
|
||||||
|
global,
|
||||||
|
XRInputSourceBinding::Wrap,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue