1 line
5.8 KiB
Plaintext
1 line
5.8 KiB
Plaintext
{"version":3,"file":"Basis.mjs","sources":["../src/Basis.ts"],"sourcesContent":["import { INTERNAL_FORMATS } from '@pixi/compressed-textures';\nimport { TYPES } from '@pixi/core';\n\n/**\n * The transcoding formats provided by basis_universal.\n *\n * NOTE: Not all of these formats are supported on WebGL!\n * @ignore\n */\n/* eslint-disable camelcase, @typescript-eslint/indent */\nexport enum BASIS_FORMATS\n{\n cTFETC1 = 0,\n cTFETC2 = 1,\n cTFBC1 = 2,\n cTFBC3 = 3,\n cTFBC4 = 4,\n cTFBC5 = 5,\n cTFBC7 = 6,\n cTFPVRTC1_4_RGB = 8,\n cTFPVRTC1_4_RGBA = 9,\n cTFASTC_4x4 = 10,\n cTFATC_RGB = 11,\n cTFATC_RGBA_INTERPOLATED_ALPHA = 12,\n cTFRGBA32 = 13,\n cTFRGB565 = 14,\n cTFBGR565 = 15,\n cTFRGBA4444 = 16,\n}\n/* eslint-enable camelcase, @typescript-eslint/indent */\n\n/**\n * Maps {@link BASIS_FORMATS} to {@link PIXI.INTERNAL_FORMATS}\n * @ignore\n */\nexport const BASIS_FORMAT_TO_INTERNAL_FORMAT: { [id: number]: INTERNAL_FORMATS } = {\n [BASIS_FORMATS.cTFETC1]: INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL,\n [BASIS_FORMATS.cTFBC1]: INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT,\n [BASIS_FORMATS.cTFBC3]: INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n [BASIS_FORMATS.cTFPVRTC1_4_RGB]: INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,\n [BASIS_FORMATS.cTFPVRTC1_4_RGBA]: INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n [BASIS_FORMATS.cTFATC_RGB]: INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL,\n [BASIS_FORMATS.cTFASTC_4x4]: INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n [BASIS_FORMATS.cTFBC7]: INTERNAL_FORMATS.COMPRESSED_RGBA_BPTC_UNORM_EXT,\n};\n\n/**\n * Maps {@link BASIS_FORMATS} to {@link PIXI.TYPES}. These formats are a fallback when the basis file cannot be transcoded\n * to a valid compressed texture format.\n *\n * NOTE: {@link BASIS_FORMATS.cTFBGR565} is not supported, while {@link BASIS_FORMATS.cTFRGBA4444} is not implemented by\n * [at]pixi/basis.\n * @ignore\n */\nexport const BASIS_FORMAT_TO_TYPE: { [id: number]: TYPES } = {\n [BASIS_FORMATS.cTFRGBA32]: TYPES.UNSIGNED_BYTE,\n [BASIS_FORMATS.cTFRGB565]: TYPES.UNSIGNED_SHORT_5_6_5,\n [BASIS_FORMATS.cTFRGBA4444]: TYPES.UNSIGNED_SHORT_4_4_4_4,\n};\n\n/**\n * Maps {@link PIXI.INTERNAL_FORMATS} to {@link BASIS_FORMATS}\n * @ignore\n */\nexport const INTERNAL_FORMAT_TO_BASIS_FORMAT: { [id: number]: number }\n = (Object.keys(BASIS_FORMAT_TO_INTERNAL_FORMAT) as string[])\n .map((key: string) => Number(key))\n .reduce((reverseMap: any, basisFormat: any) =>\n {\n reverseMap[(BASIS_FORMAT_TO_INTERNAL_FORMAT as any)[basisFormat]] = basisFormat;\n\n return reverseMap;\n }, {});\n\n/**\n * Enumerates the basis formats with alpha components\n * @ignore\n */\nexport const BASIS_FORMATS_ALPHA: { [id: number]: boolean } = {\n [BASIS_FORMATS.cTFBC3]: true,\n [BASIS_FORMATS.cTFPVRTC1_4_RGBA]: true,\n [BASIS_FORMATS.cTFASTC_4x4]: true,\n [BASIS_FORMATS.cTFBC7]: true,\n};\n\n/**\n * Binding to C++ {@code BasisFile} wrapper class.\n * @see https://github.com/BinomialLLC/basis_universal/blob/master/webgl/transcoder/basis_wrappers.cpp\n * @private\n */\nexport declare class BasisFile\n{\n constructor(buffer: Uint8Array);\n getNumImages(): number;\n getNumLevels(imageId: number): number;\n getImageWidth(imageId: number, level: number): number;\n getImageHeight(imageId: number, level: number): number;\n getHasAlpha(): boolean;\n startTranscoding(): boolean;\n getImageTranscodedSizeInBytes(\n imageId: number,\n level: number,\n basisFormat: number): number;\n transcodeImage(dstBuff: Uint8Array,\n imageId: number,\n level: number,\n basisFormat: BASIS_FORMATS,\n pvrtcWrapAddressing: boolean,\n getAlphaForOpaqueFormats: boolean): number;\n close(): void;\n delete(): void;\n}\n\n// Missing typings? - https://github.com/microsoft/TypeScript/issues/39655\n/**\n * Compressed texture extensions relevant to the formats into which Basis can decompress into.\n * @ignore\n */\n/* eslint-disable camelcase */\nexport type BasisTextureExtensions = {\n s3tc?: WEBGL_compressed_texture_s3tc,\n s3tc_sRGB: WEBGL_compressed_texture_s3tc_srgb,\n etc: any,\n etc1: any,\n pvrtc: any,\n atc: any,\n astc: WEBGL_compressed_texture_astc,\n bptc: any\n};\n/* eslint-enable camelcase */\n\n/** API provided by basis_universal WebGL library. */\nexport type BasisBinding = {\n BasisFile: typeof BasisFile,\n initializeBasis: () => void\n};\n\n/**\n * Binding to basis_universal WebGL library.\n * @see https://github.com/BinomialLLC/basis_universal/blob/master/webgl/transcoder/build/basis_transcoder.js\n * @ignore\n */\nexport type BASIS = (opts?: { wasmBinary: ArrayBuffer }) => Promise<BasisBinding>;\n"],"names":["BASIS_FORMATS"],"mappings":";;AAUO,IAAK,gBAAL,kBAAKA,oBAERA,eAAAA,eAAA,UAAU,CAAA,IAAV,WACAA,eAAAA,eAAA,UAAU,CAAA,IAAV,WACAA,eAAAA,eAAA,SAAS,CAAT,IAAA,UACAA,eAAA,eAAA,SAAS,CAAT,IAAA,UACAA,eAAA,eAAA,SAAS,KAAT,UACAA,eAAAA,eAAA,SAAS,CAAA,IAAT,UACAA,eAAAA,eAAA,SAAS,CAAA,IAAT,UACAA,eAAA,eAAA,kBAAkB,CAAlB,IAAA,mBACAA,eAAA,eAAA,mBAAmB,CAAnB,IAAA,oBACAA,8BAAA,cAAc,EAAA,IAAd,eACAA,eAAAA,eAAA,aAAa,EAAA,IAAb,cACAA,eAAAA,eAAA,iCAAiC,EAAjC,IAAA,kCACAA,eAAA,eAAA,YAAY,EAAZ,IAAA,aACAA,eAAA,eAAA,YAAY,MAAZ,aACAA,eAAAA,eAAA,YAAY,EAAA,IAAZ,aACAA,eAAAA,eAAA,cAAc,EAAA,IAAd,eAjBQA,iBAAA,iBAAA,EAAA;AAyBL,MAAM,kCAAsE;AAAA,EAC9E,GAAwB,iBAAiB;AAAA,EACzC,GAAuB,iBAAiB;AAAA,EACxC,GAAuB,iBAAiB;AAAA,EACxC,GAAgC,iBAAiB;AAAA,EACjD,GAAiC,iBAAiB;AAAA,EAClD,IAA2B,iBAAiB;AAAA,EAC5C,IAA4B,iBAAiB;AAAA,EAC7C,GAAuB,iBAAiB;AAC7C,GAUa,uBAAgD;AAAA,EACxD,IAA0B,MAAM;AAAA,EAChC,IAA0B,MAAM;AAAA,EAChC,IAA4B,MAAM;AACvC,GAMa,kCACN,OAAO,KAAK,+BAA+B,EACzC,IAAI,CAAC,QAAgB,OAAO,GAAG,CAAC,EAChC,OAAO,CAAC,YAAiB,iBAEtB,WAAY,gCAAwC,WAAW,CAAC,IAAI,aAE7D,aACR,EAAE,GAMA,sBAAiD;AAAA,EACzD,GAAuB;AAAA,EACvB,GAAiC;AAAA,EACjC,IAA4B;AAAA,EAC5B,GAAuB;AAC5B;"} |