{"version":3,"file":"gpuUploadBufferImageResource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.ts"],"sourcesContent":["import type { BufferImageSource } from '../../../shared/texture/sources/BufferImageSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\n/** @internal */\nexport const gpuUploadBufferImageResource = {\n\n    type: 'image',\n\n    upload(source: BufferImageSource, gpuTexture: GPUTexture, gpu: GPU, originZOverride = 0)\n    {\n        const resource = source.resource;\n\n        const total = (source.pixelWidth | 0) * (source.pixelHeight | 0);\n\n        const bytesPerPixel = resource.byteLength / total;\n\n        gpu.device.queue.writeTexture(\n            { texture: gpuTexture, origin: { x: 0, y: 0, z: originZOverride } },\n            resource as ArrayBuffer,\n            {\n                offset: 0,\n                rowsPerImage: source.pixelHeight,\n                bytesPerRow: source.pixelWidth * bytesPerPixel,\n            },\n            {\n                width: source.pixelWidth,\n                height: source.pixelHeight,\n                depthOrArrayLayers: 1,\n            }\n        );\n    }\n} as GpuTextureUploader<BufferImageSource>;\n"],"names":[],"mappings":";AAKO,MAAM,4BAAA,GAA+B;AAAA,EAExC,IAAA,EAAM,OAAA;AAAA,EAEN,MAAA,CAAO,MAAA,EAA2B,UAAA,EAAwB,GAAA,EAAU,kBAAkB,CAAA,EACtF;AACI,IAAA,MAAM,WAAW,MAAA,CAAO,QAAA;AAExB,IAAA,MAAM,KAAA,GAAA,CAAS,MAAA,CAAO,UAAA,GAAa,CAAA,KAAM,OAAO,WAAA,GAAc,CAAA,CAAA;AAE9D,IAAA,MAAM,aAAA,GAAgB,SAAS,UAAA,GAAa,KAAA;AAE5C,IAAA,GAAA,CAAI,OAAO,KAAA,CAAM,YAAA;AAAA,MACb,EAAE,OAAA,EAAS,UAAA,EAAY,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,eAAA,EAAgB,EAAE;AAAA,MAClE,QAAA;AAAA,MACA;AAAA,QACI,MAAA,EAAQ,CAAA;AAAA,QACR,cAAc,MAAA,CAAO,WAAA;AAAA,QACrB,WAAA,EAAa,OAAO,UAAA,GAAa;AAAA,OACrC;AAAA,MACA;AAAA,QACI,OAAO,MAAA,CAAO,UAAA;AAAA,QACd,QAAQ,MAAA,CAAO,WAAA;AAAA,QACf,kBAAA,EAAoB;AAAA;AACxB,KACJ;AAAA,EACJ;AACJ;;;;"}