@pixi/utils
Version:
Collection of utilities used by PixiJS
1 lines • 5.74 kB
Source Map (JSON)
{"version":3,"file":"CanvasRenderTarget.mjs","sources":["../../src/media/CanvasRenderTarget.ts"],"sourcesContent":["import { settings } from '@pixi/settings';\n\nimport type { ICanvas, ICanvasRenderingContext2D } from '@pixi/settings';\n\n/**\n * Creates a Canvas element of the given size to be used as a target for rendering to.\n * @class\n * @memberof PIXI.utils\n */\nexport class CanvasRenderTarget\n{\n protected _canvas: ICanvas | null;\n\n protected _context: ICanvasRenderingContext2D | null;\n\n /**\n * The resolution / device pixel ratio of the canvas\n * @default 1\n */\n public resolution: number;\n\n /**\n * @param width - the width for the newly created canvas\n * @param height - the height for the newly created canvas\n * @param {number} [resolution=PIXI.settings.RESOLUTION] - The resolution / device pixel ratio of the canvas\n */\n constructor(width: number, height: number, resolution?: number)\n {\n this._canvas = settings.ADAPTER.createCanvas();\n\n this._context = this._canvas.getContext('2d');\n\n this.resolution = resolution || settings.RESOLUTION;\n\n this.resize(width, height);\n }\n\n /**\n * Clears the canvas that was created by the CanvasRenderTarget class.\n * @private\n */\n clear(): void\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n this._context.setTransform(1, 0, 0, 1, 0, 0);\n this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);\n }\n\n /**\n * Resizes the canvas to the specified width and height.\n * @param desiredWidth - the desired width of the canvas\n * @param desiredHeight - the desired height of the canvas\n */\n resize(desiredWidth: number, desiredHeight: number): void\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n this._canvas.width = Math.round(desiredWidth * this.resolution);\n this._canvas.height = Math.round(desiredHeight * this.resolution);\n }\n\n /** Destroys this canvas. */\n destroy(): void\n {\n this._context = null;\n this._canvas = null;\n }\n\n /**\n * The width of the canvas buffer in pixels.\n * @member {number}\n */\n get width(): number\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n return this._canvas.width;\n }\n\n set width(val: number)\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n this._canvas.width = Math.round(val);\n }\n\n /**\n * The height of the canvas buffer in pixels.\n * @member {number}\n */\n get height(): number\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n return this._canvas.height;\n }\n\n set height(val: number)\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n this._canvas.height = Math.round(val);\n }\n\n /** The Canvas object that belongs to this CanvasRenderTarget. */\n public get canvas(): ICanvas\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n return this._canvas;\n }\n\n /** A CanvasRenderingContext2D object representing a two-dimensional rendering context. */\n public get context(): ICanvasRenderingContext2D\n {\n // #if _DEBUG\n this._checkDestroyed();\n // #endif\n\n return this._context;\n }\n\n // #if _DEBUG\n private _checkDestroyed(): asserts this is this & { _canvas: ICanvas; _context: ICanvasRenderingContext2D }\n {\n if (this._canvas === null)\n {\n throw new TypeError('The CanvasRenderTarget has already been destroyed');\n }\n }\n // #endif\n}\n"],"names":[],"mappings":";;AASO,MAAM,kBACb,CAAA;AAAA,EAgBI,WAAA,CAAY,KAAe,EAAA,MAAA,EAAgB,UAC3C,EAAA;AACI,IAAK,IAAA,CAAA,OAAA,GAAU,QAAS,CAAA,OAAA,CAAQ,YAAa,EAAA,CAAA;AAE7C,IAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAK,OAAQ,CAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAE5C,IAAK,IAAA,CAAA,UAAA,GAAa,cAAc,QAAS,CAAA,UAAA,CAAA;AAEzC,IAAK,IAAA,CAAA,MAAA,CAAO,OAAO,MAAM,CAAA,CAAA;AAAA,GAC7B;AAAA,EAMA,KACA,GAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,IAAA,CAAK,SAAS,YAAa,CAAA,CAAA,EAAG,GAAG,CAAG,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAC3C,IAAK,IAAA,CAAA,QAAA,CAAS,UAAU,CAAG,EAAA,CAAA,EAAG,KAAK,OAAQ,CAAA,KAAA,EAAO,IAAK,CAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAAA,GACzE;AAAA,EAOA,MAAA,CAAO,cAAsB,aAC7B,EAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,IAAA,CAAK,QAAQ,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,KAAK,UAAU,CAAA,CAAA;AAC9D,IAAA,IAAA,CAAK,QAAQ,MAAS,GAAA,IAAA,CAAK,KAAM,CAAA,aAAA,GAAgB,KAAK,UAAU,CAAA,CAAA;AAAA,GACpE;AAAA,EAGA,OACA,GAAA;AACI,IAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAA;AAChB,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AAAA,GACnB;AAAA,EAMA,IAAI,KACJ,GAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,OAAO,KAAK,OAAQ,CAAA,KAAA,CAAA;AAAA,GACxB;AAAA,EAEA,IAAI,MAAM,GACV,EAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA,GAAQ,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAAA,GACvC;AAAA,EAMA,IAAI,MACJ,GAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,OAAO,KAAK,OAAQ,CAAA,MAAA,CAAA;AAAA,GACxB;AAAA,EAEA,IAAI,OAAO,GACX,EAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,IAAA,CAAK,OAAQ,CAAA,MAAA,GAAS,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAAA,GACxC;AAAA,EAGA,IAAW,MACX,GAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,OAAO,IAAK,CAAA,OAAA,CAAA;AAAA,GAChB;AAAA,EAGA,IAAW,OACX,GAAA;AAEI,IAAA,IAAA,CAAK,eAAgB,EAAA,CAAA;AAGrB,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA;AAAA,GAChB;AAAA,EAGA,eACA,GAAA;AACI,IAAI,IAAA,IAAA,CAAK,YAAY,IACrB,EAAA;AACI,MAAM,MAAA,IAAI,UAAU,mDAAmD,CAAA,CAAA;AAAA,KAC3E;AAAA,GACJ;AAEJ;;;;"}