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">
1 lines • 4.94 kB
Source Map (JSON)
{"version":3,"file":"CanvasTextureSystem.mjs","sources":["../../../../../src/rendering/renderers/canvas/texture/CanvasTextureSystem.ts"],"sourcesContent":["import { DOMAdapter } from '../../../../environment/adapter';\nimport { ExtensionType } from '../../../../extensions/Extensions';\nimport { canvasUtils } from '../utils/canvasUtils';\n\nimport type { ICanvas } from '../../../../environment/canvas/ICanvas';\nimport type { System } from '../../shared/system/System';\nimport type { CanvasGenerator, GetPixelsOutput } from '../../shared/texture/GenerateCanvas';\nimport type { TextureSource } from '../../shared/texture/sources/TextureSource';\nimport type { Texture } from '../../shared/texture/Texture';\nimport type { CanvasRenderer } from '../CanvasRenderer';\n\n/**\n * Texture helper system for CanvasRenderer.\n * @category rendering\n * @advanced\n */\nexport class CanvasTextureSystem implements System, CanvasGenerator\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.CanvasSystem,\n ],\n name: 'texture',\n } as const;\n\n /**\n * @param renderer - The owning CanvasRenderer.\n */\n constructor(renderer: CanvasRenderer)\n {\n void renderer;\n }\n\n /** Initializes the system (no-op for canvas). */\n public init(): void\n {\n // no-op\n }\n\n /**\n * Initializes a texture source (no-op for canvas).\n * @param _source - Texture source.\n */\n public initSource(_source: TextureSource): void\n {\n // no-op for canvas\n }\n\n /**\n * Creates a canvas containing the texture's frame.\n * @param texture - Texture to render.\n */\n public generateCanvas(texture: Texture): ICanvas\n {\n const canvas = DOMAdapter.get().createCanvas();\n const context = canvas.getContext('2d');\n const source = canvasUtils.getCanvasSource(texture);\n\n if (!source)\n {\n return canvas;\n }\n\n const frame = texture.frame;\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n\n const sx = frame.x * resolution;\n const sy = frame.y * resolution;\n const sw = frame.width * resolution;\n const sh = frame.height * resolution;\n\n canvas.width = Math.ceil(sw);\n canvas.height = Math.ceil(sh);\n\n context.drawImage(\n source,\n sx,\n sy,\n sw,\n sh,\n 0,\n 0,\n sw,\n sh\n );\n\n return canvas;\n }\n\n /**\n * Reads pixel data from a texture.\n * @param texture - Texture to read.\n */\n public getPixels(texture: Texture): GetPixelsOutput\n {\n const canvas = this.generateCanvas(texture);\n const context = canvas.getContext('2d', { willReadFrequently: true });\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n\n return {\n pixels: imageData.data,\n width: canvas.width,\n height: canvas.height,\n };\n }\n\n /** Destroys the system (no-op for canvas). */\n public destroy(): void\n {\n // no-op\n }\n}\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,mBAAA,CACb;AAAA;AAAA;AAAA;AAAA,EAYI,YAAY,QAAA,EACZ;AACI,IAAA,KAAK,QAAA;AAAA,EACT;AAAA;AAAA,EAGO,IAAA,GACP;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,WAAW,OAAA,EAClB;AAAA,EAEA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,eAAe,OAAA,EACtB;AACI,IAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAA,EAAI,CAAE,YAAA,EAAa;AAC7C,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AACtC,IAAA,MAAM,MAAA,GAAS,WAAA,CAAY,eAAA,CAAgB,OAAO,CAAA;AAElD,IAAA,IAAI,CAAC,MAAA,EACL;AACI,MAAA,OAAO,MAAA;AAAA,IACX;AAEA,IAAA,MAAM,QAAQ,OAAA,CAAQ,KAAA;AACtB,IAAA,MAAM,aAAa,OAAA,CAAQ,MAAA,CAAO,WAAA,IAAe,OAAA,CAAQ,OAAO,UAAA,IAAc,CAAA;AAE9E,IAAA,MAAM,EAAA,GAAK,MAAM,CAAA,GAAI,UAAA;AACrB,IAAA,MAAM,EAAA,GAAK,MAAM,CAAA,GAAI,UAAA;AACrB,IAAA,MAAM,EAAA,GAAK,MAAM,KAAA,GAAQ,UAAA;AACzB,IAAA,MAAM,EAAA,GAAK,MAAM,MAAA,GAAS,UAAA;AAE1B,IAAA,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AAC3B,IAAA,MAAA,CAAO,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AAE5B,IAAA,OAAA,CAAQ,SAAA;AAAA,MACJ,MAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,EAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MACA,EAAA;AAAA,MACA;AAAA,KACJ;AAEA,IAAA,OAAO,MAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,UAAU,OAAA,EACjB;AACI,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,cAAA,CAAe,OAAO,CAAA;AAC1C,IAAA,MAAM,UAAU,MAAA,CAAO,UAAA,CAAW,MAAM,EAAE,kBAAA,EAAoB,MAAM,CAAA;AACpE,IAAA,MAAM,SAAA,GAAY,QAAQ,YAAA,CAAa,CAAA,EAAG,GAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAExE,IAAA,OAAO;AAAA,MACH,QAAQ,SAAA,CAAU,IAAA;AAAA,MAClB,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,QAAQ,MAAA,CAAO;AAAA,KACnB;AAAA,EACJ;AAAA;AAAA,EAGO,OAAA,GACP;AAAA,EAEA;AACJ;AAAA;AAhGa,mBAAA,CAGK,SAAA,GAAY;AAAA,EACtB,IAAA,EAAM;AAAA,IACF,aAAA,CAAc;AAAA,GAClB;AAAA,EACA,IAAA,EAAM;AACV,CAAA;;;;"}