@loaders.gl/textures 4.0.0-alpha.4 → 4.0.0-alpha.5
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-worker.js +116 -60
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/compressed-texture-loader.d.ts +49 -0
- package/dist/compressed-texture-loader.d.ts.map +1 -0
- package/dist/compressed-texture-loader.js +1 -1
- package/dist/compressed-texture-loader.js.map +1 -1
- package/dist/compressed-texture-worker.js +221 -123
- package/dist/compressed-texture-writer.d.ts +25 -0
- package/dist/compressed-texture-writer.d.ts.map +1 -0
- package/dist/crunch-loader.d.ts +21 -0
- package/dist/crunch-loader.d.ts.map +1 -0
- package/dist/crunch-worker.js +59 -26
- package/dist/dist.min.js +2123 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- 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/lib/encoders/encode-ktx.d.ts +2 -0
- package/dist/lib/encoders/encode-ktx.d.ts.map +1 -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 +1 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/lib/encoders/encode-texture.d.ts +4 -0
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-texture.js +2 -5
- package/dist/lib/encoders/encode-texture.js.map +1 -1
- package/dist/lib/gl-extensions.d.ts +61 -0
- package/dist/lib/gl-extensions.d.ts.map +1 -0
- package/dist/lib/{gl-constants.js → gl-extensions.js} +2 -2
- package/dist/lib/gl-extensions.js.map +1 -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 +1 -1
- 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 +1 -1
- package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/lib/parsers/parse-basis.d.ts +18 -0
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -0
- package/dist/lib/parsers/parse-basis.js +16 -16
- package/dist/lib/parsers/parse-basis.js.map +1 -1
- 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.map +1 -1
- 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 +14 -13
- package/dist/lib/parsers/parse-crunch.js.map +1 -1
- 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 +7 -7
- package/dist/lib/parsers/parse-dds.js.map +1 -1
- package/dist/lib/parsers/parse-ktx.d.ts +4 -0
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -0
- package/dist/lib/parsers/parse-ktx.js.map +1 -1
- 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.map +1 -1
- 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 +28 -28
- package/dist/lib/parsers/parse-pvr.js.map +1 -1
- 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/deep-load.d.ts +5 -0
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -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/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-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.d.ts +8 -0
- package/dist/lib/texture-api/load-image.d.ts.map +1 -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/utils/extract-mipmap-images.d.ts +20 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -0
- package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
- 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 +67 -67
- package/dist/lib/utils/ktx-format-helper.js.map +1 -1
- 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.map +1 -1
- 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 +1 -1
- 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/libs/libs/README.md +9 -0
- package/dist/libs/libs/basis_encoder.js +22 -0
- package/dist/libs/libs/basis_encoder.wasm +0 -0
- package/dist/libs/libs/basis_transcoder.js +21 -0
- package/dist/libs/libs/basis_transcoder.wasm +0 -0
- package/dist/libs/libs/crunch.js +136 -0
- package/dist/npy-loader.d.ts +45 -0
- package/dist/npy-loader.d.ts.map +1 -0
- package/dist/npy-worker.js +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -1
- package/dist/workers/basis-worker.d.ts +2 -0
- package/dist/workers/basis-worker.d.ts.map +1 -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/crunch-worker.d.ts +21 -0
- package/dist/workers/crunch-worker.d.ts.map +1 -0
- package/dist/workers/npy-worker.d.ts +2 -0
- package/dist/workers/npy-worker.d.ts.map +1 -0
- package/package.json +12 -11
- package/src/compressed-texture-loader.ts +1 -1
- package/src/index.ts +2 -2
- package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -2
- package/src/lib/encoders/encode-texture.ts +6 -6
- package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
- package/src/lib/parsers/crunch-module-loader.ts +1 -1
- package/src/lib/parsers/{parse-basis.js → parse-basis.ts} +100 -44
- package/src/lib/parsers/parse-compressed-texture.ts +1 -1
- package/src/lib/parsers/parse-crunch.ts +16 -15
- package/src/lib/parsers/parse-dds.ts +8 -8
- package/src/lib/parsers/parse-ktx.ts +2 -1
- package/src/lib/parsers/parse-npy.ts +2 -0
- package/src/lib/parsers/parse-pvr.ts +72 -29
- package/src/lib/utils/extract-mipmap-images.ts +9 -1
- package/src/lib/utils/ktx-format-helper.ts +67 -67
- package/src/lib/utils/texture-formats.ts +1 -1
- 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/types.ts +0 -30
- package/dist/lib/gl-constants.js.map +0 -1
- package/src/lib/parsers/parse-ktx.js +0 -45
- package/src/lib/parsers/parse-npy.js +0 -96
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type { GPUTextureFormat } from '@loaders.gl/schema';
|
|
2
|
+
export type { TextureLoaderOptions } from './compressed-texture-loader';
|
|
3
|
+
export { BasisLoader, BasisWorkerLoader } from './basis-loader';
|
|
4
|
+
export { CompressedTextureLoader, CompressedTextureWorkerLoader } from './compressed-texture-loader';
|
|
5
|
+
export { CrunchLoader } from './crunch-loader';
|
|
6
|
+
export { NPYLoader, NPYWorkerLoader } from './npy-loader';
|
|
7
|
+
export { CompressedTextureWriter } from './compressed-texture-writer';
|
|
8
|
+
export { KTX2BasisUniversalTextureWriter } from './ktx2-basis-universal-texture-writer';
|
|
9
|
+
export { loadImageTexture } from './lib/texture-api/load-image';
|
|
10
|
+
export { loadImageTextureArray } from './lib/texture-api/load-image-array';
|
|
11
|
+
export { loadImageTextureCube } from './lib/texture-api/load-image-cube';
|
|
12
|
+
export { GL_EXTENSIONS_CONSTANTS } from './lib/gl-extensions';
|
|
13
|
+
export { selectSupportedBasisFormat } from './lib/parsers/parse-basis';
|
|
14
|
+
export { getSupportedGPUTextureFormats } from './lib/utils/texture-formats';
|
|
15
|
+
export { CrunchLoader as CrunchWorkerLoader } from './crunch-loader';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAGtE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAE,6BAA6B,EAAC,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,+BAA+B,EAAC,MAAM,uCAAuC,CAAC;AAGtF,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AAGvE,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAC,6BAA6B,EAAC,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EAAC,YAAY,IAAI,kBAAkB,EAAC,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export { KTX2BasisUniversalTextureWriter } from './ktx2-basis-universal-texture-
|
|
|
7
7
|
export { loadImageTexture } from './lib/texture-api/load-image';
|
|
8
8
|
export { loadImageTextureArray } from './lib/texture-api/load-image-array';
|
|
9
9
|
export { loadImageTextureCube } from './lib/texture-api/load-image-cube';
|
|
10
|
-
export {
|
|
10
|
+
export { GL_EXTENSIONS_CONSTANTS } from './lib/gl-extensions';
|
|
11
11
|
export { selectSupportedBasisFormat } from './lib/parsers/parse-basis';
|
|
12
12
|
export { getSupportedGPUTextureFormats } from './lib/utils/texture-formats';
|
|
13
13
|
export { CrunchLoader as CrunchWorkerLoader } from './crunch-loader';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["BasisLoader","BasisWorkerLoader","CompressedTextureLoader","CompressedTextureWorkerLoader","CrunchLoader","NPYLoader","NPYWorkerLoader","CompressedTextureWriter","KTX2BasisUniversalTextureWriter","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 '@loaders.gl/schema';\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,22 @@
|
|
|
1
|
+
import type { Writer } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { encodeKTX2BasisTexture } from './lib/encoders/encode-ktx2-basis-texture';
|
|
3
|
+
/**
|
|
4
|
+
* Basis Universal Supercompressed GPU Texture.
|
|
5
|
+
* Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md
|
|
6
|
+
*/
|
|
7
|
+
export declare const KTX2BasisUniversalTextureWriter: {
|
|
8
|
+
name: string;
|
|
9
|
+
id: string;
|
|
10
|
+
module: string;
|
|
11
|
+
version: any;
|
|
12
|
+
extensions: string[];
|
|
13
|
+
options: {
|
|
14
|
+
useSRGB: boolean;
|
|
15
|
+
qualityLevel: number;
|
|
16
|
+
encodeUASTC: boolean;
|
|
17
|
+
mipmaps: boolean;
|
|
18
|
+
};
|
|
19
|
+
encode: typeof encodeKTX2BasisTexture;
|
|
20
|
+
};
|
|
21
|
+
export declare const _TypecheckKTX2TextureWriter: Writer;
|
|
22
|
+
//# sourceMappingURL=ktx2-basis-universal-texture-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-universal-texture-writer.d.ts","sourceRoot":"","sources":["../src/ktx2-basis-universal-texture-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;CAe3C,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,MAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-ktx.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,OAAO,KAAA,qCAIhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ImageDataType } from '@loaders.gl/images';
|
|
2
|
+
/**
|
|
3
|
+
* Encodes image to Basis Universal Supercompressed GPU Texture.
|
|
4
|
+
* Code example is taken from here - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/ktx2_encode_test/index.html#L279
|
|
5
|
+
* BasisEncoder API - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/transcoder/basis_wrappers.cpp#L1712
|
|
6
|
+
* @param image
|
|
7
|
+
* @param options
|
|
8
|
+
*/
|
|
9
|
+
export declare function encodeKTX2BasisTexture(image: ImageDataType, options?: any): Promise<ArrayBuffer>;
|
|
10
|
+
//# sourceMappingURL=encode-ktx2-basis-texture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-ktx2-basis-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGtD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,WAAW,CAAC,CA8BtB"}
|
|
@@ -23,7 +23,7 @@ export async function encodeKTX2BasisTexture(image, options = {}) {
|
|
|
23
23
|
basisEncoder.setUASTC(encodeUASTC);
|
|
24
24
|
basisEncoder.setMipGen(mipmaps);
|
|
25
25
|
const numOutputBytes = basisEncoder.encode(basisFileData);
|
|
26
|
-
const actualKTX2FileData =
|
|
26
|
+
const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
|
|
27
27
|
return actualKTX2FileData;
|
|
28
28
|
} catch (error) {
|
|
29
29
|
console.error('Basis Universal Supercompressed GPU Texture encoder Error: ', error);
|
|
@@ -1 +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,
|
|
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","subarray","buffer","error","console","delete"],"mappings":"AACA,SAAQA,sBAAR,QAAqC,gCAArC;AASA,OAAO,eAAeC,sBAAf,CACLC,KADK,EAELC,OAAY,GAAG,EAFV,EAGiB;AAEtB,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,GAAGhB,aAAa,CAACiB,QAAd,CAAuB,CAAvB,EAA0BH,cAA1B,EAA0CI,MAArE;AACA,WAAOF,kBAAP;AACD,GAjBD,CAiBE,OAAOG,KAAP,EAAc;AAEdC,IAAAA,OAAO,CAACD,KAAR,CAAc,6DAAd,EAA6EA,KAA7E;AACA,UAAMA,KAAN;AACD,GArBD,SAqBU;AACRpB,IAAAA,YAAY,CAACsB,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<ArrayBuffer> {\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 = basisFileData.subarray(0, numOutputBytes).buffer;\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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-texture.ts"],"names":[],"mappings":"AAKA,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAC,GACvB,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { ChildProcessProxy } from '@loaders.gl/worker-utils';
|
|
2
|
-
|
|
3
|
-
export async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl) {
|
|
2
|
+
export async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl, options) {
|
|
4
3
|
const args = ['texture-compressor', '--type', 's3tc', '--compression', 'DXT1', '--quality', 'normal', '--input', inputUrl, '--output', outputUrl];
|
|
5
4
|
const childProcess = new ChildProcessProxy();
|
|
6
5
|
await childProcess.start({
|
|
7
6
|
command: 'npx',
|
|
8
7
|
arguments: args,
|
|
9
|
-
spawn:
|
|
10
|
-
cwd: MODULE_ROOT
|
|
11
|
-
}
|
|
8
|
+
spawn: options
|
|
12
9
|
});
|
|
13
10
|
return outputUrl;
|
|
14
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/encoders/encode-texture.ts"],"names":["ChildProcessProxy","
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/encoders/encode-texture.ts"],"names":["ChildProcessProxy","encodeImageURLToCompressedTextureURL","inputUrl","outputUrl","options","args","childProcess","start","command","arguments","spawn"],"mappings":"AAAA,SAAQA,iBAAR,QAAgC,0BAAhC;AAKA,OAAO,eAAeC,oCAAf,CACLC,QADK,EAELC,SAFK,EAGLC,OAHK,EAIY;AAEjB,QAAMC,IAAI,GAAG,CAEX,oBAFW,EAGX,QAHW,EAGD,MAHC,EAIX,eAJW,EAIM,MAJN,EAKX,WALW,EAKE,QALF,EAMX,SANW,EAMAH,QANA,EAOX,UAPW,EAOCC,SAPD,CAAb;AASA,QAAMG,YAAY,GAAG,IAAIN,iBAAJ,EAArB;AACA,QAAMM,YAAY,CAACC,KAAb,CAAmB;AACvBC,IAAAA,OAAO,EAAE,KADc;AAEvBC,IAAAA,SAAS,EAAEJ,IAFY;AAGvBK,IAAAA,KAAK,EAAEN;AAHgB,GAAnB,CAAN;AAKA,SAAOD,SAAP;AACD","sourcesContent":["import {ChildProcessProxy} from '@loaders.gl/worker-utils';\n\n/*\n * @see https://github.com/TimvanScherpenzeel/texture-compressor\n */\nexport async function encodeImageURLToCompressedTextureURL(\n inputUrl: string,\n outputUrl: string,\n options?: {cwd?: string}\n): Promise<string> {\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: options\n });\n return outputUrl;\n}\n"],"file":"encode-texture.js"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare const GL_EXTENSIONS_CONSTANTS: {
|
|
2
|
+
COMPRESSED_RGB_S3TC_DXT1_EXT: number;
|
|
3
|
+
COMPRESSED_RGBA_S3TC_DXT1_EXT: number;
|
|
4
|
+
COMPRESSED_RGBA_S3TC_DXT3_EXT: number;
|
|
5
|
+
COMPRESSED_RGBA_S3TC_DXT5_EXT: number;
|
|
6
|
+
COMPRESSED_R11_EAC: number;
|
|
7
|
+
COMPRESSED_SIGNED_R11_EAC: number;
|
|
8
|
+
COMPRESSED_RG11_EAC: number;
|
|
9
|
+
COMPRESSED_SIGNED_RG11_EAC: number;
|
|
10
|
+
COMPRESSED_RGB8_ETC2: number;
|
|
11
|
+
COMPRESSED_RGBA8_ETC2_EAC: number;
|
|
12
|
+
COMPRESSED_SRGB8_ETC2: number;
|
|
13
|
+
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: number;
|
|
14
|
+
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: number;
|
|
15
|
+
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: number;
|
|
16
|
+
COMPRESSED_RGB_PVRTC_4BPPV1_IMG: number;
|
|
17
|
+
COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: number;
|
|
18
|
+
COMPRESSED_RGB_PVRTC_2BPPV1_IMG: number;
|
|
19
|
+
COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: number;
|
|
20
|
+
COMPRESSED_RGB_ETC1_WEBGL: number;
|
|
21
|
+
COMPRESSED_RGB_ATC_WEBGL: number;
|
|
22
|
+
COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: number;
|
|
23
|
+
COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: number;
|
|
24
|
+
COMPRESSED_RGBA_ASTC_4X4_KHR: number;
|
|
25
|
+
COMPRESSED_RGBA_ASTC_5X4_KHR: number;
|
|
26
|
+
COMPRESSED_RGBA_ASTC_5X5_KHR: number;
|
|
27
|
+
COMPRESSED_RGBA_ASTC_6X5_KHR: number;
|
|
28
|
+
COMPRESSED_RGBA_ASTC_6X6_KHR: number;
|
|
29
|
+
COMPRESSED_RGBA_ASTC_8X5_KHR: number;
|
|
30
|
+
COMPRESSED_RGBA_ASTC_8X6_KHR: number;
|
|
31
|
+
COMPRESSED_RGBA_ASTC_8X8_KHR: number;
|
|
32
|
+
COMPRESSED_RGBA_ASTC_10X5_KHR: number;
|
|
33
|
+
COMPRESSED_RGBA_ASTC_10X6_KHR: number;
|
|
34
|
+
COMPRESSED_RGBA_ASTC_10X8_KHR: number;
|
|
35
|
+
COMPRESSED_RGBA_ASTC_10X10_KHR: number;
|
|
36
|
+
COMPRESSED_RGBA_ASTC_12X10_KHR: number;
|
|
37
|
+
COMPRESSED_RGBA_ASTC_12X12_KHR: number;
|
|
38
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: number;
|
|
39
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: number;
|
|
40
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: number;
|
|
41
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: number;
|
|
42
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: number;
|
|
43
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: number;
|
|
44
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: number;
|
|
45
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: number;
|
|
46
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: number;
|
|
47
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: number;
|
|
48
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: number;
|
|
49
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: number;
|
|
50
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: number;
|
|
51
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: number;
|
|
52
|
+
COMPRESSED_RED_RGTC1_EXT: number;
|
|
53
|
+
COMPRESSED_SIGNED_RED_RGTC1_EXT: number;
|
|
54
|
+
COMPRESSED_RED_GREEN_RGTC2_EXT: number;
|
|
55
|
+
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: number;
|
|
56
|
+
COMPRESSED_SRGB_S3TC_DXT1_EXT: number;
|
|
57
|
+
COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: number;
|
|
58
|
+
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: number;
|
|
59
|
+
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: number;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=gl-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gl-extensions.d.ts","sourceRoot":"","sources":["../../src/lib/gl-extensions.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFnC,CAAC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads wasm transcoder module
|
|
3
|
+
* @param options
|
|
4
|
+
* @returns {BasisFile} promise
|
|
5
|
+
*/
|
|
6
|
+
export declare function loadBasisTrascoderModule(options: any): Promise<any>;
|
|
7
|
+
/**
|
|
8
|
+
* Loads wasm encoder module
|
|
9
|
+
* @param options
|
|
10
|
+
* @returns {BasisFile, KTX2File} promise
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadBasisEncoderModule(options: any): Promise<any>;
|
|
13
|
+
//# sourceMappingURL=basis-module-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basis-module-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/basis-module-loader.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,KAAA,gBAQrD;AA+CD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,KAAA,gBAQnD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const VERSION = typeof "4.0.0-alpha.
|
|
1
|
+
const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'beta';
|
|
2
2
|
import { loadLibrary } from '@loaders.gl/worker-utils';
|
|
3
3
|
const BASIS_CDN_ENCODER_WASM = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.wasm");
|
|
4
4
|
const BASIS_CDN_ENCODER_JS = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.js");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crunch-module-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/crunch-module-loader.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC,CAO5D"}
|
|
@@ -16,7 +16,7 @@ async function loadCrunch(options) {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
let loadCrunchDecoder = await loadLibrary('crunch.js', 'textures', options);
|
|
19
|
-
loadCrunchDecoder = loadCrunchDecoder || globalThis.
|
|
19
|
+
loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
|
|
20
20
|
crunchModule = loadCrunchDecoder();
|
|
21
21
|
return crunchModule;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/parsers/crunch-module-loader.ts"],"names":["loadLibrary","loadCrunchModule","options","modules","crunch","loadCrunch","crunchModule","loadCrunchDecoder","globalThis","LoadCrunchDecoder"],"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,CAACC,iBAApD;AACAH,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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TextureLevel } from '@loaders.gl/schema';
|
|
2
|
+
export declare type BasisFormat = 'etc1' | 'etc2' | 'bc1' | 'bc3' | 'bc4' | 'bc5' | 'bc7-m6-opaque-only' | 'bc7-m5' | 'pvrtc1-4-rgb' | 'pvrtc1-4-rgba' | 'astc-4x4' | 'atc-rgb' | 'atc-rgba-interpolated-alpha' | 'rgba32' | 'rgb565' | 'bgr565' | 'rgba4444';
|
|
3
|
+
/**
|
|
4
|
+
* parse data with a Binomial Basis_Universal module
|
|
5
|
+
* @param data
|
|
6
|
+
* @param options
|
|
7
|
+
* @returns compressed texture data
|
|
8
|
+
*/
|
|
9
|
+
export default function parseBasis(data: ArrayBuffer, options: any): Promise<TextureLevel[][]>;
|
|
10
|
+
/**
|
|
11
|
+
* Select transcode format from the list of supported formats
|
|
12
|
+
* @returns key for OutputFormat map
|
|
13
|
+
*/
|
|
14
|
+
export declare function selectSupportedBasisFormat(): BasisFormat | {
|
|
15
|
+
alpha: BasisFormat;
|
|
16
|
+
noAlpha: BasisFormat;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=parse-basis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAMrD,oBAAY,WAAW,GACnB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,UAAU,GACV,SAAS,GACT,6BAA6B,GAC7B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAoDf;;;;;GAKG;AACH,wBAA8B,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAwB9F;AA8KD;;;GAGG;AACH,wBAAgB,0BAA0B,IACtC,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAoBJ"}
|
|
@@ -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,
|
|
@@ -118,7 +118,7 @@ function parseBasisFile(BasisFile, data, options) {
|
|
|
118
118
|
|
|
119
119
|
try {
|
|
120
120
|
if (!basisFile.startTranscoding()) {
|
|
121
|
-
|
|
121
|
+
throw new Error('Failed to start basis transcoding');
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
const imageCount = basisFile.getNumImages();
|
|
@@ -155,7 +155,7 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
|
155
155
|
const decodedData = new Uint8Array(decodedSize);
|
|
156
156
|
|
|
157
157
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
158
|
-
|
|
158
|
+
throw new Error('failed to start Basis transcoding');
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
return {
|
|
@@ -163,8 +163,8 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
|
163
163
|
height,
|
|
164
164
|
data: decodedData,
|
|
165
165
|
compressed,
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
format,
|
|
167
|
+
hasAlpha
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
170
|
|
|
@@ -173,7 +173,7 @@ function parseKTX2File(KTX2File, data, options) {
|
|
|
173
173
|
|
|
174
174
|
try {
|
|
175
175
|
if (!ktx2File.startTranscoding()) {
|
|
176
|
-
|
|
176
|
+
throw new Error('failed to start KTX2 transcoding');
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
const levelsCount = ktx2File.getLevels();
|
|
@@ -184,7 +184,7 @@ function parseKTX2File(KTX2File, data, options) {
|
|
|
184
184
|
break;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
return levels;
|
|
187
|
+
return [levels];
|
|
188
188
|
} finally {
|
|
189
189
|
ktx2File.close();
|
|
190
190
|
ktx2File.delete();
|
|
@@ -206,7 +206,7 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
|
206
206
|
const decodedData = new Uint8Array(decodedSize);
|
|
207
207
|
|
|
208
208
|
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
|
|
209
|
-
|
|
209
|
+
throw new Error('Failed to transcode KTX2 image');
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
return {
|
|
@@ -214,7 +214,7 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
|
214
214
|
height,
|
|
215
215
|
data: decodedData,
|
|
216
216
|
compressed,
|
|
217
|
-
alphaFlag,
|
|
217
|
+
hasAlpha: alphaFlag,
|
|
218
218
|
format
|
|
219
219
|
};
|
|
220
220
|
}
|
|
@@ -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.ts"],"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","Error","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":["/* eslint-disable indent */\nimport type {TextureLevel} from '@loaders.gl/schema';\nimport {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\nexport type BasisFormat =\n | 'etc1'\n | 'etc2'\n | 'bc1'\n | 'bc3'\n | 'bc4'\n | 'bc5'\n | 'bc7-m6-opaque-only'\n | 'bc7-m5'\n | 'pvrtc1-4-rgb'\n | 'pvrtc1-4-rgba'\n | 'astc-4x4'\n | 'atc-rgb'\n | 'atc-rgba-interpolated-alpha'\n | 'rgba32'\n | 'rgb565'\n | 'bgr565'\n | 'rgba4444';\n\ntype BasisOutputOptions = {\n basisFormat: number;\n compressed: boolean;\n format?: number;\n};\n\nconst OutputFormat: Record<string, BasisOutputOptions> = {\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 data\n * @param options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data: ArrayBuffer, options): Promise<TextureLevel[][]> {\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): TextureLevel[][] {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n throw new Error('Failed to start basis transcoding');\n }\n\n const imageCount = basisFile.getNumImages();\n const images: TextureLevel[][] = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels: TextureLevel[] = [];\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): TextureLevel {\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 throw new Error('failed to start Basis transcoding');\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n format,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha\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: ArrayBuffer, options): TextureLevel[][] {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n throw new Error('failed to start KTX2 transcoding');\n }\n const levelsCount = ktx2File.getLevels();\n const levels: TextureLevel[] = [];\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: number, options): TextureLevel {\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 throw new Error('Failed to transcode KTX2 image');\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: 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: boolean): BasisOutputOptions {\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 | BasisFormat\n | {\n alpha: BasisFormat;\n noAlpha: BasisFormat;\n } {\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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TextureLevel } from '@loaders.gl/schema';
|
|
2
|
+
/**
|
|
3
|
+
* Deduces format and parses compressed texture loaded in ArrayBuffer
|
|
4
|
+
* @param data - binary data of compressed texture
|
|
5
|
+
* @returns Array of the texture levels
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseCompressedTexture(data: ArrayBuffer): TextureLevel[];
|
|
8
|
+
//# sourceMappingURL=parse-compressed-texture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-compressed-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-compressed-texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,CAaxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/parsers/parse-compressed-texture.ts"],"names":["isKTX","parseKTX","isDDS","parseDDS","isPVR","parsePVR","parseCompressedTexture","data","Error"],"mappings":"AACA,SAAQA,KAAR,EAAeC,QAAf,QAA8B,aAA9B;AACA,SAAQC,KAAR,EAAeC,QAAf,QAA8B,aAA9B;AACA,SAAQC,KAAR,EAAeC,QAAf,QAA8B,aAA9B;AAOA,OAAO,SAASC,sBAAT,CAAgCC,IAAhC,EAAmE;AACxE,MAAIP,KAAK,CAACO,IAAD,CAAT,EAAiB;AAGf,WAAON,QAAQ,CAACM,IAAD,CAAf;AACD;;AACD,MAAIL,KAAK,CAACK,IAAD,CAAT,EAAiB;AACf,WAAOJ,QAAQ,CAACI,IAAD,CAAf;AACD;;AACD,MAAIH,KAAK,CAACG,IAAD,CAAT,EAAiB;AACf,WAAOF,QAAQ,CAACE,IAAD,CAAf;AACD;;AACD,QAAM,IAAIC,KAAJ,CAAU,yCAAV,CAAN;AACD","sourcesContent":["import type {TextureLevel} from '
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/parsers/parse-compressed-texture.ts"],"names":["isKTX","parseKTX","isDDS","parseDDS","isPVR","parsePVR","parseCompressedTexture","data","Error"],"mappings":"AACA,SAAQA,KAAR,EAAeC,QAAf,QAA8B,aAA9B;AACA,SAAQC,KAAR,EAAeC,QAAf,QAA8B,aAA9B;AACA,SAAQC,KAAR,EAAeC,QAAf,QAA8B,aAA9B;AAOA,OAAO,SAASC,sBAAT,CAAgCC,IAAhC,EAAmE;AACxE,MAAIP,KAAK,CAACO,IAAD,CAAT,EAAiB;AAGf,WAAON,QAAQ,CAACM,IAAD,CAAf;AACD;;AACD,MAAIL,KAAK,CAACK,IAAD,CAAT,EAAiB;AACf,WAAOJ,QAAQ,CAACI,IAAD,CAAf;AACD;;AACD,MAAIH,KAAK,CAACG,IAAD,CAAT,EAAiB;AACf,WAAOF,QAAQ,CAACE,IAAD,CAAf;AACD;;AACD,QAAM,IAAIC,KAAJ,CAAU,yCAAV,CAAN;AACD","sourcesContent":["import type {TextureLevel} from '@loaders.gl/schema';\nimport {isKTX, parseKTX} from './parse-ktx';\nimport {isDDS, parseDDS} from './parse-dds';\nimport {isPVR, parsePVR} from './parse-pvr';\n\n/**\n * Deduces format and parses compressed texture loaded in ArrayBuffer\n * @param data - binary data of compressed texture\n * @returns Array of the texture levels\n */\nexport function parseCompressedTexture(data: ArrayBuffer): TextureLevel[] {\n if (isKTX(data)) {\n // TODO: remove @ts-ignore when `parseKTX` output is normalized to loaders.gl texture format\n // @ts-ignore\n return parseKTX(data);\n }\n if (isDDS(data)) {\n return parseDDS(data);\n }\n if (isPVR(data)) {\n return parsePVR(data);\n }\n throw new Error('Texture container format not recognized');\n}\n"],"file":"parse-compressed-texture.js"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TextureLevel } from '@loaders.gl/schema';
|
|
2
|
+
/**
|
|
3
|
+
* Parse texture data as "CRN" format.
|
|
4
|
+
* Function is "async" as emscriptified decoder module is loaded asyncronously
|
|
5
|
+
* @param data - binary data of compressed texture
|
|
6
|
+
* @returns Promise of Array of the texture levels
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseCrunch(data: any, options: any): Promise<TextureLevel[]>;
|
|
9
|
+
//# sourceMappingURL=parse-crunch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-crunch.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAsCrD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,KAAA,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmD7E"}
|