@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,154 @@
|
|
|
1
|
+
import { GL_EXTENSIONS_CONSTANTS } from '../gl-extensions';
|
|
2
|
+
import { extractMipmapImages } from '../utils/extract-mipmap-images';
|
|
3
|
+
const PVR_CONSTANTS = {
|
|
4
|
+
MAGIC_NUMBER: 0x03525650,
|
|
5
|
+
MAGIC_NUMBER_EXTRA: 0x50565203,
|
|
6
|
+
HEADER_LENGTH: 13,
|
|
7
|
+
HEADER_SIZE: 52,
|
|
8
|
+
MAGIC_NUMBER_INDEX: 0,
|
|
9
|
+
PIXEL_FORMAT_INDEX: 2,
|
|
10
|
+
COLOUR_SPACE_INDEX: 4,
|
|
11
|
+
HEIGHT_INDEX: 6,
|
|
12
|
+
WIDTH_INDEX: 7,
|
|
13
|
+
MIPMAPCOUNT_INDEX: 11,
|
|
14
|
+
METADATA_SIZE_INDEX: 12
|
|
15
|
+
};
|
|
16
|
+
const PVR_PIXEL_FORMATS = {
|
|
17
|
+
0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
|
|
18
|
+
1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
|
|
19
|
+
2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
|
|
20
|
+
3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
|
|
21
|
+
6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
|
|
22
|
+
7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
|
|
23
|
+
9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
|
|
24
|
+
11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
|
|
25
|
+
22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
|
|
26
|
+
23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
|
|
27
|
+
24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
|
|
28
|
+
25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
|
|
29
|
+
26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
|
|
30
|
+
27: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],
|
|
31
|
+
28: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],
|
|
32
|
+
29: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],
|
|
33
|
+
30: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],
|
|
34
|
+
31: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],
|
|
35
|
+
32: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],
|
|
36
|
+
33: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],
|
|
37
|
+
34: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],
|
|
38
|
+
35: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],
|
|
39
|
+
36: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],
|
|
40
|
+
37: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],
|
|
41
|
+
38: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],
|
|
42
|
+
39: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],
|
|
43
|
+
40: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR, GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]
|
|
44
|
+
};
|
|
45
|
+
const PVR_SIZE_FUNCTIONS = {
|
|
46
|
+
0: pvrtc2bppSize,
|
|
47
|
+
1: pvrtc2bppSize,
|
|
48
|
+
2: pvrtc4bppSize,
|
|
49
|
+
3: pvrtc4bppSize,
|
|
50
|
+
6: dxtEtcSmallSize,
|
|
51
|
+
7: dxtEtcSmallSize,
|
|
52
|
+
9: dxtEtcAstcBigSize,
|
|
53
|
+
11: dxtEtcAstcBigSize,
|
|
54
|
+
22: dxtEtcSmallSize,
|
|
55
|
+
23: dxtEtcAstcBigSize,
|
|
56
|
+
24: dxtEtcSmallSize,
|
|
57
|
+
25: dxtEtcSmallSize,
|
|
58
|
+
26: dxtEtcAstcBigSize,
|
|
59
|
+
27: dxtEtcAstcBigSize,
|
|
60
|
+
28: atc5x4Size,
|
|
61
|
+
29: atc5x5Size,
|
|
62
|
+
30: atc6x5Size,
|
|
63
|
+
31: atc6x6Size,
|
|
64
|
+
32: atc8x5Size,
|
|
65
|
+
33: atc8x6Size,
|
|
66
|
+
34: atc8x8Size,
|
|
67
|
+
35: atc10x5Size,
|
|
68
|
+
36: atc10x6Size,
|
|
69
|
+
37: atc10x8Size,
|
|
70
|
+
38: atc10x10Size,
|
|
71
|
+
39: atc12x10Size,
|
|
72
|
+
40: atc12x12Size
|
|
73
|
+
};
|
|
74
|
+
export function isPVR(data) {
|
|
75
|
+
const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
|
|
76
|
+
const version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];
|
|
77
|
+
return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;
|
|
78
|
+
}
|
|
79
|
+
export function parsePVR(data) {
|
|
80
|
+
const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
|
|
81
|
+
const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];
|
|
82
|
+
const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];
|
|
83
|
+
const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];
|
|
84
|
+
const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];
|
|
85
|
+
const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];
|
|
86
|
+
const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];
|
|
87
|
+
const width = header[PVR_CONSTANTS.WIDTH_INDEX];
|
|
88
|
+
const height = header[PVR_CONSTANTS.HEIGHT_INDEX];
|
|
89
|
+
const dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];
|
|
90
|
+
const image = new Uint8Array(data, dataOffset);
|
|
91
|
+
return extractMipmapImages(image, {
|
|
92
|
+
mipMapLevels,
|
|
93
|
+
width,
|
|
94
|
+
height,
|
|
95
|
+
sizeFunction,
|
|
96
|
+
internalFormat
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
function pvrtc2bppSize(width, height) {
|
|
100
|
+
width = Math.max(width, 16);
|
|
101
|
+
height = Math.max(height, 8);
|
|
102
|
+
return width * height / 4;
|
|
103
|
+
}
|
|
104
|
+
function pvrtc4bppSize(width, height) {
|
|
105
|
+
width = Math.max(width, 8);
|
|
106
|
+
height = Math.max(height, 8);
|
|
107
|
+
return width * height / 2;
|
|
108
|
+
}
|
|
109
|
+
function dxtEtcSmallSize(width, height) {
|
|
110
|
+
return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;
|
|
111
|
+
}
|
|
112
|
+
function dxtEtcAstcBigSize(width, height) {
|
|
113
|
+
return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;
|
|
114
|
+
}
|
|
115
|
+
function atc5x4Size(width, height) {
|
|
116
|
+
return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;
|
|
117
|
+
}
|
|
118
|
+
function atc5x5Size(width, height) {
|
|
119
|
+
return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;
|
|
120
|
+
}
|
|
121
|
+
function atc6x5Size(width, height) {
|
|
122
|
+
return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;
|
|
123
|
+
}
|
|
124
|
+
function atc6x6Size(width, height) {
|
|
125
|
+
return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;
|
|
126
|
+
}
|
|
127
|
+
function atc8x5Size(width, height) {
|
|
128
|
+
return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;
|
|
129
|
+
}
|
|
130
|
+
function atc8x6Size(width, height) {
|
|
131
|
+
return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;
|
|
132
|
+
}
|
|
133
|
+
function atc8x8Size(width, height) {
|
|
134
|
+
return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;
|
|
135
|
+
}
|
|
136
|
+
function atc10x5Size(width, height) {
|
|
137
|
+
return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;
|
|
138
|
+
}
|
|
139
|
+
function atc10x6Size(width, height) {
|
|
140
|
+
return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;
|
|
141
|
+
}
|
|
142
|
+
function atc10x8Size(width, height) {
|
|
143
|
+
return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;
|
|
144
|
+
}
|
|
145
|
+
function atc10x10Size(width, height) {
|
|
146
|
+
return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;
|
|
147
|
+
}
|
|
148
|
+
function atc12x10Size(width, height) {
|
|
149
|
+
return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;
|
|
150
|
+
}
|
|
151
|
+
function atc12x12Size(width, height) {
|
|
152
|
+
return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=parse-pvr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-pvr.js","names":["GL_EXTENSIONS_CONSTANTS","extractMipmapImages","PVR_CONSTANTS","MAGIC_NUMBER","MAGIC_NUMBER_EXTRA","HEADER_LENGTH","HEADER_SIZE","MAGIC_NUMBER_INDEX","PIXEL_FORMAT_INDEX","COLOUR_SPACE_INDEX","HEIGHT_INDEX","WIDTH_INDEX","MIPMAPCOUNT_INDEX","METADATA_SIZE_INDEX","PVR_PIXEL_FORMATS","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_RGBA_ASTC_4X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR","COMPRESSED_RGBA_ASTC_5X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR","COMPRESSED_RGBA_ASTC_6X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR","COMPRESSED_RGBA_ASTC_6X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR","COMPRESSED_RGBA_ASTC_8X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR","COMPRESSED_RGBA_ASTC_8X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR","COMPRESSED_RGBA_ASTC_8X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR","COMPRESSED_RGBA_ASTC_10X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR","COMPRESSED_RGBA_ASTC_10X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR","COMPRESSED_RGBA_ASTC_10X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR","COMPRESSED_RGBA_ASTC_10X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR","COMPRESSED_RGBA_ASTC_12X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR","COMPRESSED_RGBA_ASTC_12X12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR","PVR_SIZE_FUNCTIONS","pvrtc2bppSize","pvrtc4bppSize","dxtEtcSmallSize","dxtEtcAstcBigSize","atc5x4Size","atc5x5Size","atc6x5Size","atc6x6Size","atc8x5Size","atc8x6Size","atc8x8Size","atc10x5Size","atc10x6Size","atc10x8Size","atc10x10Size","atc12x10Size","atc12x12Size","isPVR","data","header","Uint32Array","version","parsePVR","pvrFormat","colourSpace","pixelFormats","internalFormat","length","sizeFunction","mipMapLevels","width","height","dataOffset","image","Uint8Array","Math","max","floor"],"sources":["../../../../src/lib/parsers/parse-pvr.ts"],"sourcesContent":["/* eslint-disable camelcase */\n// Forked from PicoGL: https://github.com/tsherif/picogl.js/blob/master/examples/utils/utils.js\n// Copyright (c) 2017 Tarek Sherif, The MIT License (MIT)\n\nimport type {TextureLevel} from '@loaders.gl/schema';\nimport {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\n\nconst PVR_CONSTANTS: Record<string, number> = {\n MAGIC_NUMBER: 0x03525650,\n MAGIC_NUMBER_EXTRA: 0x50565203,\n HEADER_LENGTH: 13,\n HEADER_SIZE: 52,\n MAGIC_NUMBER_INDEX: 0,\n PIXEL_FORMAT_INDEX: 2,\n COLOUR_SPACE_INDEX: 4,\n HEIGHT_INDEX: 6,\n WIDTH_INDEX: 7,\n MIPMAPCOUNT_INDEX: 11,\n METADATA_SIZE_INDEX: 12\n};\n\nconst PVR_PIXEL_FORMATS: Record<number, number[]> = {\n 0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],\n 1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],\n 2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],\n 3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],\n 6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],\n 7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],\n 9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],\n 11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],\n 22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],\n 23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],\n 24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],\n 25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],\n 26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],\n 27: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR\n ],\n 28: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR\n ],\n 29: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR\n ],\n 30: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR\n ],\n 31: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR\n ],\n 32: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR\n ],\n 33: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR\n ],\n 34: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR\n ],\n 35: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR\n ],\n 36: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR\n ],\n 37: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR\n ],\n 38: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR\n ],\n 39: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR\n ],\n 40: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR\n ]\n};\n\nconst PVR_SIZE_FUNCTIONS: Record<number, (width: number, height: number) => number> = {\n 0: pvrtc2bppSize,\n 1: pvrtc2bppSize,\n 2: pvrtc4bppSize,\n 3: pvrtc4bppSize,\n 6: dxtEtcSmallSize,\n 7: dxtEtcSmallSize,\n 9: dxtEtcAstcBigSize,\n 11: dxtEtcAstcBigSize,\n 22: dxtEtcSmallSize,\n 23: dxtEtcAstcBigSize,\n 24: dxtEtcSmallSize,\n 25: dxtEtcSmallSize,\n 26: dxtEtcAstcBigSize,\n 27: dxtEtcAstcBigSize,\n 28: atc5x4Size,\n 29: atc5x5Size,\n 30: atc6x5Size,\n 31: atc6x6Size,\n 32: atc8x5Size,\n 33: atc8x6Size,\n 34: atc8x8Size,\n 35: atc10x5Size,\n 36: atc10x6Size,\n 37: atc10x8Size,\n 38: atc10x10Size,\n 39: atc12x10Size,\n 40: atc12x12Size\n};\n\n/**\n * Check if data is in \"PVR\" format by its magic number\n * @param data - binary data of compressed texture\n * @returns true - data in \"PVR\" format, else - false\n */\nexport function isPVR(data: ArrayBuffer): boolean {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n const version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];\n\n return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;\n}\n\n/**\n * Parse texture data as \"PVR\" format\n * @param data - binary data of compressed texture\n * @returns Array of the texture levels\n * @see http://cdn.imgtec.com/sdk-documentation/PVR+File+Format.Specification.pdf\n */\nexport function parsePVR(data: ArrayBuffer): TextureLevel[] {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n\n const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];\n const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];\n const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];\n const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];\n\n const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];\n\n const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];\n\n const width = header[PVR_CONSTANTS.WIDTH_INDEX];\n const height = header[PVR_CONSTANTS.HEIGHT_INDEX];\n\n const dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];\n\n const image = new Uint8Array(data, dataOffset);\n\n return extractMipmapImages(image, {\n mipMapLevels,\n width,\n height,\n sizeFunction,\n internalFormat\n });\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc2bppSize(width: number, height: number): number {\n width = Math.max(width, 16);\n height = Math.max(height, 8);\n\n return (width * height) / 4;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc4bppSize(width: number, height: number): number {\n width = Math.max(width, 8);\n height = Math.max(height, 8);\n\n return (width * height) / 2;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// Size for:\n// COMPRESSED_RGB_S3TC_DXT1_EXT\n// COMPRESSED_R11_EAC\n// COMPRESSED_SIGNED_R11_EAC\n// COMPRESSED_RGB8_ETC2\n// COMPRESSED_SRGB8_ETC2\n// COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\n// COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\nfunction dxtEtcSmallSize(width: number, height: number): number {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\n// Size for:\n// COMPRESSED_RGBA_S3TC_DXT3_EXT\n// COMPRESSED_RGBA_S3TC_DXT5_EXT\n// COMPRESSED_RG11_EAC\n// COMPRESSED_SIGNED_RG11_EAC\n// COMPRESSED_RGBA8_ETC2_EAC\n// COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n// COMPRESSED_RGBA_ASTC_4x4_KHR\nfunction dxtEtcAstcBigSize(width: number, height: number): number {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x4Size(width: number, height: number): number {\n return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x5Size(width: number, height: number): number {\n return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x5Size(width: number, height: number): number {\n return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x6Size(width: number, height: number): number {\n return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x5Size(width: number, height: number): number {\n return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x6Size(width: number, height: number): number {\n return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x8Size(width: number, height: number): number {\n return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x5Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x6Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x8Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x10Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x10Size(width: number, height: number): number {\n return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x12Size(width: number, height: number): number {\n return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const isObject = value => value && typeof value === 'object';
|
|
2
|
+
export async function asyncDeepMap(tree, func) {
|
|
3
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
4
|
+
return await mapSubtree(tree, func, options);
|
|
5
|
+
}
|
|
6
|
+
export async function mapSubtree(object, func, options) {
|
|
7
|
+
if (Array.isArray(object)) {
|
|
8
|
+
return await mapArray(object, func, options);
|
|
9
|
+
}
|
|
10
|
+
if (isObject(object)) {
|
|
11
|
+
return await mapObject(object, func, options);
|
|
12
|
+
}
|
|
13
|
+
const url = object;
|
|
14
|
+
return await func(url, options);
|
|
15
|
+
}
|
|
16
|
+
async function mapObject(object, func, options) {
|
|
17
|
+
const promises = [];
|
|
18
|
+
const values = {};
|
|
19
|
+
for (const key in object) {
|
|
20
|
+
const url = object[key];
|
|
21
|
+
const promise = mapSubtree(url, func, options).then(value => {
|
|
22
|
+
values[key] = value;
|
|
23
|
+
});
|
|
24
|
+
promises.push(promise);
|
|
25
|
+
}
|
|
26
|
+
await Promise.all(promises);
|
|
27
|
+
return values;
|
|
28
|
+
}
|
|
29
|
+
async function mapArray(urlArray, func) {
|
|
30
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
31
|
+
const promises = urlArray.map(url => mapSubtree(url, func, options));
|
|
32
|
+
return await Promise.all(promises);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=async-deep-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-deep-map.js","names":["isObject","value","asyncDeepMap","tree","func","options","arguments","length","undefined","mapSubtree","object","Array","isArray","mapArray","mapObject","url","promises","values","key","promise","then","push","Promise","all","urlArray","map"],"sources":["../../../../src/lib/texture-api/async-deep-map.ts"],"sourcesContent":["// loaders.gl, MIT license\n/*\nAsynchronously maps a deep structure of values (e.g. objects and arrays of urls).\n\nE.g. a mipmapped cubemap\n{\n [CUBE_FACE_FRONT]: [\n \"image-front-0.jpg\",\n \"image-front-1.jpg\",\n \"image-front-2.jpg\",\n ],\n [CUBE_MAP_BACK]: [\n ...\n ]\n}\n*/\nexport type Options = Record<string, any>;\nexport type Func = (url: string, options: Options) => unknown;\n\nconst isObject = (value: any): boolean => value && typeof value === 'object';\n\n// Loads a deep structure of urls (objects and arrays of urls)\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function asyncDeepMap(tree: unknown, func: Func, options: Options = {}) {\n return await mapSubtree(tree, func, options);\n}\n\nexport async function mapSubtree(object: unknown, func: Func, options: Options) {\n if (Array.isArray(object)) {\n return await mapArray(object, func, options);\n }\n\n if (isObject(object)) {\n return await mapObject(object as object, func, options);\n }\n\n // TODO - ignore non-urls, non-arraybuffers?\n const url = object as string;\n return await func(url, options);\n}\n\n// HELPERS\n\nasync function mapObject(\n object: Record<string, any>,\n func: Func,\n options: Options\n): Promise<Record<string, any>> {\n const promises: Promise<any>[] = [];\n const values: Record<string, any> = {};\n\n for (const key in object) {\n const url = object[key];\n const promise = mapSubtree(url, func, options).then((value) => {\n values[key] = value;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return values;\n}\n\nasync function mapArray(urlArray: string[], func: Func, options = {}): Promise<any[]> {\n const promises = urlArray.map((url) => mapSubtree(url, func, options));\n return await Promise.all(promises);\n}\n"],"mappings":"AAmBA,MAAMA,QAAQ,GAAIC,KAAU,IAAcA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ;AAK5E,OAAO,eAAeC,YAAYA,CAACC,IAAa,EAAEC,IAAU,EAAyB;EAAA,IAAvBC,OAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjF,OAAO,MAAMG,UAAU,CAACN,IAAI,EAAEC,IAAI,EAAEC,OAAO,CAAC;AAC9C;AAEA,OAAO,eAAeI,UAAUA,CAACC,MAAe,EAAEN,IAAU,EAAEC,OAAgB,EAAE;EAC9E,IAAIM,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAO,MAAMG,QAAQ,CAACH,MAAM,EAAEN,IAAI,EAAEC,OAAO,CAAC;EAC9C;EAEA,IAAIL,QAAQ,CAACU,MAAM,CAAC,EAAE;IACpB,OAAO,MAAMI,SAAS,CAACJ,MAAM,EAAYN,IAAI,EAAEC,OAAO,CAAC;EACzD;EAGA,MAAMU,GAAG,GAAGL,MAAgB;EAC5B,OAAO,MAAMN,IAAI,CAACW,GAAG,EAAEV,OAAO,CAAC;AACjC;AAIA,eAAeS,SAASA,CACtBJ,MAA2B,EAC3BN,IAAU,EACVC,OAAgB,EACc;EAC9B,MAAMW,QAAwB,GAAG,EAAE;EACnC,MAAMC,MAA2B,GAAG,CAAC,CAAC;EAEtC,KAAK,MAAMC,GAAG,IAAIR,MAAM,EAAE;IACxB,MAAMK,GAAG,GAAGL,MAAM,CAACQ,GAAG,CAAC;IACvB,MAAMC,OAAO,GAAGV,UAAU,CAACM,GAAG,EAAEX,IAAI,EAAEC,OAAO,CAAC,CAACe,IAAI,CAAEnB,KAAK,IAAK;MAC7DgB,MAAM,CAACC,GAAG,CAAC,GAAGjB,KAAK;IACrB,CAAC,CAAC;IACFe,QAAQ,CAACK,IAAI,CAACF,OAAO,CAAC;EACxB;EAEA,MAAMG,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;EAE3B,OAAOC,MAAM;AACf;AAEA,eAAeJ,QAAQA,CAACW,QAAkB,EAAEpB,IAAU,EAAgC;EAAA,IAA9BC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClE,MAAMU,QAAQ,GAAGQ,QAAQ,CAACC,GAAG,CAAEV,GAAG,IAAKN,UAAU,CAACM,GAAG,EAAEX,IAAI,EAAEC,OAAO,CAAC,CAAC;EACtE,OAAO,MAAMiB,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;AACpC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { asyncDeepMap } from './async-deep-map';
|
|
2
|
+
export async function deepLoad(urlTree, load, options) {
|
|
3
|
+
return await asyncDeepMap(urlTree, url => shallowLoad(url, load, options));
|
|
4
|
+
}
|
|
5
|
+
export async function shallowLoad(url, load, options) {
|
|
6
|
+
const response = await fetch(url, options.fetch);
|
|
7
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
8
|
+
return await load(arrayBuffer, options);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=deep-load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-load.js","names":["asyncDeepMap","deepLoad","urlTree","load","options","url","shallowLoad","response","fetch","arrayBuffer"],"sources":["../../../../src/lib/texture-api/deep-load.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {asyncDeepMap} from './async-deep-map';\n\nexport type LoadOptions = Record<string, any>;\nexport type Load = (data: ArrayBuffer, options: Record<string, any>) => Promise<any>;\n\nexport async function deepLoad(urlTree: unknown, load: Load, options: LoadOptions) {\n return await asyncDeepMap(urlTree, (url: string) => shallowLoad(url, load, options));\n}\n\nexport async function shallowLoad(url: string, load: Load, options: LoadOptions): Promise<any> {\n // console.error('loading', url);\n const response = await fetch(url, options.fetch);\n const arrayBuffer = await response.arrayBuffer();\n return await load(arrayBuffer, options);\n}\n"],"mappings":"AACA,SAAQA,YAAY,QAAO,kBAAkB;AAK7C,OAAO,eAAeC,QAAQA,CAACC,OAAgB,EAAEC,IAAU,EAAEC,OAAoB,EAAE;EACjF,OAAO,MAAMJ,YAAY,CAACE,OAAO,EAAGG,GAAW,IAAKC,WAAW,CAACD,GAAG,EAAEF,IAAI,EAAEC,OAAO,CAAC,CAAC;AACtF;AAEA,OAAO,eAAeE,WAAWA,CAACD,GAAW,EAAEF,IAAU,EAAEC,OAAoB,EAAgB;EAE7F,MAAMG,QAAQ,GAAG,MAAMC,KAAK,CAACH,GAAG,EAAED,OAAO,CAACI,KAAK,CAAC;EAChD,MAAMC,WAAW,GAAG,MAAMF,QAAQ,CAACE,WAAW,CAAC,CAAC;EAChD,OAAO,MAAMN,IAAI,CAACM,WAAW,EAAEL,OAAO,CAAC;AACzC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { resolvePath } from '@loaders.gl/loader-utils';
|
|
2
|
+
export function generateUrl(getUrl, options, urlOptions) {
|
|
3
|
+
let url = typeof getUrl === 'function' ? getUrl({
|
|
4
|
+
...options,
|
|
5
|
+
...urlOptions
|
|
6
|
+
}) : getUrl;
|
|
7
|
+
const baseUrl = options.baseUrl;
|
|
8
|
+
if (baseUrl) {
|
|
9
|
+
url = baseUrl[baseUrl.length - 1] === '/' ? "".concat(baseUrl).concat(url) : "".concat(baseUrl, "/").concat(url);
|
|
10
|
+
}
|
|
11
|
+
return resolvePath(url);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=generate-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-url.js","names":["resolvePath","generateUrl","getUrl","options","urlOptions","url","baseUrl","length","concat"],"sources":["../../../../src/lib/texture-api/generate-url.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {resolvePath} from '@loaders.gl/loader-utils';\nimport type {GetUrl, UrlOptions} from './texture-api-types';\n\n// Generate a url by calling getUrl with mix of options, applying options.baseUrl\nexport function generateUrl(\n getUrl: string | GetUrl,\n options: UrlOptions,\n urlOptions: Record<string, any>\n): string {\n // Get url\n let url = typeof getUrl === 'function' ? getUrl({...options, ...urlOptions}) : getUrl;\n\n // Apply options.baseUrl\n const baseUrl = options.baseUrl;\n if (baseUrl) {\n url = baseUrl[baseUrl.length - 1] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n }\n\n return resolvePath(url);\n}\n"],"mappings":"AACA,SAAQA,WAAW,QAAO,0BAA0B;AAIpD,OAAO,SAASC,WAAWA,CACzBC,MAAuB,EACvBC,OAAmB,EACnBC,UAA+B,EACvB;EAER,IAAIC,GAAG,GAAG,OAAOH,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAC;IAAC,GAAGC,OAAO;IAAE,GAAGC;EAAU,CAAC,CAAC,GAAGF,MAAM;EAGrF,MAAMI,OAAO,GAAGH,OAAO,CAACG,OAAO;EAC/B,IAAIA,OAAO,EAAE;IACXD,GAAG,GAAGC,OAAO,CAACA,OAAO,CAACC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,MAAAC,MAAA,CAAMF,OAAO,EAAAE,MAAA,CAAGH,GAAG,OAAAG,MAAA,CAAQF,OAAO,OAAAE,MAAA,CAAIH,GAAG,CAAE;EACtF;EAEA,OAAOL,WAAW,CAACK,GAAG,CAAC;AACzB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ImageLoader } from '@loaders.gl/images';
|
|
2
|
+
import { getImageUrls } from './load-image';
|
|
3
|
+
import { deepLoad } from './deep-load';
|
|
4
|
+
export async function loadImageTextureArray(count, getUrl) {
|
|
5
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
6
|
+
const imageUrls = await getImageArrayUrls(count, getUrl, options);
|
|
7
|
+
return await deepLoad(imageUrls, ImageLoader.parse, options);
|
|
8
|
+
}
|
|
9
|
+
export async function getImageArrayUrls(count, getUrl) {
|
|
10
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
11
|
+
const promises = [];
|
|
12
|
+
for (let index = 0; index < count; index++) {
|
|
13
|
+
const promise = getImageUrls(getUrl, options, {
|
|
14
|
+
index
|
|
15
|
+
});
|
|
16
|
+
promises.push(promise);
|
|
17
|
+
}
|
|
18
|
+
return await Promise.all(promises);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=load-image-array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-image-array.js","names":["ImageLoader","getImageUrls","deepLoad","loadImageTextureArray","count","getUrl","options","arguments","length","undefined","imageUrls","getImageArrayUrls","parse","promises","index","promise","push","Promise","all"],"sources":["../../../../src/lib/texture-api/load-image-array.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {ImageLoader} from '@loaders.gl/images';\nimport type {GetUrl} from './texture-api-types';\nimport {getImageUrls} from './load-image';\nimport {deepLoad} from './deep-load';\n\nexport async function loadImageTextureArray(\n count: number,\n getUrl: GetUrl,\n options = {}\n): Promise<any> {\n const imageUrls = await getImageArrayUrls(count, getUrl, options);\n return await deepLoad(imageUrls, ImageLoader.parse, options);\n}\n\nexport async function getImageArrayUrls(count: number, getUrl: GetUrl, options = {}): Promise<any> {\n const promises: Promise<any>[] = [];\n for (let index = 0; index < count; index++) {\n const promise = getImageUrls(getUrl, options, {index});\n promises.push(promise);\n }\n return await Promise.all(promises);\n}\n"],"mappings":"AACA,SAAQA,WAAW,QAAO,oBAAoB;AAE9C,SAAQC,YAAY,QAAO,cAAc;AACzC,SAAQC,QAAQ,QAAO,aAAa;AAEpC,OAAO,eAAeC,qBAAqBA,CACzCC,KAAa,EACbC,MAAc,EAEA;EAAA,IADdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEZ,MAAMG,SAAS,GAAG,MAAMC,iBAAiB,CAACP,KAAK,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACjE,OAAO,MAAMJ,QAAQ,CAACQ,SAAS,EAAEV,WAAW,CAACY,KAAK,EAAEN,OAAO,CAAC;AAC9D;AAEA,OAAO,eAAeK,iBAAiBA,CAACP,KAAa,EAAEC,MAAc,EAA8B;EAAA,IAA5BC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjF,MAAMM,QAAwB,GAAG,EAAE;EACnC,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGV,KAAK,EAAEU,KAAK,EAAE,EAAE;IAC1C,MAAMC,OAAO,GAAGd,YAAY,CAACI,MAAM,EAAEC,OAAO,EAAE;MAACQ;IAAK,CAAC,CAAC;IACtDD,QAAQ,CAACG,IAAI,CAACD,OAAO,CAAC;EACxB;EACA,OAAO,MAAME,OAAO,CAACC,GAAG,CAACL,QAAQ,CAAC;AACpC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ImageLoader } from '@loaders.gl/images';
|
|
2
|
+
import { getImageUrls } from './load-image';
|
|
3
|
+
import { deepLoad } from './deep-load';
|
|
4
|
+
const GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
|
|
5
|
+
const GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
|
|
6
|
+
const GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
|
|
7
|
+
const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
|
|
8
|
+
const GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
|
|
9
|
+
const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a;
|
|
10
|
+
const CUBE_FACES = [{
|
|
11
|
+
face: GL_TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
12
|
+
direction: 'right',
|
|
13
|
+
axis: 'x',
|
|
14
|
+
sign: 'positive'
|
|
15
|
+
}, {
|
|
16
|
+
face: GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
|
|
17
|
+
direction: 'left',
|
|
18
|
+
axis: 'x',
|
|
19
|
+
sign: 'negative'
|
|
20
|
+
}, {
|
|
21
|
+
face: GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
|
|
22
|
+
direction: 'top',
|
|
23
|
+
axis: 'y',
|
|
24
|
+
sign: 'positive'
|
|
25
|
+
}, {
|
|
26
|
+
face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
|
27
|
+
direction: 'bottom',
|
|
28
|
+
axis: 'y',
|
|
29
|
+
sign: 'negative'
|
|
30
|
+
}, {
|
|
31
|
+
face: GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
|
|
32
|
+
direction: 'front',
|
|
33
|
+
axis: 'z',
|
|
34
|
+
sign: 'positive'
|
|
35
|
+
}, {
|
|
36
|
+
face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
|
|
37
|
+
direction: 'back',
|
|
38
|
+
axis: 'z',
|
|
39
|
+
sign: 'negative'
|
|
40
|
+
}];
|
|
41
|
+
export async function getImageCubeUrls(getUrl, options) {
|
|
42
|
+
const urls = {};
|
|
43
|
+
const promises = [];
|
|
44
|
+
let index = 0;
|
|
45
|
+
for (let i = 0; i < CUBE_FACES.length; ++i) {
|
|
46
|
+
const face = CUBE_FACES[index];
|
|
47
|
+
const promise = getImageUrls(getUrl, options, {
|
|
48
|
+
...face,
|
|
49
|
+
index: index++
|
|
50
|
+
}).then(url => {
|
|
51
|
+
urls[face.face] = url;
|
|
52
|
+
});
|
|
53
|
+
promises.push(promise);
|
|
54
|
+
}
|
|
55
|
+
await Promise.all(promises);
|
|
56
|
+
return urls;
|
|
57
|
+
}
|
|
58
|
+
export async function loadImageTextureCube(getUrl) {
|
|
59
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
60
|
+
const urls = await getImageCubeUrls(getUrl, options);
|
|
61
|
+
return await deepLoad(urls, ImageLoader.parse, options);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=load-image-cube.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-image-cube.js","names":["ImageLoader","getImageUrls","deepLoad","GL_TEXTURE_CUBE_MAP_POSITIVE_X","GL_TEXTURE_CUBE_MAP_NEGATIVE_X","GL_TEXTURE_CUBE_MAP_POSITIVE_Y","GL_TEXTURE_CUBE_MAP_NEGATIVE_Y","GL_TEXTURE_CUBE_MAP_POSITIVE_Z","GL_TEXTURE_CUBE_MAP_NEGATIVE_Z","CUBE_FACES","face","direction","axis","sign","getImageCubeUrls","getUrl","options","urls","promises","index","i","length","promise","then","url","push","Promise","all","loadImageTextureCube","arguments","undefined","parse"],"sources":["../../../../src/lib/texture-api/load-image-cube.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {ImageLoader} from '@loaders.gl/images';\nimport type {GetUrl, UrlOptions} from './texture-api-types';\nimport {getImageUrls} from './load-image';\nimport {deepLoad} from './deep-load';\n\n// Returned map will be have keys corresponding to GL cubemap constants\nconst GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;\nconst GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;\nconst GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;\nconst GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;\nconst GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;\nconst GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a;\n\nconst CUBE_FACES = [\n {face: GL_TEXTURE_CUBE_MAP_POSITIVE_X, direction: 'right', axis: 'x', sign: 'positive'},\n {face: GL_TEXTURE_CUBE_MAP_NEGATIVE_X, direction: 'left', axis: 'x', sign: 'negative'},\n {face: GL_TEXTURE_CUBE_MAP_POSITIVE_Y, direction: 'top', axis: 'y', sign: 'positive'},\n {face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, direction: 'bottom', axis: 'y', sign: 'negative'},\n {face: GL_TEXTURE_CUBE_MAP_POSITIVE_Z, direction: 'front', axis: 'z', sign: 'positive'},\n {face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, direction: 'back', axis: 'z', sign: 'negative'}\n];\n\nexport type ImageCubeTexture = {\n GL_TEXTURE_CUBE_MAP_POSITIVE_X: any;\n GL_TEXTURE_CUBE_MAP_NEGATIVE_X: any;\n GL_TEXTURE_CUBE_MAP_POSITIVE_Y: any;\n GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: any;\n GL_TEXTURE_CUBE_MAP_POSITIVE_Z: any;\n GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: any;\n};\n\n// Returns an object with six key-value pairs containing the urls (or url mip arrays)\n// for each cube face\nexport async function getImageCubeUrls(getUrl: GetUrl, options: UrlOptions) {\n // Calculate URLs\n const urls: Record<number, string | string[]> = {};\n const promises: Promise<any>[] = [];\n\n let index = 0;\n for (let i = 0; i < CUBE_FACES.length; ++i) {\n const face = CUBE_FACES[index];\n const promise = getImageUrls(getUrl, options, {...face, index: index++}).then((url) => {\n urls[face.face] = url;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return urls;\n}\n\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function loadImageTextureCube(\n getUrl: GetUrl,\n options = {}\n): Promise<ImageCubeTexture> {\n const urls = await getImageCubeUrls(getUrl, options);\n return (await deepLoad(urls, ImageLoader.parse, options)) as ImageCubeTexture;\n}\n"],"mappings":"AACA,SAAQA,WAAW,QAAO,oBAAoB;AAE9C,SAAQC,YAAY,QAAO,cAAc;AACzC,SAAQC,QAAQ,QAAO,aAAa;AAGpC,MAAMC,8BAA8B,GAAG,MAAM;AAC7C,MAAMC,8BAA8B,GAAG,MAAM;AAC7C,MAAMC,8BAA8B,GAAG,MAAM;AAC7C,MAAMC,8BAA8B,GAAG,MAAM;AAC7C,MAAMC,8BAA8B,GAAG,MAAM;AAC7C,MAAMC,8BAA8B,GAAG,MAAM;AAE7C,MAAMC,UAAU,GAAG,CACjB;EAACC,IAAI,EAAEP,8BAA8B;EAAEQ,SAAS,EAAE,OAAO;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,EACvF;EAACH,IAAI,EAAEN,8BAA8B;EAAEO,SAAS,EAAE,MAAM;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,EACtF;EAACH,IAAI,EAAEL,8BAA8B;EAAEM,SAAS,EAAE,KAAK;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,EACrF;EAACH,IAAI,EAAEJ,8BAA8B;EAAEK,SAAS,EAAE,QAAQ;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,EACxF;EAACH,IAAI,EAAEH,8BAA8B;EAAEI,SAAS,EAAE,OAAO;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,EACvF;EAACH,IAAI,EAAEF,8BAA8B;EAAEG,SAAS,EAAE,MAAM;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,CACvF;AAaD,OAAO,eAAeC,gBAAgBA,CAACC,MAAc,EAAEC,OAAmB,EAAE;EAE1E,MAAMC,IAAuC,GAAG,CAAC,CAAC;EAClD,MAAMC,QAAwB,GAAG,EAAE;EAEnC,IAAIC,KAAK,GAAG,CAAC;EACb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,UAAU,CAACY,MAAM,EAAE,EAAED,CAAC,EAAE;IAC1C,MAAMV,IAAI,GAAGD,UAAU,CAACU,KAAK,CAAC;IAC9B,MAAMG,OAAO,GAAGrB,YAAY,CAACc,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGN,IAAI;MAAES,KAAK,EAAEA,KAAK;IAAE,CAAC,CAAC,CAACI,IAAI,CAAEC,GAAG,IAAK;MACrFP,IAAI,CAACP,IAAI,CAACA,IAAI,CAAC,GAAGc,GAAG;IACvB,CAAC,CAAC;IACFN,QAAQ,CAACO,IAAI,CAACH,OAAO,CAAC;EACxB;EAEA,MAAMI,OAAO,CAACC,GAAG,CAACT,QAAQ,CAAC;EAE3B,OAAOD,IAAI;AACb;AAIA,OAAO,eAAeW,oBAAoBA,CACxCb,MAAc,EAEa;EAAA,IAD3BC,OAAO,GAAAa,SAAA,CAAAR,MAAA,QAAAQ,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;EAEZ,MAAMZ,IAAI,GAAG,MAAMH,gBAAgB,CAACC,MAAM,EAAEC,OAAO,CAAC;EACpD,OAAQ,MAAMd,QAAQ,CAACe,IAAI,EAAEjB,WAAW,CAAC+B,KAAK,EAAEf,OAAO,CAAC;AAC1D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { assert } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { ImageLoader, getImageSize } from '@loaders.gl/images';
|
|
3
|
+
import { generateUrl } from './generate-url';
|
|
4
|
+
import { deepLoad, shallowLoad } from './deep-load';
|
|
5
|
+
export async function loadImageTexture(getUrl) {
|
|
6
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
7
|
+
const imageUrls = await getImageUrls(getUrl, options);
|
|
8
|
+
return await deepLoad(imageUrls, ImageLoader.parse, options);
|
|
9
|
+
}
|
|
10
|
+
export async function getImageUrls(getUrl, options) {
|
|
11
|
+
let urlOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
12
|
+
const mipLevels = options && options.image && options.image.mipLevels || 0;
|
|
13
|
+
return mipLevels !== 0 ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) : generateUrl(getUrl, options, urlOptions);
|
|
14
|
+
}
|
|
15
|
+
async function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {
|
|
16
|
+
const urls = [];
|
|
17
|
+
if (mipLevels === 'auto') {
|
|
18
|
+
const url = generateUrl(getUrl, options, {
|
|
19
|
+
...urlOptions,
|
|
20
|
+
lod: 0
|
|
21
|
+
});
|
|
22
|
+
const image = await shallowLoad(url, ImageLoader.parse, options);
|
|
23
|
+
const {
|
|
24
|
+
width,
|
|
25
|
+
height
|
|
26
|
+
} = getImageSize(image);
|
|
27
|
+
mipLevels = getMipLevels({
|
|
28
|
+
width,
|
|
29
|
+
height
|
|
30
|
+
});
|
|
31
|
+
urls.push(url);
|
|
32
|
+
}
|
|
33
|
+
assert(mipLevels > 0);
|
|
34
|
+
for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {
|
|
35
|
+
const url = generateUrl(getUrl, options, {
|
|
36
|
+
...urlOptions,
|
|
37
|
+
lod: mipLevel
|
|
38
|
+
});
|
|
39
|
+
urls.push(url);
|
|
40
|
+
}
|
|
41
|
+
return urls;
|
|
42
|
+
}
|
|
43
|
+
export function getMipLevels(size) {
|
|
44
|
+
return 1 + Math.floor(Math.log2(Math.max(size.width, size.height)));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=load-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-image.js","names":["assert","ImageLoader","getImageSize","generateUrl","deepLoad","shallowLoad","loadImageTexture","getUrl","options","arguments","length","undefined","imageUrls","getImageUrls","parse","urlOptions","mipLevels","image","getMipmappedImageUrls","urls","url","lod","width","height","getMipLevels","push","mipLevel","size","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport {ImageLoader, getImageSize} from '@loaders.gl/images';\nimport type {GetUrl, UrlOptions} from './texture-api-types';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImageTexture(getUrl: string | GetUrl, options = {}): Promise<any> {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, ImageLoader.parse, options);\n}\n\nexport async function getImageUrls(\n getUrl: string | GetUrl,\n options: any,\n urlOptions: UrlOptions = {}\n): Promise<any> {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(\n getUrl: string | GetUrl,\n mipLevels: number | 'auto',\n options: any,\n urlOptions: UrlOptions\n): Promise<string[]> {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, ImageLoader.parse, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels(size: {width: number; height: number}): number {\n return 1 + Math.floor(Math.log2(Math.max(size.width, size.height)));\n}\n"],"mappings":"AAAA,SAAQA,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,WAAW,EAAEC,YAAY,QAAO,oBAAoB;AAE5D,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,QAAQ,EAAEC,WAAW,QAAO,aAAa;AAEjD,OAAO,eAAeC,gBAAgBA,CAACC,MAAuB,EAA8B;EAAA,IAA5BC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC1E,MAAMG,SAAS,GAAG,MAAMC,YAAY,CAACN,MAAM,EAAEC,OAAO,CAAC;EACrD,OAAO,MAAMJ,QAAQ,CAACQ,SAAS,EAAEX,WAAW,CAACa,KAAK,EAAEN,OAAO,CAAC;AAC9D;AAEA,OAAO,eAAeK,YAAYA,CAChCN,MAAuB,EACvBC,OAAY,EAEE;EAAA,IADdO,UAAsB,GAAAN,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE3B,MAAMO,SAAS,GAAIR,OAAO,IAAIA,OAAO,CAACS,KAAK,IAAIT,OAAO,CAACS,KAAK,CAACD,SAAS,IAAK,CAAC;EAC5E,OAAOA,SAAS,KAAK,CAAC,GAClB,MAAME,qBAAqB,CAACX,MAAM,EAAES,SAAS,EAAER,OAAO,EAAEO,UAAU,CAAC,GACnEZ,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAEO,UAAU,CAAC;AAC9C;AAEA,eAAeG,qBAAqBA,CAClCX,MAAuB,EACvBS,SAA0B,EAC1BR,OAAY,EACZO,UAAsB,EACH;EACnB,MAAMI,IAAc,GAAG,EAAE;EAGzB,IAAIH,SAAS,KAAK,MAAM,EAAE;IACxB,MAAMI,GAAG,GAAGjB,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGO,UAAU;MAAEM,GAAG,EAAE;IAAC,CAAC,CAAC;IACjE,MAAMJ,KAAK,GAAG,MAAMZ,WAAW,CAACe,GAAG,EAAEnB,WAAW,CAACa,KAAK,EAAEN,OAAO,CAAC;IAEhE,MAAM;MAACc,KAAK;MAAEC;IAAM,CAAC,GAAGrB,YAAY,CAACe,KAAK,CAAC;IAC3CD,SAAS,GAAGQ,YAAY,CAAC;MAACF,KAAK;MAAEC;IAAM,CAAC,CAAC;IAGzCJ,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAGApB,MAAM,CAACgB,SAAS,GAAG,CAAC,CAAC;EAErB,KAAK,IAAIU,QAAQ,GAAGP,IAAI,CAACT,MAAM,EAAEgB,QAAQ,GAAGV,SAAS,EAAE,EAAEU,QAAQ,EAAE;IACjE,MAAMN,GAAG,GAAGjB,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGO,UAAU;MAAEM,GAAG,EAAEK;IAAQ,CAAC,CAAC;IACxEP,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAEA,OAAOD,IAAI;AACb;AAGA,OAAO,SAASK,YAAYA,CAACG,IAAqC,EAAU;EAC1E,OAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,IAAI,CAACF,IAAI,CAACG,GAAG,CAACJ,IAAI,CAACL,KAAK,EAAEK,IAAI,CAACJ,MAAM,CAAC,CAAC,CAAC;AACrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-api-types.js","names":[],"sources":["../../../../src/lib/texture-api/texture-api-types.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {ImageType} from '@loaders.gl/images';\n\nexport type UrlOptions = {\n baseUrl?: string;\n index?: number;\n face?: number;\n lod?: number;\n direction?: string;\n};\nexport type GetUrl = (options: UrlOptions) => string;\n"],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function extractMipmapImages(data, options) {
|
|
2
|
+
const images = new Array(options.mipMapLevels);
|
|
3
|
+
let levelWidth = options.width;
|
|
4
|
+
let levelHeight = options.height;
|
|
5
|
+
let offset = 0;
|
|
6
|
+
for (let i = 0; i < options.mipMapLevels; ++i) {
|
|
7
|
+
const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);
|
|
8
|
+
const levelData = getLevelData(data, i, offset, levelSize);
|
|
9
|
+
images[i] = {
|
|
10
|
+
compressed: true,
|
|
11
|
+
format: options.internalFormat,
|
|
12
|
+
data: levelData,
|
|
13
|
+
width: levelWidth,
|
|
14
|
+
height: levelHeight,
|
|
15
|
+
levelSize
|
|
16
|
+
};
|
|
17
|
+
levelWidth = Math.max(1, levelWidth >> 1);
|
|
18
|
+
levelHeight = Math.max(1, levelHeight >> 1);
|
|
19
|
+
offset += levelSize;
|
|
20
|
+
}
|
|
21
|
+
return images;
|
|
22
|
+
}
|
|
23
|
+
function getLevelData(data, index, offset, levelSize) {
|
|
24
|
+
if (!Array.isArray(data)) {
|
|
25
|
+
return new Uint8Array(data.buffer, data.byteOffset + offset, levelSize);
|
|
26
|
+
}
|
|
27
|
+
return data[index].levelData;
|
|
28
|
+
}
|
|
29
|
+
function getLevelSize(options, levelWidth, levelHeight, data, index) {
|
|
30
|
+
if (!Array.isArray(data)) {
|
|
31
|
+
return options.sizeFunction(levelWidth, levelHeight);
|
|
32
|
+
}
|
|
33
|
+
return options.sizeFunction(data[index]);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=extract-mipmap-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-mipmap-images.js","names":["extractMipmapImages","data","options","images","Array","mipMapLevels","levelWidth","width","levelHeight","height","offset","i","levelSize","getLevelSize","levelData","getLevelData","compressed","format","internalFormat","Math","max","index","isArray","Uint8Array","buffer","byteOffset","sizeFunction"],"sources":["../../../../src/lib/utils/extract-mipmap-images.ts"],"sourcesContent":["import type {TextureLevel} from '@loaders.gl/schema';\n\nexport type CompressedTextureExtractOptions = {\n mipMapLevels: number;\n width: number;\n height: number;\n sizeFunction: Function;\n internalFormat: number;\n};\n\n/**\n * Extract mipmap images from compressed texture buffer\n * @param data - binary data of compressed texture or Array of level objects\n * @param options.mipMapLevels - number of mipmap level inside image\n * @param options.width - width of 0 - level\n * @param options.height - height of 0 - level\n * @param options.sizeFunction - format-related function to calculate level size in bytes\n * @param options.internalFormat - WebGL compatible format code\n * @returns Array of the texture levels\n */\nexport function extractMipmapImages(\n data: Uint8Array | object[],\n options: CompressedTextureExtractOptions\n): TextureLevel[] {\n const images = new Array(options.mipMapLevels);\n\n let levelWidth = options.width;\n let levelHeight = options.height;\n let offset = 0;\n\n for (let i = 0; i < options.mipMapLevels; ++i) {\n // @ts-expect-error\n const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);\n // @ts-expect-error\n const levelData = getLevelData(data, i, offset, levelSize);\n\n images[i] = {\n compressed: true,\n format: options.internalFormat,\n data: levelData,\n width: levelWidth,\n height: levelHeight,\n levelSize\n };\n\n levelWidth = Math.max(1, levelWidth >> 1);\n levelHeight = Math.max(1, levelHeight >> 1);\n\n offset += levelSize;\n }\n return images;\n}\n\nfunction getLevelData(\n data: Uint8Array,\n index: number,\n offset: number,\n levelSize: number\n): Uint8Array {\n if (!Array.isArray(data)) {\n return new Uint8Array(data.buffer, data.byteOffset + offset, levelSize);\n }\n\n return data[index].levelData;\n}\n\nfunction getLevelSize(\n options: CompressedTextureExtractOptions,\n levelWidth: number,\n levelHeight: number,\n data: Uint8Array[] | object[],\n index: number\n): number {\n if (!Array.isArray(data)) {\n return options.sizeFunction(levelWidth, levelHeight);\n }\n return options.sizeFunction(data[index]);\n}\n"],"mappings":"AAoBA,OAAO,SAASA,mBAAmBA,CACjCC,IAA2B,EAC3BC,OAAwC,EACxB;EAChB,MAAMC,MAAM,GAAG,IAAIC,KAAK,CAACF,OAAO,CAACG,YAAY,CAAC;EAE9C,IAAIC,UAAU,GAAGJ,OAAO,CAACK,KAAK;EAC9B,IAAIC,WAAW,GAAGN,OAAO,CAACO,MAAM;EAChC,IAAIC,MAAM,GAAG,CAAC;EAEd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,OAAO,CAACG,YAAY,EAAE,EAAEM,CAAC,EAAE;IAE7C,MAAMC,SAAS,GAAGC,YAAY,CAACX,OAAO,EAAEI,UAAU,EAAEE,WAAW,EAAEP,IAAI,EAAEU,CAAC,CAAC;IAEzE,MAAMG,SAAS,GAAGC,YAAY,CAACd,IAAI,EAAEU,CAAC,EAAED,MAAM,EAAEE,SAAS,CAAC;IAE1DT,MAAM,CAACQ,CAAC,CAAC,GAAG;MACVK,UAAU,EAAE,IAAI;MAChBC,MAAM,EAAEf,OAAO,CAACgB,cAAc;MAC9BjB,IAAI,EAAEa,SAAS;MACfP,KAAK,EAAED,UAAU;MACjBG,MAAM,EAAED,WAAW;MACnBI;IACF,CAAC;IAEDN,UAAU,GAAGa,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEd,UAAU,IAAI,CAAC,CAAC;IACzCE,WAAW,GAAGW,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,WAAW,IAAI,CAAC,CAAC;IAE3CE,MAAM,IAAIE,SAAS;EACrB;EACA,OAAOT,MAAM;AACf;AAEA,SAASY,YAAYA,CACnBd,IAAgB,EAChBoB,KAAa,EACbX,MAAc,EACdE,SAAiB,EACL;EACZ,IAAI,CAACR,KAAK,CAACkB,OAAO,CAACrB,IAAI,CAAC,EAAE;IACxB,OAAO,IAAIsB,UAAU,CAACtB,IAAI,CAACuB,MAAM,EAAEvB,IAAI,CAACwB,UAAU,GAAGf,MAAM,EAAEE,SAAS,CAAC;EACzE;EAEA,OAAOX,IAAI,CAACoB,KAAK,CAAC,CAACP,SAAS;AAC9B;AAEA,SAASD,YAAYA,CACnBX,OAAwC,EACxCI,UAAkB,EAClBE,WAAmB,EACnBP,IAA6B,EAC7BoB,KAAa,EACL;EACR,IAAI,CAACjB,KAAK,CAACkB,OAAO,CAACrB,IAAI,CAAC,EAAE;IACxB,OAAOC,OAAO,CAACwB,YAAY,CAACpB,UAAU,EAAEE,WAAW,CAAC;EACtD;EACA,OAAON,OAAO,CAACwB,YAAY,CAACzB,IAAI,CAACoB,KAAK,CAAC,CAAC;AAC1C"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { GL_EXTENSIONS_CONSTANTS } from '../gl-extensions';
|
|
2
|
+
const VULKAN_TO_WEBGL_FORMAT_MAP = {
|
|
3
|
+
131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
4
|
+
132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,
|
|
5
|
+
133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
|
|
6
|
+
134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
|
|
7
|
+
135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
8
|
+
136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
|
|
9
|
+
137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
10
|
+
138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
|
|
11
|
+
139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,
|
|
12
|
+
140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,
|
|
13
|
+
141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,
|
|
14
|
+
142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
|
|
15
|
+
147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,
|
|
16
|
+
148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,
|
|
17
|
+
149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
|
18
|
+
150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
|
19
|
+
151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,
|
|
20
|
+
152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
|
|
21
|
+
153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,
|
|
22
|
+
154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,
|
|
23
|
+
155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,
|
|
24
|
+
156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,
|
|
25
|
+
157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
26
|
+
158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
|
|
27
|
+
159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
28
|
+
160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
|
|
29
|
+
161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
30
|
+
162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
|
|
31
|
+
163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
32
|
+
164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
|
|
33
|
+
165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
34
|
+
166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
|
|
35
|
+
167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
36
|
+
168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
|
|
37
|
+
169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
38
|
+
170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
|
|
39
|
+
171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
40
|
+
172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
|
|
41
|
+
173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
42
|
+
174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
|
|
43
|
+
175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
44
|
+
176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
|
|
45
|
+
177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
46
|
+
178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
|
|
47
|
+
179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
48
|
+
180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
|
|
49
|
+
181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
50
|
+
182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
|
|
51
|
+
183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,
|
|
52
|
+
184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
|
|
53
|
+
1000054000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
|
|
54
|
+
1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
|
|
55
|
+
1000066000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
56
|
+
1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
57
|
+
1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
58
|
+
1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
59
|
+
1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
60
|
+
1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
61
|
+
1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
62
|
+
1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
63
|
+
1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
64
|
+
1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
65
|
+
1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
66
|
+
1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
67
|
+
1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
68
|
+
1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
|
|
69
|
+
};
|
|
70
|
+
export function mapVkFormatToWebGL(vkFormat) {
|
|
71
|
+
return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ktx-format-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx-format-helper.js","names":["GL_EXTENSIONS_CONSTANTS","VULKAN_TO_WEBGL_FORMAT_MAP","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","mapVkFormatToWebGL","vkFormat"],"sources":["../../../../src/lib/utils/ktx-format-helper.ts"],"sourcesContent":["import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\n\nconst VULKAN_TO_WEBGL_FORMAT_MAP: Record<number, number> = {\n 131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,\n 132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,\n 133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n 134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n 135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n 136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n 137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n 138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,\n 139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,\n 140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,\n 141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,\n 142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,\n 147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,\n 148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,\n 149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n 150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n 151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,\n 152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,\n 153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,\n 154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,\n 155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,\n 156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,\n // @ts-ignore\n 157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n // @ts-ignore\n 158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,\n // @ts-ignore\n 159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,\n // @ts-ignore\n 160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,\n // @ts-ignore\n 161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,\n // @ts-ignore\n 162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,\n // @ts-ignore\n 163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,\n // @ts-ignore\n 164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,\n // @ts-ignore\n 165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,\n // @ts-ignore\n 166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,\n // @ts-ignore\n 167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,\n // @ts-ignore\n 168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,\n // @ts-ignore\n 169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,\n // @ts-ignore\n 170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,\n // @ts-ignore\n 171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,\n // @ts-ignore\n 172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,\n // @ts-ignore\n 173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,\n // @ts-ignore\n 174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,\n // @ts-ignore\n 175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,\n // @ts-ignore\n 176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,\n // @ts-ignore\n 177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,\n // @ts-ignore\n 178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,\n // @ts-ignore\n 179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,\n // @ts-ignore\n 180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,\n // @ts-ignore\n 181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,\n // @ts-ignore\n 182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,\n // @ts-ignore\n 183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,\n // @ts-ignore\n 184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,\n 1000054000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,\n 1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n // @ts-ignore\n 1000066000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n // @ts-ignore\n 1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,\n // @ts-ignore\n 1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,\n // @ts-ignore\n 1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,\n // @ts-ignore\n 1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,\n // @ts-ignore\n 1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,\n // @ts-ignore\n 1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,\n // @ts-ignore\n 1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,\n // @ts-ignore\n 1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,\n // @ts-ignore\n 1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,\n // @ts-ignore\n 1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,\n // @ts-ignore\n 1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,\n // @ts-ignore\n 1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,\n // @ts-ignore\n 1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR\n};\n\n/**\n * Returns WebGl format based on Vulkan format\n * Vulkan to WebGl format mapping provided here http://github.khronos.org/KTX-Specification/#formatMapping\n * Vulkan name to format number mapping provided here: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html\n * @param vkFormat\n * @returns WebGL / OpenGL constant\n */\nexport function mapVkFormatToWebGL(vkFormat: number): number {\n return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];\n}\n"],"mappings":"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"}
|