mirror of
https://github.com/servo/servo.git
synced 2025-06-08 08:33:26 +00:00
Basic XRSession interface
This commit is contained in:
parent
376426a936
commit
ebf9ccc9de
4 changed files with 74 additions and 1 deletions
|
@ -518,3 +518,4 @@ pub mod xmlhttprequest;
|
|||
pub mod xmlhttprequesteventtarget;
|
||||
pub mod xmlhttprequestupload;
|
||||
pub mod xr;
|
||||
pub mod xrsession;
|
||||
|
|
41
components/script/dom/webidls/XRSession.webidl
Normal file
41
components/script/dom/webidls/XRSession.webidl
Normal file
|
@ -0,0 +1,41 @@
|
|||
/* 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/#xrsession-interface
|
||||
|
||||
enum XREnvironmentBlendMode {
|
||||
"opaque",
|
||||
"additive",
|
||||
"alpha-blend",
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=Window] interface XRSession : EventTarget {
|
||||
// // Attributes
|
||||
// readonly attribute XRSessionMode mode;
|
||||
// readonly attribute XRPresentationContext outputContext;
|
||||
// readonly attribute XREnvironmentBlendMode environmentBlendMode;
|
||||
|
||||
// attribute double depthNear;
|
||||
// attribute double depthFar;
|
||||
// attribute XRLayer baseLayer;
|
||||
|
||||
// // Methods
|
||||
// Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type, optional XRReferenceSpaceOptions options);
|
||||
|
||||
// FrozenArray<XRInputSource> getInputSources();
|
||||
|
||||
// long requestAnimationFrame(XRFrameRequestCallback callback);
|
||||
// void cancelAnimationFrame(long handle);
|
||||
|
||||
// Promise<void> end();
|
||||
|
||||
// // Events
|
||||
// attribute EventHandler onblur;
|
||||
// attribute EventHandler onfocus;
|
||||
// attribute EventHandler onend;
|
||||
// attribute EventHandler onselect;
|
||||
// attribute EventHandler oninputsourceschange;
|
||||
// attribute EventHandler onselectstart;
|
||||
// attribute EventHandler onselectend;
|
||||
};
|
|
@ -3,8 +3,8 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::codegen::Bindings::XRBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::VRDisplayBinding::VRDisplayMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::XRBinding;
|
||||
use crate::dom::bindings::error::Error;
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
|
||||
|
|
31
components/script/dom/xrsession.rs
Normal file
31
components/script/dom/xrsession.rs
Normal file
|
@ -0,0 +1,31 @@
|
|||
/* 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::XRSessionBinding;
|
||||
use crate::dom::bindings::reflector::reflect_dom_object;
|
||||
use crate::dom::bindings::root::DomRoot;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
use crate::dom::globalscope::GlobalScope;
|
||||
use dom_struct::dom_struct;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct XRSession {
|
||||
eventtarget: EventTarget,
|
||||
}
|
||||
|
||||
impl XRSession {
|
||||
fn new_inherited() -> XRSession {
|
||||
XRSession {
|
||||
eventtarget: EventTarget::new_inherited(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new(global: &GlobalScope) -> DomRoot<XRSession> {
|
||||
reflect_dom_object(
|
||||
Box::new(XRSession::new_inherited()),
|
||||
global,
|
||||
XRSessionBinding::Wrap,
|
||||
)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue