diff options
Diffstat (limited to 'components/script/dom/webidls/XRWebGLBinding.webidl')
-rw-r--r-- | components/script/dom/webidls/XRWebGLBinding.webidl | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/components/script/dom/webidls/XRWebGLBinding.webidl b/components/script/dom/webidls/XRWebGLBinding.webidl new file mode 100644 index 00000000000..5823423ef86 --- /dev/null +++ b/components/script/dom/webidls/XRWebGLBinding.webidl @@ -0,0 +1,83 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +// https://immersive-web.github.io/layers/#XRWebGLBindingtype +[SecureContext, Exposed=Window, Pref="dom.webxr.layers.enabled"] +interface XRWebGLBinding { + constructor(XRSession session, XRWebGLRenderingContext context); + +// readonly attribute double nativeProjectionScaleFactor; + + [Throws] XRProjectionLayer createProjectionLayer(XRTextureType textureType, + optional XRProjectionLayerInit init = {}); + [Throws] XRQuadLayer createQuadLayer(XRTextureType textureType, + optional XRQuadLayerInit init); + [Throws] XRCylinderLayer createCylinderLayer(XRTextureType textureType, + optional XRCylinderLayerInit init); + [Throws] XREquirectLayer createEquirectLayer(XRTextureType textureType, + optional XREquirectLayerInit init); + [Throws] XRCubeLayer createCubeLayer(optional XRCubeLayerInit init); + + [Throws] XRWebGLSubImage getSubImage(XRCompositionLayer layer, XRFrame frame, optional XREye eye = "none"); + [Throws] XRWebGLSubImage getViewSubImage(XRProjectionLayer layer, XRView view); +}; + +dictionary XRProjectionLayerInit { + boolean depth = true; + boolean stencil = false; + boolean alpha = true; + double scaleFactor = 1.0; +}; + +dictionary XRQuadLayerInit : XRLayerInit { + XRRigidTransform? transform; + float width = 1.0; + float height = 1.0; + boolean isStatic = false; +}; + +dictionary XRCylinderLayerInit : XRLayerInit { + XRRigidTransform? transform; + float radius = 2.0; + float centralAngle = 0.78539; + float aspectRatio = 2.0; + boolean isStatic = false; +}; + +dictionary XREquirectLayerInit : XRLayerInit { + XRRigidTransform? transform; + float radius = 0; + float centralHorizontalAngle = 6.28318; + float upperVerticalAngle = 1.570795; + float lowerVerticalAngle = -1.570795; + boolean isStatic = false; +}; + +dictionary XRCubeLayerInit : XRLayerInit { + DOMPointReadOnly? orientation; + boolean isStatic = false; +}; + +dictionary XRLayerInit { + required XRSpace space; + required unsigned long viewPixelWidth; + required unsigned long viewPixelHeight; + XRLayerLayout layout = "mono"; + boolean depth = false; + boolean stencil = false; + boolean alpha = true; +}; + +enum XRTextureType { + "texture", + "texture-array" +}; + +enum XRLayerLayout { + "default", + "mono", + "stereo", + "stereo-left-right", + "stereo-top-bottom" +}; |