blob: 29585029edf6f5c6996a0f1884a22ee4bc75a327 [file] [log] [blame]
// Copyright (c) 2025, 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.
//
// API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web).
// Attributions and copyright licensing by Mozilla Contributors is licensed
// under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/.
// Generated from Web IDL definitions.
// ignore_for_file: constant_identifier_names, unintended_html_in_doc_comment
@JS()
library;
import 'dart:js_interop';
import 'geometry.dart';
import 'html.dart';
/// The **`PaintRenderingContext2D`** interface of the
/// [CSS Painting API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Painting_API)
/// is the API's rendering context for drawing to the bitmap. It implements a
/// subset of the [CanvasRenderingContext2D] API, with the following exceptions:
///
/// - It doesn't implement the
/// [`CanvasImageData` pixel manipulation](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#pixel_manipulation),
/// [`CanvasUserInterface` focus](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawFocusIfNeeded),
/// [`CanvasText` text drawing](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D),
/// or
/// [`CanvasTextDrawingStyles` text style](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#text_styles)
/// interface methods.
/// - The output bitmap is the size of the object it is rendering to.
/// - The value `currentColor`, when used as a color, is treated as opaque
/// black.
///
/// The interface is only available in [PaintWorkletGlobalScope].
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/PaintRenderingContext2D).
extension type PaintRenderingContext2D._(JSObject _) implements JSObject {
external void save();
external void restore();
external void scale(
num x,
num y,
);
external void rotate(num angle);
external void translate(
num x,
num y,
);
external void transform(
num a,
num b,
num c,
num d,
num e,
num f,
);
external DOMMatrix getTransform();
external void setTransform([
JSAny aOrTransform,
num b,
num c,
num d,
num e,
num f,
]);
external void resetTransform();
external CanvasGradient createLinearGradient(
num x0,
num y0,
num x1,
num y1,
);
external CanvasGradient createRadialGradient(
num x0,
num y0,
num r0,
num x1,
num y1,
num r1,
);
external CanvasPattern? createPattern(
CanvasImageSource image,
String repetition,
);
external void clearRect(
num x,
num y,
num w,
num h,
);
external void fillRect(
num x,
num y,
num w,
num h,
);
external void strokeRect(
num x,
num y,
num w,
num h,
);
external void beginPath();
external void fill([
JSAny fillRuleOrPath,
CanvasFillRule fillRule,
]);
external void stroke([Path2D path]);
external void clip([
JSAny fillRuleOrPath,
CanvasFillRule fillRule,
]);
external bool isPointInPath(
JSAny pathOrX,
num xOrY, [
JSAny fillRuleOrY,
CanvasFillRule fillRule,
]);
external bool isPointInStroke(
JSAny pathOrX,
num xOrY, [
num y,
]);
external void drawImage(
CanvasImageSource image,
num dxOrSx,
num dyOrSy, [
num dwOrSw,
num dhOrSh,
num dx,
num dy,
num dw,
num dh,
]);
external void setLineDash(JSArray<JSNumber> segments);
external JSArray<JSNumber> getLineDash();
external double get globalAlpha;
external set globalAlpha(num value);
external String get globalCompositeOperation;
external set globalCompositeOperation(String value);
external bool get imageSmoothingEnabled;
external set imageSmoothingEnabled(bool value);
external ImageSmoothingQuality get imageSmoothingQuality;
external set imageSmoothingQuality(ImageSmoothingQuality value);
external JSAny get strokeStyle;
external set strokeStyle(JSAny value);
external JSAny get fillStyle;
external set fillStyle(JSAny value);
external double get shadowOffsetX;
external set shadowOffsetX(num value);
external double get shadowOffsetY;
external set shadowOffsetY(num value);
external double get shadowBlur;
external set shadowBlur(num value);
external String get shadowColor;
external set shadowColor(String value);
external double get lineWidth;
external set lineWidth(num value);
external CanvasLineCap get lineCap;
external set lineCap(CanvasLineCap value);
external CanvasLineJoin get lineJoin;
external set lineJoin(CanvasLineJoin value);
external double get miterLimit;
external set miterLimit(num value);
external double get lineDashOffset;
external set lineDashOffset(num value);
}
/// The **`PaintSize`** interface of the
/// [CSS Painting API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Painting_API)
/// represents the size of the output bitmap that the author should draw.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/PaintSize).
extension type PaintSize._(JSObject _) implements JSObject {
/// The **`width`** read-only property of the [PaintSize] interface returns
/// the width of the output bitmap that the author should draw.
external double get width;
/// The **`height`** read-only property of the [PaintSize] interface returns
/// the height of the output bitmap that the author should draw.
external double get height;
}