blob: 88d86da78620d3d1899e530de6fb4b1dce361753 [file] [log] [blame]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Generated from Web IDL definitions.
import 'dart:js_interop';
import 'dom.dart';
import 'geometry.dart';
import 'html.dart';
import 'raw_camera_access.dart';
import 'webgl1.dart';
import 'webxr.dart';
import 'webxr_depth_sensing.dart';
import 'webxr_lighting_estimation.dart';
typedef XRLayerLayout = String;
typedef XRLayerQuality = String;
typedef XRTextureType = String;
@JS('XRCompositionLayer')
@staticInterop
class XRCompositionLayer implements XRLayer {}
extension XRCompositionLayerExtension on XRCompositionLayer {
external void destroy();
external XRLayerLayout get layout;
external set blendTextureSourceAlpha(bool value);
external bool get blendTextureSourceAlpha;
external set forceMonoPresentation(bool value);
external bool get forceMonoPresentation;
external set opacity(num value);
external num get opacity;
external int get mipLevels;
external set quality(XRLayerQuality value);
external XRLayerQuality get quality;
external bool get needsRedraw;
}
@JS('XRProjectionLayer')
@staticInterop
class XRProjectionLayer implements XRCompositionLayer {}
extension XRProjectionLayerExtension on XRProjectionLayer {
external int get textureWidth;
external int get textureHeight;
external int get textureArrayLength;
external bool get ignoreDepthValues;
external set fixedFoveation(num? value);
external num? get fixedFoveation;
external set deltaPose(XRRigidTransform? value);
external XRRigidTransform? get deltaPose;
}
@JS('XRQuadLayer')
@staticInterop
class XRQuadLayer implements XRCompositionLayer {}
extension XRQuadLayerExtension on XRQuadLayer {
external set space(XRSpace value);
external XRSpace get space;
external set transform(XRRigidTransform value);
external XRRigidTransform get transform;
external set width(num value);
external num get width;
external set height(num value);
external num get height;
external set onredraw(EventHandler value);
external EventHandler get onredraw;
}
@JS('XRCylinderLayer')
@staticInterop
class XRCylinderLayer implements XRCompositionLayer {}
extension XRCylinderLayerExtension on XRCylinderLayer {
external set space(XRSpace value);
external XRSpace get space;
external set transform(XRRigidTransform value);
external XRRigidTransform get transform;
external set radius(num value);
external num get radius;
external set centralAngle(num value);
external num get centralAngle;
external set aspectRatio(num value);
external num get aspectRatio;
external set onredraw(EventHandler value);
external EventHandler get onredraw;
}
@JS('XREquirectLayer')
@staticInterop
class XREquirectLayer implements XRCompositionLayer {}
extension XREquirectLayerExtension on XREquirectLayer {
external set space(XRSpace value);
external XRSpace get space;
external set transform(XRRigidTransform value);
external XRRigidTransform get transform;
external set radius(num value);
external num get radius;
external set centralHorizontalAngle(num value);
external num get centralHorizontalAngle;
external set upperVerticalAngle(num value);
external num get upperVerticalAngle;
external set lowerVerticalAngle(num value);
external num get lowerVerticalAngle;
external set onredraw(EventHandler value);
external EventHandler get onredraw;
}
@JS('XRCubeLayer')
@staticInterop
class XRCubeLayer implements XRCompositionLayer {}
extension XRCubeLayerExtension on XRCubeLayer {
external set space(XRSpace value);
external XRSpace get space;
external set orientation(DOMPointReadOnly value);
external DOMPointReadOnly get orientation;
external set onredraw(EventHandler value);
external EventHandler get onredraw;
}
@JS('XRSubImage')
@staticInterop
class XRSubImage {}
extension XRSubImageExtension on XRSubImage {
external XRViewport get viewport;
}
@JS('XRWebGLSubImage')
@staticInterop
class XRWebGLSubImage implements XRSubImage {}
extension XRWebGLSubImageExtension on XRWebGLSubImage {
external WebGLTexture get colorTexture;
external WebGLTexture? get depthStencilTexture;
external WebGLTexture? get motionVectorTexture;
external int? get imageIndex;
external int get colorTextureWidth;
external int get colorTextureHeight;
external int? get depthStencilTextureWidth;
external int? get depthStencilTextureHeight;
external int? get motionVectorTextureWidth;
external int? get motionVectorTextureHeight;
}
@JS()
@staticInterop
@anonymous
class XRProjectionLayerInit {
external factory XRProjectionLayerInit({
XRTextureType textureType,
GLenum colorFormat,
GLenum depthFormat,
num scaleFactor,
bool clearOnAccess,
});
}
extension XRProjectionLayerInitExtension on XRProjectionLayerInit {
external set textureType(XRTextureType value);
external XRTextureType get textureType;
external set colorFormat(GLenum value);
external GLenum get colorFormat;
external set depthFormat(GLenum value);
external GLenum get depthFormat;
external set scaleFactor(num value);
external num get scaleFactor;
external set clearOnAccess(bool value);
external bool get clearOnAccess;
}
@JS()
@staticInterop
@anonymous
class XRLayerInit {
external factory XRLayerInit({
required XRSpace space,
GLenum colorFormat,
GLenum? depthFormat,
int mipLevels,
required int viewPixelWidth,
required int viewPixelHeight,
XRLayerLayout layout,
bool isStatic,
bool clearOnAccess,
});
}
extension XRLayerInitExtension on XRLayerInit {
external set space(XRSpace value);
external XRSpace get space;
external set colorFormat(GLenum value);
external GLenum get colorFormat;
external set depthFormat(GLenum? value);
external GLenum? get depthFormat;
external set mipLevels(int value);
external int get mipLevels;
external set viewPixelWidth(int value);
external int get viewPixelWidth;
external set viewPixelHeight(int value);
external int get viewPixelHeight;
external set layout(XRLayerLayout value);
external XRLayerLayout get layout;
external set isStatic(bool value);
external bool get isStatic;
external set clearOnAccess(bool value);
external bool get clearOnAccess;
}
@JS()
@staticInterop
@anonymous
class XRQuadLayerInit implements XRLayerInit {
external factory XRQuadLayerInit({
XRTextureType textureType,
XRRigidTransform? transform,
num width,
num height,
});
}
extension XRQuadLayerInitExtension on XRQuadLayerInit {
external set textureType(XRTextureType value);
external XRTextureType get textureType;
external set transform(XRRigidTransform? value);
external XRRigidTransform? get transform;
external set width(num value);
external num get width;
external set height(num value);
external num get height;
}
@JS()
@staticInterop
@anonymous
class XRCylinderLayerInit implements XRLayerInit {
external factory XRCylinderLayerInit({
XRTextureType textureType,
XRRigidTransform? transform,
num radius,
num centralAngle,
num aspectRatio,
});
}
extension XRCylinderLayerInitExtension on XRCylinderLayerInit {
external set textureType(XRTextureType value);
external XRTextureType get textureType;
external set transform(XRRigidTransform? value);
external XRRigidTransform? get transform;
external set radius(num value);
external num get radius;
external set centralAngle(num value);
external num get centralAngle;
external set aspectRatio(num value);
external num get aspectRatio;
}
@JS()
@staticInterop
@anonymous
class XREquirectLayerInit implements XRLayerInit {
external factory XREquirectLayerInit({
XRTextureType textureType,
XRRigidTransform? transform,
num radius,
num centralHorizontalAngle,
num upperVerticalAngle,
num lowerVerticalAngle,
});
}
extension XREquirectLayerInitExtension on XREquirectLayerInit {
external set textureType(XRTextureType value);
external XRTextureType get textureType;
external set transform(XRRigidTransform? value);
external XRRigidTransform? get transform;
external set radius(num value);
external num get radius;
external set centralHorizontalAngle(num value);
external num get centralHorizontalAngle;
external set upperVerticalAngle(num value);
external num get upperVerticalAngle;
external set lowerVerticalAngle(num value);
external num get lowerVerticalAngle;
}
@JS()
@staticInterop
@anonymous
class XRCubeLayerInit implements XRLayerInit {
external factory XRCubeLayerInit({DOMPointReadOnly? orientation});
}
extension XRCubeLayerInitExtension on XRCubeLayerInit {
external set orientation(DOMPointReadOnly? value);
external DOMPointReadOnly? get orientation;
}
@JS('XRWebGLBinding')
@staticInterop
class XRWebGLBinding {
external factory XRWebGLBinding(
XRSession session,
XRWebGLRenderingContext context,
);
}
extension XRWebGLBindingExtension on XRWebGLBinding {
external WebGLTexture? getCameraImage(XRCamera camera);
external XRWebGLDepthInformation? getDepthInformation(XRView view);
external WebGLTexture? getReflectionCubeMap(XRLightProbe lightProbe);
external XRProjectionLayer createProjectionLayer(
[XRProjectionLayerInit init]);
external XRQuadLayer createQuadLayer([XRQuadLayerInit init]);
external XRCylinderLayer createCylinderLayer([XRCylinderLayerInit init]);
external XREquirectLayer createEquirectLayer([XREquirectLayerInit init]);
external XRCubeLayer createCubeLayer([XRCubeLayerInit init]);
external XRWebGLSubImage getSubImage(
XRCompositionLayer layer,
XRFrame frame, [
XREye eye,
]);
external XRWebGLSubImage getViewSubImage(
XRProjectionLayer layer,
XRView view,
);
external num get nativeProjectionScaleFactor;
external bool get usesDepthValues;
}
@JS()
@staticInterop
@anonymous
class XRMediaLayerInit {
external factory XRMediaLayerInit({
required XRSpace space,
XRLayerLayout layout,
bool invertStereo,
});
}
extension XRMediaLayerInitExtension on XRMediaLayerInit {
external set space(XRSpace value);
external XRSpace get space;
external set layout(XRLayerLayout value);
external XRLayerLayout get layout;
external set invertStereo(bool value);
external bool get invertStereo;
}
@JS()
@staticInterop
@anonymous
class XRMediaQuadLayerInit implements XRMediaLayerInit {
external factory XRMediaQuadLayerInit({
XRRigidTransform? transform,
num? width,
num? height,
});
}
extension XRMediaQuadLayerInitExtension on XRMediaQuadLayerInit {
external set transform(XRRigidTransform? value);
external XRRigidTransform? get transform;
external set width(num? value);
external num? get width;
external set height(num? value);
external num? get height;
}
@JS()
@staticInterop
@anonymous
class XRMediaCylinderLayerInit implements XRMediaLayerInit {
external factory XRMediaCylinderLayerInit({
XRRigidTransform? transform,
num radius,
num centralAngle,
num? aspectRatio,
});
}
extension XRMediaCylinderLayerInitExtension on XRMediaCylinderLayerInit {
external set transform(XRRigidTransform? value);
external XRRigidTransform? get transform;
external set radius(num value);
external num get radius;
external set centralAngle(num value);
external num get centralAngle;
external set aspectRatio(num? value);
external num? get aspectRatio;
}
@JS()
@staticInterop
@anonymous
class XRMediaEquirectLayerInit implements XRMediaLayerInit {
external factory XRMediaEquirectLayerInit({
XRRigidTransform? transform,
num radius,
num centralHorizontalAngle,
num upperVerticalAngle,
num lowerVerticalAngle,
});
}
extension XRMediaEquirectLayerInitExtension on XRMediaEquirectLayerInit {
external set transform(XRRigidTransform? value);
external XRRigidTransform? get transform;
external set radius(num value);
external num get radius;
external set centralHorizontalAngle(num value);
external num get centralHorizontalAngle;
external set upperVerticalAngle(num value);
external num get upperVerticalAngle;
external set lowerVerticalAngle(num value);
external num get lowerVerticalAngle;
}
@JS('XRMediaBinding')
@staticInterop
class XRMediaBinding {
external factory XRMediaBinding(XRSession session);
}
extension XRMediaBindingExtension on XRMediaBinding {
external XRQuadLayer createQuadLayer(
HTMLVideoElement video, [
XRMediaQuadLayerInit init,
]);
external XRCylinderLayer createCylinderLayer(
HTMLVideoElement video, [
XRMediaCylinderLayerInit init,
]);
external XREquirectLayer createEquirectLayer(
HTMLVideoElement video, [
XRMediaEquirectLayerInit init,
]);
}
@JS('XRLayerEvent')
@staticInterop
class XRLayerEvent implements Event {
external factory XRLayerEvent(
String type,
XRLayerEventInit eventInitDict,
);
}
extension XRLayerEventExtension on XRLayerEvent {
external XRLayer get layer;
}
@JS()
@staticInterop
@anonymous
class XRLayerEventInit implements EventInit {
external factory XRLayerEventInit({required XRLayer layer});
}
extension XRLayerEventInitExtension on XRLayerEventInit {
external set layer(XRLayer value);
external XRLayer get layer;
}