🤖 Merge PR #46341 canvaskit-wasm: add MakeCanvas() and SkHtmlCanvas by @ashlanderr

This commit is contained in:
Alexander Shilov 2020-08-18 09:52:59 +03:00 committed by GitHub
parent a69a9b8ad7
commit 90512aae5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -48,6 +48,7 @@ import {
SkPicture,
SkFont,
SkShapedText,
SkHtmlCanvas,
} from "canvaskit-wasm";
CanvasKitInit().ready().then((canvasKit: CanvasKit) => {
@ -357,4 +358,9 @@ CanvasKitInit().ready().then((canvasKit: CanvasKit) => {
const pixels: Uint8Array = canvas.readPixels(0, 0, 100, 100, alphaType, colorType, 4);
canvas.writePixels(pixels, 100, 100, 0, 0, alphaType, colorType);
const htmlCanvas: SkHtmlCanvas = canvasKit.MakeCanvas(800, 600);
const dataUrl: string = htmlCanvas.toDataURL();
const context2d: CanvasRenderingContext2D = htmlCanvas.getContext("2d");
htmlCanvas.dispose();
});

View File

@ -13,6 +13,7 @@ export interface CanvasKit {
Color(r: number, g: number, b: number, a: number): SkColor;
MakeAnimation(lottieJson: any): SkAnimation;
MakeAnimatedImageFromEncoded(buffer: ArrayBuffer): SkAnimatedImage;
MakeCanvas(width: number, height: number): SkHtmlCanvas;
MakeCanvasSurface(canvas: HTMLCanvasElement): SkSurface;
MakeLinearGradientShader(start: SkPoint, end: SkPoint, colors: SkColor[], positions: number[], mode: number, localMatrix: SkMatrix | null, flags: number): SkShader;
MakeRadialGradientShader(center: SkPoint, radius: number, colors: SkColor[], positions: number[], mode: number, localMatrix: SkMatrix | null, flags: number): SkShader;
@ -274,6 +275,12 @@ export interface SkObject<T extends SkObject<T>> {
isDeleted(): boolean;
}
export interface SkHtmlCanvas {
dispose(): void;
getContext(type: "2d"): CanvasRenderingContext2D;
toDataURL(): string;
}
export interface SkShader extends SkObject<SkShader> {}
export interface SkPathEffect extends SkObject<SkPathEffect> {}