2022-11-19 03:43:11 +01:00
|
|
|
/*
|
|
|
|
* WebXR Device API
|
|
|
|
*/
|
|
|
|
|
2020-09-27 00:15:21 +02:00
|
|
|
/**
|
|
|
|
* @type {XR}
|
|
|
|
*/
|
|
|
|
Navigator.prototype.xr;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRSessionInit() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<string>}
|
|
|
|
*/
|
|
|
|
XRSessionInit.prototype.requiredFeatures;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<string>}
|
|
|
|
*/
|
|
|
|
XRSessionInit.prototype.optionalFeatures;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XR() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (Event)}
|
|
|
|
*/
|
|
|
|
XR.prototype.ondevicechanged;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {string} mode
|
|
|
|
*
|
|
|
|
* @return {!Promise<boolean>}
|
|
|
|
*/
|
2021-02-21 17:10:26 +01:00
|
|
|
XR.prototype.isSessionSupported = function(mode) {};
|
2020-09-27 00:15:21 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {string} mode
|
|
|
|
* @param {XRSessionInit} options
|
|
|
|
*
|
|
|
|
* @return {!Promise<XRSession>}
|
|
|
|
*/
|
2021-02-21 17:10:26 +01:00
|
|
|
XR.prototype.requestSession = function(mode, options) {};
|
2020-09-27 00:15:21 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRSession() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRenderState}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.renderState;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<XRInputSource>}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.inputSources;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.visibilityState;
|
|
|
|
|
2023-02-09 04:02:13 +01:00
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.frameRate;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?Float32Array}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.supportedFrameRates;
|
|
|
|
|
2024-06-25 15:47:54 +02:00
|
|
|
/**
|
|
|
|
* @type {Array<string>}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.enabledFeatures;
|
|
|
|
|
2020-09-27 00:15:21 +02:00
|
|
|
/**
|
|
|
|
* @type {?function (Event)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onend;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourcesChangeEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.oninputsourceschange;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourceEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onselectstart;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourceEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onselect;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourceEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onselectend;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourceEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onsqueezestart;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourceEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onsqueeze;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRInputSourceEvent)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onsqueezeend;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (Event)}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.onvisibilitychange;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRRenderStateInit} state
|
|
|
|
* @return {void}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.updateRenderState = function (state) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRFrameRequestCallback} callback
|
|
|
|
* @return {number}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.requestAnimationFrame = function (callback) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {number} handle
|
|
|
|
* @return {void}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.cancelAnimationFrame = function (handle) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return {Promise<void>}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.end = function () {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {string} referenceSpaceType
|
|
|
|
* @return {Promise<XRReferenceSpace>}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.requestReferenceSpace = function (referenceSpaceType) {};
|
|
|
|
|
2023-02-09 04:02:13 +01:00
|
|
|
/**
|
|
|
|
* @param {number} rate
|
|
|
|
* @return {Promise<undefined>}
|
|
|
|
*/
|
|
|
|
XRSession.prototype.updateTargetFrameRate = function (rate) {};
|
|
|
|
|
2020-09-27 00:15:21 +02:00
|
|
|
/**
|
|
|
|
* @typedef {function(number, XRFrame): undefined}
|
|
|
|
*/
|
|
|
|
var XRFrameRequestCallback;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRRenderStateInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRRenderStateInit.prototype.depthNear;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRRenderStateInit.prototype.depthFar;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRRenderStateInit.prototype.inlineVerticalFieldOfView;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?XRWebGLLayer}
|
|
|
|
*/
|
|
|
|
XRRenderStateInit.prototype.baseLayer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRRenderState() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRRenderState.prototype.depthNear;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRRenderState.prototype.depthFar;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRRenderState.prototype.inlineVerticalFieldOfView;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?XRWebGLLayer}
|
|
|
|
*/
|
|
|
|
XRRenderState.prototype.baseLayer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRFrame() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSession}
|
|
|
|
*/
|
|
|
|
XRFrame.prototype.session;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRReferenceSpace} referenceSpace
|
|
|
|
* @return {?XRViewerPose}
|
|
|
|
*/
|
|
|
|
XRFrame.prototype.getViewerPose = function (referenceSpace) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRSpace} space
|
|
|
|
* @param {XRSpace} baseSpace
|
|
|
|
* @return {XRPose}
|
|
|
|
*/
|
|
|
|
XRFrame.prototype.getPose = function (space, baseSpace) {};
|
|
|
|
|
2024-02-15 21:58:38 +01:00
|
|
|
/**
|
|
|
|
* @param {Array<XRSpace>} spaces
|
|
|
|
* @param {XRSpace} baseSpace
|
|
|
|
* @param {Float32Array} transforms
|
|
|
|
* @return {boolean}
|
|
|
|
*/
|
|
|
|
XRFrame.prototype.fillPoses = function (spaces, baseSpace, transforms) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {Array<XRJointSpace>} jointSpaces
|
|
|
|
* @param {Float32Array} radii
|
|
|
|
* @return {boolean}
|
|
|
|
*/
|
|
|
|
XRFrame.prototype.fillJointRadii = function (jointSpaces, radii) {};
|
|
|
|
|
2020-09-27 00:15:21 +02:00
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRReferenceSpace() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<DOMPointReadOnly>}
|
|
|
|
*/
|
|
|
|
XRReferenceSpace.prototype.boundsGeometry;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRRigidTransform} originOffset
|
|
|
|
* @return {XRReferenceSpace}
|
|
|
|
*/
|
|
|
|
XRReferenceSpace.prototype.getOffsetReferenceSpace = function(originOffset) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (Event)}
|
|
|
|
*/
|
|
|
|
XRReferenceSpace.prototype.onreset;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRRigidTransform() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {DOMPointReadOnly}
|
|
|
|
*/
|
|
|
|
XRRigidTransform.prototype.position;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {DOMPointReadOnly}
|
|
|
|
*/
|
|
|
|
XRRigidTransform.prototype.orientation;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Float32Array}
|
|
|
|
*/
|
|
|
|
XRRigidTransform.prototype.matrix;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRRigidTransform.prototype.inverse;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRView() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRView.prototype.eye;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Float32Array}
|
|
|
|
*/
|
|
|
|
XRView.prototype.projectionMatrix;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRView.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRViewerPose() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<XRView>}
|
|
|
|
*/
|
|
|
|
XRViewerPose.prototype.views;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRViewport() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRViewport.prototype.x;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRViewport.prototype.y;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRViewport.prototype.width;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRViewport.prototype.height;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRWebGLLayerInit() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.antialias;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.depth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.stencil;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.alpha;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.ignoreDepthValues;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.ignoreDepthValues;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLLayerInit.prototype.framebufferScaleFactor;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*
|
|
|
|
* @param {XRSession} session
|
|
|
|
* @param {WebGLRenderContext|WebGL2RenderingContext} ctx
|
|
|
|
* @param {?XRWebGLLayerInit} options
|
|
|
|
*/
|
|
|
|
function XRWebGLLayer(session, ctx, options) {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.antialias;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.ignoreDepthValues;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.framebufferWidth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.framebufferHeight;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {WebGLFramebuffer}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.framebuffer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRView} view
|
|
|
|
* @return {?XRViewport}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.getViewport = function(view) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRSession} session
|
|
|
|
* @return {number}
|
|
|
|
*/
|
|
|
|
XRWebGLLayer.prototype.getNativeFramebufferScaleFactor = function (session) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function WebGLRenderingContextBase() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return {Promise<void>}
|
|
|
|
*/
|
|
|
|
WebGLRenderingContextBase.prototype.makeXRCompatible = function () {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRInputSourcesChangeEvent() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<XRInputSource>}
|
|
|
|
*/
|
|
|
|
XRInputSourcesChangeEvent.prototype.added;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<XRInputSource>}
|
|
|
|
*/
|
|
|
|
XRInputSourcesChangeEvent.prototype.removed;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRInputSourceEvent() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRFrame}
|
|
|
|
*/
|
|
|
|
XRInputSourceEvent.prototype.frame;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRInputSource}
|
|
|
|
*/
|
|
|
|
XRInputSourceEvent.prototype.inputSource;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRInputSource() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Gamepad}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.gamepad;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.gripSpace;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.handedness;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.profiles;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.targetRayMode;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.targetRaySpace;
|
|
|
|
|
2024-02-15 21:58:38 +01:00
|
|
|
/**
|
|
|
|
* @type {?XRHand}
|
|
|
|
*/
|
|
|
|
XRInputSource.prototype.hand;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRHand() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Note: In fact, XRHand acts like a Map<string, XRJointSpace>, but I don't know
|
|
|
|
* how to represent that here. So, we're just giving the one method we call.
|
|
|
|
*
|
|
|
|
* @return {Array<XRJointSpace>}
|
|
|
|
*/
|
|
|
|
XRHand.prototype.values = function () {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRHand.prototype.size;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {string} key
|
|
|
|
* @return {XRJointSpace}
|
|
|
|
*/
|
|
|
|
XRHand.prototype.get = function (key) {};
|
|
|
|
|
2020-09-27 00:15:21 +02:00
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRSpace() {};
|
|
|
|
|
2024-02-15 21:58:38 +01:00
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
* @extends {XRSpace}
|
|
|
|
*/
|
|
|
|
function XRJointSpace() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRJointSpace.prototype.jointName;
|
|
|
|
|
2020-09-27 00:15:21 +02:00
|
|
|
/**
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function XRPose() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRPose.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRPose.prototype.emulatedPosition;
|
2022-11-19 03:43:11 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
* WebXR Layers API Level 1
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRLayer
|
|
|
|
*/
|
|
|
|
function XRLayer() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRLayerEventInit
|
|
|
|
*/
|
|
|
|
function XRLayerEventInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRLayer}
|
|
|
|
*/
|
|
|
|
XRLayerEventInit.prototype.layer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRLayerEvent
|
|
|
|
*
|
|
|
|
* @param {string} type
|
|
|
|
* @param {XRLayerEventInit} init
|
|
|
|
*/
|
|
|
|
function XRLayerEvent(type, init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRLayer}
|
|
|
|
*/
|
|
|
|
XRLayerEvent.prototype.layer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRCompositionLayer
|
|
|
|
* @extends {XRLayer}
|
|
|
|
*/
|
|
|
|
function XRCompositionLayer() {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.layout;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.blendTextureAberrationCorrection;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?boolean}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.chromaticAberrationCorrection;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.forceMonoPresentation;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.opacity;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.mipLevels;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.needsRedraw;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return {void}
|
|
|
|
*/
|
|
|
|
XRCompositionLayer.prototype.destroy = function () {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRProjectionLayer
|
|
|
|
* @extends {XRCompositionLayer}
|
|
|
|
*/
|
|
|
|
function XRProjectionLayer() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayer.prototype.textureWidth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayer.prototype.textureHeight;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayer.prototype.textureArrayLength;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRProjectionLayer.prototype.ignoreDepthValues;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayer.prototype.fixedFoveation;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRProjectionLayer.prototype.deltaPose;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRQuadLayer
|
|
|
|
* @extends {XRCompositionLayer}
|
|
|
|
*/
|
|
|
|
function XRQuadLayer() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRQuadLayer.prototype.space;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRQuadLayer.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRQuadLayer.prototype.width;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRQuadLayer.prototype.height;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRLayerEvent)}
|
|
|
|
*/
|
|
|
|
XRQuadLayer.prototype.onredraw;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRCylinderLayer
|
|
|
|
* @extends {XRCompositionLayer}
|
|
|
|
*/
|
|
|
|
function XRCylinderLayer() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRCylinderLayer.prototype.space;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRCylinderLayer.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCylinderLayer.prototype.radius;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCylinderLayer.prototype.centralAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCylinderLayer.prototype.aspectRatio;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRLayerEvent)}
|
|
|
|
*/
|
|
|
|
XRCylinderLayer.prototype.onredraw;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XREquirectLayer
|
|
|
|
* @extends {XRCompositionLayer}
|
|
|
|
*/
|
|
|
|
function XREquirectLayer() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.space;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.radius;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.centralHorizontalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.upperVerticalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.lowerVerticalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRLayerEvent)}
|
|
|
|
*/
|
|
|
|
XREquirectLayer.prototype.onredraw;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRCubeLayer
|
|
|
|
* @extends {XRCompositionLayer}
|
|
|
|
*/
|
|
|
|
function XRCubeLayer() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRCubeLayer.prototype.space;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {DOMPointReadOnly}
|
|
|
|
*/
|
|
|
|
XRCubeLayer.prototype.orientation;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?function (XRLayerEvent)}
|
|
|
|
*/
|
|
|
|
XRCubeLayer.prototype.onredraw;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRSubImage
|
|
|
|
*/
|
|
|
|
function XRSubImage() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRViewport}
|
|
|
|
*/
|
|
|
|
XRSubImage.prototype.viewport;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRWebGLSubImage
|
|
|
|
* @extends {XRSubImage}
|
|
|
|
*/
|
|
|
|
function XRWebGLSubImage () {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {WebGLTexture}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.colorTexture;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?WebGLTexture}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.depthStencilTexture;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?WebGLTexture}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.motionVectorTexture;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.imageIndex;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.colorTextureWidth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.colorTextureHeight;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.depthStencilTextureWidth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.depthStencilTextureHeight;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
|
|
|
|
XRWebGLSubImage.prototype.motionVectorTextureWidth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRWebGLSubImage.prototype.motionVectorTextureHeight;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRProjectionLayerInit
|
|
|
|
*/
|
|
|
|
function XRProjectionLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRProjectionLayerInit.prototype.textureType;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayerInit.prototype.colorFormat;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayerInit.prototype.depthFormat;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRProjectionLayerInit.prototype.scaleFactor;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRLayerInit
|
|
|
|
*/
|
|
|
|
function XRLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.space;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.colorFormat;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.depthFormat;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.mipLevels;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.viewPixelWidth;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.viewPixelHeight;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.layout;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRLayerInit.prototype.isStatic;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRQuadLayerInit
|
|
|
|
* @extends {XRLayerInit}
|
|
|
|
*/
|
|
|
|
function XRQuadLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRQuadLayerInit.prototype.textureType;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRQuadLayerInit.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRQuadLayerInit.prototype.width;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRQuadLayerInit.prototype.height;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRCylinderLayerInit
|
|
|
|
* @extends {XRLayerInit}
|
|
|
|
*/
|
|
|
|
function XRCylinderLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRCylinderLayerInit.prototype.textureType;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRCylinderLayerInit.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCylinderLayerInit.prototype.radius;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCylinderLayerInit.prototype.centralAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRCylinderLayerInit.prototype.aspectRatio;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XREquirectLayerInit
|
|
|
|
* @extends {XRLayerInit}
|
|
|
|
*/
|
|
|
|
function XREquirectLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XREquirectLayerInit.prototype.textureType;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XREquirectLayerInit.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayerInit.prototype.radius;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayerInit.prototype.centralHorizontalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayerInit.prototype.upperVerticalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XREquirectLayerInit.prototype.lowerVerticalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRCubeLayerInit
|
|
|
|
* @extends {XRLayerInit}
|
|
|
|
*/
|
|
|
|
function XRCubeLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {DOMPointReadOnly}
|
|
|
|
*/
|
|
|
|
XRCubeLayerInit.prototype.orientation;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRWebGLBinding
|
|
|
|
*
|
|
|
|
* @param {XRSession} session
|
|
|
|
* @param {WebGLRenderContext|WebGL2RenderingContext} context
|
|
|
|
*/
|
|
|
|
function XRWebGLBinding(session, context) {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.nativeProjectionScaleFactor;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.usesDepthValues;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRProjectionLayerInit} init
|
|
|
|
* @return {XRProjectionLayer}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.createProjectionLayer = function (init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRQuadLayerInit} init
|
|
|
|
* @return {XRQuadLayer}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.createQuadLayer = function (init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRCylinderLayerInit} init
|
|
|
|
* @return {XRCylinderLayer}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.createCylinderLayer = function (init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XREquirectLayerInit} init
|
|
|
|
* @return {XREquirectLayer}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.createEquirectLayer = function (init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRCubeLayerInit} init
|
|
|
|
* @return {XRCubeLayer}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.createCubeLayer = function (init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRCompositionLayer} layer
|
|
|
|
* @param {XRFrame} frame
|
|
|
|
* @param {string} eye
|
|
|
|
* @return {XRWebGLSubImage}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.getSubImage = function (layer, frame, eye) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {XRProjectionLayer} layer
|
|
|
|
* @param {XRView} view
|
|
|
|
* @return {XRWebGLSubImage}
|
|
|
|
*/
|
|
|
|
XRWebGLBinding.prototype.getViewSubImage = function (layer, view) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRMediaLayerInit
|
|
|
|
*/
|
|
|
|
function XRMediaLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRSpace}
|
|
|
|
*/
|
|
|
|
XRMediaLayerInit.prototype.space;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {string}
|
|
|
|
*/
|
|
|
|
XRMediaLayerInit.prototype.layout;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {boolean}
|
|
|
|
*/
|
|
|
|
XRMediaLayerInit.prototype.invertStereo;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRMediaQuadLayerInit
|
|
|
|
* @extends {XRMediaLayerInit}
|
|
|
|
*/
|
|
|
|
function XRMediaQuadLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRMediaQuadLayerInit.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaQuadLayerInit.prototype.width;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaQuadLayerInit.prototype.height;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRMediaCylinderLayerInit
|
|
|
|
* @extends {XRMediaLayerInit}
|
|
|
|
*/
|
|
|
|
function XRMediaCylinderLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRMediaCylinderLayerInit.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaCylinderLayerInit.prototype.radius;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaCylinderLayerInit.prototype.centralAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {?number}
|
|
|
|
*/
|
|
|
|
XRMediaCylinderLayerInit.prototype.aspectRatio;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRMediaEquirectLayerInit
|
|
|
|
* @extends {XRMediaLayerInit}
|
|
|
|
*/
|
|
|
|
function XRMediaEquirectLayerInit() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {XRRigidTransform}
|
|
|
|
*/
|
|
|
|
XRMediaEquirectLayerInit.prototype.transform;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaEquirectLayerInit.prototype.radius;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaEquirectLayerInit.prototype.centralHorizontalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaEquirectLayerInit.prototype.upperVerticalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {number}
|
|
|
|
*/
|
|
|
|
XRMediaEquirectLayerInit.prototype.lowerVerticalAngle;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @constructor XRMediaBinding
|
|
|
|
*
|
|
|
|
* @param {XRSession} session
|
|
|
|
*/
|
|
|
|
function XRMediaBinding(session) {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {HTMLVideoElement} video
|
|
|
|
* @param {XRMediaQuadLayerInit} init
|
|
|
|
* @return {XRQuadLayer}
|
|
|
|
*/
|
|
|
|
XRMediaBinding.prototype.createQuadLayer = function(video, init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {HTMLVideoElement} video
|
|
|
|
* @param {XRMediaCylinderLayerInit} init
|
|
|
|
* @return {XRCylinderLayer}
|
|
|
|
*/
|
|
|
|
XRMediaBinding.prototype.createCylinderLayer = function(video, init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {HTMLVideoElement} video
|
|
|
|
* @param {XRMediaEquirectLayerInit} init
|
|
|
|
* @return {XREquirectLayer}
|
|
|
|
*/
|
|
|
|
XRMediaBinding.prototype.createEquirectLayer = function(video, init) {};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @type {Array<XRLayer>}
|
|
|
|
*/
|
|
|
|
XRRenderState.prototype.layers;
|