{"version":3,"file":"loadNodeTexture.mjs","sources":["../../src/adapter/loadNodeTexture.ts"],"sourcesContent":["import canvasModule from 'canvas';\nimport { extensions, ExtensionType, settings, Texture, utils } from 'pixijs/core';\nimport { NodeCanvasElement } from './NodeCanvasElement';\n\nimport type { LoadAsset, LoaderParser } from 'pixijs/assets';\n\nconst { loadImage } = canvasModule;\nconst validImages = ['.jpg', '.png', '.jpeg', '.svg'];\n\n/** loads our textures into a node canvas */\nexport const loadNodeTexture = {\n    extension: ExtensionType.LoadParser,\n\n    test(url: string): boolean\n    {\n        return validImages.includes(utils.path.extname(url).toLowerCase());\n    },\n\n    async load(url: string, asset: LoadAsset): Promise<Texture>\n    {\n        const data = await settings.ADAPTER.fetch(url);\n        const image = await loadImage(Buffer.from(await data.arrayBuffer()));\n        const canvas = new NodeCanvasElement(image.width, image.height);\n        const ctx = canvas.getContext('2d');\n\n        ctx.drawImage(image, 0, 0);\n        const texture = Texture.from(canvas, {\n            resolution: utils.getResolutionOfUrl(url),\n            ...asset.data\n        });\n\n        return texture;\n    },\n\n    unload(texture: Texture): void\n    {\n        texture.destroy(true);\n    }\n} as LoaderParser<Texture>;\n\nextensions.add(loadNodeTexture);\n"],"names":[],"mappings":";;;;AAMA,MAAM,EAAE,SAAc,EAAA,GAAA,YAAA,CAAA;AACtB,MAAM,WAAc,GAAA,CAAC,MAAQ,EAAA,MAAA,EAAQ,SAAS,MAAM,CAAA,CAAA;AAG7C,MAAM,eAAkB,GAAA;AAAA,EAC3B,WAAW,aAAc,CAAA,UAAA;AAAA,EAEzB,KAAK,GACL,EAAA;AACI,IAAO,OAAA,WAAA,CAAY,SAAS,KAAM,CAAA,IAAA,CAAK,QAAQ,GAAG,CAAA,CAAE,aAAa,CAAA,CAAA;AAAA,GACrE;AAAA,EAEA,MAAM,IAAK,CAAA,GAAA,EAAa,KACxB,EAAA;AACI,IAAA,MAAM,IAAO,GAAA,MAAM,QAAS,CAAA,OAAA,CAAQ,MAAM,GAAG,CAAA,CAAA;AAC7C,IAAM,MAAA,KAAA,GAAQ,MAAM,SAAU,CAAA,MAAA,CAAO,KAAK,MAAM,IAAA,CAAK,WAAY,EAAC,CAAC,CAAA,CAAA;AACnE,IAAA,MAAM,SAAS,IAAI,iBAAA,CAAkB,KAAM,CAAA,KAAA,EAAO,MAAM,MAAM,CAAA,CAAA;AAC9D,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAElC,IAAI,GAAA,CAAA,SAAA,CAAU,KAAO,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACzB,IAAM,MAAA,OAAA,GAAU,OAAQ,CAAA,IAAA,CAAK,MAAQ,EAAA;AAAA,MACjC,UAAA,EAAY,KAAM,CAAA,kBAAA,CAAmB,GAAG,CAAA;AAAA,MACxC,GAAG,KAAM,CAAA,IAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAO,OAAA,OAAA,CAAA;AAAA,GACX;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,GACxB;AACJ,EAAA;AAEA,UAAA,CAAW,IAAI,eAAe,CAAA;;;;"}