aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-06-10 16:19:37 -0700
committerManish Goregaokar <manishsmail@gmail.com>2019-06-11 10:10:41 -0700
commit2af8e0ef9fb8e3672bce3e3a423d6ed67ac4c738 (patch)
treee10e9977a80d778ae924d827c1ad4ee87ea2d9fd /components/script
parent52b0d37bb7be8e476e7952b049914e8e25d5ac71 (diff)
downloadservo-2af8e0ef9fb8e3672bce3e3a423d6ed67ac4c738.tar.gz
servo-2af8e0ef9fb8e3672bce3e3a423d6ed67ac4c738.zip
Add stub makeXRCompatible()
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/webglrenderingcontext.rs10
-rw-r--r--components/script/dom/webidls/XRSession.webidl1
-rw-r--r--components/script/dom/webidls/XRWebGLLayer.webidl4
3 files changed, 14 insertions, 1 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 0ccc2a53825..d138dc3952e 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -24,6 +24,7 @@ use crate::dom::htmlcanvaselement::utils as canvas_utils;
use crate::dom::htmlcanvaselement::HTMLCanvasElement;
use crate::dom::htmliframeelement::HTMLIFrameElement;
use crate::dom::node::{document_from_node, window_from_node, Node, NodeDamage};
+use crate::dom::promise::Promise;
use crate::dom::webgl_extensions::WebGLExtensions;
use crate::dom::webgl_validations::tex_image_2d::{
CommonCompressedTexImage2DValidatorResult, CommonTexImage2DValidator,
@@ -76,6 +77,7 @@ use servo_config::pref;
use std::cell::Cell;
use std::cmp;
use std::ptr::{self, NonNull};
+use std::rc::Rc;
// From the GLES 2.0.25 spec, page 85:
//
@@ -4090,6 +4092,14 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
handle_potential_webgl_error!(self, self.validate_ownership(program), return None);
handle_potential_webgl_error!(self, program.attached_shaders().map(Some), None)
}
+
+ /// https://immersive-web.github.io/webxr/#dom-webglrenderingcontextbase-makexrcompatible
+ fn MakeXRCompatible(&self) -> Rc<Promise> {
+ // XXXManishearth Fill in with compatibility checks when rust-webxr supports this
+ let p = Promise::new(&self.global());
+ p.resolve_native(&());
+ p
+ }
}
pub trait LayoutCanvasWebGLRenderingContextHelpers {
diff --git a/components/script/dom/webidls/XRSession.webidl b/components/script/dom/webidls/XRSession.webidl
index 35a04833856..39e689a8dc2 100644
--- a/components/script/dom/webidls/XRSession.webidl
+++ b/components/script/dom/webidls/XRSession.webidl
@@ -44,4 +44,3 @@ interface XRSession : EventTarget {
// attribute EventHandler onselectstart;
// attribute EventHandler onselectend;
};
-
diff --git a/components/script/dom/webidls/XRWebGLLayer.webidl b/components/script/dom/webidls/XRWebGLLayer.webidl
index 163bfd24568..0df8296be34 100644
--- a/components/script/dom/webidls/XRWebGLLayer.webidl
+++ b/components/script/dom/webidls/XRWebGLLayer.webidl
@@ -41,3 +41,7 @@ interface XRWebGLLayer : XRLayer {
// // Static Methods
// static double getNativeFramebufferScaleFactor(XRSession session);
};
+
+partial interface WebGLRenderingContext {
+ [Pref="dom.webxr.enabled"] Promise<void> makeXRCompatible();
+};