feat: add @idraw/kernal context2d CanvasDrawImage

This commit is contained in:
chenshenhai 2021-09-18 16:28:31 +08:00
parent 49691f81d1
commit 0861c811a6
2 changed files with 64 additions and 18 deletions

View file

@ -18,7 +18,38 @@ describe('@idraw/kernal: lib/context-2d', () => {
expect(ctx2d.globalCompositeOperation).toStrictEqual(globalCompositeOperation);
expect(ctx2d.$getAllAttrs()).toStrictEqual({ globalCompositeOperation });
expect(ctx2d.$getAllRecords()).toStrictEqual([ { name: 'globalCompositeOperation', type: 'attr', args: [ globalCompositeOperation ] } ]);
expect(1).toStrictEqual(1);
});
test('Context2d.drawImage', async () => {
const ctx2d = new Context2d();
const img = new Image();
const dx = 11;
const dy = 12;
const dw = 51;
const dh = 52;
const sx = 61;
const sy = 62;
const sw = 101
const sh = 102;
ctx2d.drawImage(img, dx, dy);
ctx2d.drawImage(img, dx, dy, dw, dh);
ctx2d.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh);
expect(ctx2d.$getAllRecords()).toStrictEqual([{
name: 'drawImage',
type: 'method',
args: [img, dx, dy]
},
{
name: 'drawImage',
type: 'method',
args: [img, dx, dy, dw, dh]
},
{
name: 'drawImage',
type: 'method',
args: [img, sx, sy, sw, sh, dx, dy, dw, dh]
}]);
});
})

View file

@ -1,22 +1,22 @@
// import { TypeContext, TypeBoardSizeOptions } from '@idraw/types';
// interface CanvasRenderingContext2D extends
// CanvasCompositing,
// CanvasDrawImage,
// CanvasDrawPath,
// CanvasFillStrokeStyles,
// CanvasFilters,
// CanvasImageData,
// CanvasImageSmoothing,
// CanvasPath,
// CanvasPathDrawingStyles,
// CanvasRect,
// CanvasShadowStyles,
// CanvasState,
// CanvasText,
// CanvasTextDrawingStyles,
// CanvasTransform,
// CanvasUserInterface {};
interface CanvasRenderingContext2D extends
// CanvasCompositing, // OK
// CanvasDrawImage, // OK
CanvasDrawPath,
CanvasFillStrokeStyles,
CanvasFilters,
CanvasImageData,
CanvasImageSmoothing,
CanvasPath,
CanvasPathDrawingStyles,
CanvasRect,
CanvasShadowStyles,
CanvasState,
CanvasText,
CanvasTextDrawingStyles,
CanvasTransform,
CanvasUserInterface {};
type ContextRecord = {
@ -67,6 +67,21 @@ class Context2d {
}
drawImage(
image: CanvasImageSource, sx: number, sy: number,
sw?: number, sh?: number, dx?: number, dy?: number, dw?: number, dh?: number
): void{
const args = Array.from(arguments);
this._records.push({
name: 'drawImage',
type: 'method',
args: args,
});
}
// drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void {
// }
$getAllRecords(): ContextRecord[] {
return this._records;