Add a dummy implementation of all the XR Layer types

This commit is contained in:
Alan Jeffrey 2020-08-04 15:10:01 -05:00
parent 754019f6bc
commit d255dc9f7b
18 changed files with 337 additions and 85 deletions

View file

@ -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)
}
}