aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrwebglbinding.rs
diff options
context:
space:
mode:
authorAlan Jeffrey <ajeffrey@mozilla.com>2020-08-04 15:10:01 -0500
committerAlan Jeffrey <ajeffrey@mozilla.com>2020-08-04 15:10:01 -0500
commitd255dc9f7b9468aa243a43c91c8567c71afe8c60 (patch)
tree790ffd49f34a8480fc2837259c27e754fd08edc5 /components/script/dom/xrwebglbinding.rs
parent754019f6bc4cce22177abb2e6ab2ee6bfb10427c (diff)
downloadservo-d255dc9f7b9468aa243a43c91c8567c71afe8c60.tar.gz
servo-d255dc9f7b9468aa243a43c91c8567c71afe8c60.zip
Add a dummy implementation of all the XR Layer types
Diffstat (limited to 'components/script/dom/xrwebglbinding.rs')
-rw-r--r--components/script/dom/xrwebglbinding.rs88
1 files changed, 88 insertions, 0 deletions
diff --git a/components/script/dom/xrwebglbinding.rs b/components/script/dom/xrwebglbinding.rs
index a0c4846074b..64ea31e0bce 100644
--- a/components/script/dom/xrwebglbinding.rs
+++ b/components/script/dom/xrwebglbinding.rs
@@ -2,14 +2,33 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+use crate::dom::bindings::codegen::Bindings::XRViewBinding::XREye;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XRCubeLayerInit;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XRCylinderLayerInit;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XREquirectLayerInit;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XRProjectionLayerInit;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XRQuadLayerInit;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XRTextureType;
+use crate::dom::bindings::codegen::Bindings::XRWebGLBindingBinding::XRWebGLBindingBinding::XRWebGLBindingMethods;
use crate::dom::bindings::codegen::UnionTypes::WebGLRenderingContextOrWebGL2RenderingContext;
+use crate::dom::bindings::error::Error;
+use crate::dom::bindings::error::Fallible;
use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::reflector::Reflector;
use crate::dom::bindings::root::Dom;
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
use crate::dom::window::Window;
+use crate::dom::xrcompositionlayer::XRCompositionLayer;
+use crate::dom::xrcubelayer::XRCubeLayer;
+use crate::dom::xrcylinderlayer::XRCylinderLayer;
+use crate::dom::xrequirectlayer::XREquirectLayer;
+use crate::dom::xrframe::XRFrame;
+use crate::dom::xrprojectionlayer::XRProjectionLayer;
+use crate::dom::xrquadlayer::XRQuadLayer;
use crate::dom::xrsession::XRSession;
+use crate::dom::xrview::XRView;
+use crate::dom::xrwebglsubimage::XRWebGLSubImage;
use dom_struct::dom_struct;
#[dom_struct]
@@ -54,3 +73,72 @@ impl XRWebGLBinding {
XRWebGLBinding::new(global, session, &context)
}
}
+
+impl XRWebGLBindingMethods for XRWebGLBinding {
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createprojectionlayer
+ fn CreateProjectionLayer(
+ &self,
+ _: XRTextureType,
+ _: &XRProjectionLayerInit,
+ ) -> Fallible<DomRoot<XRProjectionLayer>> {
+ // https://github.com/servo/servo/issues/27468
+ Err(Error::NotSupported)
+ }
+
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createquadlayer
+ fn CreateQuadLayer(
+ &self,
+ _: XRTextureType,
+ _: &Option<XRQuadLayerInit>,
+ ) -> Fallible<DomRoot<XRQuadLayer>> {
+ // https://github.com/servo/servo/issues/27493
+ Err(Error::NotSupported)
+ }
+
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createcylinderlayer
+ fn CreateCylinderLayer(
+ &self,
+ _: XRTextureType,
+ _: &Option<XRCylinderLayerInit>,
+ ) -> Fallible<DomRoot<XRCylinderLayer>> {
+ // https://github.com/servo/servo/issues/27493
+ Err(Error::NotSupported)
+ }
+
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createequirectlayer
+ fn CreateEquirectLayer(
+ &self,
+ _: XRTextureType,
+ _: &Option<XREquirectLayerInit>,
+ ) -> Fallible<DomRoot<XREquirectLayer>> {
+ // https://github.com/servo/servo/issues/27493
+ Err(Error::NotSupported)
+ }
+
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createcubelayer
+ fn CreateCubeLayer(&self, _: &Option<XRCubeLayerInit>) -> Fallible<DomRoot<XRCubeLayer>> {
+ // https://github.com/servo/servo/issues/27493
+ Err(Error::NotSupported)
+ }
+
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-getsubimage
+ fn GetSubImage(
+ &self,
+ _: &XRCompositionLayer,
+ _: &XRFrame,
+ _: XREye,
+ ) -> Fallible<DomRoot<XRWebGLSubImage>> {
+ // https://github.com/servo/servo/issues/27468
+ Err(Error::NotSupported)
+ }
+
+ /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-getviewsubimage
+ fn GetViewSubImage(
+ &self,
+ _: &XRProjectionLayer,
+ _: &XRView,
+ ) -> Fallible<DomRoot<XRWebGLSubImage>> {
+ // https://github.com/servo/servo/issues/27468
+ Err(Error::NotSupported)
+ }
+}