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.18 kB
Source Map (JSON)
{"version":3,"file":"gpuUploadCompressedTextureResource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.ts"],"sourcesContent":["import type { CompressedSource } from '../../../shared/texture/sources/CompressedSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\n/** @internal */\nexport const blockDataMap: Record<string, {blockBytes: number, blockWidth: number, blockHeight: number}> = {\n 'bc1-rgba-unorm': { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n 'bc2-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'bc3-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'bc7-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'etc1-rgb-unorm': { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n 'etc2-rgba8unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'astc-4x4-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n};\n\nconst defaultBlockData = { blockBytes: 4, blockWidth: 1, blockHeight: 1 };\n\n/** @internal */\nexport const gpuUploadCompressedTextureResource = {\n\n type: 'compressed',\n\n upload(source: CompressedSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n let mipWidth = source.pixelWidth;\n let mipHeight = source.pixelHeight;\n\n const blockData = blockDataMap[source.format] || defaultBlockData;\n\n for (let i = 0; i < source.resource.length; i++)\n {\n const levelBuffer = source.resource[i];\n\n const bytesPerRow = Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockBytes;\n\n gpu.device.queue.writeTexture(\n {\n texture: gpuTexture,\n mipLevel: i\n },\n levelBuffer,\n {\n offset: 0,\n bytesPerRow,\n },\n {\n width: Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockWidth,\n height: Math.ceil(mipHeight / blockData.blockHeight) * blockData.blockHeight,\n depthOrArrayLayers: 1,\n }\n );\n\n mipWidth = Math.max(mipWidth >> 1, 1);\n mipHeight = Math.max(mipHeight >> 1, 1);\n }\n }\n} as GpuTextureUploader<CompressedSource>;\n\n"],"names":[],"mappings":";AAKO,MAAM,YAA8F,GAAA;AAAA,EACvG,kBAAkB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACjE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACjE,mBAAmB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACnE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AACtE,EAAA;AAEA,MAAM,mBAAmB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA,CAAA;AAGjE,MAAM,kCAAqC,GAAA;AAAA,EAE9C,IAAM,EAAA,YAAA;AAAA,EAEN,MAAA,CAAO,MAA0B,EAAA,UAAA,EAAwB,GACzD,EAAA;AACI,IAAA,IAAI,WAAW,MAAO,CAAA,UAAA,CAAA;AACtB,IAAA,IAAI,YAAY,MAAO,CAAA,WAAA,CAAA;AAEvB,IAAA,MAAM,SAAY,GAAA,YAAA,CAAa,MAAO,CAAA,MAAM,CAAK,IAAA,gBAAA,CAAA;AAEjD,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAO,CAAA,QAAA,CAAS,QAAQ,CAC5C,EAAA,EAAA;AACI,MAAM,MAAA,WAAA,GAAc,MAAO,CAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAErC,MAAA,MAAM,cAAc,IAAK,CAAA,IAAA,CAAK,WAAW,SAAU,CAAA,UAAU,IAAI,SAAU,CAAA,UAAA,CAAA;AAE3E,MAAA,GAAA,CAAI,OAAO,KAAM,CAAA,YAAA;AAAA,QACb;AAAA,UACI,OAAS,EAAA,UAAA;AAAA,UACT,QAAU,EAAA,CAAA;AAAA,SACd;AAAA,QACA,WAAA;AAAA,QACA;AAAA,UACI,MAAQ,EAAA,CAAA;AAAA,UACR,WAAA;AAAA,SACJ;AAAA,QACA;AAAA,UACI,OAAO,IAAK,CAAA,IAAA,CAAK,WAAW,SAAU,CAAA,UAAU,IAAI,SAAU,CAAA,UAAA;AAAA,UAC9D,QAAQ,IAAK,CAAA,IAAA,CAAK,YAAY,SAAU,CAAA,WAAW,IAAI,SAAU,CAAA,WAAA;AAAA,UACjE,kBAAoB,EAAA,CAAA;AAAA,SACxB;AAAA,OACJ,CAAA;AAEA,MAAA,QAAA,GAAW,IAAK,CAAA,GAAA,CAAI,QAAY,IAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACpC,MAAA,SAAA,GAAY,IAAK,CAAA,GAAA,CAAI,SAAa,IAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,KAC1C;AAAA,GACJ;AACJ;;;;"}