Files
tubestation/testing/web-platform/tests/interfaces/webxr.idl
Brandon Jones 8e035ef831 Bug 1444005 [wpt PR 9913] - Moved XR getViewport, removed XRDevice.external, a=testonly
Automatic update from web-platform-testsMoved XR getViewport, removed XRDevice.external

Brings Chrome's implementation inline with the latest spec changes.

Bug: 819744
Change-Id: I716bab14bdbcc1c452a4dd447adbe28ffef05f98
Reviewed-on: https://chromium-review.googlesource.com/953259
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541739}

wpt-commits: 332d4483e11caeda304f3a3a7ede74f317fe6644
wpt-pr: 9913
wpt-commits: 332d4483e11caeda304f3a3a7ede74f317fe6644
wpt-pr: 9913
2018-03-31 22:32:54 +01:00

177 lines
4.8 KiB
Plaintext

[SecureContext, Exposed=Window] interface XR : EventTarget {
// Methods
Promise<XRDevice?> requestDevice();
// Events
attribute EventHandler ondevicechange;
};
[SecureContext]
partial interface Navigator {
[SameObject] readonly attribute XR xr;
};
[SecureContext, Exposed=Window] interface XRDevice : EventTarget {
// Methods
Promise<void> supportsSession(optional XRSessionCreationOptions options);
Promise<XRSession> requestSession(optional XRSessionCreationOptions options);
};
dictionary XRSessionCreationOptions {
boolean exclusive = false;
XRPresentationContext outputContext;
};
[SecureContext, Exposed=Window] interface XRSession : EventTarget {
// Attributes
readonly attribute XRDevice device;
readonly attribute boolean exclusive;
readonly attribute XRPresentationContext outputContext;
attribute double depthNear;
attribute double depthFar;
attribute XRLayer baseLayer;
// Methods
Promise<XRFrameOfReference> requestFrameOfReference(XRFrameOfReferenceType type, optional XRFrameOfReferenceOptions options);
long requestAnimationFrame(XRFrameRequestCallback callback);
void cancelAnimationFrame(long handle);
Promise<void> end();
// Events
attribute EventHandler onblur;
attribute EventHandler onfocus;
attribute EventHandler onresetpose;
attribute EventHandler onend;
};
callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRPresentationFrame frame);
[SecureContext, Exposed=Window] interface XRPresentationFrame {
readonly attribute FrozenArray<XRView> views;
XRDevicePose? getDevicePose(XRCoordinateSystem coordinateSystem);
};
[SecureContext, Exposed=Window] interface XRCoordinateSystem : EventTarget {
Float32Array? getTransformTo(XRCoordinateSystem other);
};
enum XRFrameOfReferenceType {
"headModel",
"eyeLevel",
"stage",
};
dictionary XRFrameOfReferenceOptions {
boolean disableStageEmulation = false;
double stageEmulationHeight = 0.0;
};
[SecureContext, Exposed=Window] interface XRFrameOfReference : XRCoordinateSystem {
readonly attribute XRStageBounds? bounds;
readonly attribute double emulatedHeight;
attribute EventHandler onboundschange;
};
[SecureContext, Exposed=Window] interface XRStageBounds {
readonly attribute FrozenArray<XRStageBoundsPoint> geometry;
};
[SecureContext, Exposed=Window] interface XRStageBoundsPoint {
readonly attribute double x;
readonly attribute double z;
};
enum XREye {
"left",
"right"
};
[SecureContext, Exposed=Window] interface XRView {
readonly attribute XREye eye;
readonly attribute Float32Array projectionMatrix;
};
[SecureContext, Exposed=Window] interface XRViewport {
readonly attribute long x;
readonly attribute long y;
readonly attribute long width;
readonly attribute long height;
};
[SecureContext, Exposed=Window] interface XRDevicePose {
readonly attribute Float32Array poseModelMatrix;
Float32Array getViewMatrix(XRView view);
};
[SecureContext, Exposed=Window] interface XRLayer {};
typedef (WebGLRenderingContext or
WebGL2RenderingContext) XRWebGLRenderingContext;
dictionary XRWebGLLayerInit {
boolean antialias = true;
boolean depth = false;
boolean stencil = false;
boolean alpha = true;
boolean multiview = false;
double framebufferScaleFactor;
};
[SecureContext, Exposed=Window, Constructor(XRSession session,
XRWebGLRenderingContext context,
optional XRWebGLLayerInit layerInit)]
interface XRWebGLLayer : XRLayer {
// Attributes
readonly attribute XRWebGLRenderingContext context;
readonly attribute boolean antialias;
readonly attribute boolean depth;
readonly attribute boolean stencil;
readonly attribute boolean alpha;
readonly attribute boolean multiview;
readonly attribute WebGLFramebuffer framebuffer;
readonly attribute unsigned long framebufferWidth;
readonly attribute unsigned long framebufferHeight;
// Methods
XRViewport? getViewport(XRView view);
void requestViewportScaling(double viewportScaleFactor);
};
partial dictionary WebGLContextAttributes {
XRDevice compatibleXRDevice = null;
};
partial interface mixin WebGLRenderingContextBase {
Promise<void> setCompatibleXRDevice(XRDevice device);
};
[SecureContext, Exposed=Window] interface XRPresentationContext {
readonly attribute HTMLCanvasElement canvas;
};
[SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)]
interface XRSessionEvent : Event {
readonly attribute XRSession session;
};
dictionary XRSessionEventInit : EventInit {
required XRSession session;
};
[SecureContext, Exposed=Window, Constructor(DOMString type, XRCoordinateSystemEventInit eventInitDict)]
interface XRCoordinateSystemEvent : Event {
readonly attribute XRCoordinateSystem coordinateSystem;
};
dictionary XRCoordinateSystemEventInit : EventInit {
required XRCoordinateSystem coordinateSystem;
};