aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrwebgllayer.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-12-11 21:33:38 -0800
committerManish Goregaokar <manishsmail@gmail.com>2019-12-11 22:12:07 -0800
commitfe7cbd784335d8a5a08c4fe8dea0d5825856e0a3 (patch)
tree1f95d833843284fdb27b83a5d460a18478c17e9a /components/script/dom/xrwebgllayer.rs
parent3414c8d22dc5defaa1a505c2e77066dce5a213a5 (diff)
downloadservo-fe7cbd784335d8a5a08c4fe8dea0d5825856e0a3.tar.gz
servo-fe7cbd784335d8a5a08c4fe8dea0d5825856e0a3.zip
Construct viewports for inline sessions
Diffstat (limited to 'components/script/dom/xrwebgllayer.rs')
-rw-r--r--components/script/dom/xrwebgllayer.rs8
1 files changed, 5 insertions, 3 deletions
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,
};