diff --git a/Cargo.lock b/Cargo.lock index 03c85bbb277..d9169776682 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5927,7 +5927,7 @@ dependencies = [ [[package]] name = "webxr" version = "0.0.1" -source = "git+https://github.com/servo/webxr#ec49fdd1c1a7e45a2dfde2f4a7f07e9581f386ef" +source = "git+https://github.com/servo/webxr#61344bc5d92bc218458063baa7bc5d2d388aa7f5" dependencies = [ "bindgen", "euclid", @@ -5945,7 +5945,7 @@ dependencies = [ [[package]] name = "webxr-api" version = "0.0.1" -source = "git+https://github.com/servo/webxr#ec49fdd1c1a7e45a2dfde2f4a7f07e9581f386ef" +source = "git+https://github.com/servo/webxr#61344bc5d92bc218458063baa7bc5d2d388aa7f5" dependencies = [ "euclid", "gleam 0.6.18", diff --git a/components/script/dom/xrsession.rs b/components/script/dom/xrsession.rs index 35593b10a99..1e63bdb2eaa 100644 --- a/components/script/dom/xrsession.rs +++ b/components/script/dom/xrsession.rs @@ -48,7 +48,7 @@ use profile_traits::ipc; use std::cell::Cell; use std::mem; use std::rc::Rc; -use webxr_api::{self, Event as XREvent, Frame, SelectEvent, Session}; +use webxr_api::{self, EnvironmentBlendMode, Event as XREvent, Frame, SelectEvent, Session}; #[dom_struct] pub struct XRSession { @@ -84,8 +84,7 @@ impl XRSession { XRSession { eventtarget: EventTarget::new_inherited(), base_layer: Default::default(), - // we don't yet support any AR devices - blend_mode: XREnvironmentBlendMode::Opaque, + blend_mode: session.environment_blend_mode().into(), viewer_space: Default::default(), session: DomRefCell::new(session), frame_requested: Cell::new(false), @@ -463,3 +462,13 @@ pub fn cast_transform( ) -> RigidTransform3D { unsafe { mem::transmute(transform) } } + +impl From for XREnvironmentBlendMode { + fn from(x: EnvironmentBlendMode) -> Self { + match x { + EnvironmentBlendMode::Opaque => XREnvironmentBlendMode::Opaque, + EnvironmentBlendMode::AlphaBlend => XREnvironmentBlendMode::Alpha_blend, + EnvironmentBlendMode::Additive => XREnvironmentBlendMode::Additive, + } + } +}