mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Added first-cut implementation of XR layers
This commit is contained in:
parent
7ae11588dc
commit
fda8da0e9d
19 changed files with 585 additions and 15 deletions
44
components/script/dom/webidls/XRWebGLBinding.webidl
Normal file
44
components/script/dom/webidls/XRWebGLBinding.webidl
Normal file
|
@ -0,0 +1,44 @@
|
|||
/* 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"
|
||||
};
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue