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 • 2.98 kB
Source Map (JSON)
{"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\n/**\n * @param textureOptions\n * @internal\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,UAAA,GAA6C;AAAA,EAC/C,SAAA,EAAW;AAAA,IACP,eAAA,EAAiB,YAAA;AAAA,IACjB,eAAA,EAAiB;AAAA,GACrB;AAAA,EACA,gBAAA,EAAkB;AAAA,IACd,eAAA,EAAiB,iBAAA;AAAA,IACjB,eAAA,EAAiB;AAAA;AAEzB,CAAA;AAMO,SAAS,wBAAwB,cAAA,EACxC;AACI,EAAA,MAAM,SAAS,cAAA,CAAe,MAAA;AAE9B,EAAA,IAAI,UAAA,CAAW,MAAM,CAAA,EACrB;AACI,IAAA,MAAM,eAAA,GAAkB,UAAA,CAAW,MAAM,CAAA,CAAE,eAAA;AAE3C,IAAA,MAAM,eAAe,cAAA,CAAe,QAAA;AAEpC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,YAAA,CAAa,QAAQ,CAAA,EAAA,EACzC;AACI,MAAA,YAAA,CAAa,CAAC,CAAA,GAAI,eAAA,CAAgB,YAAA,CAAa,CAAC,CAAC,CAAA;AAAA,IACrD;AAEA,IAAA,cAAA,CAAe,MAAA,GAAS,UAAA,CAAW,MAAM,CAAA,CAAE,eAAA;AAAA,EAC/C;AACJ;AAEA,SAAS,iBAAiB,WAAA,EAC1B;AACI,EAAA,MAAM,UAAA,GAAa,YAAY,UAAA,GAAa,CAAA;AAE5C,EAAA,MAAM,oBAAA,GAAuB,IAAI,WAAA,CAAY,UAAU,CAAA;AAEvD,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,EAAY,EAAE,CAAA,EAClC;AACI,IAAA,oBAAA,CAAqB,CAAC,CAAA,GAAK,WAAA,CAAY,CAAA,GAAI,CAAC,KAClC,WAAA,CAAa,CAAA,GAAI,CAAA,GAAK,CAAC,KAAK,CAAA,CAAA,IAC5B,WAAA,CAAa,IAAI,CAAA,GAAK,CAAC,KAAK,EAAA,CAAA,GAC7B,UAAA;AAAA,EACb;AAEA,EAAA,OAAO,IAAI,UAAA,CAAW,oBAAA,CAAqB,MAAM,CAAA;AACrD;;;;"}