1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 12:37:45 +00:00

LibWeb: Implement CanvasRenderingContext2D.createPattern()

This is a first pass at implementing CRC2D.createPattern() and the
associated CanvasPattern object. This implementation only works for a
few of the required image sources [like CRC2D.drawImage()], and does
not yet support transforms. Other than that it supports everything
else (which is mainly the various repeat modes).
This commit is contained in:
MacDue 2023-02-02 20:47:46 +00:00 committed by Andreas Kling
parent 0c313c586b
commit f74e2da875
8 changed files with 229 additions and 8 deletions

View file

@ -1,13 +1,15 @@
#import <HTML/CanvasGradient.idl>
#import <HTML/CanvasPattern.idl>
#import <HTML/HTMLCanvasElement.idl>
#import <HTML/HTMLImageElement.idl>
// https://html.spec.whatwg.org/multipage/canvas.html#canvasfillstrokestyles
interface mixin CanvasFillStrokeStyles {
// FIXME: Should be `(DOMString or CanvasGradient or CanvasPattern)`
attribute (DOMString or CanvasGradient) strokeStyle;
// FIXME: Should be `(DOMString or CanvasGradient or CanvasPattern)`
attribute (DOMString or CanvasGradient) fillStyle;
attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle;
attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle;
CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
CanvasGradient createConicGradient(double startAngle, double x, double y);
// FIXME: CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetition);
// FIXME: 'image' should be a CanvasImageSource
CanvasPattern? createPattern((HTMLImageElement or HTMLCanvasElement) image, [LegacyNullToEmptyString] DOMString repetition);
};