@loaders.gl/textures 4.0.0-alpha.4 → 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 +11 -0
- package/dist/basis-loader.d.ts.map +1 -0
- package/dist/basis-loader.js +36 -24
- package/dist/basis-nodejs-worker.js +66490 -0
- package/dist/basis-worker.js +165 -76
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- 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 +59 -36
- package/dist/compressed-texture-worker.js +269 -138
- package/dist/compressed-texture-writer.d.ts +17 -0
- package/dist/compressed-texture-writer.d.ts.map +1 -0
- package/dist/compressed-texture-writer.js +33 -21
- package/dist/crunch-loader.d.ts +21 -0
- package/dist/crunch-loader.d.ts.map +1 -0
- package/dist/crunch-loader.js +23 -16
- package/dist/crunch-worker.js +106 -41
- package/dist/dist.min.js +2195 -0
- 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/README.md +9 -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/es5/libs/basis_transcoder.wasm +0 -0
- package/dist/es5/libs/crunch.js +136 -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/{lib/gl-constants.js → esm/lib/gl-extensions.js} +2 -2
- 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 +30 -0
- package/dist/index.d.ts.map +1 -0
- 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.d.ts +2 -0
- package/dist/lib/encoders/encode-ktx.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx.js +9 -5
- 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 +40 -34
- package/dist/lib/encoders/encode-texture.d.ts +3 -0
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-texture.js +26 -14
- package/dist/lib/gl-extensions.d.ts +61 -0
- package/dist/lib/gl-extensions.d.ts.map +1 -0
- package/dist/lib/gl-extensions.js +72 -0
- package/dist/lib/parsers/basis-module-loader.d.ts +13 -0
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/basis-module-loader.js +100 -76
- 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 +30 -18
- 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 +225 -240
- 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 +25 -18
- 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 +97 -82
- 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 +93 -63
- 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 +44 -23
- package/dist/lib/parsers/parse-npy.d.ts +15 -0
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -0
- package/dist/lib/parsers/parse-npy.js +76 -71
- 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 +212 -133
- package/dist/lib/texture-api/async-deep-map.d.ts +5 -0
- package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -0
- package/dist/lib/texture-api/async-deep-map.js +35 -33
- package/dist/lib/texture-api/deep-load.d.ts +5 -0
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -0
- package/dist/lib/texture-api/deep-load.js +14 -8
- package/dist/lib/texture-api/generate-url.d.ts +3 -0
- package/dist/lib/texture-api/generate-url.d.ts.map +1 -0
- package/dist/lib/texture-api/generate-url.js +16 -13
- package/dist/lib/texture-api/load-image-array.d.ts +4 -0
- package/dist/lib/texture-api/load-image-array.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-array.js +19 -18
- package/dist/lib/texture-api/load-image-cube.d.ts +12 -0
- package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-cube.js +39 -55
- package/dist/lib/texture-api/load-image.d.ts +8 -0
- package/dist/lib/texture-api/load-image.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image.js +38 -43
- package/dist/lib/texture-api/texture-api-types.d.ts +10 -0
- package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -0
- package/dist/lib/texture-api/texture-api-types.js +3 -2
- 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 +45 -36
- 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 +122 -70
- 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 +42 -30
- package/dist/lib/utils/version.d.ts +2 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +8 -2
- package/dist/libs/README.md +2 -2
- package/dist/libs/basis_encoder.js +19 -20
- package/dist/libs/basis_encoder.wasm +0 -0
- package/dist/libs/basis_transcoder.js +13 -12
- package/dist/libs/basis_transcoder.wasm +0 -0
- package/dist/libs/crunch.js +1 -0
- package/dist/npy-loader.d.ts +14 -0
- package/dist/npy-loader.d.ts.map +1 -0
- package/dist/npy-loader.js +28 -20
- package/dist/npy-worker.js +60 -31
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- 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.d.ts +2 -0
- package/dist/workers/basis-worker.d.ts.map +1 -0
- package/dist/workers/basis-worker.js +5 -4
- package/dist/workers/compressed-texture-worker.d.ts +2 -0
- package/dist/workers/compressed-texture-worker.d.ts.map +1 -0
- package/dist/workers/compressed-texture-worker.js +5 -4
- package/dist/workers/crunch-worker.d.ts +21 -0
- package/dist/workers/crunch-worker.d.ts.map +1 -0
- package/dist/workers/crunch-worker.js +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.d.ts +2 -0
- package/dist/workers/npy-worker.d.ts.map +1 -0
- package/dist/workers/npy-worker.js +5 -4
- package/package.json +21 -14
- package/src/basis-loader.ts +8 -8
- package/src/compressed-texture-loader.ts +1 -1
- package/src/compressed-texture-writer.ts +21 -3
- package/src/index.ts +21 -3
- 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-ktx2-basis-texture.ts +2 -2
- package/src/lib/encoders/encode-texture.ts +7 -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} +101 -45
- 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 +53 -30
- 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 +19 -20
- package/src/libs/basis_encoder.wasm +0 -0
- package/src/libs/basis_transcoder.js +13 -12
- package/src/libs/basis_transcoder.wasm +0 -0
- package/src/libs/crunch.js +1 -0
- package/src/npy-loader.ts +7 -7
- package/src/types.ts +0 -30
- 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.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-constants.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/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/src/lib/parsers/parse-ktx.js +0 -45
- package/src/lib/parsers/parse-npy.js +0 -96
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crunch-worker.js","names":["_loaderUtils","require","_crunchLoader","_parseCrunch","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","CrunchLoaderWithParser","CrunchLoader","parse","parseCrunch","exports","createLoaderWorker"],"sources":["../../../src/workers/crunch-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {CrunchLoader} from '../crunch-loader';\nimport {parseCrunch} from '../lib/parsers/parse-crunch';\n\n/**\n * Loader for the Crunch compressed texture container format\n */\nexport const CrunchLoaderWithParser = {\n ...CrunchLoader,\n parse: parseCrunch\n};\n\ncreateLoaderWorker(CrunchLoaderWithParser);\n"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAAwD,SAAAG,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAKjD,IAAMY,sBAAsB,GAAAb,aAAA,CAAAA,aAAA,KAC9Bc,0BAAY;EACfC,KAAK,EAAEC;AAAW,EACnB;AAACC,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA;AAEF,IAAAK,+BAAkB,EAACL,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
7
|
+
var _ktx2BasisWriterNodejs = require("../ktx2-basis-writer-nodejs");
|
|
8
|
+
(function () {
|
|
9
|
+
if (!_workerUtils.WorkerBody.inWorkerThread()) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
_workerUtils.WorkerBody.onmessage = function () {
|
|
13
|
+
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(type, payload) {
|
|
14
|
+
var _KTX2BasisWriterNodeJ, input, options, result, message;
|
|
15
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
16
|
+
while (1) switch (_context.prev = _context.next) {
|
|
17
|
+
case 0:
|
|
18
|
+
_context.t0 = type;
|
|
19
|
+
_context.next = _context.t0 === 'process' ? 3 : 16;
|
|
20
|
+
break;
|
|
21
|
+
case 3:
|
|
22
|
+
_context.prev = 3;
|
|
23
|
+
input = payload.input, options = payload.options;
|
|
24
|
+
_context.next = 7;
|
|
25
|
+
return (_KTX2BasisWriterNodeJ = _ktx2BasisWriterNodejs.KTX2BasisWriterNodeJS.encode) === null || _KTX2BasisWriterNodeJ === void 0 ? void 0 : _KTX2BasisWriterNodeJ.call(_ktx2BasisWriterNodejs.KTX2BasisWriterNodeJS, input, options);
|
|
26
|
+
case 7:
|
|
27
|
+
result = _context.sent;
|
|
28
|
+
_workerUtils.WorkerBody.postMessage('done', {
|
|
29
|
+
result: result
|
|
30
|
+
});
|
|
31
|
+
_context.next = 15;
|
|
32
|
+
break;
|
|
33
|
+
case 11:
|
|
34
|
+
_context.prev = 11;
|
|
35
|
+
_context.t1 = _context["catch"](3);
|
|
36
|
+
message = _context.t1 instanceof Error ? _context.t1.message : '';
|
|
37
|
+
_workerUtils.WorkerBody.postMessage('error', {
|
|
38
|
+
error: message
|
|
39
|
+
});
|
|
40
|
+
case 15:
|
|
41
|
+
return _context.abrupt("break", 16);
|
|
42
|
+
case 16:
|
|
43
|
+
case "end":
|
|
44
|
+
return _context.stop();
|
|
45
|
+
}
|
|
46
|
+
}, _callee, null, [[3, 11]]);
|
|
47
|
+
}));
|
|
48
|
+
return function (_x, _x2) {
|
|
49
|
+
return _ref.apply(this, arguments);
|
|
50
|
+
};
|
|
51
|
+
}();
|
|
52
|
+
})();
|
|
53
|
+
//# sourceMappingURL=ktx2-basis-writer-nodejs-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-nodejs-worker.js","names":["_workerUtils","require","_ktx2BasisWriterNodejs","WorkerBody","inWorkerThread","onmessage","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","type","payload","_KTX2BasisWriterNodeJ","input","options","result","message","wrap","_callee$","_context","prev","next","t0","KTX2BasisWriterNodeJS","encode","call","sent","postMessage","t1","Error","error","abrupt","stop","_x","_x2","apply","arguments"],"sources":["../../../src/workers/ktx2-basis-writer-nodejs-worker.ts"],"sourcesContent":["import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {KTX2BasisWriterNodeJS} from '../ktx2-basis-writer-nodejs';\n\n(() => {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {\n switch (type) {\n case 'process':\n try {\n const {input, options} = payload;\n const result = await KTX2BasisWriterNodeJS.encode?.(input, options);\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n})();\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAEA,CAAC,YAAM;EAEL,IAAI,CAACE,uBAAU,CAACC,cAAc,CAAC,CAAC,EAAE;IAChC;EACF;EAEAD,uBAAU,CAACE,SAAS;IAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QAAOC,IAAI,EAAEC,OAA6B;MAAA,IAAAC,qBAAA,EAAAC,KAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,OAAA;MAAA,OAAAT,YAAA,CAAAD,OAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAG,EAAA,GACvDZ,IAAI;YAAAS,QAAA,CAAAE,IAAA,GAAAF,QAAA,CAAAG,EAAA,KACL,SAAS;YAAA;UAAA;YAAAH,QAAA,CAAAC,IAAA;YAEHP,KAAK,GAAaF,OAAO,CAAzBE,KAAK,EAAEC,OAAO,GAAIH,OAAO,CAAlBG,OAAO;YAAAK,QAAA,CAAAE,IAAA;YAAA,QAAAT,qBAAA,GACAW,4CAAqB,CAACC,MAAM,cAAAZ,qBAAA,uBAA5BA,qBAAA,CAAAa,IAAA,CAAAF,4CAAqB,EAAUV,KAAK,EAAEC,OAAO,CAAC;UAAA;YAA7DC,MAAM,GAAAI,QAAA,CAAAO,IAAA;YACZzB,uBAAU,CAAC0B,WAAW,CAAC,MAAM,EAAE;cAACZ,MAAM,EAANA;YAAM,CAAC,CAAC;YAACI,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAAF,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAS,EAAA,GAAAT,QAAA;YAEnCH,OAAO,GAAGG,QAAA,CAAAS,EAAA,YAAiBC,KAAK,GAAGV,QAAA,CAAAS,EAAA,CAAMZ,OAAO,GAAG,EAAE;YAC3Df,uBAAU,CAAC0B,WAAW,CAAC,OAAO,EAAE;cAACG,KAAK,EAAEd;YAAO,CAAC,CAAC;UAAC;YAAA,OAAAG,QAAA,CAAAY,MAAA;UAAA;UAAA;YAAA,OAAAZ,QAAA,CAAAa,IAAA;QAAA;MAAA,GAAAvB,OAAA;IAAA,CAKzD;IAAA,iBAAAwB,EAAA,EAAAC,GAAA;MAAA,OAAA9B,IAAA,CAAA+B,KAAA,OAAAC,SAAA;IAAA;EAAA;AACH,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
7
|
+
var _ktx2BasisWriter = require("../ktx2-basis-writer");
|
|
8
|
+
(function () {
|
|
9
|
+
if (!_workerUtils.WorkerBody.inWorkerThread()) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
_workerUtils.WorkerBody.onmessage = function () {
|
|
13
|
+
var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(type, payload) {
|
|
14
|
+
var _KTX2BasisWriter$enco, input, options, result, message;
|
|
15
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
16
|
+
while (1) switch (_context.prev = _context.next) {
|
|
17
|
+
case 0:
|
|
18
|
+
_context.t0 = type;
|
|
19
|
+
_context.next = _context.t0 === 'process' ? 3 : 16;
|
|
20
|
+
break;
|
|
21
|
+
case 3:
|
|
22
|
+
_context.prev = 3;
|
|
23
|
+
input = payload.input, options = payload.options;
|
|
24
|
+
_context.next = 7;
|
|
25
|
+
return (_KTX2BasisWriter$enco = _ktx2BasisWriter.KTX2BasisWriter.encode) === null || _KTX2BasisWriter$enco === void 0 ? void 0 : _KTX2BasisWriter$enco.call(_ktx2BasisWriter.KTX2BasisWriter, input, options);
|
|
26
|
+
case 7:
|
|
27
|
+
result = _context.sent;
|
|
28
|
+
_workerUtils.WorkerBody.postMessage('done', {
|
|
29
|
+
result: result
|
|
30
|
+
});
|
|
31
|
+
_context.next = 15;
|
|
32
|
+
break;
|
|
33
|
+
case 11:
|
|
34
|
+
_context.prev = 11;
|
|
35
|
+
_context.t1 = _context["catch"](3);
|
|
36
|
+
message = _context.t1 instanceof Error ? _context.t1.message : '';
|
|
37
|
+
_workerUtils.WorkerBody.postMessage('error', {
|
|
38
|
+
error: message
|
|
39
|
+
});
|
|
40
|
+
case 15:
|
|
41
|
+
return _context.abrupt("break", 16);
|
|
42
|
+
case 16:
|
|
43
|
+
case "end":
|
|
44
|
+
return _context.stop();
|
|
45
|
+
}
|
|
46
|
+
}, _callee, null, [[3, 11]]);
|
|
47
|
+
}));
|
|
48
|
+
return function (_x, _x2) {
|
|
49
|
+
return _ref.apply(this, arguments);
|
|
50
|
+
};
|
|
51
|
+
}();
|
|
52
|
+
})();
|
|
53
|
+
//# sourceMappingURL=ktx2-basis-writer-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-worker.js","names":["_workerUtils","require","_ktx2BasisWriter","WorkerBody","inWorkerThread","onmessage","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","type","payload","_KTX2BasisWriter$enco","input","options","result","message","wrap","_callee$","_context","prev","next","t0","KTX2BasisWriter","encode","call","sent","postMessage","t1","Error","error","abrupt","stop","_x","_x2","apply","arguments"],"sources":["../../../src/workers/ktx2-basis-writer-worker.ts"],"sourcesContent":["import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {KTX2BasisWriter} from '../ktx2-basis-writer';\n\n(() => {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {\n switch (type) {\n case 'process':\n try {\n const {input, options} = payload;\n const result = await KTX2BasisWriter.encode?.(input, options);\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n})();\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,CAAC,YAAM;EAEL,IAAI,CAACE,uBAAU,CAACC,cAAc,CAAC,CAAC,EAAE;IAChC;EACF;EAEAD,uBAAU,CAACE,SAAS;IAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QAAOC,IAAI,EAAEC,OAA6B;MAAA,IAAAC,qBAAA,EAAAC,KAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,OAAA;MAAA,OAAAT,YAAA,CAAAD,OAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAG,EAAA,GACvDZ,IAAI;YAAAS,QAAA,CAAAE,IAAA,GAAAF,QAAA,CAAAG,EAAA,KACL,SAAS;YAAA;UAAA;YAAAH,QAAA,CAAAC,IAAA;YAEHP,KAAK,GAAaF,OAAO,CAAzBE,KAAK,EAAEC,OAAO,GAAIH,OAAO,CAAlBG,OAAO;YAAAK,QAAA,CAAAE,IAAA;YAAA,QAAAT,qBAAA,GACAW,gCAAe,CAACC,MAAM,cAAAZ,qBAAA,uBAAtBA,qBAAA,CAAAa,IAAA,CAAAF,gCAAe,EAAUV,KAAK,EAAEC,OAAO,CAAC;UAAA;YAAvDC,MAAM,GAAAI,QAAA,CAAAO,IAAA;YACZzB,uBAAU,CAAC0B,WAAW,CAAC,MAAM,EAAE;cAACZ,MAAM,EAANA;YAAM,CAAC,CAAC;YAACI,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAAF,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAS,EAAA,GAAAT,QAAA;YAEnCH,OAAO,GAAGG,QAAA,CAAAS,EAAA,YAAiBC,KAAK,GAAGV,QAAA,CAAAS,EAAA,CAAMZ,OAAO,GAAG,EAAE;YAC3Df,uBAAU,CAAC0B,WAAW,CAAC,OAAO,EAAE;cAACG,KAAK,EAAEd;YAAO,CAAC,CAAC;UAAC;YAAA,OAAAG,QAAA,CAAAY,MAAA;UAAA;UAAA;YAAA,OAAAZ,QAAA,CAAAa,IAAA;QAAA;MAAA,GAAAvB,OAAA;IAAA,CAKzD;IAAA,iBAAAwB,EAAA,EAAAC,GAAA;MAAA,OAAA9B,IAAA,CAAA+B,KAAA,OAAAC,SAAA;IAAA;EAAA;AACH,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npy-worker.js","names":["_npyLoader","require","_loaderUtils","createLoaderWorker","NPYLoader"],"sources":["../../../src/workers/npy-worker.ts"],"sourcesContent":["import {NPYLoader} from '../npy-loader';\nimport {createLoaderWorker} from '@loaders.gl/loader-utils';\n\ncreateLoaderWorker(NPYLoader);\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAkB,EAACC,oBAAS,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isBrowser } from '@loaders.gl/worker-utils';
|
|
2
|
+
import { VERSION } from './lib/utils/version';
|
|
3
|
+
import parseBasis from './lib/parsers/parse-basis';
|
|
4
|
+
export const BasisWorkerLoader = {
|
|
5
|
+
name: 'Basis',
|
|
6
|
+
id: isBrowser ? 'basis' : 'basis-nodejs',
|
|
7
|
+
module: 'textures',
|
|
8
|
+
version: VERSION,
|
|
9
|
+
worker: true,
|
|
10
|
+
extensions: ['basis', 'ktx2'],
|
|
11
|
+
mimeTypes: ['application/octet-stream', 'image/ktx2'],
|
|
12
|
+
tests: ['sB'],
|
|
13
|
+
binary: true,
|
|
14
|
+
options: {
|
|
15
|
+
basis: {
|
|
16
|
+
format: 'auto',
|
|
17
|
+
libraryPath: 'libs/',
|
|
18
|
+
containerFormat: 'auto',
|
|
19
|
+
module: 'transcoder'
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export const BasisLoader = {
|
|
24
|
+
...BasisWorkerLoader,
|
|
25
|
+
parse: parseBasis
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=basis-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basis-loader.js","names":["isBrowser","VERSION","parseBasis","BasisWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","tests","binary","options","basis","format","libraryPath","containerFormat","BasisLoader","parse"],"sources":["../../src/basis-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {TextureLevel} from '@loaders.gl/schema';\nimport {isBrowser} from '@loaders.gl/worker-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseBasis from './lib/parsers/parse-basis';\n\n/**\n * Worker loader for Basis super compressed textures\n */\nexport const BasisWorkerLoader: Loader<TextureLevel[][], never, LoaderOptions> = {\n name: 'Basis',\n id: isBrowser ? 'basis' : 'basis-nodejs',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['basis', 'ktx2'],\n mimeTypes: ['application/octet-stream', 'image/ktx2'],\n tests: ['sB'],\n binary: true,\n options: {\n basis: {\n format: 'auto', // gl context doesn't exist on a worker thread\n libraryPath: 'libs/',\n containerFormat: 'auto', // 'basis' || 'ktx2' || 'auto'\n module: 'transcoder' // 'transcoder' || 'encoder'\n }\n }\n};\n\n/**\n * Loader for Basis super compressed textures\n */\nexport const BasisLoader: LoaderWithParser<TextureLevel[][], never, LoaderOptions> = {\n ...BasisWorkerLoader,\n parse: parseBasis\n};\n"],"mappings":"AAIA,SAAQA,SAAS,QAAO,0BAA0B;AAClD,SAAQC,OAAO,QAAO,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,2BAA2B;AAKlD,OAAO,MAAMC,iBAAiE,GAAG;EAC/EC,IAAI,EAAE,OAAO;EACbC,EAAE,EAAEL,SAAS,GAAG,OAAO,GAAG,cAAc;EACxCM,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAChBO,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;EAC7BC,SAAS,EAAE,CAAC,0BAA0B,EAAE,YAAY,CAAC;EACrDC,KAAK,EAAE,CAAC,IAAI,CAAC;EACbC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,MAAM,EAAE,MAAM;MACdC,WAAW,EAAE,OAAO;MACpBC,eAAe,EAAE,MAAM;MACvBX,MAAM,EAAE;IACV;EACF;AACF,CAAC;AAKD,OAAO,MAAMY,WAAqE,GAAG;EACnF,GAAGf,iBAAiB;EACpBgB,KAAK,EAAEjB;AACT,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { VERSION } from './lib/utils/version';
|
|
2
|
+
import { parseCompressedTexture } from './lib/parsers/parse-compressed-texture';
|
|
3
|
+
import parseBasis from './lib/parsers/parse-basis';
|
|
4
|
+
const DEFAULT_TEXTURE_LOADER_OPTIONS = {
|
|
5
|
+
'compressed-texture': {
|
|
6
|
+
libraryPath: 'libs/',
|
|
7
|
+
useBasis: false
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
export const CompressedTextureWorkerLoader = {
|
|
11
|
+
name: 'Texture Containers',
|
|
12
|
+
id: 'compressed-texture',
|
|
13
|
+
module: 'textures',
|
|
14
|
+
version: VERSION,
|
|
15
|
+
worker: true,
|
|
16
|
+
extensions: ['ktx', 'ktx2', 'dds', 'pvr'],
|
|
17
|
+
mimeTypes: ['image/ktx2', 'image/ktx', 'image/vnd-ms.dds', 'image/x-dds', 'application/octet-stream'],
|
|
18
|
+
binary: true,
|
|
19
|
+
options: DEFAULT_TEXTURE_LOADER_OPTIONS
|
|
20
|
+
};
|
|
21
|
+
export const CompressedTextureLoader = {
|
|
22
|
+
...CompressedTextureWorkerLoader,
|
|
23
|
+
parse: async (arrayBuffer, options) => {
|
|
24
|
+
if (options['compressed-texture'].useBasis) {
|
|
25
|
+
options.basis = {
|
|
26
|
+
format: {
|
|
27
|
+
alpha: 'BC3',
|
|
28
|
+
noAlpha: 'BC1'
|
|
29
|
+
},
|
|
30
|
+
...options.basis,
|
|
31
|
+
containerFormat: 'ktx2',
|
|
32
|
+
module: 'encoder'
|
|
33
|
+
};
|
|
34
|
+
return (await parseBasis(arrayBuffer, options))[0];
|
|
35
|
+
}
|
|
36
|
+
return parseCompressedTexture(arrayBuffer);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export const _TypecheckCompressedTextureWorkerLoader = CompressedTextureWorkerLoader;
|
|
40
|
+
export const _TypecheckCompressedTextureLoader = CompressedTextureLoader;
|
|
41
|
+
//# sourceMappingURL=compressed-texture-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressed-texture-loader.js","names":["VERSION","parseCompressedTexture","parseBasis","DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"sources":["../../src/compressed-texture-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseCompressedTexture} from './lib/parsers/parse-compressed-texture';\nimport parseBasis from './lib/parsers/parse-basis';\n\nexport type TextureLoaderOptions = {\n 'compressed-texture'?: {\n libraryPath?: string;\n useBasis?: boolean;\n };\n};\n\nconst DEFAULT_TEXTURE_LOADER_OPTIONS = {\n 'compressed-texture': {\n libraryPath: 'libs/',\n useBasis: false\n }\n};\n\n/**\n * Worker Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureWorkerLoader = {\n name: 'Texture Containers',\n id: 'compressed-texture',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: [\n 'ktx',\n 'ktx2',\n 'dds', // WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_atc\n 'pvr' // WEBGL_compressed_texture_pvrtc\n ],\n mimeTypes: [\n 'image/ktx2',\n 'image/ktx',\n 'image/vnd-ms.dds',\n 'image/x-dds',\n 'application/octet-stream'\n ],\n binary: true,\n options: DEFAULT_TEXTURE_LOADER_OPTIONS\n};\n\n/**\n * Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureLoader = {\n ...CompressedTextureWorkerLoader,\n parse: async (arrayBuffer, options) => {\n if (options['compressed-texture'].useBasis) {\n options.basis = {\n format: {\n alpha: 'BC3',\n noAlpha: 'BC1'\n },\n ...options.basis,\n containerFormat: 'ktx2',\n module: 'encoder'\n };\n return (await parseBasis(arrayBuffer, options))[0];\n }\n return parseCompressedTexture(arrayBuffer);\n }\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWorkerLoader: Loader = CompressedTextureWorkerLoader;\nexport const _TypecheckCompressedTextureLoader: LoaderWithParser = CompressedTextureLoader;\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,qBAAqB;AAC3C,SAAQC,sBAAsB,QAAO,wCAAwC;AAC7E,OAAOC,UAAU,MAAM,2BAA2B;AASlD,MAAMC,8BAA8B,GAAG;EACrC,oBAAoB,EAAE;IACpBC,WAAW,EAAE,OAAO;IACpBC,QAAQ,EAAE;EACZ;AACF,CAAC;AAKD,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,IAAI,EAAE,oBAAoB;EAC1BC,EAAE,EAAE,oBAAoB;EACxBC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEV,OAAO;EAChBW,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CACV,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,CACN;EACDC,SAAS,EAAE,CACT,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAEZ;AACX,CAAC;AAKD,OAAO,MAAMa,uBAAuB,GAAG;EACrC,GAAGV,6BAA6B;EAChCW,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEH,OAAO,KAAK;IACrC,IAAIA,OAAO,CAAC,oBAAoB,CAAC,CAACV,QAAQ,EAAE;MAC1CU,OAAO,CAACI,KAAK,GAAG;QACdC,MAAM,EAAE;UACNC,KAAK,EAAE,KAAK;UACZC,OAAO,EAAE;QACX,CAAC;QACD,GAAGP,OAAO,CAACI,KAAK;QAChBI,eAAe,EAAE,MAAM;QACvBd,MAAM,EAAE;MACV,CAAC;MACD,OAAO,CAAC,MAAMP,UAAU,CAACgB,WAAW,EAAEH,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD;IACA,OAAOd,sBAAsB,CAACiB,WAAW,CAAC;EAC5C;AACF,CAAC;AAGD,OAAO,MAAMM,uCAA+C,GAAGlB,6BAA6B;AAC5F,OAAO,MAAMmB,iCAAmD,GAAGT,uBAAuB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { VERSION } from './lib/utils/version';
|
|
2
|
+
import { encodeImageURLToCompressedTextureURL } from './lib/encoders/encode-texture';
|
|
3
|
+
export const CompressedTextureWriter = {
|
|
4
|
+
name: 'DDS Texture Container',
|
|
5
|
+
id: 'dds',
|
|
6
|
+
module: 'textures',
|
|
7
|
+
version: VERSION,
|
|
8
|
+
extensions: ['dds'],
|
|
9
|
+
options: {
|
|
10
|
+
texture: {
|
|
11
|
+
format: 'auto',
|
|
12
|
+
compression: 'auto',
|
|
13
|
+
quality: 'auto',
|
|
14
|
+
mipmap: false,
|
|
15
|
+
flipY: false,
|
|
16
|
+
toolFlags: ''
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
encodeURLtoURL: encodeImageURLToCompressedTextureURL
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=compressed-texture-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressed-texture-writer.js","names":["VERSION","encodeImageURLToCompressedTextureURL","CompressedTextureWriter","name","id","module","version","extensions","options","texture","format","compression","quality","mipmap","flipY","toolFlags","encodeURLtoURL"],"sources":["../../src/compressed-texture-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeImageURLToCompressedTextureURL} from './lib/encoders/encode-texture';\n\nexport type CompressedTextureWriterOptions = WriterOptions & {\n cwd?: string;\n texture?: {\n format: string;\n compression: string;\n quality: string;\n mipmap: boolean;\n flipY: boolean;\n toolFlags: string;\n };\n};\n\n/**\n * DDS Texture Container Exporter\n */\nexport const CompressedTextureWriter: Writer<unknown, unknown, CompressedTextureWriterOptions> = {\n name: 'DDS Texture Container',\n id: 'dds',\n module: 'textures',\n version: VERSION,\n\n extensions: ['dds'],\n\n options: {\n texture: {\n format: 'auto',\n compression: 'auto',\n quality: 'auto',\n mipmap: false,\n flipY: false,\n toolFlags: ''\n }\n },\n\n encodeURLtoURL: encodeImageURLToCompressedTextureURL\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\n// export const _TypecheckCompressedTextureWriter: typeof CompressedTextureWriter & {\n// encodeURLtoURL: (\n// inputUrl: string,\n// outputUrl: string,\n// options?: CompressedTextureWriterOptions\n// ) => Promise<string>;\n// } = CompressedTextureWriter;\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,qBAAqB;AAC3C,SAAQC,oCAAoC,QAAO,+BAA+B;AAiBlF,OAAO,MAAMC,uBAAiF,GAAG;EAC/FC,IAAI,EAAE,uBAAuB;EAC7BC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAEhBO,UAAU,EAAE,CAAC,KAAK,CAAC;EAEnBC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,MAAM,EAAE,MAAM;MACdC,WAAW,EAAE,MAAM;MACnBC,OAAO,EAAE,MAAM;MACfC,MAAM,EAAE,KAAK;MACbC,KAAK,EAAE,KAAK;MACZC,SAAS,EAAE;IACb;EACF,CAAC;EAEDC,cAAc,EAAEf;AAClB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VERSION } from './lib/utils/version';
|
|
2
|
+
export const CrunchLoader = {
|
|
3
|
+
id: 'crunch',
|
|
4
|
+
name: 'Crunch',
|
|
5
|
+
module: 'textures',
|
|
6
|
+
version: VERSION,
|
|
7
|
+
worker: true,
|
|
8
|
+
extensions: ['crn'],
|
|
9
|
+
mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],
|
|
10
|
+
binary: true,
|
|
11
|
+
options: {
|
|
12
|
+
crunch: {
|
|
13
|
+
libraryPath: 'libs/'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export const _TypecheckCrunchLoader = CrunchLoader;
|
|
18
|
+
//# sourceMappingURL=crunch-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crunch-loader.js","names":["VERSION","CrunchLoader","id","name","module","version","worker","extensions","mimeTypes","binary","options","crunch","libraryPath","_TypecheckCrunchLoader"],"sources":["../../src/crunch-loader.ts"],"sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\n\n/**\n * Worker loader for the Crunch compressed texture container format\n */\nexport const CrunchLoader = {\n id: 'crunch',\n name: 'Crunch',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['crn'],\n mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],\n binary: true,\n options: {\n crunch: {\n libraryPath: 'libs/'\n }\n }\n};\n\n// We avoid bundling crunch - rare format, only offer worker loader\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCrunchLoader: Loader = CrunchLoader;\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,qBAAqB;AAK3C,OAAO,MAAMC,YAAY,GAAG;EAC1BC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,QAAQ;EACdC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,0BAA0B,CAAC;EACnEC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACPC,MAAM,EAAE;MACNC,WAAW,EAAE;IACf;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,sBAA8B,GAAGZ,YAAY"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isBrowser } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { VERSION } from './lib/utils/version';
|
|
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 { KTX2BasisWriter } from './ktx2-basis-writer';
|
|
9
|
+
export const KTX2BasisWriterWorker = {
|
|
10
|
+
name: 'Basis Universal Supercompressed GPU Texture',
|
|
11
|
+
id: isBrowser ? 'ktx2-basis-writer' : 'ktx2-basis-writer-nodejs',
|
|
12
|
+
module: 'textures',
|
|
13
|
+
version: VERSION,
|
|
14
|
+
extensions: ['ktx2'],
|
|
15
|
+
worker: true,
|
|
16
|
+
options: {
|
|
17
|
+
useSRGB: false,
|
|
18
|
+
qualityLevel: 10,
|
|
19
|
+
encodeUASTC: false,
|
|
20
|
+
mipmaps: false
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export { loadImageTexture } from './lib/texture-api/load-image';
|
|
24
|
+
export { loadImageTextureArray } from './lib/texture-api/load-image-array';
|
|
25
|
+
export { loadImageTextureCube } from './lib/texture-api/load-image-cube';
|
|
26
|
+
export { GL_EXTENSIONS_CONSTANTS } from './lib/gl-extensions';
|
|
27
|
+
export { selectSupportedBasisFormat } from './lib/parsers/parse-basis';
|
|
28
|
+
export { getSupportedGPUTextureFormats } from './lib/utils/texture-formats';
|
|
29
|
+
export { CrunchLoader as CrunchWorkerLoader } from './crunch-loader';
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["isBrowser","VERSION","BasisLoader","BasisWorkerLoader","CompressedTextureLoader","CompressedTextureWorkerLoader","CrunchLoader","NPYLoader","NPYWorkerLoader","CompressedTextureWriter","KTX2BasisWriter","KTX2BasisWriterWorker","name","id","module","version","extensions","worker","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","loadImageTexture","loadImageTextureArray","loadImageTextureCube","GL_EXTENSIONS_CONSTANTS","selectSupportedBasisFormat","getSupportedGPUTextureFormats","CrunchWorkerLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\n\n// 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 {KTX2BasisWriter} from './ktx2-basis-writer';\n\nexport const KTX2BasisWriterWorker = {\n name: 'Basis Universal Supercompressed GPU Texture',\n id: isBrowser ? 'ktx2-basis-writer' : 'ktx2-basis-writer-nodejs',\n module: 'textures',\n version: VERSION,\n extensions: ['ktx2'],\n worker: true,\n options: {\n useSRGB: false,\n qualityLevel: 10,\n encodeUASTC: false,\n mipmaps: false\n }\n};\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"],"mappings":"AAAA,SAAQA,SAAS,QAAO,0BAA0B;AAClD,SAAQC,OAAO,QAAO,qBAAqB;AAO3C,SAAQC,WAAW,EAAEC,iBAAiB,QAAO,gBAAgB;AAC7D,SAAQC,uBAAuB,EAAEC,6BAA6B,QAAO,6BAA6B;AAClG,SAAQC,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,SAAS,EAAEC,eAAe,QAAO,cAAc;AAGvD,SAAQC,uBAAuB,QAAO,6BAA6B;AACnE,SAAQC,eAAe,QAAO,qBAAqB;AAEnD,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,IAAI,EAAE,6CAA6C;EACnDC,EAAE,EAAEb,SAAS,GAAG,mBAAmB,GAAG,0BAA0B;EAChEc,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEd,OAAO;EAChBe,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACPC,OAAO,EAAE,KAAK;IACdC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,KAAK;IAClBC,OAAO,EAAE;EACX;AACF,CAAC;AAGD,SAAQC,gBAAgB,QAAO,8BAA8B;AAC7D,SAAQC,qBAAqB,QAAO,oCAAoC;AACxE,SAAQC,oBAAoB,QAAO,mCAAmC;AAGtE,SAAQC,uBAAuB,QAAO,qBAAqB;AAC3D,SAAQC,0BAA0B,QAAO,2BAA2B;AACpE,SAAQC,6BAA6B,QAAO,6BAA6B;AAGzE,SAAQtB,YAAY,IAAIuB,kBAAkB,QAAO,iBAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-nodejs.js","names":["KTX2BasisWriter","KTX2BasisWriterNodeJS"],"sources":["../../src/ktx2-basis-writer-nodejs.ts"],"sourcesContent":["// Polyfills increases the bundle size significantly. Use it for NodeJS worker only\nimport '@loaders.gl/polyfills';\n\nexport {KTX2BasisWriter as KTX2BasisWriterNodeJS} from './ktx2-basis-writer';\n"],"mappings":"AACA,OAAO,uBAAuB;AAE9B,SAAQA,eAAe,IAAIC,qBAAqB,QAAO,qBAAqB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VERSION } from './lib/utils/version';
|
|
2
2
|
import { encodeKTX2BasisTexture } from './lib/encoders/encode-ktx2-basis-texture';
|
|
3
|
-
export const
|
|
3
|
+
export const KTX2BasisWriter = {
|
|
4
4
|
name: 'Basis Universal Supercompressed GPU Texture',
|
|
5
|
-
id: 'ktx2-basis-
|
|
5
|
+
id: 'ktx2-basis-writer',
|
|
6
6
|
module: 'textures',
|
|
7
7
|
version: VERSION,
|
|
8
8
|
extensions: ['ktx2'],
|
|
@@ -14,5 +14,5 @@ export const KTX2BasisUniversalTextureWriter = {
|
|
|
14
14
|
},
|
|
15
15
|
encode: encodeKTX2BasisTexture
|
|
16
16
|
};
|
|
17
|
-
export const _TypecheckKTX2TextureWriter =
|
|
18
|
-
//# sourceMappingURL=ktx2-basis-
|
|
17
|
+
export const _TypecheckKTX2TextureWriter = KTX2BasisWriter;
|
|
18
|
+
//# sourceMappingURL=ktx2-basis-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer.js","names":["VERSION","encodeKTX2BasisTexture","KTX2BasisWriter","name","id","module","version","extensions","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","encode","_TypecheckKTX2TextureWriter"],"sources":["../../src/ktx2-basis-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport type {ImageDataType} from '@loaders.gl/images';\nimport {encodeKTX2BasisTexture} from './lib/encoders/encode-ktx2-basis-texture';\n\n/** @todo should be in basis sub-object */\nexport type KTX2BasisWriterOptions = {\n useSRGB?: boolean;\n qualityLevel?: number;\n encodeUASTC?: boolean;\n mipmaps?: boolean;\n};\n\n/**\n * Basis Universal Supercompressed GPU Texture.\n * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md\n */\nexport const KTX2BasisWriter: Writer<ImageDataType, unknown, KTX2BasisWriterOptions> = {\n name: 'Basis Universal Supercompressed GPU Texture',\n id: 'ktx2-basis-writer',\n module: 'textures',\n version: VERSION,\n\n extensions: ['ktx2'],\n options: {\n useSRGB: false,\n qualityLevel: 10,\n encodeUASTC: false,\n mipmaps: false\n },\n\n encode: encodeKTX2BasisTexture\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckKTX2TextureWriter: Writer = KTX2BasisWriter;\n"],"mappings":"AAGA,SAAQA,OAAO,QAAO,qBAAqB;AAE3C,SAAQC,sBAAsB,QAAO,0CAA0C;AAc/E,OAAO,MAAMC,eAAuE,GAAG;EACrFC,IAAI,EAAE,6CAA6C;EACnDC,EAAE,EAAE,mBAAmB;EACvBC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAEhBO,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE;IACPC,OAAO,EAAE,KAAK;IACdC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,KAAK;IAClBC,OAAO,EAAE;EACX,CAAC;EAEDC,MAAM,EAAEZ;AACV,CAAC;AAGD,OAAO,MAAMa,2BAAmC,GAAGZ,eAAe"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-ktx.js","names":["read","encodeKTX","texture","ktx"],"sources":["../../../../src/lib/encoders/encode-ktx.ts"],"sourcesContent":["import {read} from 'ktx-parse';\n\nexport function encodeKTX(texture) {\n const ktx = read(texture);\n // post process\n return ktx;\n}\n"],"mappings":"AAAA,SAAQA,IAAI,QAAO,WAAW;AAE9B,OAAO,SAASC,SAASA,CAACC,OAAO,EAAE;EACjC,MAAMC,GAAG,GAAGH,IAAI,CAACE,OAAO,CAAC;EAEzB,OAAOC,GAAG;AACZ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { loadBasisEncoderModule } from '../parsers/basis-module-loader';
|
|
2
|
+
export async function encodeKTX2BasisTexture(image) {
|
|
3
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
4
|
+
const {
|
|
5
|
+
useSRGB = false,
|
|
6
|
+
qualityLevel = 10,
|
|
7
|
+
encodeUASTC = false,
|
|
8
|
+
mipmaps = false
|
|
9
|
+
} = options;
|
|
10
|
+
const {
|
|
11
|
+
BasisEncoder
|
|
12
|
+
} = await loadBasisEncoderModule(options);
|
|
13
|
+
const basisEncoder = new BasisEncoder();
|
|
14
|
+
try {
|
|
15
|
+
const basisFileData = new Uint8Array(image.width * image.height * 4);
|
|
16
|
+
basisEncoder.setCreateKTX2File(true);
|
|
17
|
+
basisEncoder.setKTX2UASTCSupercompression(true);
|
|
18
|
+
basisEncoder.setKTX2SRGBTransferFunc(true);
|
|
19
|
+
basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);
|
|
20
|
+
basisEncoder.setPerceptual(useSRGB);
|
|
21
|
+
basisEncoder.setMipSRGB(useSRGB);
|
|
22
|
+
basisEncoder.setQualityLevel(qualityLevel);
|
|
23
|
+
basisEncoder.setUASTC(encodeUASTC);
|
|
24
|
+
basisEncoder.setMipGen(mipmaps);
|
|
25
|
+
const numOutputBytes = basisEncoder.encode(basisFileData);
|
|
26
|
+
const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
|
|
27
|
+
return actualKTX2FileData;
|
|
28
|
+
} catch (error) {
|
|
29
|
+
console.error('Basis Universal Supercompressed GPU Texture encoder Error: ', error);
|
|
30
|
+
throw error;
|
|
31
|
+
} finally {
|
|
32
|
+
basisEncoder.delete();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=encode-ktx2-basis-texture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-ktx2-basis-texture.js","names":["loadBasisEncoderModule","encodeKTX2BasisTexture","image","options","arguments","length","undefined","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"],"sources":["../../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"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"],"mappings":"AACA,SAAQA,sBAAsB,QAAO,gCAAgC;AASrE,OAAO,eAAeC,sBAAsBA,CAC1CC,KAAoB,EAEE;EAAA,IADtBC,OAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAGjB,MAAM;IAACG,OAAO,GAAG,KAAK;IAAEC,YAAY,GAAG,EAAE;IAAEC,WAAW,GAAG,KAAK;IAAEC,OAAO,GAAG;EAAK,CAAC,GAAGP,OAAO;EAC1F,MAAM;IAACQ;EAAY,CAAC,GAAG,MAAMX,sBAAsB,CAACG,OAAO,CAAC;EAC5D,MAAMS,YAAY,GAAG,IAAID,YAAY,CAAC,CAAC;EAEvC,IAAI;IACF,MAAME,aAAa,GAAG,IAAIC,UAAU,CAACZ,KAAK,CAACa,KAAK,GAAGb,KAAK,CAACc,MAAM,GAAG,CAAC,CAAC;IACpEJ,YAAY,CAACK,iBAAiB,CAAC,IAAI,CAAC;IACpCL,YAAY,CAACM,4BAA4B,CAAC,IAAI,CAAC;IAC/CN,YAAY,CAACO,uBAAuB,CAAC,IAAI,CAAC;IAE1CP,YAAY,CAACQ,mBAAmB,CAAC,CAAC,EAAElB,KAAK,CAACmB,IAAI,EAAEnB,KAAK,CAACa,KAAK,EAAEb,KAAK,CAACc,MAAM,EAAE,KAAK,CAAC;IACjFJ,YAAY,CAACU,aAAa,CAACf,OAAO,CAAC;IACnCK,YAAY,CAACW,UAAU,CAAChB,OAAO,CAAC;IAChCK,YAAY,CAACY,eAAe,CAAChB,YAAY,CAAC;IAC1CI,YAAY,CAACa,QAAQ,CAAChB,WAAW,CAAC;IAClCG,YAAY,CAACc,SAAS,CAAChB,OAAO,CAAC;IAE/B,MAAMiB,cAAc,GAAGf,YAAY,CAACgB,MAAM,CAACf,aAAa,CAAC;IAEzD,MAAMgB,kBAAkB,GAAGhB,aAAa,CAACiB,QAAQ,CAAC,CAAC,EAAEH,cAAc,CAAC,CAACI,MAAM;IAC3E,OAAOF,kBAAkB;EAC3B,CAAC,CAAC,OAAOG,KAAK,EAAE;IAEdC,OAAO,CAACD,KAAK,CAAC,6DAA6D,EAAEA,KAAK,CAAC;IACnF,MAAMA,KAAK;EACb,CAAC,SAAS;IACRpB,YAAY,CAACsB,MAAM,CAAC,CAAC;EACvB;AACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ChildProcessProxy } from '@loaders.gl/worker-utils';
|
|
2
|
+
export async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl, options) {
|
|
3
|
+
const args = ['texture-compressor', '--type', 's3tc', '--compression', 'DXT1', '--quality', 'normal', '--input', inputUrl, '--output', outputUrl];
|
|
4
|
+
const childProcess = new ChildProcessProxy();
|
|
5
|
+
await childProcess.start({
|
|
6
|
+
command: 'npx',
|
|
7
|
+
arguments: args,
|
|
8
|
+
spawn: options
|
|
9
|
+
});
|
|
10
|
+
return outputUrl;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=encode-texture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-texture.js","names":["ChildProcessProxy","encodeImageURLToCompressedTextureURL","inputUrl","outputUrl","options","args","childProcess","start","command","arguments","spawn"],"sources":["../../../../src/lib/encoders/encode-texture.ts"],"sourcesContent":["import {ChildProcessProxy} from '@loaders.gl/worker-utils';\nimport {CompressedTextureWriterOptions} from '../../compressed-texture-writer';\n\n/*\n * @see https://github.com/TimvanScherpenzeel/texture-compressor\n */\nexport async function encodeImageURLToCompressedTextureURL(\n inputUrl: string,\n outputUrl: string,\n options?: CompressedTextureWriterOptions\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"],"mappings":"AAAA,SAAQA,iBAAiB,QAAO,0BAA0B;AAM1D,OAAO,eAAeC,oCAAoCA,CACxDC,QAAgB,EAChBC,SAAiB,EACjBC,OAAwC,EACvB;EAEjB,MAAMC,IAAI,GAAG,CAEX,oBAAoB,EACpB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,QAAQ,EACrB,SAAS,EAAEH,QAAQ,EACnB,UAAU,EAAEC,SAAS,CACtB;EACD,MAAMG,YAAY,GAAG,IAAIN,iBAAiB,CAAC,CAAC;EAC5C,MAAMM,YAAY,CAACC,KAAK,CAAC;IACvBC,OAAO,EAAE,KAAK;IACdC,SAAS,EAAEJ,IAAI;IACfK,KAAK,EAAEN;EACT,CAAC,CAAC;EACF,OAAOD,SAAS;AAClB"}
|
|
@@ -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,"file":"gl-extensions.js","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"],"sources":["../../../src/lib/gl-extensions.ts"],"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"],"mappings":"AACA,OAAO,MAAMA,uBAAuB,GAAG;EAGrCC,4BAA4B,EAAE,MAAM;EACpCC,6BAA6B,EAAE,MAAM;EACrCC,6BAA6B,EAAE,MAAM;EACrCC,6BAA6B,EAAE,MAAM;EAIrCC,kBAAkB,EAAE,MAAM;EAC1BC,yBAAyB,EAAE,MAAM;EACjCC,mBAAmB,EAAE,MAAM;EAC3BC,0BAA0B,EAAE,MAAM;EAClCC,oBAAoB,EAAE,MAAM;EAC5BC,yBAAyB,EAAE,MAAM;EACjCC,qBAAqB,EAAE,MAAM;EAC7BC,gCAAgC,EAAE,MAAM;EACxCC,wCAAwC,EAAE,MAAM;EAChDC,yCAAyC,EAAE,MAAM;EAIjDC,+BAA+B,EAAE,MAAM;EACvCC,gCAAgC,EAAE,MAAM;EACxCC,+BAA+B,EAAE,MAAM;EACvCC,gCAAgC,EAAE,MAAM;EAIxCC,yBAAyB,EAAE,MAAM;EAIjCC,wBAAwB,EAAE,MAAM;EAChCC,wCAAwC,EAAE,MAAM;EAChDC,4CAA4C,EAAE,MAAM;EAIpDC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,4BAA4B,EAAE,MAAM;EACpCC,6BAA6B,EAAE,MAAM;EACrCC,6BAA6B,EAAE,MAAM;EACrCC,6BAA6B,EAAE,MAAM;EACrCC,8BAA8B,EAAE,MAAM;EACtCC,8BAA8B,EAAE,MAAM;EACtCC,8BAA8B,EAAE,MAAM;EACtCC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,oCAAoC,EAAE,MAAM;EAC5CC,qCAAqC,EAAE,MAAM;EAC7CC,qCAAqC,EAAE,MAAM;EAC7CC,qCAAqC,EAAE,MAAM;EAC7CC,sCAAsC,EAAE,MAAM;EAC9CC,sCAAsC,EAAE,MAAM;EAC9CC,sCAAsC,EAAE,MAAM;EAI9CC,wBAAwB,EAAE,MAAM;EAChCC,+BAA+B,EAAE,MAAM;EACvCC,8BAA8B,EAAE,MAAM;EACtCC,qCAAqC,EAAE,MAAM;EAI7CC,6BAA6B,EAAE,MAAM;EACrCC,mCAAmC,EAAE,MAAM;EAC3CC,mCAAmC,EAAE,MAAM;EAC3CC,mCAAmC,EAAE;AACvC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const VERSION = typeof "4.0.0-alpha.6" !== 'undefined' ? "4.0.0-alpha.6" : 'beta';
|
|
2
|
+
import { loadLibrary } from '@loaders.gl/worker-utils';
|
|
3
|
+
const BASIS_CDN_ENCODER_WASM = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.wasm");
|
|
4
|
+
const BASIS_CDN_ENCODER_JS = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.js");
|
|
5
|
+
let loadBasisTranscoderPromise;
|
|
6
|
+
export async function loadBasisTrascoderModule(options) {
|
|
7
|
+
const modules = options.modules || {};
|
|
8
|
+
if (modules.basis) {
|
|
9
|
+
return modules.basis;
|
|
10
|
+
}
|
|
11
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTrascoder(options);
|
|
12
|
+
return await loadBasisTranscoderPromise;
|
|
13
|
+
}
|
|
14
|
+
async function loadBasisTrascoder(options) {
|
|
15
|
+
let BASIS = null;
|
|
16
|
+
let wasmBinary = null;
|
|
17
|
+
[BASIS, wasmBinary] = await Promise.all([await loadLibrary('basis_transcoder.js', 'textures', options), await loadLibrary('basis_transcoder.wasm', 'textures', options)]);
|
|
18
|
+
BASIS = BASIS || globalThis.BASIS;
|
|
19
|
+
return await initializeBasisTrascoderModule(BASIS, wasmBinary);
|
|
20
|
+
}
|
|
21
|
+
function initializeBasisTrascoderModule(BasisModule, wasmBinary) {
|
|
22
|
+
const options = {};
|
|
23
|
+
if (wasmBinary) {
|
|
24
|
+
options.wasmBinary = wasmBinary;
|
|
25
|
+
}
|
|
26
|
+
return new Promise(resolve => {
|
|
27
|
+
BasisModule(options).then(module => {
|
|
28
|
+
const {
|
|
29
|
+
BasisFile,
|
|
30
|
+
initializeBasis
|
|
31
|
+
} = module;
|
|
32
|
+
initializeBasis();
|
|
33
|
+
resolve({
|
|
34
|
+
BasisFile
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
let loadBasisEncoderPromise;
|
|
40
|
+
export async function loadBasisEncoderModule(options) {
|
|
41
|
+
const modules = options.modules || {};
|
|
42
|
+
if (modules.basisEncoder) {
|
|
43
|
+
return modules.basisEncoder;
|
|
44
|
+
}
|
|
45
|
+
loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
|
|
46
|
+
return await loadBasisEncoderPromise;
|
|
47
|
+
}
|
|
48
|
+
async function loadBasisEncoder(options) {
|
|
49
|
+
let BASIS_ENCODER = null;
|
|
50
|
+
let wasmBinary = null;
|
|
51
|
+
[BASIS_ENCODER, wasmBinary] = await Promise.all([await loadLibrary(BASIS_CDN_ENCODER_JS, 'textures', options), await loadLibrary(BASIS_CDN_ENCODER_WASM, 'textures', options)]);
|
|
52
|
+
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
53
|
+
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
54
|
+
}
|
|
55
|
+
function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
|
|
56
|
+
const options = {};
|
|
57
|
+
if (wasmBinary) {
|
|
58
|
+
options.wasmBinary = wasmBinary;
|
|
59
|
+
}
|
|
60
|
+
return new Promise(resolve => {
|
|
61
|
+
BasisEncoderModule(options).then(module => {
|
|
62
|
+
const {
|
|
63
|
+
BasisFile,
|
|
64
|
+
KTX2File,
|
|
65
|
+
initializeBasis,
|
|
66
|
+
BasisEncoder
|
|
67
|
+
} = module;
|
|
68
|
+
initializeBasis();
|
|
69
|
+
resolve({
|
|
70
|
+
BasisFile,
|
|
71
|
+
KTX2File,
|
|
72
|
+
BasisEncoder
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=basis-module-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basis-module-loader.js","names":["VERSION","loadLibrary","BASIS_CDN_ENCODER_WASM","concat","BASIS_CDN_ENCODER_JS","loadBasisTranscoderPromise","loadBasisTrascoderModule","options","modules","basis","loadBasisTrascoder","BASIS","wasmBinary","Promise","all","globalThis","initializeBasisTrascoderModule","BasisModule","resolve","then","module","BasisFile","initializeBasis","loadBasisEncoderPromise","loadBasisEncoderModule","basisEncoder","loadBasisEncoder","BASIS_ENCODER","initializeBasisEncoderModule","BasisEncoderModule","KTX2File","BasisEncoder"],"sources":["../../../../src/lib/parsers/basis-module-loader.ts"],"sourcesContent":["// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';\n\n// @ts-nocheck\nimport {loadLibrary} from '@loaders.gl/worker-utils';\n\nconst BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION}/dist/libs/basis_encoder.wasm`;\nconst BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION}/dist/libs/basis_encoder.js`;\n\nlet loadBasisTranscoderPromise;\n\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nexport async function loadBasisTrascoderModule(options) {\n const modules = options.modules || {};\n if (modules.basis) {\n return modules.basis;\n }\n\n loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTrascoder(options);\n return await loadBasisTranscoderPromise;\n}\n\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nasync function loadBasisTrascoder(options) {\n let BASIS = null;\n let wasmBinary = null;\n\n [BASIS, wasmBinary] = await Promise.all([\n await loadLibrary('basis_transcoder.js', 'textures', options),\n await loadLibrary('basis_transcoder.wasm', 'textures', options)\n ]);\n\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n BASIS = BASIS || globalThis.BASIS;\n return await initializeBasisTrascoderModule(BASIS, wasmBinary);\n}\n\n/**\n * Initialize wasm transcoder module\n * @param BasisModule - js part of the module\n * @param wasmBinary - wasm part of the module\n * @returns {BasisFile} promise\n */\nfunction initializeBasisTrascoderModule(BasisModule, wasmBinary) {\n const options: {wasmBinary?} = {};\n\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n\n return new Promise((resolve) => {\n // if you try to return BasisModule the browser crashes!\n BasisModule(options).then((module) => {\n const {BasisFile, initializeBasis} = module;\n initializeBasis();\n resolve({BasisFile});\n });\n });\n}\n\nlet loadBasisEncoderPromise;\n\n/**\n * Loads wasm encoder module\n * @param options\n * @returns {BasisFile, KTX2File} promise\n */\nexport async function loadBasisEncoderModule(options) {\n const modules = options.modules || {};\n if (modules.basisEncoder) {\n return modules.basisEncoder;\n }\n\n loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);\n return await loadBasisEncoderPromise;\n}\n\n/**\n * Loads wasm encoder module\n * @param options\n * @returns {BasisFile, KTX2File} promise\n */\nasync function loadBasisEncoder(options) {\n let BASIS_ENCODER = null;\n let wasmBinary = null;\n\n [BASIS_ENCODER, wasmBinary] = await Promise.all([\n await loadLibrary(BASIS_CDN_ENCODER_JS, 'textures', options),\n await loadLibrary(BASIS_CDN_ENCODER_WASM, 'textures', options)\n ]);\n\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;\n return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);\n}\n\n/**\n * Initialize wasm transcoder module\n * @param BasisEncoderModule - js part of the module\n * @param wasmBinary - wasm part of the module\n * @returns {BasisFile, KTX2File} promise\n */\nfunction initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {\n const options: {wasmBinary?} = {};\n\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n\n return new Promise((resolve) => {\n // if you try to return BasisModule the browser crashes!\n BasisEncoderModule(options).then((module) => {\n const {BasisFile, KTX2File, initializeBasis, BasisEncoder} = module;\n initializeBasis();\n resolve({BasisFile, KTX2File, BasisEncoder});\n });\n });\n}\n"],"mappings":"AAEA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,MAAM;AAGzE,SAAQC,WAAW,QAAO,0BAA0B;AAEpD,MAAMC,sBAAsB,6CAAAC,MAAA,CAA6CH,OAAO,kCAA+B;AAC/G,MAAMI,oBAAoB,6CAAAD,MAAA,CAA6CH,OAAO,gCAA6B;AAE3G,IAAIK,0BAA0B;AAO9B,OAAO,eAAeC,wBAAwBA,CAACC,OAAO,EAAE;EACtD,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAI,CAAC,CAAC;EACrC,IAAIA,OAAO,CAACC,KAAK,EAAE;IACjB,OAAOD,OAAO,CAACC,KAAK;EACtB;EAEAJ,0BAA0B,GAAGA,0BAA0B,IAAIK,kBAAkB,CAACH,OAAO,CAAC;EACtF,OAAO,MAAMF,0BAA0B;AACzC;AAOA,eAAeK,kBAAkBA,CAACH,OAAO,EAAE;EACzC,IAAII,KAAK,GAAG,IAAI;EAChB,IAAIC,UAAU,GAAG,IAAI;EAErB,CAACD,KAAK,EAAEC,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CACtC,MAAMb,WAAW,CAAC,qBAAqB,EAAE,UAAU,EAAEM,OAAO,CAAC,EAC7D,MAAMN,WAAW,CAAC,uBAAuB,EAAE,UAAU,EAAEM,OAAO,CAAC,CAChE,CAAC;EAIFI,KAAK,GAAGA,KAAK,IAAII,UAAU,CAACJ,KAAK;EACjC,OAAO,MAAMK,8BAA8B,CAACL,KAAK,EAAEC,UAAU,CAAC;AAChE;AAQA,SAASI,8BAA8BA,CAACC,WAAW,EAAEL,UAAU,EAAE;EAC/D,MAAML,OAAsB,GAAG,CAAC,CAAC;EAEjC,IAAIK,UAAU,EAAE;IACdL,OAAO,CAACK,UAAU,GAAGA,UAAU;EACjC;EAEA,OAAO,IAAIC,OAAO,CAAEK,OAAO,IAAK;IAE9BD,WAAW,CAACV,OAAO,CAAC,CAACY,IAAI,CAAEC,MAAM,IAAK;MACpC,MAAM;QAACC,SAAS;QAAEC;MAAe,CAAC,GAAGF,MAAM;MAC3CE,eAAe,CAAC,CAAC;MACjBJ,OAAO,CAAC;QAACG;MAAS,CAAC,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,IAAIE,uBAAuB;AAO3B,OAAO,eAAeC,sBAAsBA,CAACjB,OAAO,EAAE;EACpD,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAI,CAAC,CAAC;EACrC,IAAIA,OAAO,CAACiB,YAAY,EAAE;IACxB,OAAOjB,OAAO,CAACiB,YAAY;EAC7B;EAEAF,uBAAuB,GAAGA,uBAAuB,IAAIG,gBAAgB,CAACnB,OAAO,CAAC;EAC9E,OAAO,MAAMgB,uBAAuB;AACtC;AAOA,eAAeG,gBAAgBA,CAACnB,OAAO,EAAE;EACvC,IAAIoB,aAAa,GAAG,IAAI;EACxB,IAAIf,UAAU,GAAG,IAAI;EAErB,CAACe,aAAa,EAAEf,UAAU,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC9C,MAAMb,WAAW,CAACG,oBAAoB,EAAE,UAAU,EAAEG,OAAO,CAAC,EAC5D,MAAMN,WAAW,CAACC,sBAAsB,EAAE,UAAU,EAAEK,OAAO,CAAC,CAC/D,CAAC;EAIFoB,aAAa,GAAGA,aAAa,IAAIZ,UAAU,CAACJ,KAAK;EACjD,OAAO,MAAMiB,4BAA4B,CAACD,aAAa,EAAEf,UAAU,CAAC;AACtE;AAQA,SAASgB,4BAA4BA,CAACC,kBAAkB,EAAEjB,UAAU,EAAE;EACpE,MAAML,OAAsB,GAAG,CAAC,CAAC;EAEjC,IAAIK,UAAU,EAAE;IACdL,OAAO,CAACK,UAAU,GAAGA,UAAU;EACjC;EAEA,OAAO,IAAIC,OAAO,CAAEK,OAAO,IAAK;IAE9BW,kBAAkB,CAACtB,OAAO,CAAC,CAACY,IAAI,CAAEC,MAAM,IAAK;MAC3C,MAAM;QAACC,SAAS;QAAES,QAAQ;QAAER,eAAe;QAAES;MAAY,CAAC,GAAGX,MAAM;MACnEE,eAAe,CAAC,CAAC;MACjBJ,OAAO,CAAC;QAACG,SAAS;QAAES,QAAQ;QAAEC;MAAY,CAAC,CAAC;IAC9C,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { loadLibrary } from '@loaders.gl/worker-utils';
|
|
2
|
+
export async function loadCrunchModule(options) {
|
|
3
|
+
const modules = options.modules || {};
|
|
4
|
+
if (modules.crunch) {
|
|
5
|
+
return modules.crunch;
|
|
6
|
+
}
|
|
7
|
+
return loadCrunch(options);
|
|
8
|
+
}
|
|
9
|
+
let crunchModule;
|
|
10
|
+
async function loadCrunch(options) {
|
|
11
|
+
if (crunchModule) {
|
|
12
|
+
return crunchModule;
|
|
13
|
+
}
|
|
14
|
+
let loadCrunchDecoder = await loadLibrary('crunch.js', 'textures', options);
|
|
15
|
+
loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
|
|
16
|
+
crunchModule = loadCrunchDecoder();
|
|
17
|
+
return crunchModule;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=crunch-module-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crunch-module-loader.js","names":["loadLibrary","loadCrunchModule","options","modules","crunch","loadCrunch","crunchModule","loadCrunchDecoder","globalThis","LoadCrunchDecoder"],"sources":["../../../../src/lib/parsers/crunch-module-loader.ts"],"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"],"mappings":"AACA,SAAQA,WAAW,QAAO,0BAA0B;AAOpD,OAAO,eAAeC,gBAAgBA,CAACC,OAAO,EAAgB;EAC5D,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAI,CAAC,CAAC;EACrC,IAAIA,OAAO,CAACC,MAAM,EAAE;IAClB,OAAOD,OAAO,CAACC,MAAM;EACvB;EAEA,OAAOC,UAAU,CAACH,OAAO,CAAC;AAC5B;AAEA,IAAII,YAAY;AAOhB,eAAeD,UAAUA,CAACH,OAAO,EAAE;EACjC,IAAII,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EAEA,IAAIC,iBAAiB,GAAG,MAAMP,WAAW,CAAC,WAAW,EAAE,UAAU,EAAEE,OAAO,CAAC;EAI3EK,iBAAiB,GAAGA,iBAAiB,IAAIC,UAAU,CAACC,iBAAiB;EACrEH,YAAY,GAAGC,iBAAiB,CAAC,CAAC;EAClC,OAAOD,YAAY;AACrB"}
|