ladybird/Libraries/LibWeb/HTML/OffscreenCanvas.idl
Totto16 2ad3ce5d37 LibWeb: Implement basics for OffscreenCanvas
This implements the basic interface, classes and functions for
OffscreenCanvas. Many are still stubbed out and have many FIXMEs in
them, but it is a basic skeleton.
2025-06-30 09:46:21 -06:00

32 lines
1.3 KiB
Text

#import <DOM/EventTarget.idl>
#import <HTML/OffscreenCanvasRenderingContext2D.idl>
#import <HTML/Canvas/OffscreenCanvasBase.idl>
// FIXME: This should be in OffscreenCanvasBase.idl but then it is not exported
// https://html.spec.whatwg.org/multipage/canvas.html#imageencodeoptions
dictionary ImageEncodeOptions {
DOMString type = "image/png";
unrestricted double quality;
};
// FIXME: This should be in OffscreenCanvasBase.idl but then it is not exported
// https://html.spec.whatwg.org/multipage/canvas.html#offscreenrenderingcontextid
enum OffscreenRenderingContextId { "2d", "bitmaprenderer", "webgl", "webgl2", "webgpu" };
// https://html.spec.whatwg.org/multipage/canvas.html#offscreencanvas
[Exposed=(Window,Worker), Transferable]
interface OffscreenCanvas : EventTarget {
constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height);
attribute unsigned long long width;
attribute unsigned long long height;
OffscreenRenderingContext? getContext(OffscreenRenderingContextId contextId, optional any options = null);
ImageBitmap transferToImageBitmap();
Promise<Blob> convertToBlob(optional ImageEncodeOptions options = {});
attribute EventHandler oncontextlost;
attribute EventHandler oncontextrestored;
};