@loaders.gl/textures 3.1.0-alpha.4 → 3.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/basis-loader.d.ts +50 -0
- package/dist/basis-loader.d.ts.map +1 -0
- package/dist/basis-loader.js +40 -0
- package/dist/basis-worker.js +675 -2
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2107 -0
- package/dist/compressed-texture-loader.d.ts +63 -0
- package/dist/compressed-texture-loader.d.ts.map +1 -0
- package/dist/compressed-texture-loader.js +64 -0
- package/dist/compressed-texture-worker.js +1179 -2
- package/dist/compressed-texture-writer.d.ts +25 -0
- package/dist/compressed-texture-writer.d.ts.map +1 -0
- package/dist/compressed-texture-writer.js +28 -0
- package/dist/crunch-loader.d.ts +21 -0
- package/dist/crunch-loader.d.ts.map +1 -0
- package/dist/crunch-loader.js +25 -0
- package/dist/crunch-worker.js +486 -2
- package/dist/es5/basis-loader.js +5 -13
- package/dist/es5/basis-loader.js.map +1 -1
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/compressed-texture-loader.js +20 -59
- package/dist/es5/compressed-texture-loader.js.map +1 -1
- package/dist/es5/compressed-texture-writer.js +2 -2
- package/dist/es5/compressed-texture-writer.js.map +1 -1
- package/dist/es5/crunch-loader.js +2 -2
- package/dist/es5/crunch-loader.js.map +1 -1
- package/dist/es5/index.js +26 -18
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/ktx2-basis-universal-texture-writer.js +29 -0
- package/dist/es5/ktx2-basis-universal-texture-writer.js.map +1 -0
- package/dist/es5/lib/encoders/encode-ktx.js +1 -1
- package/dist/es5/lib/encoders/encode-ktx.js.map +1 -1
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +43 -0
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
- package/dist/es5/lib/encoders/encode-texture.js +13 -41
- package/dist/es5/lib/encoders/encode-texture.js.map +1 -1
- package/dist/es5/lib/{gl-constants.js → gl-extensions.js} +4 -4
- package/dist/es5/lib/gl-extensions.js.map +1 -0
- package/dist/es5/lib/parsers/basis-module-loader.js +51 -190
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js +15 -71
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +86 -138
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/parsers/parse-crunch.js +59 -80
- package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/es5/lib/parsers/parse-dds.js +39 -39
- package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
- package/dist/es5/lib/parsers/parse-ktx.js +14 -16
- package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/es5/lib/parsers/parse-npy.js +27 -28
- package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
- package/dist/es5/lib/parsers/parse-pvr.js +49 -49
- package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/es5/lib/texture-api/async-deep-map.js +27 -156
- package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -1
- package/dist/es5/lib/texture-api/deep-load.js +6 -67
- package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
- package/dist/es5/lib/texture-api/generate-url.js +4 -16
- package/dist/es5/lib/texture-api/generate-url.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image-array.js +12 -76
- package/dist/es5/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image-cube.js +27 -96
- package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image.js +37 -146
- package/dist/es5/lib/texture-api/load-image.js.map +1 -1
- package/dist/es5/lib/texture-api/texture-api-types.js +2 -0
- package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -0
- package/dist/es5/lib/utils/extract-mipmap-images.js +9 -9
- package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/es5/lib/utils/ktx-format-helper.js +68 -68
- package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/es5/lib/utils/texture-formats.js +9 -27
- package/dist/es5/lib/utils/texture-formats.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/libs/README.md +2 -2
- package/dist/es5/libs/basis_encoder.js +1 -1
- package/dist/es5/libs/basis_transcoder.js +1 -1
- package/dist/es5/libs/crunch.js +1 -0
- package/dist/es5/npy-loader.js +7 -42
- package/dist/es5/npy-loader.js.map +1 -1
- package/dist/es5/workers/crunch-worker.js +2 -11
- package/dist/es5/workers/crunch-worker.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ktx2-basis-universal-texture-writer.js +18 -0
- package/dist/esm/ktx2-basis-universal-texture-writer.js.map +1 -0
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +35 -0
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
- package/dist/esm/lib/encoders/encode-texture.js +1 -1
- package/dist/esm/lib/encoders/encode-texture.js.map +1 -1
- package/dist/esm/lib/{gl-constants.js → gl-extensions.js} +2 -2
- package/dist/esm/lib/gl-extensions.js.map +1 -0
- package/dist/esm/lib/parsers/basis-module-loader.js +8 -3
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +8 -8
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/parsers/parse-crunch.js +4 -4
- package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/esm/lib/parsers/parse-dds.js +24 -24
- package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
- package/dist/esm/lib/parsers/parse-ktx.js +2 -2
- package/dist/esm/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/esm/lib/parsers/parse-npy.js +4 -2
- package/dist/esm/lib/parsers/parse-npy.js.map +1 -1
- package/dist/esm/lib/parsers/parse-pvr.js +28 -28
- package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -1
- package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
- package/dist/esm/lib/texture-api/generate-url.js +6 -14
- package/dist/esm/lib/texture-api/generate-url.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image.js +2 -5
- package/dist/esm/lib/texture-api/load-image.js.map +1 -1
- package/dist/esm/lib/texture-api/texture-api-types.js +2 -0
- package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -0
- package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/esm/lib/utils/ktx-format-helper.js +67 -67
- package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/esm/lib/utils/texture-formats.js +1 -1
- package/dist/esm/lib/utils/texture-formats.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/libs/README.md +2 -2
- package/dist/esm/libs/basis_encoder.js +1 -1
- package/dist/esm/libs/basis_transcoder.js +1 -1
- package/dist/esm/libs/crunch.js +1 -0
- package/dist/esm/npy-loader.js.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/ktx2-basis-universal-texture-writer.d.ts +22 -0
- package/dist/ktx2-basis-universal-texture-writer.d.ts.map +1 -0
- package/dist/ktx2-basis-universal-texture-writer.js +25 -0
- package/dist/lib/encoders/encode-ktx.d.ts +2 -0
- package/dist/lib/encoders/encode-ktx.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx.js +10 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +10 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +41 -0
- package/dist/lib/encoders/encode-texture.d.ts +2 -0
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-texture.js +30 -0
- package/dist/lib/gl-extensions.d.ts +61 -0
- package/dist/lib/gl-extensions.d.ts.map +1 -0
- package/dist/lib/gl-extensions.js +72 -0
- package/dist/lib/parsers/basis-module-loader.d.ts +13 -0
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/basis-module-loader.js +114 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts +7 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/crunch-module-loader.js +35 -0
- package/dist/lib/parsers/parse-basis.d.ts +30 -0
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -0
- package/dist/lib/parsers/parse-basis.js +245 -0
- package/dist/lib/parsers/parse-compressed-texture.d.ts +8 -0
- package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -0
- package/dist/lib/parsers/parse-compressed-texture.js +26 -0
- package/dist/lib/parsers/parse-crunch.d.ts +9 -0
- package/dist/lib/parsers/parse-crunch.d.ts.map +1 -0
- package/dist/lib/parsers/parse-crunch.js +105 -0
- package/dist/lib/parsers/parse-dds.d.ts +28 -0
- package/dist/lib/parsers/parse-dds.d.ts.map +1 -0
- package/dist/lib/parsers/parse-dds.js +108 -0
- package/dist/lib/parsers/parse-ktx.d.ts +3 -0
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -0
- package/dist/lib/parsers/parse-ktx.js +46 -0
- package/dist/lib/parsers/parse-npy.d.ts +10 -0
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -0
- package/dist/lib/parsers/parse-npy.js +85 -0
- package/dist/lib/parsers/parse-pvr.d.ts +15 -0
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -0
- package/dist/lib/parsers/parse-pvr.js +250 -0
- package/dist/lib/texture-api/async-deep-map.d.ts +5 -0
- package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -0
- package/dist/lib/texture-api/async-deep-map.js +41 -0
- package/dist/lib/texture-api/deep-load.d.ts +5 -0
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -0
- package/dist/lib/texture-api/deep-load.js +16 -0
- package/dist/lib/texture-api/generate-url.d.ts +3 -0
- package/dist/lib/texture-api/generate-url.d.ts.map +1 -0
- package/dist/lib/texture-api/generate-url.js +17 -0
- package/dist/lib/texture-api/load-image-array.d.ts +4 -0
- package/dist/lib/texture-api/load-image-array.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-array.js +21 -0
- package/dist/lib/texture-api/load-image-cube.d.ts +12 -0
- package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-cube.js +47 -0
- package/dist/lib/texture-api/load-image.d.ts +8 -0
- package/dist/lib/texture-api/load-image.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image.js +43 -0
- package/dist/lib/texture-api/texture-api-types.d.ts +10 -0
- package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -0
- package/dist/lib/texture-api/texture-api-types.js +3 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts +13 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -0
- package/dist/lib/utils/extract-mipmap-images.js +50 -0
- package/dist/lib/utils/ktx-format-helper.d.ts +9 -0
- package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -0
- package/dist/lib/utils/ktx-format-helper.js +125 -0
- package/dist/lib/utils/texture-formats.d.ts +8 -0
- package/dist/lib/utils/texture-formats.d.ts.map +1 -0
- package/dist/lib/utils/texture-formats.js +51 -0
- package/dist/lib/utils/version.d.ts +2 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +8 -0
- package/dist/libs/README.md +2 -2
- package/dist/libs/basis_encoder.js +1 -1
- package/dist/libs/basis_transcoder.js +1 -1
- package/dist/libs/crunch.js +1 -0
- package/dist/npy-loader.d.ts +45 -0
- package/dist/npy-loader.d.ts.map +1 -0
- package/dist/npy-loader.js +34 -0
- package/dist/npy-worker.js +240 -2
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/workers/basis-worker.d.ts +2 -0
- package/dist/workers/basis-worker.d.ts.map +1 -0
- package/dist/workers/basis-worker.js +5 -0
- package/dist/workers/compressed-texture-worker.d.ts +2 -0
- package/dist/workers/compressed-texture-worker.d.ts.map +1 -0
- package/dist/workers/compressed-texture-worker.js +5 -0
- package/dist/workers/crunch-worker.d.ts +21 -0
- package/dist/workers/crunch-worker.d.ts.map +1 -0
- package/dist/workers/crunch-worker.js +14 -0
- package/dist/workers/npy-worker.d.ts +2 -0
- package/dist/workers/npy-worker.d.ts.map +1 -0
- package/dist/workers/npy-worker.js +5 -0
- package/package.json +11 -11
- package/src/index.ts +2 -1
- package/src/ktx2-basis-universal-texture-writer.ts +27 -0
- package/src/lib/encoders/encode-ktx2-basis-texture.ts +44 -0
- package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
- package/src/lib/parsers/basis-module-loader.ts +12 -4
- package/src/lib/parsers/crunch-module-loader.ts +1 -0
- package/src/lib/parsers/parse-basis.js +32 -8
- package/src/lib/parsers/parse-crunch.ts +4 -4
- package/src/lib/parsers/parse-dds.ts +29 -26
- package/src/lib/parsers/parse-ktx.js +3 -6
- package/src/lib/parsers/parse-ktx.ts +47 -0
- package/src/lib/parsers/parse-npy.js +3 -17
- package/src/lib/parsers/parse-npy.ts +98 -0
- package/src/lib/parsers/parse-pvr.ts +90 -48
- package/src/lib/texture-api/async-deep-map.ts +15 -8
- package/src/lib/texture-api/deep-load.ts +7 -3
- package/src/lib/texture-api/generate-url.ts +10 -8
- package/src/lib/texture-api/load-image-array.ts +8 -2
- package/src/lib/texture-api/load-image-cube.ts +18 -4
- package/src/lib/texture-api/load-image.ts +15 -5
- package/src/lib/texture-api/texture-api-types.ts +12 -0
- package/src/lib/utils/extract-mipmap-images.ts +16 -3
- package/src/lib/utils/ktx-format-helper.ts +71 -71
- package/src/libs/README.md +2 -2
- package/src/libs/basis_encoder.js +1 -1
- package/src/libs/basis_transcoder.js +1 -1
- package/src/libs/crunch.js +1 -0
- package/src/npy-loader.ts +2 -2
- package/dist/basis-worker.js.map +0 -1
- package/dist/compressed-texture-worker.js.map +0 -1
- package/dist/crunch-worker.js.map +0 -1
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.js.map +0 -1
- package/dist/es5/lib/gl-constants.js.map +0 -1
- package/dist/esm/lib/gl-constants.js.map +0 -1
- package/dist/npy-worker.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/texture-formats.ts"],"names":["BROWSER_PREFIXES","WEBGL_EXTENSIONS","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_astc","EXT_texture_compression_rgtc","formats","getSupportedGPUTextureFormats","gl","getWebGLContext","undefined","Set","prefix","extension","getExtension","gpuTextureFormat","add","canvas","document","createElement","getContext","error"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/utils/texture-formats.ts"],"names":["BROWSER_PREFIXES","WEBGL_EXTENSIONS","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_astc","EXT_texture_compression_rgtc","formats","getSupportedGPUTextureFormats","gl","getWebGLContext","undefined","Set","prefix","extension","getExtension","gpuTextureFormat","add","canvas","document","createElement","getContext","error"],"mappings":";;;;;;AAEA,MAAMA,gBAAgB,GAAG,CAAC,EAAD,EAAK,SAAL,EAAgB,MAAhB,CAAzB;AAEA,MAAMC,gBAAmD,GAAG;AAE1DC,EAAAA,6BAA6B,EAAE,KAF2B;AAG1DC,EAAAA,kCAAkC,EAAE,UAHsB;AAI1DC,EAAAA,6BAA6B,EAAE,MAJ2B;AAK1DC,EAAAA,4BAA4B,EAAE,MAL4B;AAM1DC,EAAAA,8BAA8B,EAAE,OAN0B;AAO1DC,EAAAA,4BAA4B,EAAE,KAP4B;AAQ1DC,EAAAA,6BAA6B,EAAE,MAR2B;AAS1DC,EAAAA,4BAA4B,EAAE;AAT4B,CAA5D;AAaA,IAAIC,OAAqC,GAAG,IAA5C;;AAQO,SAASC,6BAAT,CAAuCC,EAAvC,EAAgF;AACrF,MAAI,CAACF,OAAL,EAAc;AACZE,IAAAA,EAAE,GAAGA,EAAE,IAAIC,eAAe,EAArB,IAA2BC,SAAhC;AAEAJ,IAAAA,OAAO,GAAG,IAAIK,GAAJ,EAAV;;AAEA,SAAK,MAAMC,MAAX,IAAqBhB,gBAArB,EAAuC;AACrC,WAAK,MAAMiB,SAAX,IAAwBhB,gBAAxB,EAA0C;AACxC,YAAIW,EAAE,IAAIA,EAAE,CAACM,YAAH,WAAmBF,MAAnB,SAA4BC,SAA5B,EAAV,EAAoD;AAClD,gBAAME,gBAAgB,GAAGlB,gBAAgB,CAACgB,SAAD,CAAzC;AACAP,UAAAA,OAAO,CAACU,GAAR,CAAYD,gBAAZ;AACD;AACF;AACF;AACF;;AAED,SAAOT,OAAP;AACD;;AAKD,SAASG,eAAT,GAA2B;AACzB,MAAI;AACF,UAAMQ,MAAM,GAAGC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACA,WAAOF,MAAM,CAACG,UAAP,CAAkB,OAAlB,CAAP;AACD,GAHD,CAGE,OAAOC,KAAP,EAAc;AACd,WAAO,IAAP;AACD;AACF","sourcesContent":["import type {GPUTextureFormat} from '../../types';\n\nconst BROWSER_PREFIXES = ['', 'WEBKIT_', 'MOZ_'];\n\nconst WEBGL_EXTENSIONS: {[key: string]: GPUTextureFormat} = {\n /* eslint-disable camelcase */\n WEBGL_compressed_texture_s3tc: 'dxt',\n WEBGL_compressed_texture_s3tc_srgb: 'dxt-srgb',\n WEBGL_compressed_texture_etc1: 'etc1',\n WEBGL_compressed_texture_etc: 'etc2',\n WEBGL_compressed_texture_pvrtc: 'pvrtc',\n WEBGL_compressed_texture_atc: 'atc',\n WEBGL_compressed_texture_astc: 'astc',\n EXT_texture_compression_rgtc: 'rgtc'\n /* eslint-enable camelcase */\n};\n\nlet formats: Set<GPUTextureFormat> | null = null;\n\n/**\n * Returns a list of formats.\n * Creates a temporary WebGLRenderingContext if none is provided.\n *\n * @param gl - Optional context.\n */\nexport function getSupportedGPUTextureFormats(gl?: WebGLRenderingContext): Set<string> {\n if (!formats) {\n gl = gl || getWebGLContext() || undefined;\n\n formats = new Set<GPUTextureFormat>();\n\n for (const prefix of BROWSER_PREFIXES) {\n for (const extension in WEBGL_EXTENSIONS) {\n if (gl && gl.getExtension(`${prefix}${extension}`)) {\n const gpuTextureFormat = WEBGL_EXTENSIONS[extension];\n formats.add(gpuTextureFormat);\n }\n }\n }\n }\n\n return formats;\n}\n\n/**\n * @returns {WebGLRenderingContext?}\n */\nfunction getWebGLContext() {\n try {\n const canvas = document.createElement('canvas');\n return canvas.getContext('webgl');\n } catch (error) {\n return null;\n }\n}\n"],"file":"texture-formats.js"}
|
|
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VERSION = void 0;
|
|
7
|
-
|
|
7
|
+
const VERSION = typeof "3.1.0-beta.3" !== 'undefined' ? "3.1.0-beta.3" : 'beta';
|
|
8
8
|
exports.VERSION = VERSION;
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAIO,
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAIO,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,MAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';\n"],"file":"version.js"}
|
package/dist/es5/libs/README.md
CHANGED
package/dist/es5/libs/crunch.js
CHANGED
package/dist/es5/npy-loader.js
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports._TypecheckNPYLoader = exports._TypecheckNPYWorkerLoader = exports.NPYLoader = exports.NPYWorkerLoader = void 0;
|
|
9
7
|
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
8
|
var _version = require("./lib/utils/version");
|
|
17
9
|
|
|
18
10
|
var _parseNpy = require("./lib/parsers/parse-npy");
|
|
19
11
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
23
|
-
|
|
24
|
-
var NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);
|
|
25
|
-
var NPYWorkerLoader = {
|
|
12
|
+
const NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);
|
|
13
|
+
const NPYWorkerLoader = {
|
|
26
14
|
name: 'NPY',
|
|
27
15
|
id: 'npy',
|
|
28
16
|
module: 'textures',
|
|
@@ -36,36 +24,13 @@ var NPYWorkerLoader = {
|
|
|
36
24
|
}
|
|
37
25
|
};
|
|
38
26
|
exports.NPYWorkerLoader = NPYWorkerLoader;
|
|
39
|
-
|
|
40
|
-
var NPYLoader = _objectSpread(_objectSpread({}, NPYWorkerLoader), {}, {
|
|
27
|
+
const NPYLoader = { ...NPYWorkerLoader,
|
|
41
28
|
parseSync: _parseNpy.parseNPY,
|
|
42
|
-
parse:
|
|
43
|
-
|
|
44
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
45
|
-
while (1) {
|
|
46
|
-
switch (_context.prev = _context.next) {
|
|
47
|
-
case 0:
|
|
48
|
-
return _context.abrupt("return", (0, _parseNpy.parseNPY)(arrayBuffer, options));
|
|
49
|
-
|
|
50
|
-
case 1:
|
|
51
|
-
case "end":
|
|
52
|
-
return _context.stop();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}, _callee);
|
|
56
|
-
}));
|
|
57
|
-
|
|
58
|
-
function parse(_x, _x2) {
|
|
59
|
-
return _parse.apply(this, arguments);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return parse;
|
|
63
|
-
}()
|
|
64
|
-
});
|
|
65
|
-
|
|
29
|
+
parse: async (arrayBuffer, options) => (0, _parseNpy.parseNPY)(arrayBuffer, options)
|
|
30
|
+
};
|
|
66
31
|
exports.NPYLoader = NPYLoader;
|
|
67
|
-
|
|
32
|
+
const _TypecheckNPYWorkerLoader = NPYWorkerLoader;
|
|
68
33
|
exports._TypecheckNPYWorkerLoader = _TypecheckNPYWorkerLoader;
|
|
69
|
-
|
|
34
|
+
const _TypecheckNPYLoader = NPYLoader;
|
|
70
35
|
exports._TypecheckNPYLoader = _TypecheckNPYLoader;
|
|
71
36
|
//# sourceMappingURL=npy-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/npy-loader.ts"],"names":["NPY_MAGIC_NUMBER","Uint8Array","NPYWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","tests","buffer","options","npy","NPYLoader","parseSync","parseNPY","parse","arrayBuffer","_TypecheckNPYWorkerLoader","_TypecheckNPYLoader"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/npy-loader.ts"],"names":["NPY_MAGIC_NUMBER","Uint8Array","NPYWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","tests","buffer","options","npy","NPYLoader","parseSync","parseNPY","parse","arrayBuffer","_TypecheckNPYWorkerLoader","_TypecheckNPYLoader"],"mappings":";;;;;;;AACA;;AACA;;AAGA,MAAMA,gBAAgB,GAAG,IAAIC,UAAJ,CAAe,CAAC,GAAD,EAAM,EAAN,EAAU,EAAV,EAAc,EAAd,EAAkB,EAAlB,EAAsB,EAAtB,CAAf,CAAzB;AAKO,MAAMC,eAAe,GAAG;AAC7BC,EAAAA,IAAI,EAAE,KADuB;AAE7BC,EAAAA,EAAE,EAAE,KAFyB;AAG7BC,EAAAA,MAAM,EAAE,UAHqB;AAI7BC,EAAAA,OAAO,EAAEC,gBAJoB;AAK7BC,EAAAA,MAAM,EAAE,IALqB;AAM7BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANiB;AAO7BC,EAAAA,SAAS,EAAE,EAPkB;AAQ7BC,EAAAA,KAAK,EAAE,CAACX,gBAAgB,CAACY,MAAlB,CARsB;AAS7BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AAToB,CAAxB;;AAiBA,MAAMC,SAAS,GAAG,EACvB,GAAGb,eADoB;AAEvBc,EAAAA,SAAS,EAAEC,kBAFY;AAGvBC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAiCN,OAAjC,KAA6D,wBAASM,WAAT,EAAsBN,OAAtB;AAH7C,CAAlB;;AAOA,MAAMO,yBAAiC,GAAGlB,eAA1C;;AACA,MAAMmB,mBAAqC,GAAGN,SAA9C","sourcesContent":["import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseNPY} from './lib/parsers/parse-npy';\n\n// \\x93NUMPY\nconst NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);\n\n/**\n * Worker loader for numpy \"tiles\"\n */\nexport const NPYWorkerLoader = {\n name: 'NPY',\n id: 'npy',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['npy'],\n mimeTypes: [],\n tests: [NPY_MAGIC_NUMBER.buffer],\n options: {\n npy: {}\n }\n};\n\n/**\n * Loader for numpy \"tiles\"\n */\nexport const NPYLoader = {\n ...NPYWorkerLoader,\n parseSync: parseNPY,\n parse: async (arrayBuffer: ArrayBuffer, options?: LoaderOptions) => parseNPY(arrayBuffer, options)\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckNPYWorkerLoader: Loader = NPYWorkerLoader;\nexport const _TypecheckNPYLoader: LoaderWithParser = NPYLoader;\n"],"file":"npy-loader.js"}
|
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.CrunchLoaderWithParser = void 0;
|
|
9
7
|
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
8
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
13
9
|
|
|
14
10
|
var _crunchLoader = require("../crunch-loader");
|
|
15
11
|
|
|
16
12
|
var _parseCrunch = require("../lib/parsers/parse-crunch");
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
-
|
|
22
|
-
var CrunchLoaderWithParser = _objectSpread(_objectSpread({}, _crunchLoader.CrunchLoader), {}, {
|
|
14
|
+
const CrunchLoaderWithParser = { ..._crunchLoader.CrunchLoader,
|
|
23
15
|
parse: _parseCrunch.parseCrunch
|
|
24
|
-
}
|
|
25
|
-
|
|
16
|
+
};
|
|
26
17
|
exports.CrunchLoaderWithParser = CrunchLoaderWithParser;
|
|
27
18
|
(0, _loaderUtils.createLoaderWorker)(CrunchLoaderWithParser);
|
|
28
19
|
//# sourceMappingURL=crunch-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/workers/crunch-worker.ts"],"names":["CrunchLoaderWithParser","CrunchLoader","parse","parseCrunch"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/workers/crunch-worker.ts"],"names":["CrunchLoaderWithParser","CrunchLoader","parse","parseCrunch"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAKO,MAAMA,sBAAsB,GAAG,EACpC,GAAGC,0BADiC;AAEpCC,EAAAA,KAAK,EAAEC;AAF6B,CAA/B;;AAKP,qCAAmBH,sBAAnB","sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {CrunchLoader} from '../crunch-loader';\nimport {parseCrunch} from '../lib/parsers/parse-crunch';\n\n/**\n * Loader for the Crunch compressed texture container format\n */\nexport const CrunchLoaderWithParser = {\n ...CrunchLoader,\n parse: parseCrunch\n};\n\ncreateLoaderWorker(CrunchLoaderWithParser);\n"],"file":"crunch-worker.js"}
|
package/dist/esm/index.js
CHANGED
|
@@ -3,10 +3,11 @@ export { CompressedTextureLoader, CompressedTextureWorkerLoader } from './compre
|
|
|
3
3
|
export { CrunchLoader } from './crunch-loader';
|
|
4
4
|
export { NPYLoader, NPYWorkerLoader } from './npy-loader';
|
|
5
5
|
export { CompressedTextureWriter } from './compressed-texture-writer';
|
|
6
|
+
export { KTX2BasisUniversalTextureWriter } from './ktx2-basis-universal-texture-writer';
|
|
6
7
|
export { loadImageTexture } from './lib/texture-api/load-image';
|
|
7
8
|
export { loadImageTextureArray } from './lib/texture-api/load-image-array';
|
|
8
9
|
export { loadImageTextureCube } from './lib/texture-api/load-image-cube';
|
|
9
|
-
export {
|
|
10
|
+
export { GL_EXTENSIONS_CONSTANTS } from './lib/gl-extensions';
|
|
10
11
|
export { selectSupportedBasisFormat } from './lib/parsers/parse-basis';
|
|
11
12
|
export { getSupportedGPUTextureFormats } from './lib/utils/texture-formats';
|
|
12
13
|
export { CrunchLoader as CrunchWorkerLoader } from './crunch-loader';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["BasisLoader","BasisWorkerLoader","CompressedTextureLoader","CompressedTextureWorkerLoader","CrunchLoader","NPYLoader","NPYWorkerLoader","CompressedTextureWriter","loadImageTexture","loadImageTextureArray","loadImageTextureCube","
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["BasisLoader","BasisWorkerLoader","CompressedTextureLoader","CompressedTextureWorkerLoader","CrunchLoader","NPYLoader","NPYWorkerLoader","CompressedTextureWriter","KTX2BasisUniversalTextureWriter","loadImageTexture","loadImageTextureArray","loadImageTextureCube","GL_EXTENSIONS_CONSTANTS","selectSupportedBasisFormat","getSupportedGPUTextureFormats","CrunchWorkerLoader"],"mappings":"AAKA,SAAQA,WAAR,EAAqBC,iBAArB,QAA6C,gBAA7C;AACA,SAAQC,uBAAR,EAAiCC,6BAAjC,QAAqE,6BAArE;AACA,SAAQC,YAAR,QAA2B,iBAA3B;AACA,SAAQC,SAAR,EAAmBC,eAAnB,QAAyC,cAAzC;AAGA,SAAQC,uBAAR,QAAsC,6BAAtC;AACA,SAAQC,+BAAR,QAA8C,uCAA9C;AAGA,SAAQC,gBAAR,QAA+B,8BAA/B;AACA,SAAQC,qBAAR,QAAoC,oCAApC;AACA,SAAQC,oBAAR,QAAmC,mCAAnC;AAGA,SAAQC,uBAAR,QAAsC,qBAAtC;AACA,SAAQC,0BAAR,QAAyC,2BAAzC;AACA,SAAQC,6BAAR,QAA4C,6BAA5C;AAGA,SAAQV,YAAY,IAAIW,kBAAxB,QAAiD,iBAAjD","sourcesContent":["// Types\nexport type {GPUTextureFormat} from './types';\nexport type {TextureLoaderOptions} from './compressed-texture-loader';\n\n// Loaders\nexport {BasisLoader, BasisWorkerLoader} from './basis-loader';\nexport {CompressedTextureLoader, CompressedTextureWorkerLoader} from './compressed-texture-loader';\nexport {CrunchLoader} from './crunch-loader';\nexport {NPYLoader, NPYWorkerLoader} from './npy-loader';\n\n// Writers\nexport {CompressedTextureWriter} from './compressed-texture-writer';\nexport {KTX2BasisUniversalTextureWriter} from './ktx2-basis-universal-texture-writer';\n\n// Texture Loading API\nexport {loadImageTexture} from './lib/texture-api/load-image';\nexport {loadImageTextureArray} from './lib/texture-api/load-image-array';\nexport {loadImageTextureCube} from './lib/texture-api/load-image-cube';\n\n// Utilities\nexport {GL_EXTENSIONS_CONSTANTS} from './lib/gl-extensions';\nexport {selectSupportedBasisFormat} from './lib/parsers/parse-basis';\nexport {getSupportedGPUTextureFormats} from './lib/utils/texture-formats';\n\n// DEPRECATED\nexport {CrunchLoader as CrunchWorkerLoader} from './crunch-loader';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VERSION } from './lib/utils/version';
|
|
2
|
+
import { encodeKTX2BasisTexture } from './lib/encoders/encode-ktx2-basis-texture';
|
|
3
|
+
export const KTX2BasisUniversalTextureWriter = {
|
|
4
|
+
name: 'Basis Universal Supercompressed GPU Texture',
|
|
5
|
+
id: 'ktx2-basis-supercompressed-texture',
|
|
6
|
+
module: 'textures',
|
|
7
|
+
version: VERSION,
|
|
8
|
+
extensions: ['ktx2'],
|
|
9
|
+
options: {
|
|
10
|
+
useSRGB: false,
|
|
11
|
+
qualityLevel: 10,
|
|
12
|
+
encodeUASTC: false,
|
|
13
|
+
mipmaps: false
|
|
14
|
+
},
|
|
15
|
+
encode: encodeKTX2BasisTexture
|
|
16
|
+
};
|
|
17
|
+
export const _TypecheckKTX2TextureWriter = KTX2BasisUniversalTextureWriter;
|
|
18
|
+
//# sourceMappingURL=ktx2-basis-universal-texture-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ktx2-basis-universal-texture-writer.ts"],"names":["VERSION","encodeKTX2BasisTexture","KTX2BasisUniversalTextureWriter","name","id","module","version","extensions","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","encode","_TypecheckKTX2TextureWriter"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,SAAQC,sBAAR,QAAqC,0CAArC;AAMA,OAAO,MAAMC,+BAA+B,GAAG;AAC7CC,EAAAA,IAAI,EAAE,6CADuC;AAE7CC,EAAAA,EAAE,EAAE,oCAFyC;AAG7CC,EAAAA,MAAM,EAAE,UAHqC;AAI7CC,EAAAA,OAAO,EAAEN,OAJoC;AAM7CO,EAAAA,UAAU,EAAE,CAAC,MAAD,CANiC;AAO7CC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE,KADF;AAEPC,IAAAA,YAAY,EAAE,EAFP;AAGPC,IAAAA,WAAW,EAAE,KAHN;AAIPC,IAAAA,OAAO,EAAE;AAJF,GAPoC;AAc7CC,EAAAA,MAAM,EAAEZ;AAdqC,CAAxC;AAkBP,OAAO,MAAMa,2BAAmC,GAAGZ,+BAA5C","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeKTX2BasisTexture} from './lib/encoders/encode-ktx2-basis-texture';\n\n/**\n * Basis Universal Supercompressed GPU Texture.\n * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md\n */\nexport const KTX2BasisUniversalTextureWriter = {\n name: 'Basis Universal Supercompressed GPU Texture',\n id: 'ktx2-basis-supercompressed-texture',\n module: 'textures',\n version: VERSION,\n\n extensions: ['ktx2'],\n options: {\n useSRGB: false,\n qualityLevel: 10,\n encodeUASTC: false,\n mipmaps: false\n },\n\n encode: encodeKTX2BasisTexture\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckKTX2TextureWriter: Writer = KTX2BasisUniversalTextureWriter;\n"],"file":"ktx2-basis-universal-texture-writer.js"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { loadBasisEncoderModule } from '../parsers/basis-module-loader';
|
|
2
|
+
export async function encodeKTX2BasisTexture(image, options = {}) {
|
|
3
|
+
const {
|
|
4
|
+
useSRGB = false,
|
|
5
|
+
qualityLevel = 10,
|
|
6
|
+
encodeUASTC = false,
|
|
7
|
+
mipmaps = false
|
|
8
|
+
} = options;
|
|
9
|
+
const {
|
|
10
|
+
BasisEncoder
|
|
11
|
+
} = await loadBasisEncoderModule(options);
|
|
12
|
+
const basisEncoder = new BasisEncoder();
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
const basisFileData = new Uint8Array(image.width * image.height * 4);
|
|
16
|
+
basisEncoder.setCreateKTX2File(true);
|
|
17
|
+
basisEncoder.setKTX2UASTCSupercompression(true);
|
|
18
|
+
basisEncoder.setKTX2SRGBTransferFunc(true);
|
|
19
|
+
basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);
|
|
20
|
+
basisEncoder.setPerceptual(useSRGB);
|
|
21
|
+
basisEncoder.setMipSRGB(useSRGB);
|
|
22
|
+
basisEncoder.setQualityLevel(qualityLevel);
|
|
23
|
+
basisEncoder.setUASTC(encodeUASTC);
|
|
24
|
+
basisEncoder.setMipGen(mipmaps);
|
|
25
|
+
const numOutputBytes = basisEncoder.encode(basisFileData);
|
|
26
|
+
const actualKTX2FileData = new Uint8Array(basisFileData.buffer, 0, numOutputBytes);
|
|
27
|
+
return actualKTX2FileData;
|
|
28
|
+
} catch (error) {
|
|
29
|
+
console.error('Basis Universal Supercompressed GPU Texture encoder Error: ', error);
|
|
30
|
+
throw error;
|
|
31
|
+
} finally {
|
|
32
|
+
basisEncoder.delete();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=encode-ktx2-basis-texture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":["loadBasisEncoderModule","encodeKTX2BasisTexture","image","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","BasisEncoder","basisEncoder","basisFileData","Uint8Array","width","height","setCreateKTX2File","setKTX2UASTCSupercompression","setKTX2SRGBTransferFunc","setSliceSourceImage","data","setPerceptual","setMipSRGB","setQualityLevel","setUASTC","setMipGen","numOutputBytes","encode","actualKTX2FileData","buffer","error","console","delete"],"mappings":"AACA,SAAQA,sBAAR,QAAqC,gCAArC;AASA,OAAO,eAAeC,sBAAf,CACLC,KADK,EAELC,OAAY,GAAG,EAFV,EAGgB;AAErB,QAAM;AAACC,IAAAA,OAAO,GAAG,KAAX;AAAkBC,IAAAA,YAAY,GAAG,EAAjC;AAAqCC,IAAAA,WAAW,GAAG,KAAnD;AAA0DC,IAAAA,OAAO,GAAG;AAApE,MAA6EJ,OAAnF;AACA,QAAM;AAACK,IAAAA;AAAD,MAAiB,MAAMR,sBAAsB,CAACG,OAAD,CAAnD;AACA,QAAMM,YAAY,GAAG,IAAID,YAAJ,EAArB;;AAEA,MAAI;AACF,UAAME,aAAa,GAAG,IAAIC,UAAJ,CAAeT,KAAK,CAACU,KAAN,GAAcV,KAAK,CAACW,MAApB,GAA6B,CAA5C,CAAtB;AACAJ,IAAAA,YAAY,CAACK,iBAAb,CAA+B,IAA/B;AACAL,IAAAA,YAAY,CAACM,4BAAb,CAA0C,IAA1C;AACAN,IAAAA,YAAY,CAACO,uBAAb,CAAqC,IAArC;AAEAP,IAAAA,YAAY,CAACQ,mBAAb,CAAiC,CAAjC,EAAoCf,KAAK,CAACgB,IAA1C,EAAgDhB,KAAK,CAACU,KAAtD,EAA6DV,KAAK,CAACW,MAAnE,EAA2E,KAA3E;AACAJ,IAAAA,YAAY,CAACU,aAAb,CAA2Bf,OAA3B;AACAK,IAAAA,YAAY,CAACW,UAAb,CAAwBhB,OAAxB;AACAK,IAAAA,YAAY,CAACY,eAAb,CAA6BhB,YAA7B;AACAI,IAAAA,YAAY,CAACa,QAAb,CAAsBhB,WAAtB;AACAG,IAAAA,YAAY,CAACc,SAAb,CAAuBhB,OAAvB;AAEA,UAAMiB,cAAc,GAAGf,YAAY,CAACgB,MAAb,CAAoBf,aAApB,CAAvB;AAEA,UAAMgB,kBAAkB,GAAG,IAAIf,UAAJ,CAAeD,aAAa,CAACiB,MAA7B,EAAqC,CAArC,EAAwCH,cAAxC,CAA3B;AACA,WAAOE,kBAAP;AACD,GAjBD,CAiBE,OAAOE,KAAP,EAAc;AAEdC,IAAAA,OAAO,CAACD,KAAR,CAAc,6DAAd,EAA6EA,KAA7E;AACA,UAAMA,KAAN;AACD,GArBD,SAqBU;AACRnB,IAAAA,YAAY,CAACqB,MAAb;AACD;AACF","sourcesContent":["import type {ImageDataType} from '@loaders.gl/images';\nimport {loadBasisEncoderModule} from '../parsers/basis-module-loader';\n\n/**\n * Encodes image to Basis Universal Supercompressed GPU Texture.\n * Code example is taken from here - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/ktx2_encode_test/index.html#L279\n * BasisEncoder API - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/transcoder/basis_wrappers.cpp#L1712\n * @param image\n * @param options\n */\nexport async function encodeKTX2BasisTexture(\n image: ImageDataType,\n options: any = {}\n): Promise<Uint8Array> {\n // TODO remove default values after writer options will be normalized like it done in load module.\n const {useSRGB = false, qualityLevel = 10, encodeUASTC = false, mipmaps = false} = options;\n const {BasisEncoder} = await loadBasisEncoderModule(options);\n const basisEncoder = new BasisEncoder();\n\n try {\n const basisFileData = new Uint8Array(image.width * image.height * 4);\n basisEncoder.setCreateKTX2File(true);\n basisEncoder.setKTX2UASTCSupercompression(true);\n basisEncoder.setKTX2SRGBTransferFunc(true);\n\n basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);\n basisEncoder.setPerceptual(useSRGB);\n basisEncoder.setMipSRGB(useSRGB);\n basisEncoder.setQualityLevel(qualityLevel);\n basisEncoder.setUASTC(encodeUASTC);\n basisEncoder.setMipGen(mipmaps);\n\n const numOutputBytes = basisEncoder.encode(basisFileData);\n\n const actualKTX2FileData = new Uint8Array(basisFileData.buffer, 0, numOutputBytes);\n return actualKTX2FileData;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Basis Universal Supercompressed GPU Texture encoder Error: ', error);\n throw error;\n } finally {\n basisEncoder.delete();\n }\n}\n"],"file":"encode-ktx2-basis-texture.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChildProcessProxy } from '@loaders.gl/worker-utils';
|
|
2
|
-
const MODULE_ROOT =
|
|
2
|
+
const MODULE_ROOT = "".concat(__dirname, "/../../..");
|
|
3
3
|
export async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl) {
|
|
4
4
|
const args = ['texture-compressor', '--type', 's3tc', '--compression', 'DXT1', '--quality', 'normal', '--input', inputUrl, '--output', outputUrl];
|
|
5
5
|
const childProcess = new ChildProcessProxy();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/encoders/encode-texture.ts"],"names":["ChildProcessProxy","MODULE_ROOT","__dirname","encodeImageURLToCompressedTextureURL","inputUrl","outputUrl","args","childProcess","start","command","arguments","spawn","cwd"],"mappings":"AAAA,SAAQA,iBAAR,QAAgC,0BAAhC;AAEA,MAAMC,WAAW,
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/encoders/encode-texture.ts"],"names":["ChildProcessProxy","MODULE_ROOT","__dirname","encodeImageURLToCompressedTextureURL","inputUrl","outputUrl","args","childProcess","start","command","arguments","spawn","cwd"],"mappings":"AAAA,SAAQA,iBAAR,QAAgC,0BAAhC;AAEA,MAAMC,WAAW,aAAMC,SAAN,cAAjB;AAKA,OAAO,eAAeC,oCAAf,CAAoDC,QAApD,EAA8DC,SAA9D,EAAyE;AAE9E,QAAMC,IAAI,GAAG,CAEX,oBAFW,EAGX,QAHW,EAGD,MAHC,EAIX,eAJW,EAIM,MAJN,EAKX,WALW,EAKE,QALF,EAMX,SANW,EAMAF,QANA,EAOX,UAPW,EAOCC,SAPD,CAAb;AASA,QAAME,YAAY,GAAG,IAAIP,iBAAJ,EAArB;AACA,QAAMO,YAAY,CAACC,KAAb,CAAmB;AACvBC,IAAAA,OAAO,EAAE,KADc;AAEvBC,IAAAA,SAAS,EAAEJ,IAFY;AAGvBK,IAAAA,KAAK,EAAE;AACLC,MAAAA,GAAG,EAAEX;AADA;AAHgB,GAAnB,CAAN;AAOA,SAAOI,SAAP;AACD","sourcesContent":["import {ChildProcessProxy} from '@loaders.gl/worker-utils';\n\nconst MODULE_ROOT = `${__dirname}/../../..`;\n\n/*\n * @see https://github.com/TimvanScherpenzeel/texture-compressor\n */\nexport async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl) {\n // prettier-ignore\n const args = [\n // Note: our actual executable is `npx`, so `texture-compressor` is an argument\n 'texture-compressor',\n '--type', 's3tc',\n '--compression', 'DXT1',\n '--quality', 'normal',\n '--input', inputUrl,\n '--output', outputUrl\n ];\n const childProcess = new ChildProcessProxy();\n await childProcess.start({\n command: 'npx',\n arguments: args,\n spawn: {\n cwd: MODULE_ROOT\n }\n });\n return outputUrl;\n}\n"],"file":"encode-texture.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const GL_EXTENSIONS_CONSTANTS = {
|
|
2
2
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,
|
|
3
3
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,
|
|
4
4
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,
|
|
@@ -58,4 +58,4 @@ export const GL = {
|
|
|
58
58
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,
|
|
59
59
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=gl-
|
|
61
|
+
//# sourceMappingURL=gl-extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/gl-extensions.ts"],"names":["GL_EXTENSIONS_CONSTANTS","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","COMPRESSED_RGBA_ASTC_4X4_KHR","COMPRESSED_RGBA_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5X5_KHR","COMPRESSED_RGBA_ASTC_6X5_KHR","COMPRESSED_RGBA_ASTC_6X6_KHR","COMPRESSED_RGBA_ASTC_8X5_KHR","COMPRESSED_RGBA_ASTC_8X6_KHR","COMPRESSED_RGBA_ASTC_8X8_KHR","COMPRESSED_RGBA_ASTC_10X5_KHR","COMPRESSED_RGBA_ASTC_10X6_KHR","COMPRESSED_RGBA_ASTC_10X8_KHR","COMPRESSED_RGBA_ASTC_10X10_KHR","COMPRESSED_RGBA_ASTC_12X10_KHR","COMPRESSED_RGBA_ASTC_12X12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"],"mappings":"AACA,OAAO,MAAMA,uBAAuB,GAAG;AAGrCC,EAAAA,4BAA4B,EAAE,MAHO;AAIrCC,EAAAA,6BAA6B,EAAE,MAJM;AAKrCC,EAAAA,6BAA6B,EAAE,MALM;AAMrCC,EAAAA,6BAA6B,EAAE,MANM;AAUrCC,EAAAA,kBAAkB,EAAE,MAViB;AAWrCC,EAAAA,yBAAyB,EAAE,MAXU;AAYrCC,EAAAA,mBAAmB,EAAE,MAZgB;AAarCC,EAAAA,0BAA0B,EAAE,MAbS;AAcrCC,EAAAA,oBAAoB,EAAE,MAde;AAerCC,EAAAA,yBAAyB,EAAE,MAfU;AAgBrCC,EAAAA,qBAAqB,EAAE,MAhBc;AAiBrCC,EAAAA,gCAAgC,EAAE,MAjBG;AAkBrCC,EAAAA,wCAAwC,EAAE,MAlBL;AAmBrCC,EAAAA,yCAAyC,EAAE,MAnBN;AAuBrCC,EAAAA,+BAA+B,EAAE,MAvBI;AAwBrCC,EAAAA,gCAAgC,EAAE,MAxBG;AAyBrCC,EAAAA,+BAA+B,EAAE,MAzBI;AA0BrCC,EAAAA,gCAAgC,EAAE,MA1BG;AA8BrCC,EAAAA,yBAAyB,EAAE,MA9BU;AAkCrCC,EAAAA,wBAAwB,EAAE,MAlCW;AAmCrCC,EAAAA,wCAAwC,EAAE,MAnCL;AAoCrCC,EAAAA,4CAA4C,EAAE,MApCT;AAwCrCC,EAAAA,4BAA4B,EAAE,MAxCO;AAyCrCC,EAAAA,4BAA4B,EAAE,MAzCO;AA0CrCC,EAAAA,4BAA4B,EAAE,MA1CO;AA2CrCC,EAAAA,4BAA4B,EAAE,MA3CO;AA4CrCC,EAAAA,4BAA4B,EAAE,MA5CO;AA6CrCC,EAAAA,4BAA4B,EAAE,MA7CO;AA8CrCC,EAAAA,4BAA4B,EAAE,MA9CO;AA+CrCC,EAAAA,4BAA4B,EAAE,MA/CO;AAgDrCC,EAAAA,6BAA6B,EAAE,MAhDM;AAiDrCC,EAAAA,6BAA6B,EAAE,MAjDM;AAkDrCC,EAAAA,6BAA6B,EAAE,MAlDM;AAmDrCC,EAAAA,8BAA8B,EAAE,MAnDK;AAoDrCC,EAAAA,8BAA8B,EAAE,MApDK;AAqDrCC,EAAAA,8BAA8B,EAAE,MArDK;AAsDrCC,EAAAA,oCAAoC,EAAE,MAtDD;AAuDrCC,EAAAA,oCAAoC,EAAE,MAvDD;AAwDrCC,EAAAA,oCAAoC,EAAE,MAxDD;AAyDrCC,EAAAA,oCAAoC,EAAE,MAzDD;AA0DrCC,EAAAA,oCAAoC,EAAE,MA1DD;AA2DrCC,EAAAA,oCAAoC,EAAE,MA3DD;AA4DrCC,EAAAA,oCAAoC,EAAE,MA5DD;AA6DrCC,EAAAA,oCAAoC,EAAE,MA7DD;AA8DrCC,EAAAA,qCAAqC,EAAE,MA9DF;AA+DrCC,EAAAA,qCAAqC,EAAE,MA/DF;AAgErCC,EAAAA,qCAAqC,EAAE,MAhEF;AAiErCC,EAAAA,sCAAsC,EAAE,MAjEH;AAkErCC,EAAAA,sCAAsC,EAAE,MAlEH;AAmErCC,EAAAA,sCAAsC,EAAE,MAnEH;AAuErCC,EAAAA,wBAAwB,EAAE,MAvEW;AAwErCC,EAAAA,+BAA+B,EAAE,MAxEI;AAyErCC,EAAAA,8BAA8B,EAAE,MAzEK;AA0ErCC,EAAAA,qCAAqC,EAAE,MA1EF;AA8ErCC,EAAAA,6BAA6B,EAAE,MA9EM;AA+ErCC,EAAAA,mCAAmC,EAAE,MA/EA;AAgFrCC,EAAAA,mCAAmC,EAAE,MAhFA;AAiFrCC,EAAAA,mCAAmC,EAAE;AAjFA,CAAhC","sourcesContent":["/* eslint-disable camelcase */\nexport const GL_EXTENSIONS_CONSTANTS = {\n // WEBGL_compressed_texture_s3tc\n\n COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,\n COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,\n COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,\n COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83f3,\n\n // WEBGL_compressed_texture_es3\n\n COMPRESSED_R11_EAC: 0x9270,\n COMPRESSED_SIGNED_R11_EAC: 0x9271,\n COMPRESSED_RG11_EAC: 0x9272,\n COMPRESSED_SIGNED_RG11_EAC: 0x9273,\n COMPRESSED_RGB8_ETC2: 0x9274,\n COMPRESSED_RGBA8_ETC2_EAC: 0x9275,\n COMPRESSED_SRGB8_ETC2: 0x9276,\n COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9277,\n COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9278,\n COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9279,\n\n // WEBGL_compressed_texture_pvrtc\n\n COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8c00,\n COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8c02,\n COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8c01,\n COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8c03,\n\n // WEBGL_compressed_texture_etc1\n\n COMPRESSED_RGB_ETC1_WEBGL: 0x8d64,\n\n // WEBGL_compressed_texture_atc\n\n COMPRESSED_RGB_ATC_WEBGL: 0x8c92,\n COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 0x8c93,\n COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 0x87ee,\n\n // WEBGL_compressed_texture_astc\n\n COMPRESSED_RGBA_ASTC_4X4_KHR: 0x93b0,\n COMPRESSED_RGBA_ASTC_5X4_KHR: 0x93b1,\n COMPRESSED_RGBA_ASTC_5X5_KHR: 0x93b2,\n COMPRESSED_RGBA_ASTC_6X5_KHR: 0x93b3,\n COMPRESSED_RGBA_ASTC_6X6_KHR: 0x93b4,\n COMPRESSED_RGBA_ASTC_8X5_KHR: 0x93b5,\n COMPRESSED_RGBA_ASTC_8X6_KHR: 0x93b6,\n COMPRESSED_RGBA_ASTC_8X8_KHR: 0x93b7,\n COMPRESSED_RGBA_ASTC_10X5_KHR: 0x93b8,\n COMPRESSED_RGBA_ASTC_10X6_KHR: 0x93b9,\n COMPRESSED_RGBA_ASTC_10X8_KHR: 0x93ba,\n COMPRESSED_RGBA_ASTC_10X10_KHR: 0x93bb,\n COMPRESSED_RGBA_ASTC_12X10_KHR: 0x93bc,\n COMPRESSED_RGBA_ASTC_12X12_KHR: 0x93bd,\n COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 0x93d0,\n COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 0x93d1,\n COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 0x93d2,\n COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 0x93d3,\n COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 0x93d4,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 0x93d5,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 0x93d6,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 0x93d7,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 0x93d8,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 0x93d9,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 0x93da,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 0x93db,\n COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 0x93dc,\n COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 0x93dd,\n\n // EXT_texture_compression_rgtc\n\n COMPRESSED_RED_RGTC1_EXT: 0x8dbb,\n COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8dbc,\n COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8dbd,\n COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8dbe,\n\n // WEBGL_compressed_texture_s3tc_srgb\n\n COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8c4c,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8c4d,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f\n};\n"],"file":"gl-extensions.js"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
const VERSION = typeof "3.1.0-beta.3" !== 'undefined' ? "3.1.0-beta.3" : 'beta';
|
|
1
2
|
import { loadLibrary } from '@loaders.gl/worker-utils';
|
|
3
|
+
const BASIS_CDN_ENCODER_WASM = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.wasm");
|
|
4
|
+
const BASIS_CDN_ENCODER_JS = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.js");
|
|
2
5
|
let loadBasisTranscoderPromise;
|
|
3
6
|
export async function loadBasisTrascoderModule(options) {
|
|
4
7
|
const modules = options.modules || {};
|
|
@@ -55,7 +58,7 @@ export async function loadBasisEncoderModule(options) {
|
|
|
55
58
|
async function loadBasisEncoder(options) {
|
|
56
59
|
let BASIS_ENCODER = null;
|
|
57
60
|
let wasmBinary = null;
|
|
58
|
-
[BASIS_ENCODER, wasmBinary] = await Promise.all([await loadLibrary(
|
|
61
|
+
[BASIS_ENCODER, wasmBinary] = await Promise.all([await loadLibrary(BASIS_CDN_ENCODER_JS, 'textures', options), await loadLibrary(BASIS_CDN_ENCODER_WASM, 'textures', options)]);
|
|
59
62
|
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
60
63
|
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
61
64
|
}
|
|
@@ -72,12 +75,14 @@ function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
|
|
|
72
75
|
const {
|
|
73
76
|
BasisFile,
|
|
74
77
|
KTX2File,
|
|
75
|
-
initializeBasis
|
|
78
|
+
initializeBasis,
|
|
79
|
+
BasisEncoder
|
|
76
80
|
} = module;
|
|
77
81
|
initializeBasis();
|
|
78
82
|
resolve({
|
|
79
83
|
BasisFile,
|
|
80
|
-
KTX2File
|
|
84
|
+
KTX2File,
|
|
85
|
+
BasisEncoder
|
|
81
86
|
});
|
|
82
87
|
});
|
|
83
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/parsers/basis-module-loader.ts"],"names":["loadLibrary","loadBasisTranscoderPromise","loadBasisTrascoderModule","options","modules","basis","loadBasisTrascoder","BASIS","wasmBinary","Promise","all","globalThis","initializeBasisTrascoderModule","BasisModule","resolve","then","module","BasisFile","initializeBasis","loadBasisEncoderPromise","loadBasisEncoderModule","basisEncoder","loadBasisEncoder","BASIS_ENCODER","initializeBasisEncoderModule","BasisEncoderModule","KTX2File"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/parsers/basis-module-loader.ts"],"names":["VERSION","loadLibrary","BASIS_CDN_ENCODER_WASM","BASIS_CDN_ENCODER_JS","loadBasisTranscoderPromise","loadBasisTrascoderModule","options","modules","basis","loadBasisTrascoder","BASIS","wasmBinary","Promise","all","globalThis","initializeBasisTrascoderModule","BasisModule","resolve","then","module","BasisFile","initializeBasis","loadBasisEncoderPromise","loadBasisEncoderModule","basisEncoder","loadBasisEncoder","BASIS_ENCODER","initializeBasisEncoderModule","BasisEncoderModule","KTX2File","BasisEncoder"],"mappings":"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","sourcesContent":["// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';\n\n// @ts-nocheck\nimport {loadLibrary} from '@loaders.gl/worker-utils';\n\nconst BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION}/dist/libs/basis_encoder.wasm`;\nconst BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION}/dist/libs/basis_encoder.js`;\n\nlet loadBasisTranscoderPromise;\n\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nexport async function loadBasisTrascoderModule(options) {\n const modules = options.modules || {};\n if (modules.basis) {\n return modules.basis;\n }\n\n loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTrascoder(options);\n return await loadBasisTranscoderPromise;\n}\n\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nasync function loadBasisTrascoder(options) {\n let BASIS = null;\n let wasmBinary = null;\n\n [BASIS, wasmBinary] = await Promise.all([\n await loadLibrary('basis_transcoder.js', 'textures', options),\n await loadLibrary('basis_transcoder.wasm', 'textures', options)\n ]);\n\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n BASIS = BASIS || globalThis.BASIS;\n return await initializeBasisTrascoderModule(BASIS, wasmBinary);\n}\n\n/**\n * Initialize wasm transcoder module\n * @param BasisModule - js part of the module\n * @param wasmBinary - wasm part of the module\n * @returns {BasisFile} promise\n */\nfunction initializeBasisTrascoderModule(BasisModule, wasmBinary) {\n const options: {wasmBinary?} = {};\n\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n\n return new Promise((resolve) => {\n // if you try to return BasisModule the browser crashes!\n BasisModule(options).then((module) => {\n const {BasisFile, initializeBasis} = module;\n initializeBasis();\n resolve({BasisFile});\n });\n });\n}\n\nlet loadBasisEncoderPromise;\n\n/**\n * Loads wasm encoder module\n * @param options\n * @returns {BasisFile, KTX2File} promise\n */\nexport async function loadBasisEncoderModule(options) {\n const modules = options.modules || {};\n if (modules.basisEncoder) {\n return modules.basisEncoder;\n }\n\n loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);\n return await loadBasisEncoderPromise;\n}\n\n/**\n * Loads wasm encoder module\n * @param options\n * @returns {BasisFile, KTX2File} promise\n */\nasync function loadBasisEncoder(options) {\n let BASIS_ENCODER = null;\n let wasmBinary = null;\n\n [BASIS_ENCODER, wasmBinary] = await Promise.all([\n await loadLibrary(BASIS_CDN_ENCODER_JS, 'textures', options),\n await loadLibrary(BASIS_CDN_ENCODER_WASM, 'textures', options)\n ]);\n\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;\n return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);\n}\n\n/**\n * Initialize wasm transcoder module\n * @param BasisEncoderModule - js part of the module\n * @param wasmBinary - wasm part of the module\n * @returns {BasisFile, KTX2File} promise\n */\nfunction initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {\n const options: {wasmBinary?} = {};\n\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n\n return new Promise((resolve) => {\n // if you try to return BasisModule the browser crashes!\n BasisEncoderModule(options).then((module) => {\n const {BasisFile, KTX2File, initializeBasis, BasisEncoder} = module;\n initializeBasis();\n resolve({BasisFile, KTX2File, BasisEncoder});\n });\n });\n}\n"],"file":"basis-module-loader.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/parsers/crunch-module-loader.ts"],"names":["loadLibrary","loadCrunchModule","options","modules","crunch","loadCrunch","crunchModule","loadCrunchDecoder","globalThis"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/parsers/crunch-module-loader.ts"],"names":["loadLibrary","loadCrunchModule","options","modules","crunch","loadCrunch","crunchModule","loadCrunchDecoder","globalThis"],"mappings":"AACA,SAAQA,WAAR,QAA0B,0BAA1B;AAOA,OAAO,eAAeC,gBAAf,CAAgCC,OAAhC,EAAuD;AAC5D,QAAMC,OAAO,GAAGD,OAAO,CAACC,OAAR,IAAmB,EAAnC;;AACA,MAAIA,OAAO,CAACC,MAAZ,EAAoB;AAClB,WAAOD,OAAO,CAACC,MAAf;AACD;;AAED,SAAOC,UAAU,CAACH,OAAD,CAAjB;AACD;AAED,IAAII,YAAJ;;AAOA,eAAeD,UAAf,CAA0BH,OAA1B,EAAmC;AACjC,MAAII,YAAJ,EAAkB;AAChB,WAAOA,YAAP;AACD;;AAED,MAAIC,iBAAiB,GAAG,MAAMP,WAAW,CAAC,WAAD,EAAc,UAAd,EAA0BE,OAA1B,CAAzC;AAIAK,EAAAA,iBAAiB,GAAGA,iBAAiB,IAAIC,UAAU,CAACD,iBAApD;AACAD,EAAAA,YAAY,GAAGC,iBAAiB,EAAhC;AACA,SAAOD,YAAP;AACD","sourcesContent":["// @ts-nocheck\nimport {loadLibrary} from '@loaders.gl/worker-utils';\n\n/**\n * Load crunch decoder module\n * @param options - loader options\n * @returns Promise of module object\n */\nexport async function loadCrunchModule(options): Promise<any> {\n const modules = options.modules || {};\n if (modules.crunch) {\n return modules.crunch;\n }\n\n return loadCrunch(options);\n}\n\nlet crunchModule;\n\n/**\n * Load crunch decoder module\n * @param {any} options - Loader options\n * @returns {Promise<any>} Promise of Module object\n */\nasync function loadCrunch(options) {\n if (crunchModule) {\n return crunchModule;\n }\n\n let loadCrunchDecoder = await loadLibrary('crunch.js', 'textures', options);\n\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n loadCrunchDecoder = loadCrunchDecoder || globalThis.loadCrunchDecoder;\n crunchModule = loadCrunchDecoder();\n return crunchModule;\n}\n"],"file":"crunch-module-loader.js"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { loadBasisEncoderModule, loadBasisTrascoderModule } from './basis-module-loader';
|
|
2
|
-
import {
|
|
3
|
-
import { getSupportedGPUTextureFormats } from '
|
|
2
|
+
import { GL_EXTENSIONS_CONSTANTS } from '../gl-extensions';
|
|
3
|
+
import { getSupportedGPUTextureFormats } from '../utils/texture-formats';
|
|
4
4
|
import { isKTX } from './parse-ktx';
|
|
5
5
|
const OutputFormat = {
|
|
6
6
|
etc1: {
|
|
7
7
|
basisFormat: 0,
|
|
8
8
|
compressed: true,
|
|
9
|
-
format:
|
|
9
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
10
10
|
},
|
|
11
11
|
etc2: {
|
|
12
12
|
basisFormat: 1,
|
|
@@ -15,12 +15,12 @@ const OutputFormat = {
|
|
|
15
15
|
bc1: {
|
|
16
16
|
basisFormat: 2,
|
|
17
17
|
compressed: true,
|
|
18
|
-
format:
|
|
18
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
19
19
|
},
|
|
20
20
|
bc3: {
|
|
21
21
|
basisFormat: 3,
|
|
22
22
|
compressed: true,
|
|
23
|
-
format:
|
|
23
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
24
24
|
},
|
|
25
25
|
bc4: {
|
|
26
26
|
basisFormat: 4,
|
|
@@ -41,17 +41,17 @@ const OutputFormat = {
|
|
|
41
41
|
'pvrtc1-4-rgb': {
|
|
42
42
|
basisFormat: 8,
|
|
43
43
|
compressed: true,
|
|
44
|
-
format:
|
|
44
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
45
45
|
},
|
|
46
46
|
'pvrtc1-4-rgba': {
|
|
47
47
|
basisFormat: 9,
|
|
48
48
|
compressed: true,
|
|
49
|
-
format:
|
|
49
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
50
50
|
},
|
|
51
51
|
'astc-4x4': {
|
|
52
52
|
basisFormat: 10,
|
|
53
53
|
compressed: true,
|
|
54
|
-
format:
|
|
54
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
55
55
|
},
|
|
56
56
|
'atc-rgb': {
|
|
57
57
|
basisFormat: 11,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/parsers/parse-basis.js"],"names":["loadBasisEncoderModule","loadBasisTrascoderModule","GL","getSupportedGPUTextureFormats","isKTX","OutputFormat","etc1","basisFormat","compressed","format","COMPRESSED_RGB_ETC1_WEBGL","etc2","bc1","COMPRESSED_RGB_S3TC_DXT1_EXT","bc3","COMPRESSED_RGBA_S3TC_DXT5_EXT","bc4","bc5","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_ASTC_4X4_KHR","rgba32","rgb565","bgr565","rgba4444","parseBasis","data","options","basis","containerFormat","fileConstructors","parseKTX2File","KTX2File","BasisFile","parseBasisFile","module","basisFile","Uint8Array","startTranscoding","imageCount","getNumImages","images","imageIndex","levelsCount","getNumLevels","levels","levelIndex","push","transcodeImage","close","delete","width","getImageWidth","height","getImageHeight","hasAlpha","getHasAlpha","getBasisOptions","decodedSize","getImageTranscodedSizeInBytes","decodedData","ktx2File","getLevels","transcodeKTX2Image","alphaFlag","getImageLevelInfo","selectSupportedBasisFormat","alpha","noAlpha","toLowerCase","supportedFormats","has"],"mappings":"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","sourcesContent":["import {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';\nimport {GL} from '../gl-constants';\nimport {getSupportedGPUTextureFormats} from '../..';\nimport {isKTX} from './parse-ktx';\n\nconst OutputFormat = {\n etc1: {basisFormat: 0, compressed: true, format: GL.COMPRESSED_RGB_ETC1_WEBGL},\n etc2: {basisFormat: 1, compressed: true},\n bc1: {basisFormat: 2, compressed: true, format: GL.COMPRESSED_RGB_S3TC_DXT1_EXT},\n bc3: {basisFormat: 3, compressed: true, format: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT},\n bc4: {basisFormat: 4, compressed: true},\n bc5: {basisFormat: 5, compressed: true},\n 'bc7-m6-opaque-only': {basisFormat: 6, compressed: true},\n 'bc7-m5': {basisFormat: 7, compressed: true},\n 'pvrtc1-4-rgb': {basisFormat: 8, compressed: true, format: GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},\n 'pvrtc1-4-rgba': {basisFormat: 9, compressed: true, format: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},\n 'astc-4x4': {basisFormat: 10, compressed: true, format: GL.COMPRESSED_RGBA_ASTC_4X4_KHR},\n 'atc-rgb': {basisFormat: 11, compressed: true},\n 'atc-rgba-interpolated-alpha': {basisFormat: 12, compressed: true},\n rgba32: {basisFormat: 13, compressed: false},\n rgb565: {basisFormat: 14, compressed: false},\n bgr565: {basisFormat: 15, compressed: false},\n rgba4444: {basisFormat: 16, compressed: false}\n};\n\n/**\n * parse data with a Binomial Basis_Universal module\n * @param {ArrayBuffer} data\n * @param {*} options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data, options) {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n\n/**\n * Parse *.basis file data\n * @param {*} BasisFile - initialized transcoder module\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options) {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n return null;\n }\n\n const imageCount = basisFile.getNumImages();\n const images = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n\n images.push(levels);\n }\n\n return images;\n } finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n\n/**\n * Parse the particular level image of a basis file\n * @param {*} basisFile\n * @param {*} imageIndex\n * @param {*} levelIndex\n * @param {*} options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options) {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha(/* imageIndex, levelIndex */);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, hasAlpha);\n\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha,\n format\n };\n}\n\n/**\n * Parse *.ktx2 file data\n * @param {*} KTX2File\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data, options) {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n return null;\n }\n const levelsCount = ktx2File.getLevels();\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n\n return levels;\n } finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n\n/**\n * Parse the particular level image of a ktx2 file\n * @param {*} ktx2File\n * @param {*} levelIndex\n * @param {*} options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex, options) {\n const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, alphaFlag);\n\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat\n );\n const decodedData = new Uint8Array(decodedSize);\n\n if (\n !ktx2File.transcodeImage(\n decodedData,\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat,\n 0,\n -1 /* channel0 */,\n -1 /* channel1 */\n )\n ) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n alphaFlag,\n format\n };\n}\n\n/**\n * Get BasisFormat by loader format option\n * @param {*} options\n * @param {*} hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha) {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat() {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n } else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n } else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n } else if (supportedFormats.has('etc1')) {\n return 'etc1';\n } else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n"],"file":"parse-basis.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/parsers/parse-basis.js"],"names":["loadBasisEncoderModule","loadBasisTrascoderModule","GL_EXTENSIONS_CONSTANTS","getSupportedGPUTextureFormats","isKTX","OutputFormat","etc1","basisFormat","compressed","format","COMPRESSED_RGB_ETC1_WEBGL","etc2","bc1","COMPRESSED_RGB_S3TC_DXT1_EXT","bc3","COMPRESSED_RGBA_S3TC_DXT5_EXT","bc4","bc5","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_ASTC_4X4_KHR","rgba32","rgb565","bgr565","rgba4444","parseBasis","data","options","basis","containerFormat","fileConstructors","parseKTX2File","KTX2File","BasisFile","parseBasisFile","module","basisFile","Uint8Array","startTranscoding","imageCount","getNumImages","images","imageIndex","levelsCount","getNumLevels","levels","levelIndex","push","transcodeImage","close","delete","width","getImageWidth","height","getImageHeight","hasAlpha","getHasAlpha","getBasisOptions","decodedSize","getImageTranscodedSizeInBytes","decodedData","ktx2File","getLevels","transcodeKTX2Image","alphaFlag","getImageLevelInfo","selectSupportedBasisFormat","alpha","noAlpha","toLowerCase","supportedFormats","has"],"mappings":"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","sourcesContent":["import {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';\nimport {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\nimport {getSupportedGPUTextureFormats} from '../utils/texture-formats';\nimport {isKTX} from './parse-ktx';\n\nconst OutputFormat = {\n etc1: {\n basisFormat: 0,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL\n },\n etc2: {basisFormat: 1, compressed: true},\n bc1: {\n basisFormat: 2,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT\n },\n bc3: {\n basisFormat: 3,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT\n },\n bc4: {basisFormat: 4, compressed: true},\n bc5: {basisFormat: 5, compressed: true},\n 'bc7-m6-opaque-only': {basisFormat: 6, compressed: true},\n 'bc7-m5': {basisFormat: 7, compressed: true},\n 'pvrtc1-4-rgb': {\n basisFormat: 8,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG\n },\n 'pvrtc1-4-rgba': {\n basisFormat: 9,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\n },\n 'astc-4x4': {\n basisFormat: 10,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR\n },\n 'atc-rgb': {basisFormat: 11, compressed: true},\n 'atc-rgba-interpolated-alpha': {basisFormat: 12, compressed: true},\n rgba32: {basisFormat: 13, compressed: false},\n rgb565: {basisFormat: 14, compressed: false},\n bgr565: {basisFormat: 15, compressed: false},\n rgba4444: {basisFormat: 16, compressed: false}\n};\n\n/**\n * parse data with a Binomial Basis_Universal module\n * @param {ArrayBuffer} data\n * @param {*} options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data, options) {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n\n/**\n * Parse *.basis file data\n * @param {*} BasisFile - initialized transcoder module\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options) {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n return null;\n }\n\n const imageCount = basisFile.getNumImages();\n const images = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n\n images.push(levels);\n }\n\n return images;\n } finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n\n/**\n * Parse the particular level image of a basis file\n * @param {*} basisFile\n * @param {*} imageIndex\n * @param {*} levelIndex\n * @param {*} options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options) {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha(/* imageIndex, levelIndex */);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, hasAlpha);\n\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha,\n format\n };\n}\n\n/**\n * Parse *.ktx2 file data\n * @param {*} KTX2File\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data, options) {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n return null;\n }\n const levelsCount = ktx2File.getLevels();\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n\n return levels;\n } finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n\n/**\n * Parse the particular level image of a ktx2 file\n * @param {*} ktx2File\n * @param {*} levelIndex\n * @param {*} options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex, options) {\n const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, alphaFlag);\n\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat\n );\n const decodedData = new Uint8Array(decodedSize);\n\n if (\n !ktx2File.transcodeImage(\n decodedData,\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat,\n 0,\n -1 /* channel0 */,\n -1 /* channel1 */\n )\n ) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n alphaFlag,\n format\n };\n}\n\n/**\n * Get BasisFormat by loader format option\n * @param {*} options\n * @param {*} hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha) {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat() {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n } else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n } else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n } else if (supportedFormats.has('etc1')) {\n return 'etc1';\n } else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n"],"file":"parse-basis.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { loadCrunchModule } from './crunch-module-loader';
|
|
2
|
-
import {
|
|
2
|
+
import { GL_EXTENSIONS_CONSTANTS } from '../gl-extensions';
|
|
3
3
|
import { assert } from '@loaders.gl/loader-utils';
|
|
4
4
|
import { getDxt1LevelSize, getDxtXLevelSize } from './parse-dds';
|
|
5
5
|
import { extractMipmapImages } from '../utils/extract-mipmap-images';
|
|
@@ -11,15 +11,15 @@ const CRN_FORMAT = {
|
|
|
11
11
|
};
|
|
12
12
|
const DXT_FORMAT_MAP = {};
|
|
13
13
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = {
|
|
14
|
-
pixelFormat:
|
|
14
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
15
15
|
sizeFunction: getDxt1LevelSize
|
|
16
16
|
};
|
|
17
17
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = {
|
|
18
|
-
pixelFormat:
|
|
18
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
19
19
|
sizeFunction: getDxtXLevelSize
|
|
20
20
|
};
|
|
21
21
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = {
|
|
22
|
-
pixelFormat:
|
|
22
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
23
23
|
sizeFunction: getDxtXLevelSize
|
|
24
24
|
};
|
|
25
25
|
let cachedDstSize = 0;
|