From d255dc9f7b9468aa243a43c91c8567c71afe8c60 Mon Sep 17 00:00:00 2001 From: Alan Jeffrey Date: Tue, 4 Aug 2020 15:10:01 -0500 Subject: Add a dummy implementation of all the XR Layer types --- components/script/dom/xrwebglbinding.rs | 88 +++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) (limited to 'components/script/dom/xrwebglbinding.rs') 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> { + // https://github.com/servo/servo/issues/27468 + Err(Error::NotSupported) + } + + /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createquadlayer + fn CreateQuadLayer( + &self, + _: XRTextureType, + _: &Option, + ) -> Fallible> { + // https://github.com/servo/servo/issues/27493 + Err(Error::NotSupported) + } + + /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createcylinderlayer + fn CreateCylinderLayer( + &self, + _: XRTextureType, + _: &Option, + ) -> Fallible> { + // https://github.com/servo/servo/issues/27493 + Err(Error::NotSupported) + } + + /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createequirectlayer + fn CreateEquirectLayer( + &self, + _: XRTextureType, + _: &Option, + ) -> Fallible> { + // https://github.com/servo/servo/issues/27493 + Err(Error::NotSupported) + } + + /// https://immersive-web.github.io/layers/#dom-xrwebglbinding-createcubelayer + fn CreateCubeLayer(&self, _: &Option) -> Fallible> { + // 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> { + // 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> { + // https://github.com/servo/servo/issues/27468 + Err(Error::NotSupported) + } +} -- cgit v1.2.3