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 • 3.22 kB
Source Map (JSON)
{"version":3,"file":"gpuUploadImageSource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.ts"],"sourcesContent":["import { DOMAdapter } from '../../../../../environment/adapter';\nimport { warn } from '../../../../../utils/logging/warn';\n\nimport type { TextureSource } from '../../../shared/texture/sources/TextureSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\n/** @internal */\nexport const gpuUploadImageResource = {\n\n type: 'image',\n\n upload(source: TextureSource, gpuTexture: GPUTexture, gpu: GPU, originZOverride = 0)\n {\n const resource = source.resource as ImageBitmap | HTMLCanvasElement | OffscreenCanvas | HTMLImageElement;\n\n if (!resource) return;\n\n // WebGPU does not support HTMLImageElement\n // so we need to convert it to a canvas\n if (globalThis.HTMLImageElement && resource instanceof HTMLImageElement)\n {\n const canvas = DOMAdapter.get().createCanvas(resource.width, resource.height);\n const context = canvas.getContext('2d');\n\n context.drawImage(resource, 0, 0, resource.width, resource.height);\n\n // replace with the canvas - for future uploads\n source.resource = canvas;\n\n // #if _DEBUG\n warn('ImageSource: Image element passed, converting to canvas and replacing resource.');\n // #endif\n }\n\n const width = Math.min(gpuTexture.width, source.resourceWidth || source.pixelWidth);\n const height = Math.min(gpuTexture.height, source.resourceHeight || source.pixelHeight);\n\n const premultipliedAlpha = source.alphaMode === 'premultiply-alpha-on-upload';\n\n gpu.device.queue.copyExternalImageToTexture(\n { source: resource },\n { texture: gpuTexture, origin: { x: 0, y: 0, z: originZOverride }, premultipliedAlpha },\n {\n width,\n height,\n }\n );\n }\n} as GpuTextureUploader<TextureSource>;\n\n"],"names":[],"mappings":";;;;AAQO,MAAM,sBAAA,GAAyB;AAAA,EAElC,IAAA,EAAM,OAAA;AAAA,EAEN,MAAA,CAAO,MAAA,EAAuB,UAAA,EAAwB,GAAA,EAAU,kBAAkB,CAAA,EAClF;AACI,IAAA,MAAM,WAAW,MAAA,CAAO,QAAA;AAExB,IAAA,IAAI,CAAC,QAAA,EAAU;AAIf,IAAA,IAAI,UAAA,CAAW,gBAAA,IAAoB,QAAA,YAAoB,gBAAA,EACvD;AACI,MAAA,MAAM,MAAA,GAAS,WAAW,GAAA,EAAI,CAAE,aAAa,QAAA,CAAS,KAAA,EAAO,SAAS,MAAM,CAAA;AAC5E,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAEtC,MAAA,OAAA,CAAQ,UAAU,QAAA,EAAU,CAAA,EAAG,GAAG,QAAA,CAAS,KAAA,EAAO,SAAS,MAAM,CAAA;AAGjE,MAAA,MAAA,CAAO,QAAA,GAAW,MAAA;AAGlB,MAAA,IAAA,CAAK,iFAAiF,CAAA;AAAA,IAE1F;AAEA,IAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,CAAI,UAAA,CAAW,OAAO,MAAA,CAAO,aAAA,IAAiB,OAAO,UAAU,CAAA;AAClF,IAAA,MAAM,MAAA,GAAS,KAAK,GAAA,CAAI,UAAA,CAAW,QAAQ,MAAA,CAAO,cAAA,IAAkB,OAAO,WAAW,CAAA;AAEtF,IAAA,MAAM,kBAAA,GAAqB,OAAO,SAAA,KAAc,6BAAA;AAEhD,IAAA,GAAA,CAAI,OAAO,KAAA,CAAM,0BAAA;AAAA,MACb,EAAE,QAAQ,QAAA,EAAS;AAAA,MACnB,EAAE,OAAA,EAAS,UAAA,EAAY,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,eAAA,EAAgB,EAAG,kBAAA,EAAmB;AAAA,MACtF;AAAA,QACI,KAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,EACJ;AACJ;;;;"}