1 line
2.9 KiB
Plaintext
1 line
2.9 KiB
Plaintext
{"version":3,"file":"convertFormatIfRequired.mjs","sources":["../../../../src/compressed-textures/ktx2/utils/convertFormatIfRequired.ts"],"sourcesContent":["import type { TEXTURE_FORMATS } from '../../../rendering/renderers/shared/texture/const';\nimport type { TextureSourceOptions } from '../../../rendering/renderers/shared/texture/sources/TextureSource';\n\ninterface ColorConverter\n{\n convertedFormat: TEXTURE_FORMATS,\n convertFunction: (levelBuffer: Uint8Array) => Uint8Array\n}\n\nconst converters: Record<string, ColorConverter> = {\n rgb8unorm: {\n convertedFormat: 'rgba8unorm',\n convertFunction: convertRGBtoRGBA,\n },\n 'rgb8unorm-srgb': {\n convertedFormat: 'rgba8unorm-srgb',\n convertFunction: convertRGBtoRGBA,\n }\n};\n\nexport function convertFormatIfRequired(textureOptions: TextureSourceOptions)\n{\n const format = textureOptions.format;\n\n if (converters[format])\n {\n const convertFunction = converters[format].convertFunction;\n\n const levelBuffers = textureOptions.resource;\n\n for (let i = 0; i < levelBuffers.length; i++)\n {\n levelBuffers[i] = convertFunction(levelBuffers[i]);\n }\n\n textureOptions.format = converters[format].convertedFormat;\n }\n}\n\nfunction convertRGBtoRGBA(levelBuffer: Uint8Array): Uint8Array\n{\n const pixelCount = levelBuffer.byteLength / 3;\n\n const levelBufferWithAlpha = new Uint32Array(pixelCount);\n\n for (let i = 0; i < pixelCount; ++i)\n {\n levelBufferWithAlpha[i] = (levelBuffer[i * 3]) // R\n + (levelBuffer[(i * 3) + 1] << 8) // G\n + (levelBuffer[(i * 3) + 2] << 16) // B\n + 0xff000000; // A (255)\n }\n\n return new Uint8Array(levelBufferWithAlpha.buffer);\n}\n"],"names":[],"mappings":";AASA,MAAM,UAA6C,GAAA;AAAA,EAC/C,SAAW,EAAA;AAAA,IACP,eAAiB,EAAA,YAAA;AAAA,IACjB,eAAiB,EAAA,gBAAA;AAAA,GACrB;AAAA,EACA,gBAAkB,EAAA;AAAA,IACd,eAAiB,EAAA,iBAAA;AAAA,IACjB,eAAiB,EAAA,gBAAA;AAAA,GACrB;AACJ,CAAA,CAAA;AAEO,SAAS,wBAAwB,cACxC,EAAA;AACI,EAAA,MAAM,SAAS,cAAe,CAAA,MAAA,CAAA;AAE9B,EAAI,IAAA,UAAA,CAAW,MAAM,CACrB,EAAA;AACI,IAAM,MAAA,eAAA,GAAkB,UAAW,CAAA,MAAM,CAAE,CAAA,eAAA,CAAA;AAE3C,IAAA,MAAM,eAAe,cAAe,CAAA,QAAA,CAAA;AAEpC,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,YAAA,CAAa,QAAQ,CACzC,EAAA,EAAA;AACI,MAAA,YAAA,CAAa,CAAC,CAAA,GAAI,eAAgB,CAAA,YAAA,CAAa,CAAC,CAAC,CAAA,CAAA;AAAA,KACrD;AAEA,IAAe,cAAA,CAAA,MAAA,GAAS,UAAW,CAAA,MAAM,CAAE,CAAA,eAAA,CAAA;AAAA,GAC/C;AACJ,CAAA;AAEA,SAAS,iBAAiB,WAC1B,EAAA;AACI,EAAM,MAAA,UAAA,GAAa,YAAY,UAAa,GAAA,CAAA,CAAA;AAE5C,EAAM,MAAA,oBAAA,GAAuB,IAAI,WAAA,CAAY,UAAU,CAAA,CAAA;AAEvD,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,UAAA,EAAY,EAAE,CAClC,EAAA;AACI,IAAA,oBAAA,CAAqB,CAAC,CAAK,GAAA,WAAA,CAAY,CAAI,GAAA,CAAC,KAClC,WAAa,CAAA,CAAA,GAAI,CAAK,GAAA,CAAC,KAAK,CAC5B,CAAA,IAAA,WAAA,CAAa,IAAI,CAAK,GAAA,CAAC,KAAK,EAC7B,CAAA,GAAA,UAAA,CAAA;AAAA,GACb;AAEA,EAAO,OAAA,IAAI,UAAW,CAAA,oBAAA,CAAqB,MAAM,CAAA,CAAA;AACrD;;;;"} |