@loaders.gl/textures 4.0.0-alpha.5 → 4.0.0-alpha.6
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 +4 -43
- package/dist/basis-loader.d.ts.map +1 -1
- package/dist/basis-loader.js +36 -24
- package/dist/basis-nodejs-worker.js +66490 -0
- package/dist/basis-worker.js +52 -19
- package/dist/bundle.js +2 -2
- package/dist/compressed-texture-loader.d.ts +1 -1
- package/dist/compressed-texture-loader.d.ts.map +1 -1
- package/dist/compressed-texture-loader.js +59 -36
- package/dist/compressed-texture-worker.js +51 -18
- package/dist/compressed-texture-writer.d.ts +13 -21
- package/dist/compressed-texture-writer.d.ts.map +1 -1
- package/dist/compressed-texture-writer.js +33 -21
- package/dist/crunch-loader.js +23 -16
- package/dist/crunch-worker.js +49 -17
- package/dist/dist.min.js +218 -146
- package/dist/es5/basis-loader.js +38 -0
- package/dist/es5/basis-loader.js.map +1 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/compressed-texture-loader.js +76 -0
- package/dist/es5/compressed-texture-loader.js.map +1 -0
- package/dist/es5/compressed-texture-writer.js +28 -0
- package/dist/es5/compressed-texture-writer.js.map +1 -0
- package/dist/es5/crunch-loader.js +26 -0
- package/dist/es5/crunch-loader.js.map +1 -0
- package/dist/es5/index.js +132 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/ktx2-basis-writer-nodejs.js +14 -0
- package/dist/es5/ktx2-basis-writer-nodejs.js.map +1 -0
- package/dist/es5/ktx2-basis-writer.js +26 -0
- package/dist/es5/ktx2-basis-writer.js.map +1 -0
- package/dist/es5/lib/encoders/encode-ktx.js +12 -0
- package/dist/es5/lib/encoders/encode-ktx.js.map +1 -0
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +74 -0
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
- package/dist/es5/lib/encoders/encode-texture.js +38 -0
- package/dist/es5/lib/encoders/encode-texture.js.map +1 -0
- package/dist/es5/lib/gl-extensions.js +68 -0
- package/dist/es5/lib/gl-extensions.js.map +1 -0
- package/dist/es5/lib/parsers/basis-module-loader.js +194 -0
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -0
- package/dist/es5/lib/parsers/crunch-module-loader.js +67 -0
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -0
- package/dist/es5/lib/parsers/parse-basis.js +270 -0
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -0
- package/dist/es5/lib/parsers/parse-compressed-texture.js +22 -0
- package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -0
- package/dist/es5/lib/parsers/parse-crunch.js +100 -0
- package/dist/es5/lib/parsers/parse-crunch.js.map +1 -0
- package/dist/es5/lib/parsers/parse-dds.js +84 -0
- package/dist/es5/lib/parsers/parse-dds.js.map +1 -0
- package/dist/es5/lib/parsers/parse-ktx.js +34 -0
- package/dist/es5/lib/parsers/parse-ktx.js.map +1 -0
- package/dist/es5/lib/parsers/parse-npy.js +70 -0
- package/dist/es5/lib/parsers/parse-npy.js.map +1 -0
- package/dist/es5/lib/parsers/parse-pvr.js +161 -0
- package/dist/es5/lib/parsers/parse-pvr.js.map +1 -0
- package/dist/es5/lib/texture-api/async-deep-map.js +156 -0
- package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -0
- package/dist/es5/lib/texture-api/deep-load.js +63 -0
- package/dist/es5/lib/texture-api/deep-load.js.map +1 -0
- package/dist/es5/lib/texture-api/generate-url.js +20 -0
- package/dist/es5/lib/texture-api/generate-url.js.map +1 -0
- package/dist/es5/lib/texture-api/load-image-array.js +75 -0
- package/dist/es5/lib/texture-api/load-image-array.js.map +1 -0
- package/dist/es5/lib/texture-api/load-image-cube.js +136 -0
- package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -0
- package/dist/es5/lib/texture-api/load-image.js +129 -0
- package/dist/es5/lib/texture-api/load-image.js.map +1 -0
- 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 +41 -0
- package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -0
- package/dist/es5/lib/utils/ktx-format-helper.js +79 -0
- package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -0
- package/dist/es5/lib/utils/texture-formats.js +54 -0
- package/dist/es5/lib/utils/texture-formats.js.map +1 -0
- package/dist/es5/lib/utils/version.js +9 -0
- package/dist/es5/lib/utils/version.js.map +1 -0
- package/dist/es5/libs/basis_encoder.js +21 -0
- package/dist/es5/libs/basis_encoder.wasm +0 -0
- package/dist/es5/libs/basis_transcoder.js +22 -0
- package/dist/{libs → es5}/libs/basis_transcoder.wasm +0 -0
- package/dist/es5/npy-loader.js +51 -0
- package/dist/es5/npy-loader.js.map +1 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/workers/basis-nodejs-worker.js +7 -0
- package/dist/es5/workers/basis-nodejs-worker.js.map +1 -0
- package/dist/es5/workers/basis-worker.js +6 -0
- package/dist/es5/workers/basis-worker.js.map +1 -0
- package/dist/es5/workers/compressed-texture-worker.js +6 -0
- package/dist/es5/workers/compressed-texture-worker.js.map +1 -0
- package/dist/es5/workers/crunch-worker.js +19 -0
- package/dist/es5/workers/crunch-worker.js.map +1 -0
- package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js +53 -0
- package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
- package/dist/es5/workers/ktx2-basis-writer-worker.js +53 -0
- package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -0
- package/dist/es5/workers/npy-worker.js +6 -0
- package/dist/es5/workers/npy-worker.js.map +1 -0
- package/dist/esm/basis-loader.js +27 -0
- package/dist/esm/basis-loader.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/compressed-texture-loader.js +41 -0
- package/dist/esm/compressed-texture-loader.js.map +1 -0
- package/dist/esm/compressed-texture-writer.js +21 -0
- package/dist/esm/compressed-texture-writer.js.map +1 -0
- package/dist/esm/crunch-loader.js +18 -0
- package/dist/esm/crunch-loader.js.map +1 -0
- package/dist/esm/index.js +30 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/ktx2-basis-writer-nodejs.js +3 -0
- package/dist/esm/ktx2-basis-writer-nodejs.js.map +1 -0
- package/dist/{ktx2-basis-universal-texture-writer.js → esm/ktx2-basis-writer.js} +4 -4
- package/dist/esm/ktx2-basis-writer.js.map +1 -0
- package/dist/esm/lib/encoders/encode-ktx.js +6 -0
- package/dist/esm/lib/encoders/encode-ktx.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 +12 -0
- package/dist/esm/lib/encoders/encode-texture.js.map +1 -0
- package/dist/esm/lib/gl-extensions.js +61 -0
- package/dist/esm/lib/gl-extensions.js.map +1 -0
- package/dist/esm/lib/parsers/basis-module-loader.js +77 -0
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -0
- package/dist/esm/lib/parsers/crunch-module-loader.js +19 -0
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -0
- package/dist/esm/lib/parsers/parse-basis.js +231 -0
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -0
- package/dist/esm/lib/parsers/parse-compressed-texture.js +16 -0
- package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -0
- package/dist/esm/lib/parsers/parse-crunch.js +75 -0
- package/dist/esm/lib/parsers/parse-crunch.js.map +1 -0
- package/dist/esm/lib/parsers/parse-dds.js +75 -0
- package/dist/esm/lib/parsers/parse-dds.js.map +1 -0
- package/dist/esm/lib/parsers/parse-ktx.js +25 -0
- package/dist/esm/lib/parsers/parse-ktx.js.map +1 -0
- package/dist/esm/lib/parsers/parse-npy.js +63 -0
- package/dist/esm/lib/parsers/parse-npy.js.map +1 -0
- package/dist/esm/lib/parsers/parse-pvr.js +154 -0
- package/dist/esm/lib/parsers/parse-pvr.js.map +1 -0
- package/dist/esm/lib/texture-api/async-deep-map.js +34 -0
- package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -0
- package/dist/esm/lib/texture-api/deep-load.js +10 -0
- package/dist/esm/lib/texture-api/deep-load.js.map +1 -0
- package/dist/esm/lib/texture-api/generate-url.js +13 -0
- package/dist/esm/lib/texture-api/generate-url.js.map +1 -0
- package/dist/esm/lib/texture-api/load-image-array.js +20 -0
- package/dist/esm/lib/texture-api/load-image-array.js.map +1 -0
- package/dist/esm/lib/texture-api/load-image-cube.js +63 -0
- package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -0
- package/dist/esm/lib/texture-api/load-image.js +46 -0
- package/dist/esm/lib/texture-api/load-image.js.map +1 -0
- 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 +35 -0
- package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -0
- package/dist/esm/lib/utils/ktx-format-helper.js +73 -0
- package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -0
- package/dist/esm/lib/utils/texture-formats.js +36 -0
- package/dist/esm/lib/utils/texture-formats.js.map +1 -0
- package/dist/esm/lib/utils/version.js +2 -0
- package/dist/esm/lib/utils/version.js.map +1 -0
- package/dist/esm/libs/README.md +9 -0
- package/dist/esm/libs/basis_encoder.js +21 -0
- package/dist/esm/libs/basis_encoder.wasm +0 -0
- package/dist/esm/libs/basis_transcoder.js +22 -0
- package/dist/esm/libs/basis_transcoder.wasm +0 -0
- package/dist/esm/libs/crunch.js +136 -0
- package/dist/esm/npy-loader.js +22 -0
- package/dist/esm/npy-loader.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/workers/basis-nodejs-worker.js +5 -0
- package/dist/esm/workers/basis-nodejs-worker.js.map +1 -0
- package/dist/esm/workers/basis-worker.js +4 -0
- package/dist/esm/workers/basis-worker.js.map +1 -0
- package/dist/esm/workers/compressed-texture-worker.js +4 -0
- package/dist/esm/workers/compressed-texture-worker.js.map +1 -0
- package/dist/esm/workers/crunch-worker.js +9 -0
- package/dist/esm/workers/crunch-worker.js.map +1 -0
- package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js +31 -0
- package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
- package/dist/esm/workers/ktx2-basis-writer-worker.js +31 -0
- package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -0
- package/dist/esm/workers/npy-worker.js +4 -0
- package/dist/esm/workers/npy-worker.js.map +1 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -14
- package/dist/ktx2-basis-writer-nodejs-worker.js +65949 -0
- package/dist/ktx2-basis-writer-nodejs.d.ts +3 -0
- package/dist/ktx2-basis-writer-nodejs.d.ts.map +1 -0
- package/dist/ktx2-basis-writer-nodejs.js +7 -0
- package/dist/ktx2-basis-writer-worker.js +343 -0
- package/dist/ktx2-basis-writer.d.ts +16 -0
- package/dist/ktx2-basis-writer.d.ts.map +1 -0
- package/dist/ktx2-basis-writer.js +26 -0
- package/dist/lib/encoders/encode-ktx.js +9 -5
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +40 -34
- package/dist/lib/encoders/encode-texture.d.ts +2 -3
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -1
- package/dist/lib/encoders/encode-texture.js +26 -11
- package/dist/lib/gl-extensions.js +71 -60
- package/dist/lib/parsers/basis-module-loader.js +100 -76
- package/dist/lib/parsers/crunch-module-loader.js +30 -18
- package/dist/lib/parsers/parse-basis.d.ts +1 -1
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
- package/dist/lib/parsers/parse-basis.js +225 -240
- package/dist/lib/parsers/parse-compressed-texture.js +25 -18
- package/dist/lib/parsers/parse-crunch.js +96 -82
- package/dist/lib/parsers/parse-dds.js +93 -63
- package/dist/lib/parsers/parse-ktx.js +44 -23
- package/dist/lib/parsers/parse-npy.d.ts +10 -5
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
- package/dist/lib/parsers/parse-npy.js +76 -71
- package/dist/lib/parsers/parse-pvr.js +212 -133
- package/dist/lib/texture-api/async-deep-map.d.ts +2 -2
- package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -1
- package/dist/lib/texture-api/async-deep-map.js +35 -33
- package/dist/lib/texture-api/deep-load.d.ts +2 -2
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
- package/dist/lib/texture-api/deep-load.js +14 -8
- package/dist/lib/texture-api/generate-url.js +16 -13
- package/dist/lib/texture-api/load-image-array.js +19 -18
- package/dist/lib/texture-api/load-image-cube.d.ts +1 -1
- package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
- package/dist/lib/texture-api/load-image-cube.js +39 -55
- package/dist/lib/texture-api/load-image.js +38 -43
- package/dist/lib/texture-api/texture-api-types.d.ts +2 -2
- package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
- package/dist/lib/texture-api/texture-api-types.js +3 -2
- package/dist/lib/utils/extract-mipmap-images.d.ts +1 -1
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
- package/dist/lib/utils/extract-mipmap-images.js +45 -36
- package/dist/lib/utils/ktx-format-helper.js +122 -70
- package/dist/lib/utils/texture-formats.js +42 -30
- package/dist/lib/utils/version.js +8 -2
- package/dist/libs/basis_encoder.js +20 -21
- package/dist/libs/basis_encoder.wasm +0 -0
- package/dist/libs/basis_transcoder.js +14 -13
- package/dist/libs/basis_transcoder.wasm +0 -0
- package/dist/npy-loader.d.ts +6 -37
- package/dist/npy-loader.d.ts.map +1 -1
- package/dist/npy-loader.js +28 -20
- package/dist/npy-worker.js +60 -31
- package/dist/types.js +1 -2
- package/dist/workers/basis-nodejs-worker.d.ts +2 -0
- package/dist/workers/basis-nodejs-worker.d.ts.map +1 -0
- package/dist/workers/basis-nodejs-worker.js +6 -0
- package/dist/workers/basis-worker.js +5 -4
- package/dist/workers/compressed-texture-worker.js +5 -4
- package/dist/workers/crunch-worker.js +13 -7
- package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts +2 -0
- package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts.map +1 -0
- package/dist/workers/ktx2-basis-writer-nodejs-worker.js +26 -0
- package/dist/workers/ktx2-basis-writer-worker.d.ts +2 -0
- package/dist/workers/ktx2-basis-writer-worker.d.ts.map +1 -0
- package/dist/workers/ktx2-basis-writer-worker.js +26 -0
- package/dist/workers/npy-worker.js +5 -4
- package/package.json +16 -10
- package/src/basis-loader.ts +8 -8
- package/src/compressed-texture-writer.ts +21 -3
- package/src/index.ts +19 -1
- package/src/ktx2-basis-writer-nodejs.ts +4 -0
- package/src/{ktx2-basis-universal-texture-writer.ts → ktx2-basis-writer.ts} +14 -3
- package/src/lib/encoders/encode-texture.ts +2 -1
- package/src/lib/parsers/parse-basis.ts +1 -1
- package/src/lib/parsers/parse-npy.ts +52 -31
- package/src/libs/basis_encoder.js +20 -21
- package/src/libs/basis_encoder.wasm +0 -0
- package/src/libs/basis_transcoder.js +14 -13
- package/src/libs/basis_transcoder.wasm +0 -0
- package/src/npy-loader.ts +7 -7
- package/src/workers/basis-nodejs-worker.ts +5 -0
- package/src/workers/ktx2-basis-writer-nodejs-worker.ts +25 -0
- package/src/workers/ktx2-basis-writer-worker.ts +25 -0
- package/dist/basis-loader.js.map +0 -1
- package/dist/bundle.js.map +0 -1
- package/dist/compressed-texture-loader.js.map +0 -1
- package/dist/compressed-texture-writer.js.map +0 -1
- package/dist/crunch-loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/ktx2-basis-universal-texture-writer.d.ts +0 -22
- package/dist/ktx2-basis-universal-texture-writer.d.ts.map +0 -1
- package/dist/ktx2-basis-universal-texture-writer.js.map +0 -1
- package/dist/lib/encoders/encode-ktx.js.map +0 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
- package/dist/lib/encoders/encode-texture.js.map +0 -1
- package/dist/lib/gl-extensions.js.map +0 -1
- package/dist/lib/parsers/basis-module-loader.js.map +0 -1
- package/dist/lib/parsers/crunch-module-loader.js.map +0 -1
- package/dist/lib/parsers/parse-basis.js.map +0 -1
- package/dist/lib/parsers/parse-compressed-texture.js.map +0 -1
- package/dist/lib/parsers/parse-crunch.js.map +0 -1
- package/dist/lib/parsers/parse-dds.js.map +0 -1
- package/dist/lib/parsers/parse-ktx.js.map +0 -1
- package/dist/lib/parsers/parse-npy.js.map +0 -1
- package/dist/lib/parsers/parse-pvr.js.map +0 -1
- package/dist/lib/texture-api/async-deep-map.js.map +0 -1
- package/dist/lib/texture-api/deep-load.js.map +0 -1
- package/dist/lib/texture-api/generate-url.js.map +0 -1
- package/dist/lib/texture-api/load-image-array.js.map +0 -1
- package/dist/lib/texture-api/load-image-cube.js.map +0 -1
- package/dist/lib/texture-api/load-image.js.map +0 -1
- package/dist/lib/texture-api/texture-api-types.js.map +0 -1
- package/dist/lib/utils/extract-mipmap-images.js.map +0 -1
- package/dist/lib/utils/ktx-format-helper.js.map +0 -1
- package/dist/lib/utils/texture-formats.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/libs/libs/basis_encoder.js +0 -22
- package/dist/libs/libs/basis_encoder.wasm +0 -0
- package/dist/libs/libs/basis_transcoder.js +0 -21
- package/dist/npy-loader.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/workers/basis-worker.js.map +0 -1
- package/dist/workers/compressed-texture-worker.js.map +0 -1
- package/dist/workers/crunch-worker.js.map +0 -1
- package/dist/workers/npy-worker.js.map +0 -1
- /package/dist/{libs → es5}/libs/README.md +0 -0
- /package/dist/{libs → es5}/libs/crunch.js +0 -0
package/dist/npy-worker.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
// src/lib/utils/version.ts
|
|
3
|
-
var VERSION = true ? "4.0.0-alpha.
|
|
3
|
+
var VERSION = true ? "4.0.0-alpha.6" : "beta";
|
|
4
4
|
|
|
5
5
|
// src/lib/parsers/parse-npy.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
var LITTLE_ENDIAN_OS = systemIsLittleEndian();
|
|
6
|
+
var a = new Uint32Array([305419896]);
|
|
7
|
+
var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
|
|
8
|
+
var isLittleEndian = !(b[0] === 18);
|
|
9
|
+
var LITTLE_ENDIAN_OS = isLittleEndian;
|
|
12
10
|
var DTYPES = {
|
|
13
11
|
u1: Uint8Array,
|
|
14
12
|
i1: Int8Array,
|
|
@@ -20,22 +18,21 @@
|
|
|
20
18
|
f8: Float64Array
|
|
21
19
|
};
|
|
22
20
|
function parseNPY(arrayBuffer, options) {
|
|
23
|
-
if (!arrayBuffer) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
21
|
const view = new DataView(arrayBuffer);
|
|
27
22
|
const { header, headerEndOffset } = parseHeader(view);
|
|
28
23
|
const numpyType = header.descr;
|
|
29
24
|
const ArrayType = DTYPES[numpyType.slice(1, 3)];
|
|
30
25
|
if (!ArrayType) {
|
|
31
|
-
|
|
32
|
-
return null;
|
|
26
|
+
throw new Error(`Unimplemented type ${numpyType}`);
|
|
33
27
|
}
|
|
34
|
-
const nArrayElements = header.shape?.reduce((
|
|
28
|
+
const nArrayElements = header.shape?.reduce((a2, b2) => a2 * b2);
|
|
35
29
|
const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
|
|
30
|
+
if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
|
|
31
|
+
throw new Error("Buffer overflow");
|
|
32
|
+
}
|
|
36
33
|
const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
|
|
37
34
|
if (numpyType[0] === ">" && LITTLE_ENDIAN_OS || numpyType[0] === "<" && !LITTLE_ENDIAN_OS) {
|
|
38
|
-
|
|
35
|
+
throw new Error("Incorrect endianness");
|
|
39
36
|
}
|
|
40
37
|
return {
|
|
41
38
|
data,
|
|
@@ -47,10 +44,10 @@
|
|
|
47
44
|
let offset = 8;
|
|
48
45
|
let headerLength;
|
|
49
46
|
if (majorVersion >= 2) {
|
|
50
|
-
headerLength = view.getUint32(
|
|
47
|
+
headerLength = view.getUint32(offset, true);
|
|
51
48
|
offset += 4;
|
|
52
49
|
} else {
|
|
53
|
-
headerLength = view.getUint16(
|
|
50
|
+
headerLength = view.getUint16(offset, true);
|
|
54
51
|
offset += 2;
|
|
55
52
|
}
|
|
56
53
|
const encoding = majorVersion <= 2 ? "latin1" : "utf-8";
|
|
@@ -119,16 +116,33 @@
|
|
|
119
116
|
}
|
|
120
117
|
|
|
121
118
|
// ../worker-utils/src/lib/worker-farm/worker-body.ts
|
|
119
|
+
function getParentPort() {
|
|
120
|
+
let parentPort;
|
|
121
|
+
try {
|
|
122
|
+
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
123
|
+
parentPort = globalThis.parentPort;
|
|
124
|
+
} catch {
|
|
125
|
+
}
|
|
126
|
+
return parentPort;
|
|
127
|
+
}
|
|
122
128
|
var onMessageWrapperMap = new Map();
|
|
123
129
|
var WorkerBody = class {
|
|
130
|
+
static inWorkerThread() {
|
|
131
|
+
return typeof self !== "undefined" || Boolean(getParentPort());
|
|
132
|
+
}
|
|
124
133
|
static set onmessage(onMessage) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
const { type, payload } = message.data;
|
|
134
|
+
function handleMessage(message) {
|
|
135
|
+
const parentPort3 = getParentPort();
|
|
136
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
130
137
|
onMessage(type, payload);
|
|
131
|
-
}
|
|
138
|
+
}
|
|
139
|
+
const parentPort2 = getParentPort();
|
|
140
|
+
if (parentPort2) {
|
|
141
|
+
parentPort2.on("message", handleMessage);
|
|
142
|
+
parentPort2.on("exit", () => console.debug("Node worker closing"));
|
|
143
|
+
} else {
|
|
144
|
+
globalThis.onmessage = handleMessage;
|
|
145
|
+
}
|
|
132
146
|
}
|
|
133
147
|
static addEventListener(onMessage) {
|
|
134
148
|
let onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
@@ -137,22 +151,36 @@
|
|
|
137
151
|
if (!isKnownMessage(message)) {
|
|
138
152
|
return;
|
|
139
153
|
}
|
|
140
|
-
const
|
|
154
|
+
const parentPort3 = getParentPort();
|
|
155
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
141
156
|
onMessage(type, payload);
|
|
142
157
|
};
|
|
143
158
|
}
|
|
144
|
-
|
|
159
|
+
const parentPort2 = getParentPort();
|
|
160
|
+
if (parentPort2) {
|
|
161
|
+
console.error("not implemented");
|
|
162
|
+
} else {
|
|
163
|
+
globalThis.addEventListener("message", onMessageWrapper);
|
|
164
|
+
}
|
|
145
165
|
}
|
|
146
166
|
static removeEventListener(onMessage) {
|
|
147
167
|
const onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
148
168
|
onMessageWrapperMap.delete(onMessage);
|
|
149
|
-
|
|
169
|
+
const parentPort2 = getParentPort();
|
|
170
|
+
if (parentPort2) {
|
|
171
|
+
console.error("not implemented");
|
|
172
|
+
} else {
|
|
173
|
+
globalThis.removeEventListener("message", onMessageWrapper);
|
|
174
|
+
}
|
|
150
175
|
}
|
|
151
176
|
static postMessage(type, payload) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
177
|
+
const data = { source: "loaders.gl", type, payload };
|
|
178
|
+
const transferList = getTransferList(payload);
|
|
179
|
+
const parentPort2 = getParentPort();
|
|
180
|
+
if (parentPort2) {
|
|
181
|
+
parentPort2.postMessage(data, transferList);
|
|
182
|
+
} else {
|
|
183
|
+
globalThis.postMessage(data, transferList);
|
|
156
184
|
}
|
|
157
185
|
}
|
|
158
186
|
};
|
|
@@ -164,19 +192,20 @@
|
|
|
164
192
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
165
193
|
var requestId = 0;
|
|
166
194
|
function createLoaderWorker(loader) {
|
|
167
|
-
if (
|
|
195
|
+
if (!WorkerBody.inWorkerThread()) {
|
|
168
196
|
return;
|
|
169
197
|
}
|
|
170
198
|
WorkerBody.onmessage = async (type, payload) => {
|
|
171
199
|
switch (type) {
|
|
172
200
|
case "process":
|
|
173
201
|
try {
|
|
174
|
-
const { input, options = {} } = payload;
|
|
202
|
+
const { input, options = {}, context = {} } = payload;
|
|
175
203
|
const result = await parseData({
|
|
176
204
|
loader,
|
|
177
205
|
arrayBuffer: input,
|
|
178
206
|
options,
|
|
179
207
|
context: {
|
|
208
|
+
...context,
|
|
180
209
|
parse: parseOnMainThread
|
|
181
210
|
}
|
|
182
211
|
});
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basis-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/basis-nodejs-worker.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
|
+
require("@loaders.gl/polyfills");
|
|
5
|
+
const basis_loader_1 = require("../basis-loader");
|
|
6
|
+
(0, loader_utils_1.createLoaderWorker)(basis_loader_1.BasisLoader);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
|
+
const basis_loader_1 = require("../basis-loader");
|
|
5
|
+
(0, loader_utils_1.createLoaderWorker)(basis_loader_1.BasisLoader);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
|
+
const compressed_texture_loader_1 = require("../compressed-texture-loader");
|
|
5
|
+
(0, loader_utils_1.createLoaderWorker)(compressed_texture_loader_1.CompressedTextureLoader);
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CrunchLoaderWithParser = void 0;
|
|
4
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
5
|
+
const crunch_loader_1 = require("../crunch-loader");
|
|
6
|
+
const parse_crunch_1 = require("../lib/parsers/parse-crunch");
|
|
7
|
+
/**
|
|
8
|
+
* Loader for the Crunch compressed texture container format
|
|
9
|
+
*/
|
|
10
|
+
exports.CrunchLoaderWithParser = {
|
|
11
|
+
...crunch_loader_1.CrunchLoader,
|
|
12
|
+
parse: parse_crunch_1.parseCrunch
|
|
6
13
|
};
|
|
7
|
-
createLoaderWorker(CrunchLoaderWithParser);
|
|
8
|
-
//# sourceMappingURL=crunch-worker.js.map
|
|
14
|
+
(0, loader_utils_1.createLoaderWorker)(exports.CrunchLoaderWithParser);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/ktx2-basis-writer-nodejs-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
4
|
+
const ktx2_basis_writer_nodejs_1 = require("../ktx2-basis-writer-nodejs");
|
|
5
|
+
(() => {
|
|
6
|
+
// Check that we are actually in a worker thread
|
|
7
|
+
if (!worker_utils_1.WorkerBody.inWorkerThread()) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case 'process':
|
|
13
|
+
try {
|
|
14
|
+
const { input, options } = payload;
|
|
15
|
+
const result = await ktx2_basis_writer_nodejs_1.KTX2BasisWriterNodeJS.encode?.(input, options);
|
|
16
|
+
worker_utils_1.WorkerBody.postMessage('done', { result });
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
const message = error instanceof Error ? error.message : '';
|
|
20
|
+
worker_utils_1.WorkerBody.postMessage('error', { error: message });
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-worker.d.ts","sourceRoot":"","sources":["../../src/workers/ktx2-basis-writer-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
4
|
+
const ktx2_basis_writer_1 = require("../ktx2-basis-writer");
|
|
5
|
+
(() => {
|
|
6
|
+
// Check that we are actually in a worker thread
|
|
7
|
+
if (!worker_utils_1.WorkerBody.inWorkerThread()) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
|
|
11
|
+
switch (type) {
|
|
12
|
+
case 'process':
|
|
13
|
+
try {
|
|
14
|
+
const { input, options } = payload;
|
|
15
|
+
const result = await ktx2_basis_writer_1.KTX2BasisWriter.encode?.(input, options);
|
|
16
|
+
worker_utils_1.WorkerBody.postMessage('done', { result });
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
const message = error instanceof Error ? error.message : '';
|
|
20
|
+
worker_utils_1.WorkerBody.postMessage('error', { error: message });
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
})();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const npy_loader_1 = require("../npy-loader");
|
|
4
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
5
|
+
(0, loader_utils_1.createLoaderWorker)(npy_loader_1.NPYLoader);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/textures",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.6",
|
|
4
4
|
"description": "Framework-independent loaders for compressed and super compressed (basis) textures ",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"basis"
|
|
23
23
|
],
|
|
24
24
|
"types": "dist/index.d.ts",
|
|
25
|
-
"main": "dist/index.js",
|
|
26
|
-
"module": "dist/index.js",
|
|
25
|
+
"main": "dist/es5/index.js",
|
|
26
|
+
"module": "dist/esm/index.js",
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"files": [
|
|
29
29
|
"src",
|
|
@@ -35,19 +35,25 @@
|
|
|
35
35
|
"pre-build": "npm run copy-libs && npm run build-worker && npm run build-bundle",
|
|
36
36
|
"copy-libs": "cp -rf ./src/libs ./dist/libs",
|
|
37
37
|
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js",
|
|
38
|
-
"build-worker": "npm run build-basis-worker && npm run build-npy-worker && npm run build-compressed-texture-worker && npm run build-crunch-worker",
|
|
38
|
+
"build-worker": "npm run build-basis-worker && npm run build-basis-nodejs-worker && npm run build-npy-worker && npm run build-compressed-texture-worker && npm run build-crunch-worker && npm run build-ktx2-basis-writer-worker && npm run build-ktx2-basis-writer-nodejs-worker",
|
|
39
39
|
"build-basis-worker": "esbuild src/workers/basis-worker.ts --bundle --outfile=dist/basis-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
40
|
+
"build-basis-nodejs-worker": "esbuild src/workers/basis-nodejs-worker.ts --platform=node --target=esnext,node12 --bundle --outfile=dist/basis-nodejs-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
40
41
|
"build-npy-worker": "esbuild src/workers/npy-worker.ts --bundle --outfile=dist/npy-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
41
42
|
"build-compressed-texture-worker": "esbuild src/workers/compressed-texture-worker.ts --bundle --outfile=dist/compressed-texture-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
42
|
-
"build-crunch-worker": "esbuild src/workers/crunch-worker.ts --bundle --outfile=dist/crunch-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
43
|
+
"build-crunch-worker": "esbuild src/workers/crunch-worker.ts --bundle --outfile=dist/crunch-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
44
|
+
"build-ktx2-basis-writer-worker": "esbuild src/workers/ktx2-basis-writer-worker.ts --bundle --outfile=dist/ktx2-basis-writer-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
|
|
45
|
+
"build-ktx2-basis-writer-nodejs-worker": "esbuild src/workers/ktx2-basis-writer-nodejs-worker.ts --platform=node --target=esnext,node12 --bundle --outfile=dist/ktx2-basis-writer-nodejs-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
43
46
|
},
|
|
44
47
|
"dependencies": {
|
|
45
|
-
"@loaders.gl/images": "4.0.0-alpha.
|
|
46
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
47
|
-
"@loaders.gl/schema": "4.0.0-alpha.
|
|
48
|
-
"@loaders.gl/worker-utils": "4.0.0-alpha.
|
|
48
|
+
"@loaders.gl/images": "4.0.0-alpha.6",
|
|
49
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.6",
|
|
50
|
+
"@loaders.gl/schema": "4.0.0-alpha.6",
|
|
51
|
+
"@loaders.gl/worker-utils": "4.0.0-alpha.6",
|
|
49
52
|
"ktx-parse": "^0.0.4",
|
|
50
53
|
"texture-compressor": "^1.0.2"
|
|
51
54
|
},
|
|
52
|
-
"
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@loaders.gl/polyfills": "4.0.0-alpha.6"
|
|
57
|
+
},
|
|
58
|
+
"gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
|
|
53
59
|
}
|
package/src/basis-loader.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {Loader, LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
4
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
5
|
+
import {isBrowser} from '@loaders.gl/worker-utils';
|
|
2
6
|
import {VERSION} from './lib/utils/version';
|
|
3
7
|
import parseBasis from './lib/parsers/parse-basis';
|
|
4
8
|
|
|
5
9
|
/**
|
|
6
10
|
* Worker loader for Basis super compressed textures
|
|
7
11
|
*/
|
|
8
|
-
export const BasisWorkerLoader = {
|
|
12
|
+
export const BasisWorkerLoader: Loader<TextureLevel[][], never, LoaderOptions> = {
|
|
9
13
|
name: 'Basis',
|
|
10
|
-
id: 'basis',
|
|
14
|
+
id: isBrowser ? 'basis' : 'basis-nodejs',
|
|
11
15
|
module: 'textures',
|
|
12
16
|
version: VERSION,
|
|
13
17
|
worker: true,
|
|
@@ -28,11 +32,7 @@ export const BasisWorkerLoader = {
|
|
|
28
32
|
/**
|
|
29
33
|
* Loader for Basis super compressed textures
|
|
30
34
|
*/
|
|
31
|
-
export const BasisLoader = {
|
|
35
|
+
export const BasisLoader: LoaderWithParser<TextureLevel[][], never, LoaderOptions> = {
|
|
32
36
|
...BasisWorkerLoader,
|
|
33
37
|
parse: parseBasis
|
|
34
38
|
};
|
|
35
|
-
|
|
36
|
-
// TYPE TESTS - TODO find a better way than exporting junk
|
|
37
|
-
export const _TypecheckBasisWorkerLoader: Loader = BasisWorkerLoader;
|
|
38
|
-
export const _TypecheckBasisLoader: LoaderWithParser = BasisLoader;
|
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
import type {Writer} from '@loaders.gl/loader-utils';
|
|
1
|
+
import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
|
|
2
2
|
import {VERSION} from './lib/utils/version';
|
|
3
3
|
import {encodeImageURLToCompressedTextureURL} from './lib/encoders/encode-texture';
|
|
4
4
|
|
|
5
|
+
export type CompressedTextureWriterOptions = WriterOptions & {
|
|
6
|
+
cwd?: string;
|
|
7
|
+
texture?: {
|
|
8
|
+
format: string;
|
|
9
|
+
compression: string;
|
|
10
|
+
quality: string;
|
|
11
|
+
mipmap: boolean;
|
|
12
|
+
flipY: boolean;
|
|
13
|
+
toolFlags: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
|
|
5
17
|
/**
|
|
6
18
|
* DDS Texture Container Exporter
|
|
7
19
|
*/
|
|
8
|
-
export const CompressedTextureWriter = {
|
|
20
|
+
export const CompressedTextureWriter: Writer<unknown, unknown, CompressedTextureWriterOptions> = {
|
|
9
21
|
name: 'DDS Texture Container',
|
|
10
22
|
id: 'dds',
|
|
11
23
|
module: 'textures',
|
|
@@ -28,4 +40,10 @@ export const CompressedTextureWriter = {
|
|
|
28
40
|
};
|
|
29
41
|
|
|
30
42
|
// TYPE TESTS - TODO find a better way than exporting junk
|
|
31
|
-
export const _TypecheckCompressedTextureWriter:
|
|
43
|
+
// export const _TypecheckCompressedTextureWriter: typeof CompressedTextureWriter & {
|
|
44
|
+
// encodeURLtoURL: (
|
|
45
|
+
// inputUrl: string,
|
|
46
|
+
// outputUrl: string,
|
|
47
|
+
// options?: CompressedTextureWriterOptions
|
|
48
|
+
// ) => Promise<string>;
|
|
49
|
+
// } = CompressedTextureWriter;
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {isBrowser} from '@loaders.gl/loader-utils';
|
|
2
|
+
import {VERSION} from './lib/utils/version';
|
|
3
|
+
|
|
1
4
|
// Types
|
|
2
5
|
export type {GPUTextureFormat} from '@loaders.gl/schema';
|
|
3
6
|
export type {TextureLoaderOptions} from './compressed-texture-loader';
|
|
@@ -10,7 +13,22 @@ export {NPYLoader, NPYWorkerLoader} from './npy-loader';
|
|
|
10
13
|
|
|
11
14
|
// Writers
|
|
12
15
|
export {CompressedTextureWriter} from './compressed-texture-writer';
|
|
13
|
-
export {
|
|
16
|
+
export {KTX2BasisWriter} from './ktx2-basis-writer';
|
|
17
|
+
|
|
18
|
+
export const KTX2BasisWriterWorker = {
|
|
19
|
+
name: 'Basis Universal Supercompressed GPU Texture',
|
|
20
|
+
id: isBrowser ? 'ktx2-basis-writer' : 'ktx2-basis-writer-nodejs',
|
|
21
|
+
module: 'textures',
|
|
22
|
+
version: VERSION,
|
|
23
|
+
extensions: ['ktx2'],
|
|
24
|
+
worker: true,
|
|
25
|
+
options: {
|
|
26
|
+
useSRGB: false,
|
|
27
|
+
qualityLevel: 10,
|
|
28
|
+
encodeUASTC: false,
|
|
29
|
+
mipmaps: false
|
|
30
|
+
}
|
|
31
|
+
};
|
|
14
32
|
|
|
15
33
|
// Texture Loading API
|
|
16
34
|
export {loadImageTexture} from './lib/texture-api/load-image';
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
1
3
|
import type {Writer} from '@loaders.gl/loader-utils';
|
|
2
4
|
import {VERSION} from './lib/utils/version';
|
|
5
|
+
import type {ImageDataType} from '@loaders.gl/images';
|
|
3
6
|
import {encodeKTX2BasisTexture} from './lib/encoders/encode-ktx2-basis-texture';
|
|
4
7
|
|
|
8
|
+
/** @todo should be in basis sub-object */
|
|
9
|
+
export type KTX2BasisWriterOptions = {
|
|
10
|
+
useSRGB?: boolean;
|
|
11
|
+
qualityLevel?: number;
|
|
12
|
+
encodeUASTC?: boolean;
|
|
13
|
+
mipmaps?: boolean;
|
|
14
|
+
};
|
|
15
|
+
|
|
5
16
|
/**
|
|
6
17
|
* Basis Universal Supercompressed GPU Texture.
|
|
7
18
|
* Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md
|
|
8
19
|
*/
|
|
9
|
-
export const
|
|
20
|
+
export const KTX2BasisWriter: Writer<ImageDataType, unknown, KTX2BasisWriterOptions> = {
|
|
10
21
|
name: 'Basis Universal Supercompressed GPU Texture',
|
|
11
|
-
id: 'ktx2-basis-
|
|
22
|
+
id: 'ktx2-basis-writer',
|
|
12
23
|
module: 'textures',
|
|
13
24
|
version: VERSION,
|
|
14
25
|
|
|
@@ -24,4 +35,4 @@ export const KTX2BasisUniversalTextureWriter = {
|
|
|
24
35
|
};
|
|
25
36
|
|
|
26
37
|
// TYPE TESTS - TODO find a better way than exporting junk
|
|
27
|
-
export const _TypecheckKTX2TextureWriter: Writer =
|
|
38
|
+
export const _TypecheckKTX2TextureWriter: Writer = KTX2BasisWriter;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {ChildProcessProxy} from '@loaders.gl/worker-utils';
|
|
2
|
+
import {CompressedTextureWriterOptions} from '../../compressed-texture-writer';
|
|
2
3
|
|
|
3
4
|
/*
|
|
4
5
|
* @see https://github.com/TimvanScherpenzeel/texture-compressor
|
|
@@ -6,7 +7,7 @@ import {ChildProcessProxy} from '@loaders.gl/worker-utils';
|
|
|
6
7
|
export async function encodeImageURLToCompressedTextureURL(
|
|
7
8
|
inputUrl: string,
|
|
8
9
|
outputUrl: string,
|
|
9
|
-
options?:
|
|
10
|
+
options?: CompressedTextureWriterOptions
|
|
10
11
|
): Promise<string> {
|
|
11
12
|
// prettier-ignore
|
|
12
13
|
const args = [
|