import { BaseTexture } from '@pixi/core'; import { GuilloteneAllocator } from './GuilloteneAllocator'; import { TextureAllocator } from './TextureAllocator'; import { TextureSlab } from './TextureSlab'; /** * This allocator issues texture backed by a canvas. You can draw on to that canvas to soruce * each texture. * * @public */ export class CanvasTextureAllocator extends TextureAllocator { /** * Creates a texture slab backed by a canvas. */ protected createSlab(): TextureSlab { const canvas = document.createElement('canvas'); canvas.width = this.slabWidth; canvas.height = this.slabHeight; return { managedArea: new GuilloteneAllocator(this.slabWidth, this.slabHeight), managedTextures: [], slab: new BaseTexture(canvas, { width: this.slabWidth, height: this.slabHeight }) }; } }