servo/components/script/dom/webidls/XRWebGLBinding.webidl
2020-04-13 13:57:58 -05:00

44 lines
1.5 KiB
Text

/* 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;
// XRProjectionLayer createProjectionLayer(GLenum textureTarget, optional XRProjectionLayerInit init = {});
// XRQuadLayer createQuadLayer(GLenum textureTarget, XRLayerInit init);
// XRCylinderLayer createCylinderLayer(GLenum textureTarget, XRLayerInit init);
// XREquirectLayer createEquirectLayer(GLenum textureTarget, XRLayerInit init);
// XRCubeLayer createCubeLayer(XRLayerInit init);
XRWebGLSubImage? getSubImage(XRLayer layer, XRFrame frame); // for mono layers
XRWebGLSubImage? getViewSubImage(XRLayer layer, XRView view); // for stereo layers
};
dictionary XRProjectionLayerInit {
boolean depth = true;
boolean stencil = false;
boolean alpha = true;
double scaleFactor = 1.0;
};
dictionary XRLayerInit {
required unsigned long pixelWidth;
required unsigned long pixelHeight;
XRLayerLayout layout = "mono";
boolean depth = false; // This is a change from typical WebGL initialization, but feels appropriate.
boolean stencil = false;
boolean alpha = true;
};
enum XRLayerLayout {
"mono",
"stereo",
"stereo-left-right",
"stereo-top-bottom"
};