UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

62 lines (59 loc) 2.07 kB
import { DOMAdapter } from '../../../../../environment/adapter.mjs'; import { ExtensionType } from '../../../../../extensions/Extensions.mjs'; import { TextureSource } from './TextureSource.mjs'; "use strict"; class CanvasSource extends TextureSource { constructor(options) { if (!options.resource) { options.resource = DOMAdapter.get().createCanvas(); } if (!options.width) { options.width = options.resource.width; if (!options.autoDensity) { options.width /= options.resolution; } } if (!options.height) { options.height = options.resource.height; if (!options.autoDensity) { options.height /= options.resolution; } } super(options); this.uploadMethodId = "image"; this.autoDensity = options.autoDensity; this.resizeCanvas(); this.transparent = !!options.transparent; } resizeCanvas() { if (this.autoDensity && "style" in this.resource) { this.resource.style.width = `${this.width}px`; this.resource.style.height = `${this.height}px`; } if (this.resource.width !== this.pixelWidth || this.resource.height !== this.pixelHeight) { this.resource.width = this.pixelWidth; this.resource.height = this.pixelHeight; } } resize(width = this.width, height = this.height, resolution = this._resolution) { const didResize = super.resize(width, height, resolution); if (didResize) { this.resizeCanvas(); } return didResize; } static test(resource) { return globalThis.HTMLCanvasElement && resource instanceof HTMLCanvasElement || globalThis.OffscreenCanvas && resource instanceof OffscreenCanvas; } /** * Returns the 2D rendering context for the canvas. * Caches the context after creating it. * @returns The 2D rendering context of the canvas. */ get context2D() { return this._context2D || (this._context2D = this.resource.getContext("2d")); } } CanvasSource.extension = ExtensionType.TextureSource; export { CanvasSource }; //# sourceMappingURL=CanvasSource.mjs.map