{"version":3,"file":"CanvasRenderTarget.mjs","sources":["../../src/media/CanvasRenderTarget.ts"],"sourcesContent":["import { settings } from 'pixijs/settings';\n\nimport type { ICanvas, ICanvasRenderingContext2D } from 'pixijs/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;;;;"}