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 xr;
|
||||
pub mod xrframe;
|
||||
pub mod xrinputsource;
|
||||
pub mod xrlayer;
|
||||
pub mod xrpose;
|
||||
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