- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
import { CanvasExtract } from '@pixi/canvas-extract';
import { CanvasRenderer } from '@pixi/canvas-renderer';
import { Sprite } from '@pixi/sprite';
import { skipHello } from '@pixi/utils';
import { Texture, RenderTexture, extensions } from '@pixi/core';
import { CanvasSpriteRenderer } from '@pixi/canvas-sprite';
import '@pixi/canvas-display';
skipHello();
describe('CanvasExtract', () =>
{
beforeAll(() => extensions.add(CanvasExtract, CanvasSpriteRenderer));
afterAll(() => extensions.remove(CanvasExtract, CanvasSpriteRenderer));
it('should access extract on renderer', () =>
{
const renderer = new CanvasRenderer();
expect(renderer.plugins.extract).toBeInstanceOf(CanvasExtract);
renderer.destroy();
});
it('should extract an sprite', () =>
{
const renderer = new CanvasRenderer();
const sprite = new Sprite(Texture.WHITE);
const extract = renderer.plugins.extract as CanvasExtract;
expect(extract.canvas(sprite)).toBeInstanceOf(HTMLCanvasElement);
expect(extract.base64(sprite)).toBeString();
expect(extract.pixels(sprite)).toBeInstanceOf(Uint8ClampedArray);
expect(extract.image(sprite)).toBeInstanceOf(HTMLImageElement);
renderer.destroy();
sprite.destroy();
});
it('should extract with no arguments', () =>
{
const renderer = new CanvasRenderer();
const extract = renderer.plugins.extract as CanvasExtract;
expect(extract.canvas()).toBeInstanceOf(HTMLCanvasElement);
expect(extract.base64()).toBeString();
expect(extract.pixels()).toBeInstanceOf(Uint8ClampedArray);
expect(extract.image()).toBeInstanceOf(HTMLImageElement);
renderer.destroy();
});
it('should extract a render texture', () =>
{
const renderer = new CanvasRenderer();
const extract = renderer.plugins.extract as CanvasExtract;
const renderTexture = RenderTexture.create({ width: 10, height: 10 });
const sprite = new Sprite(Texture.WHITE);
renderer.render(sprite, { renderTexture });
expect(extract.canvas(renderTexture)).toBeInstanceOf(HTMLCanvasElement);
expect(extract.base64(renderTexture)).toBeString();
expect(extract.pixels(renderTexture)).toBeInstanceOf(Uint8ClampedArray);
expect(extract.image(renderTexture)).toBeInstanceOf(HTMLImageElement);
renderer.destroy();
renderTexture.destroy();
sprite.destroy();
});
});