aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webidls/XRWebGLBinding.webidl
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/webidls/XRWebGLBinding.webidl')
-rw-r--r--components/script/dom/webidls/XRWebGLBinding.webidl83
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"
+};