diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2020-08-04 15:10:01 -0500 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2020-08-04 15:10:01 -0500 |
commit | d255dc9f7b9468aa243a43c91c8567c71afe8c60 (patch) | |
tree | 790ffd49f34a8480fc2837259c27e754fd08edc5 /components/script/dom/xrwebglbinding.rs | |
parent | 754019f6bc4cce22177abb2e6ab2ee6bfb10427c (diff) | |
download | servo-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.rs | 88 |
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) + } +} |