From fe7cbd784335d8a5a08c4fe8dea0d5825856e0a3 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Wed, 11 Dec 2019 21:33:38 -0800 Subject: Construct viewports for inline sessions --- components/script/dom/xrwebgllayer.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'components/script/dom/xrwebgllayer.rs') diff --git a/components/script/dom/xrwebgllayer.rs b/components/script/dom/xrwebgllayer.rs index 752e2ea384a..498a5035ce0 100644 --- a/components/script/dom/xrwebgllayer.rs +++ b/components/script/dom/xrwebgllayer.rs @@ -20,7 +20,7 @@ use crate::dom::xrview::XRView; use crate::dom::xrviewport::XRViewport; use canvas_traits::webgl::WebGLFramebufferId; use dom_struct::dom_struct; -use euclid::Size2D; +use euclid::{Point2D, Rect, Size2D}; use std::convert::TryInto; use webxr_api::SwapChainId as WebXRSwapChainId; use webxr_api::{Viewport, Views}; @@ -211,11 +211,13 @@ impl XRWebGLLayerMethods for XRWebGLLayer { let views = self.session.with_session(|s| s.views().clone()); let viewport = match (view.Eye(), views) { + (XREye::None, Views::Inline) => { + let origin = Point2D::new(0, 0); + Rect::new(origin, self.size().cast()) + }, (XREye::None, Views::Mono(view)) => view.viewport, (XREye::Left, Views::Stereo(view, _)) => view.viewport, (XREye::Right, Views::Stereo(_, view)) => view.viewport, - // The spec doesn't really say what to do in this case - // https://github.com/immersive-web/webxr/issues/769 _ => return None, }; -- cgit v1.2.3