Add XREnvironmentBlendMode

This commit is contained in:
Manish Goregaokar 2019-02-19 16:08:39 +05:30
parent 0c10702e4b
commit 37872b8b9c
2 changed files with 10 additions and 1 deletions

View file

@ -17,7 +17,7 @@ interface XRSession : EventTarget {
// // Attributes // // Attributes
readonly attribute XRSessionMode mode; readonly attribute XRSessionMode mode;
// readonly attribute XRPresentationContext outputContext; // readonly attribute XRPresentationContext outputContext;
// readonly attribute XREnvironmentBlendMode environmentBlendMode; readonly attribute XREnvironmentBlendMode environmentBlendMode;
attribute double depthNear; attribute double depthNear;
attribute double depthFar; attribute double depthFar;

View file

@ -5,6 +5,7 @@
use crate::dom::bindings::codegen::Bindings::VRDisplayBinding::VRDisplayMethods; use crate::dom::bindings::codegen::Bindings::VRDisplayBinding::VRDisplayMethods;
use crate::dom::bindings::codegen::Bindings::XRBinding::XRSessionMode; use crate::dom::bindings::codegen::Bindings::XRBinding::XRSessionMode;
use crate::dom::bindings::codegen::Bindings::XRSessionBinding; use crate::dom::bindings::codegen::Bindings::XRSessionBinding;
use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XREnvironmentBlendMode;
use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRFrameRequestCallback; use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRFrameRequestCallback;
use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRSessionMethods; use crate::dom::bindings::codegen::Bindings::XRSessionBinding::XRSessionMethods;
use crate::dom::bindings::codegen::Bindings::XRWebGLLayerBinding::XRWebGLLayerMethods; use crate::dom::bindings::codegen::Bindings::XRWebGLLayerBinding::XRWebGLLayerMethods;
@ -26,6 +27,7 @@ pub struct XRSession {
eventtarget: EventTarget, eventtarget: EventTarget,
display: Dom<VRDisplay>, display: Dom<VRDisplay>,
base_layer: MutNullableDom<XRLayer>, base_layer: MutNullableDom<XRLayer>,
blend_mode: XREnvironmentBlendMode,
} }
impl XRSession { impl XRSession {
@ -34,6 +36,8 @@ impl XRSession {
eventtarget: EventTarget::new_inherited(), eventtarget: EventTarget::new_inherited(),
display: Dom::from_ref(display), display: Dom::from_ref(display),
base_layer: Default::default(), base_layer: Default::default(),
// we don't yet support any AR devices
blend_mode: XREnvironmentBlendMode::Opaque,
} }
} }
@ -102,4 +106,9 @@ impl XRSessionMethods for XRSession {
fn CancelAnimationFrame(&self, frame: i32) { fn CancelAnimationFrame(&self, frame: i32) {
self.display.xr_cancel_raf(frame) self.display.xr_cancel_raf(frame)
} }
/// https://immersive-web.github.io/webxr/#dom-xrsession-environmentblendmode
fn EnvironmentBlendMode(&self) -> XREnvironmentBlendMode {
self.blend_mode
}
} }