@loaders.gl/textures 4.0.0-alpha.9 → 4.0.0-beta.2
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-worker-node.js +392 -340
- package/dist/basis-worker.js +66 -38
- package/dist/compressed-texture-loader.d.ts +2 -35
- package/dist/compressed-texture-loader.d.ts.map +1 -1
- package/dist/compressed-texture-worker.js +75 -47
- package/dist/crunch-loader.d.ts +9 -17
- package/dist/crunch-loader.d.ts.map +1 -1
- package/dist/crunch-worker.js +53 -25
- package/dist/dist.min.js +99 -55
- package/dist/es5/compressed-texture-loader.js +15 -17
- package/dist/es5/compressed-texture-loader.js.map +1 -1
- package/dist/es5/crunch-loader.js +1 -3
- package/dist/es5/crunch-loader.js.map +1 -1
- package/dist/es5/index.js +14 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/ktx2-basis-writer.js +5 -5
- package/dist/es5/ktx2-basis-writer.js.map +1 -1
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +6 -5
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/es5/lib/parsers/basis-module-loader.js +26 -21
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js +6 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +7 -7
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/workers/compressed-texture-worker.js.map +1 -1
- package/dist/es5/workers/ktx2-basis-writer-worker-node.js.map +1 -1
- package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -1
- package/dist/esm/compressed-texture-loader.js +10 -11
- package/dist/esm/compressed-texture-loader.js.map +1 -1
- package/dist/esm/crunch-loader.js +0 -1
- package/dist/esm/crunch-loader.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ktx2-basis-writer.js +6 -5
- package/dist/esm/ktx2-basis-writer.js.map +1 -1
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +1 -1
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/esm/lib/parsers/basis-module-loader.js +13 -10
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js +4 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +3 -3
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/workers/compressed-texture-worker.js.map +1 -1
- package/dist/esm/workers/ktx2-basis-writer-worker-node.js.map +1 -1
- package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/ktx2-basis-writer-worker-node.js +387 -333
- package/dist/ktx2-basis-writer-worker.js +61 -31
- package/dist/ktx2-basis-writer.d.ts +8 -7
- package/dist/ktx2-basis-writer.d.ts.map +1 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
- package/dist/lib/parsers/basis-module-loader.d.ts +11 -1
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
- package/dist/lib/parsers/crunch-module-loader.d.ts +4 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
- package/dist/npy-worker.js +9 -4
- package/dist/workers/crunch-worker.d.ts +13 -9
- package/dist/workers/crunch-worker.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/compressed-texture-loader.ts +14 -17
- package/src/crunch-loader.ts +10 -7
- package/src/index.ts +4 -0
- package/src/ktx2-basis-writer.ts +14 -13
- package/src/lib/encoders/encode-ktx2-basis-texture.ts +6 -1
- package/src/lib/parsers/basis-module-loader.ts +19 -16
- package/src/lib/parsers/crunch-module-loader.ts +6 -1
- package/src/lib/parsers/parse-basis.ts +3 -3
- package/src/lib/texture-api/deep-load.ts +0 -1
- package/src/workers/compressed-texture-worker.ts +1 -0
- package/src/workers/ktx2-basis-writer-worker-node.ts +2 -2
- package/src/workers/ktx2-basis-writer-worker.ts +2 -2
- package/dist/basis-loader.js +0 -37
- package/dist/bundle.js +0 -5
- package/dist/compressed-texture-loader.js +0 -64
- package/dist/compressed-texture-writer.js +0 -34
- package/dist/crunch-loader.js +0 -25
- package/dist/index.js +0 -52
- package/dist/ktx2-basis-writer.js +0 -26
- package/dist/lib/encoders/encode-ktx.js +0 -10
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +0 -41
- package/dist/lib/encoders/encode-texture.js +0 -27
- package/dist/lib/gl-extensions.js +0 -72
- package/dist/lib/parsers/basis-module-loader.js +0 -114
- package/dist/lib/parsers/crunch-module-loader.js +0 -35
- package/dist/lib/parsers/parse-basis.js +0 -245
- package/dist/lib/parsers/parse-compressed-texture.js +0 -26
- package/dist/lib/parsers/parse-crunch.js +0 -106
- package/dist/lib/parsers/parse-dds.js +0 -108
- package/dist/lib/parsers/parse-ktx.js +0 -46
- package/dist/lib/parsers/parse-npy.js +0 -81
- package/dist/lib/parsers/parse-pvr.js +0 -250
- package/dist/lib/texture-api/async-deep-map.js +0 -41
- package/dist/lib/texture-api/deep-load.js +0 -16
- package/dist/lib/texture-api/generate-url.js +0 -17
- package/dist/lib/texture-api/load-image-array.js +0 -21
- package/dist/lib/texture-api/load-image-cube.js +0 -47
- package/dist/lib/texture-api/load-image.js +0 -43
- package/dist/lib/texture-api/texture-api-types.js +0 -3
- package/dist/lib/utils/extract-mipmap-images.js +0 -50
- package/dist/lib/utils/ktx-format-helper.js +0 -125
- package/dist/lib/utils/texture-formats.js +0 -51
- package/dist/lib/utils/version.js +0 -8
- package/dist/npy-loader.js +0 -31
- package/dist/types.js +0 -1
- package/dist/workers/basis-worker-node.js +0 -7
- package/dist/workers/basis-worker.js +0 -5
- package/dist/workers/compressed-texture-worker.js +0 -5
- package/dist/workers/crunch-worker.js +0 -14
- package/dist/workers/ktx2-basis-writer-worker-node.js +0 -28
- package/dist/workers/ktx2-basis-writer-worker.js +0 -26
- package/dist/workers/npy-worker.js +0 -5
package/dist/es5/index.js
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "BASIS_EXTERNAL_LIBRARIES", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _basisModuleLoader.BASIS_EXTERNAL_LIBRARIES;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "BasisLoader", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function get() {
|
|
@@ -15,6 +21,12 @@ Object.defineProperty(exports, "BasisWorkerLoader", {
|
|
|
15
21
|
return _basisLoader.BasisWorkerLoader;
|
|
16
22
|
}
|
|
17
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "CRUNCH_EXTERNAL_LIBRARIES", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _crunchModuleLoader.CRUNCH_EXTERNAL_LIBRARIES;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
18
30
|
Object.defineProperty(exports, "CompressedTextureLoader", {
|
|
19
31
|
enumerable: true,
|
|
20
32
|
get: function get() {
|
|
@@ -105,6 +117,8 @@ var _basisLoader = require("./basis-loader");
|
|
|
105
117
|
var _compressedTextureLoader = require("./compressed-texture-loader");
|
|
106
118
|
var _crunchLoader = require("./crunch-loader");
|
|
107
119
|
var _npyLoader = require("./npy-loader");
|
|
120
|
+
var _basisModuleLoader = require("./lib/parsers/basis-module-loader");
|
|
121
|
+
var _crunchModuleLoader = require("./lib/parsers/crunch-module-loader");
|
|
108
122
|
var _compressedTextureWriter = require("./compressed-texture-writer");
|
|
109
123
|
var _ktx2BasisWriter = require("./ktx2-basis-writer");
|
|
110
124
|
var _loadImage = require("./lib/texture-api/load-image");
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_version","require","_basisLoader","_compressedTextureLoader","_crunchLoader","_npyLoader","_compressedTextureWriter","_ktx2BasisWriter","_loadImage","_loadImageArray","_loadImageCube","_glExtensions","_parseBasis","_textureFormats","KTX2BasisWriterWorker","name","id","module","version","VERSION","extensions","worker","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","exports"],"sources":["../../src/index.ts"],"sourcesContent":["import {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: 'ktx2-basis-writer',\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":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_version","require","_basisLoader","_compressedTextureLoader","_crunchLoader","_npyLoader","_basisModuleLoader","_crunchModuleLoader","_compressedTextureWriter","_ktx2BasisWriter","_loadImage","_loadImageArray","_loadImageCube","_glExtensions","_parseBasis","_textureFormats","KTX2BasisWriterWorker","name","id","module","version","VERSION","extensions","worker","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","exports"],"sources":["../../src/index.ts"],"sourcesContent":["import {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// Module constants\nexport {BASIS_EXTERNAL_LIBRARIES} from './lib/parsers/basis-module-loader';\nexport {CRUNCH_EXTERNAL_LIBRARIES} from './lib/parsers/crunch-module-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: 'ktx2-basis-writer',\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,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAGA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AAGA,IAAAO,wBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AAkBA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,cAAA,GAAAX,OAAA;AAGA,IAAAY,aAAA,GAAAZ,OAAA;AACA,IAAAa,WAAA,GAAAb,OAAA;AACA,IAAAc,eAAA,GAAAd,OAAA;AAvBO,IAAMe,qBAAqB,GAAG;EACnCC,IAAI,EAAE,6CAA6C;EACnDC,EAAE,EAAE,mBAAmB;EACvBC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEC,gBAAO;EAChBC,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;AAACC,OAAA,CAAAb,qBAAA,GAAAA,qBAAA"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.
|
|
7
|
+
exports.KTX2BasisWriter = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
9
|
var _version = require("./lib/utils/version");
|
|
8
10
|
var _encodeKtx2BasisTexture = require("./lib/encoders/encode-ktx2-basis-texture");
|
|
9
11
|
var KTX2BasisWriter = {
|
|
@@ -12,15 +14,13 @@ var KTX2BasisWriter = {
|
|
|
12
14
|
module: 'textures',
|
|
13
15
|
version: _version.VERSION,
|
|
14
16
|
extensions: ['ktx2'],
|
|
15
|
-
options: {
|
|
17
|
+
options: (0, _defineProperty2.default)({}, 'ktx2-basis-writer', {
|
|
16
18
|
useSRGB: false,
|
|
17
19
|
qualityLevel: 10,
|
|
18
20
|
encodeUASTC: false,
|
|
19
21
|
mipmaps: false
|
|
20
|
-
},
|
|
22
|
+
}),
|
|
21
23
|
encode: _encodeKtx2BasisTexture.encodeKTX2BasisTexture
|
|
22
24
|
};
|
|
23
25
|
exports.KTX2BasisWriter = KTX2BasisWriter;
|
|
24
|
-
var _TypecheckKTX2TextureWriter = KTX2BasisWriter;
|
|
25
|
-
exports._TypecheckKTX2TextureWriter = _TypecheckKTX2TextureWriter;
|
|
26
26
|
//# sourceMappingURL=ktx2-basis-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ktx2-basis-writer.js","names":["_version","require","_encodeKtx2BasisTexture","KTX2BasisWriter","name","id","module","version","VERSION","extensions","options","useSRGB","qualityLevel","encodeUASTC","mipmaps","encode","encodeKTX2BasisTexture","exports"
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer.js","names":["_version","require","_encodeKtx2BasisTexture","KTX2BasisWriter","name","id","module","version","VERSION","extensions","options","_defineProperty2","default","useSRGB","qualityLevel","encodeUASTC","mipmaps","encode","encodeKTX2BasisTexture","exports"],"sources":["../../src/ktx2-basis-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Writer, WriterOptions} 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 = WriterOptions & {\n ['ktx2-basis-writer']?: {\n useSRGB?: boolean;\n qualityLevel?: number;\n encodeUASTC?: boolean;\n mipmaps?: boolean;\n };\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 ['ktx2-basis-writer']: {\n useSRGB: false,\n qualityLevel: 10,\n encodeUASTC: false,\n mipmaps: false\n }\n },\n\n encode: encodeKTX2BasisTexture\n};\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,uBAAA,GAAAD,OAAA;AAgBO,IAAME,eAAuE,GAAG;EACrFC,IAAI,EAAE,6CAA6C;EACnDC,EAAE,EAAE,mBAAmB;EACvBC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEC,gBAAO;EAEhBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,MAAAC,gBAAA,CAAAC,OAAA,MACJ,mBAAmB,EAAG;IACrBC,OAAO,EAAE,KAAK;IACdC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,KAAK;IAClBC,OAAO,EAAE;EACX,CAAC,CACF;EAEDC,MAAM,EAAEC;AACV,CAAC;AAACC,OAAA,CAAAhB,eAAA,GAAAA,eAAA"}
|
|
@@ -14,13 +14,14 @@ function encodeKTX2BasisTexture(_x) {
|
|
|
14
14
|
function _encodeKTX2BasisTexture() {
|
|
15
15
|
_encodeKTX2BasisTexture = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(image) {
|
|
16
16
|
var options,
|
|
17
|
-
|
|
17
|
+
_ref,
|
|
18
|
+
_ref$useSRGB,
|
|
18
19
|
useSRGB,
|
|
19
|
-
|
|
20
|
+
_ref$qualityLevel,
|
|
20
21
|
qualityLevel,
|
|
21
|
-
|
|
22
|
+
_ref$encodeUASTC,
|
|
22
23
|
encodeUASTC,
|
|
23
|
-
|
|
24
|
+
_ref$mipmaps,
|
|
24
25
|
mipmaps,
|
|
25
26
|
_yield$loadBasisEncod,
|
|
26
27
|
BasisEncoder,
|
|
@@ -33,7 +34,7 @@ function _encodeKTX2BasisTexture() {
|
|
|
33
34
|
while (1) switch (_context.prev = _context.next) {
|
|
34
35
|
case 0:
|
|
35
36
|
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
36
|
-
|
|
37
|
+
_ref = (options === null || options === void 0 ? void 0 : options['ktx2-basis-writer']) || {}, _ref$useSRGB = _ref.useSRGB, useSRGB = _ref$useSRGB === void 0 ? false : _ref$useSRGB, _ref$qualityLevel = _ref.qualityLevel, qualityLevel = _ref$qualityLevel === void 0 ? 10 : _ref$qualityLevel, _ref$encodeUASTC = _ref.encodeUASTC, encodeUASTC = _ref$encodeUASTC === void 0 ? false : _ref$encodeUASTC, _ref$mipmaps = _ref.mipmaps, mipmaps = _ref$mipmaps === void 0 ? false : _ref$mipmaps;
|
|
37
38
|
_context.next = 4;
|
|
38
39
|
return (0, _basisModuleLoader.loadBasisEncoderModule)(options);
|
|
39
40
|
case 4:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-ktx2-basis-texture.js","names":["_basisModuleLoader","require","encodeKTX2BasisTexture","_x","_encodeKTX2BasisTexture","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","image","options","
|
|
1
|
+
{"version":3,"file":"encode-ktx2-basis-texture.js","names":["_basisModuleLoader","require","encodeKTX2BasisTexture","_x","_encodeKTX2BasisTexture","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","image","options","_ref","_ref$useSRGB","useSRGB","_ref$qualityLevel","qualityLevel","_ref$encodeUASTC","encodeUASTC","_ref$mipmaps","mipmaps","_yield$loadBasisEncod","BasisEncoder","basisEncoder","basisFileData","numOutputBytes","actualKTX2FileData","_args","wrap","_callee$","_context","prev","next","length","undefined","loadBasisEncoderModule","sent","Uint8Array","width","height","setCreateKTX2File","setKTX2UASTCSupercompression","setKTX2SRGBTransferFunc","setSliceSourceImage","data","setPerceptual","setMipSRGB","setQualityLevel","setUASTC","setMipGen","encode","subarray","buffer","abrupt","t0","console","error","delete","finish","stop"],"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 {\n useSRGB = false,\n qualityLevel = 10,\n encodeUASTC = false,\n mipmaps = false\n } = options?.['ktx2-basis-writer'] || {};\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":"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"}
|
|
@@ -4,21 +4,26 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.BASIS_EXTERNAL_LIBRARIES = void 0;
|
|
7
8
|
exports.loadBasisEncoderModule = loadBasisEncoderModule;
|
|
8
|
-
exports.
|
|
9
|
+
exports.loadBasisTranscoderModule = loadBasisTranscoderModule;
|
|
9
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
13
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
var BASIS_EXTERNAL_LIBRARIES = {
|
|
15
|
+
TRANSCODER: 'basis_transcoder.js',
|
|
16
|
+
TRANSCODER_WASM: 'basis_transcoder.wasm',
|
|
17
|
+
ENCODER: 'basis_encoder.js',
|
|
18
|
+
ENCODER_WASM: 'basis_encoder.wasm'
|
|
19
|
+
};
|
|
20
|
+
exports.BASIS_EXTERNAL_LIBRARIES = BASIS_EXTERNAL_LIBRARIES;
|
|
16
21
|
var loadBasisTranscoderPromise;
|
|
17
|
-
function
|
|
18
|
-
return
|
|
22
|
+
function loadBasisTranscoderModule(_x) {
|
|
23
|
+
return _loadBasisTranscoderModule.apply(this, arguments);
|
|
19
24
|
}
|
|
20
|
-
function
|
|
21
|
-
|
|
25
|
+
function _loadBasisTranscoderModule() {
|
|
26
|
+
_loadBasisTranscoderModule = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
|
|
22
27
|
var modules;
|
|
23
28
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
24
29
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -30,7 +35,7 @@ function _loadBasisTrascoderModule() {
|
|
|
30
35
|
}
|
|
31
36
|
return _context.abrupt("return", modules.basis);
|
|
32
37
|
case 3:
|
|
33
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
38
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
34
39
|
_context.next = 6;
|
|
35
40
|
return loadBasisTranscoderPromise;
|
|
36
41
|
case 6:
|
|
@@ -41,13 +46,13 @@ function _loadBasisTrascoderModule() {
|
|
|
41
46
|
}
|
|
42
47
|
}, _callee);
|
|
43
48
|
}));
|
|
44
|
-
return
|
|
49
|
+
return _loadBasisTranscoderModule.apply(this, arguments);
|
|
45
50
|
}
|
|
46
|
-
function
|
|
47
|
-
return
|
|
51
|
+
function loadBasisTranscoder(_x2) {
|
|
52
|
+
return _loadBasisTranscoder.apply(this, arguments);
|
|
48
53
|
}
|
|
49
|
-
function
|
|
50
|
-
|
|
54
|
+
function _loadBasisTranscoder() {
|
|
55
|
+
_loadBasisTranscoder = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options) {
|
|
51
56
|
var BASIS, wasmBinary, _yield$Promise$all, _yield$Promise$all2;
|
|
52
57
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
53
58
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -56,11 +61,11 @@ function _loadBasisTrascoder() {
|
|
|
56
61
|
wasmBinary = null;
|
|
57
62
|
_context2.t0 = Promise;
|
|
58
63
|
_context2.next = 5;
|
|
59
|
-
return (0, _workerUtils.loadLibrary)(
|
|
64
|
+
return (0, _workerUtils.loadLibrary)(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options);
|
|
60
65
|
case 5:
|
|
61
66
|
_context2.t1 = _context2.sent;
|
|
62
67
|
_context2.next = 8;
|
|
63
|
-
return (0, _workerUtils.loadLibrary)(
|
|
68
|
+
return (0, _workerUtils.loadLibrary)(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'textures', options);
|
|
64
69
|
case 8:
|
|
65
70
|
_context2.t2 = _context2.sent;
|
|
66
71
|
_context2.t3 = [_context2.t1, _context2.t2];
|
|
@@ -73,7 +78,7 @@ function _loadBasisTrascoder() {
|
|
|
73
78
|
wasmBinary = _yield$Promise$all2[1];
|
|
74
79
|
BASIS = BASIS || globalThis.BASIS;
|
|
75
80
|
_context2.next = 19;
|
|
76
|
-
return
|
|
81
|
+
return initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
77
82
|
case 19:
|
|
78
83
|
return _context2.abrupt("return", _context2.sent);
|
|
79
84
|
case 20:
|
|
@@ -82,9 +87,9 @@ function _loadBasisTrascoder() {
|
|
|
82
87
|
}
|
|
83
88
|
}, _callee2);
|
|
84
89
|
}));
|
|
85
|
-
return
|
|
90
|
+
return _loadBasisTranscoder.apply(this, arguments);
|
|
86
91
|
}
|
|
87
|
-
function
|
|
92
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
88
93
|
var options = {};
|
|
89
94
|
if (wasmBinary) {
|
|
90
95
|
options.wasmBinary = wasmBinary;
|
|
@@ -143,11 +148,11 @@ function _loadBasisEncoder() {
|
|
|
143
148
|
wasmBinary = null;
|
|
144
149
|
_context4.t0 = Promise;
|
|
145
150
|
_context4.next = 5;
|
|
146
|
-
return (0, _workerUtils.loadLibrary)(
|
|
151
|
+
return (0, _workerUtils.loadLibrary)(BASIS_EXTERNAL_LIBRARIES.ENCODER, 'textures', options);
|
|
147
152
|
case 5:
|
|
148
153
|
_context4.t1 = _context4.sent;
|
|
149
154
|
_context4.next = 8;
|
|
150
|
-
return (0, _workerUtils.loadLibrary)(
|
|
155
|
+
return (0, _workerUtils.loadLibrary)(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'textures', options);
|
|
151
156
|
case 8:
|
|
152
157
|
_context4.t2 = _context4.sent;
|
|
153
158
|
_context4.t3 = [_context4.t1, _context4.t2];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basis-module-loader.js","names":["_workerUtils","require","VERSION","BASIS_CDN_ENCODER_WASM","concat","BASIS_CDN_ENCODER_JS","loadBasisTranscoderPromise","loadBasisTrascoderModule","_x","_loadBasisTrascoderModule","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","options","modules","wrap","_callee$","_context","prev","next","basis","abrupt","loadBasisTrascoder","sent","stop","_x2","_loadBasisTrascoder","_callee2","BASIS","wasmBinary","_yield$Promise$all","_yield$Promise$all2","_callee2$","_context2","t0","Promise","loadLibrary","t1","t2","t3","all","call","_slicedToArray2","globalThis","initializeBasisTrascoderModule","BasisModule","resolve","then","module","BasisFile","initializeBasis","loadBasisEncoderPromise","loadBasisEncoderModule","_x3","_loadBasisEncoderModule","_callee3","_callee3$","_context3","basisEncoder","loadBasisEncoder","_x4","_loadBasisEncoder","_callee4","BASIS_ENCODER","_yield$Promise$all3","_yield$Promise$all4","_callee4$","_context4","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":";;;;;;;;;;;AAKA,IAAAA,YAAA,GAAAC,OAAA;AAHA,IAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,MAAM;AAKzE,IAAMC,sBAAsB,6CAAAC,MAAA,CAA6CF,OAAO,kCAA+B;AAC/G,IAAMG,oBAAoB,6CAAAD,MAAA,CAA6CF,OAAO,gCAA6B;AAE3G,IAAII,0BAA0B;AAAC,SAOTC,wBAAwBA,CAAAC,EAAA;EAAA,OAAAC,yBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,0BAAA;EAAAA,yBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAvC,SAAAC,QAAwCC,OAAO;IAAA,IAAAC,OAAA;IAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC9CL,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAI,CAAC,CAAC;UAAA,KACjCA,OAAO,CAACM,KAAK;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAI,MAAA,WACRP,OAAO,CAACM,KAAK;QAAA;UAGtBlB,0BAA0B,GAAGA,0BAA0B,IAAIoB,kBAAkB,CAACT,OAAO,CAAC;UAACI,QAAA,CAAAE,IAAA;UAAA,OAC1EjB,0BAA0B;QAAA;UAAA,OAAAe,QAAA,CAAAI,MAAA,WAAAJ,QAAA,CAAAM,IAAA;QAAA;QAAA;UAAA,OAAAN,QAAA,CAAAO,IAAA;MAAA;IAAA,GAAAZ,OAAA;EAAA,CACxC;EAAA,OAAAP,yBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOce,kBAAkBA,CAAAG,GAAA;EAAA,OAAAC,mBAAA,CAAApB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAmB,oBAAA;EAAAA,mBAAA,OAAAlB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAjC,SAAAgB,SAAkCd,OAAO;IAAA,IAAAe,KAAA,EAAAC,UAAA,EAAAC,kBAAA,EAAAC,mBAAA;IAAA,OAAArB,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAiB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAf,IAAA,GAAAe,SAAA,CAAAd,IAAA;QAAA;UACnCS,KAAK,GAAG,IAAI;UACZC,UAAU,GAAG,IAAI;UAAAI,SAAA,CAAAC,EAAA,GAEOC,OAAO;UAAAF,SAAA,CAAAd,IAAA;UAAA,OAC3B,IAAAiB,wBAAW,EAAC,qBAAqB,EAAE,UAAU,EAAEvB,OAAO,CAAC;QAAA;UAAAoB,SAAA,CAAAI,EAAA,GAAAJ,SAAA,CAAAV,IAAA;UAAAU,SAAA,CAAAd,IAAA;UAAA,OACvD,IAAAiB,wBAAW,EAAC,uBAAuB,EAAE,UAAU,EAAEvB,OAAO,CAAC;QAAA;UAAAoB,SAAA,CAAAK,EAAA,GAAAL,SAAA,CAAAV,IAAA;UAAAU,SAAA,CAAAM,EAAA,IAAAN,SAAA,CAAAI,EAAA,EAAAJ,SAAA,CAAAK,EAAA;UAAAL,SAAA,CAAAd,IAAA;UAAA,OAAAc,SAAA,CAAAC,EAAA,CAF7BM,GAAG,CAAAC,IAAA,CAAAR,SAAA,CAAAC,EAAA,EAAAD,SAAA,CAAAM,EAAA;QAAA;UAAAT,kBAAA,GAAAG,SAAA,CAAAV,IAAA;UAAAQ,mBAAA,OAAAW,eAAA,CAAAjC,OAAA,EAAAqB,kBAAA;UAAtCF,KAAK,GAAAG,mBAAA;UAAEF,UAAU,GAAAE,mBAAA;UAOlBH,KAAK,GAAGA,KAAK,IAAIe,UAAU,CAACf,KAAK;UAACK,SAAA,CAAAd,IAAA;UAAA,OACrByB,8BAA8B,CAAChB,KAAK,EAAEC,UAAU,CAAC;QAAA;UAAA,OAAAI,SAAA,CAAAZ,MAAA,WAAAY,SAAA,CAAAV,IAAA;QAAA;QAAA;UAAA,OAAAU,SAAA,CAAAT,IAAA;MAAA;IAAA,GAAAG,QAAA;EAAA,CAC/D;EAAA,OAAAD,mBAAA,CAAApB,KAAA,OAAAC,SAAA;AAAA;AAQD,SAASqC,8BAA8BA,CAACC,WAAW,EAAEhB,UAAU,EAAE;EAC/D,IAAMhB,OAAsB,GAAG,CAAC,CAAC;EAEjC,IAAIgB,UAAU,EAAE;IACdhB,OAAO,CAACgB,UAAU,GAAGA,UAAU;EACjC;EAEA,OAAO,IAAIM,OAAO,CAAC,UAACW,OAAO,EAAK;IAE9BD,WAAW,CAAChC,OAAO,CAAC,CAACkC,IAAI,CAAC,UAACC,MAAM,EAAK;MACpC,IAAOC,SAAS,GAAqBD,MAAM,CAApCC,SAAS;QAAEC,eAAe,GAAIF,MAAM,CAAzBE,eAAe;MACjCA,eAAe,CAAC,CAAC;MACjBJ,OAAO,CAAC;QAACG,SAAS,EAATA;MAAS,CAAC,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,IAAIE,uBAAuB;AAAC,SAONC,sBAAsBA,CAAAC,GAAA;EAAA,OAAAC,uBAAA,CAAAhD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA+C,wBAAA;EAAAA,uBAAA,OAAA9C,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAArC,SAAA4C,SAAsC1C,OAAO;IAAA,IAAAC,OAAA;IAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAyC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAvC,IAAA,GAAAuC,SAAA,CAAAtC,IAAA;QAAA;UAC5CL,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAI,CAAC,CAAC;UAAA,KACjCA,OAAO,CAAC4C,YAAY;YAAAD,SAAA,CAAAtC,IAAA;YAAA;UAAA;UAAA,OAAAsC,SAAA,CAAApC,MAAA,WACfP,OAAO,CAAC4C,YAAY;QAAA;UAG7BP,uBAAuB,GAAGA,uBAAuB,IAAIQ,gBAAgB,CAAC9C,OAAO,CAAC;UAAC4C,SAAA,CAAAtC,IAAA;UAAA,OAClEgC,uBAAuB;QAAA;UAAA,OAAAM,SAAA,CAAApC,MAAA,WAAAoC,SAAA,CAAAlC,IAAA;QAAA;QAAA;UAAA,OAAAkC,SAAA,CAAAjC,IAAA;MAAA;IAAA,GAAA+B,QAAA;EAAA,CACrC;EAAA,OAAAD,uBAAA,CAAAhD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOcoD,gBAAgBA,CAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAvD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAsD,kBAAA;EAAAA,iBAAA,OAAArD,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA/B,SAAAmD,SAAgCjD,OAAO;IAAA,IAAAkD,aAAA,EAAAlC,UAAA,EAAAmC,mBAAA,EAAAC,mBAAA;IAAA,OAAAvD,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAmD,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;QAAA;UACjC4C,aAAa,GAAG,IAAI;UACpBlC,UAAU,GAAG,IAAI;UAAAsC,SAAA,CAAAjC,EAAA,GAEeC,OAAO;UAAAgC,SAAA,CAAAhD,IAAA;UAAA,OACnC,IAAAiB,wBAAW,EAACnC,oBAAoB,EAAE,UAAU,EAAEY,OAAO,CAAC;QAAA;UAAAsD,SAAA,CAAA9B,EAAA,GAAA8B,SAAA,CAAA5C,IAAA;UAAA4C,SAAA,CAAAhD,IAAA;UAAA,OACtD,IAAAiB,wBAAW,EAACrC,sBAAsB,EAAE,UAAU,EAAEc,OAAO,CAAC;QAAA;UAAAsD,SAAA,CAAA7B,EAAA,GAAA6B,SAAA,CAAA5C,IAAA;UAAA4C,SAAA,CAAA5B,EAAA,IAAA4B,SAAA,CAAA9B,EAAA,EAAA8B,SAAA,CAAA7B,EAAA;UAAA6B,SAAA,CAAAhD,IAAA;UAAA,OAAAgD,SAAA,CAAAjC,EAAA,CAFpBM,GAAG,CAAAC,IAAA,CAAA0B,SAAA,CAAAjC,EAAA,EAAAiC,SAAA,CAAA5B,EAAA;QAAA;UAAAyB,mBAAA,GAAAG,SAAA,CAAA5C,IAAA;UAAA0C,mBAAA,OAAAvB,eAAA,CAAAjC,OAAA,EAAAuD,mBAAA;UAA9CD,aAAa,GAAAE,mBAAA;UAAEpC,UAAU,GAAAoC,mBAAA;UAO1BF,aAAa,GAAGA,aAAa,IAAIpB,UAAU,CAACf,KAAK;UAACuC,SAAA,CAAAhD,IAAA;UAAA,OACrCiD,4BAA4B,CAACL,aAAa,EAAElC,UAAU,CAAC;QAAA;UAAA,OAAAsC,SAAA,CAAA9C,MAAA,WAAA8C,SAAA,CAAA5C,IAAA;QAAA;QAAA;UAAA,OAAA4C,SAAA,CAAA3C,IAAA;MAAA;IAAA,GAAAsC,QAAA;EAAA,CACrE;EAAA,OAAAD,iBAAA,CAAAvD,KAAA,OAAAC,SAAA;AAAA;AAQD,SAAS6D,4BAA4BA,CAACC,kBAAkB,EAAExC,UAAU,EAAE;EACpE,IAAMhB,OAAsB,GAAG,CAAC,CAAC;EAEjC,IAAIgB,UAAU,EAAE;IACdhB,OAAO,CAACgB,UAAU,GAAGA,UAAU;EACjC;EAEA,OAAO,IAAIM,OAAO,CAAC,UAACW,OAAO,EAAK;IAE9BuB,kBAAkB,CAACxD,OAAO,CAAC,CAACkC,IAAI,CAAC,UAACC,MAAM,EAAK;MAC3C,IAAOC,SAAS,GAA6CD,MAAM,CAA5DC,SAAS;QAAEqB,QAAQ,GAAmCtB,MAAM,CAAjDsB,QAAQ;QAAEpB,eAAe,GAAkBF,MAAM,CAAvCE,eAAe;QAAEqB,YAAY,GAAIvB,MAAM,CAAtBuB,YAAY;MACzDrB,eAAe,CAAC,CAAC;MACjBJ,OAAO,CAAC;QAACG,SAAS,EAATA,SAAS;QAAEqB,QAAQ,EAARA,QAAQ;QAAEC,YAAY,EAAZA;MAAY,CAAC,CAAC;IAC9C,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"basis-module-loader.js","names":["_workerUtils","require","BASIS_EXTERNAL_LIBRARIES","TRANSCODER","TRANSCODER_WASM","ENCODER","ENCODER_WASM","exports","loadBasisTranscoderPromise","loadBasisTranscoderModule","_x","_loadBasisTranscoderModule","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","options","modules","wrap","_callee$","_context","prev","next","basis","abrupt","loadBasisTranscoder","sent","stop","_x2","_loadBasisTranscoder","_callee2","BASIS","wasmBinary","_yield$Promise$all","_yield$Promise$all2","_callee2$","_context2","t0","Promise","loadLibrary","t1","t2","t3","all","call","_slicedToArray2","globalThis","initializeBasisTranscoderModule","BasisModule","resolve","then","module","BasisFile","initializeBasis","loadBasisEncoderPromise","loadBasisEncoderModule","_x3","_loadBasisEncoderModule","_callee3","_callee3$","_context3","basisEncoder","loadBasisEncoder","_x4","_loadBasisEncoder","_callee4","BASIS_ENCODER","_yield$Promise$all3","_yield$Promise$all4","_callee4$","_context4","initializeBasisEncoderModule","BasisEncoderModule","KTX2File","BasisEncoder"],"sources":["../../../../src/lib/parsers/basis-module-loader.ts"],"sourcesContent":["import {loadLibrary} from '@loaders.gl/worker-utils';\n\nexport const BASIS_EXTERNAL_LIBRARIES = {\n /** Basis transcoder, javascript wrapper part */\n TRANSCODER: 'basis_transcoder.js',\n /** Basis transcoder, compiled web assembly part */\n TRANSCODER_WASM: 'basis_transcoder.wasm',\n /** Basis encoder, javascript wrapper part */\n ENCODER: 'basis_encoder.js',\n /** Basis encoder, compiled web assembly part */\n ENCODER_WASM: 'basis_encoder.wasm'\n};\n\nlet loadBasisTranscoderPromise;\n\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nexport async function loadBasisTranscoderModule(options) {\n const modules = options.modules || {};\n if (modules.basis) {\n return modules.basis;\n }\n\n loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);\n return await loadBasisTranscoderPromise;\n}\n\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nasync function loadBasisTranscoder(options) {\n let BASIS = null;\n let wasmBinary = null;\n\n [BASIS, wasmBinary] = await Promise.all([\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options),\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.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 initializeBasisTranscoderModule(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 initializeBasisTranscoderModule(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_EXTERNAL_LIBRARIES.ENCODER, 'textures', options),\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.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":"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"}
|
|
@@ -4,10 +4,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.CRUNCH_EXTERNAL_LIBRARIES = void 0;
|
|
7
8
|
exports.loadCrunchModule = loadCrunchModule;
|
|
8
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
11
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
12
|
+
var CRUNCH_EXTERNAL_LIBRARIES = {
|
|
13
|
+
DECODER: 'crunch.js'
|
|
14
|
+
};
|
|
15
|
+
exports.CRUNCH_EXTERNAL_LIBRARIES = CRUNCH_EXTERNAL_LIBRARIES;
|
|
11
16
|
function loadCrunchModule(_x) {
|
|
12
17
|
return _loadCrunchModule.apply(this, arguments);
|
|
13
18
|
}
|
|
@@ -50,7 +55,7 @@ function _loadCrunch() {
|
|
|
50
55
|
return _context2.abrupt("return", crunchModule);
|
|
51
56
|
case 2:
|
|
52
57
|
_context2.next = 4;
|
|
53
|
-
return (0, _workerUtils.loadLibrary)(
|
|
58
|
+
return (0, _workerUtils.loadLibrary)(CRUNCH_EXTERNAL_LIBRARIES.DECODER, 'textures', options);
|
|
54
59
|
case 4:
|
|
55
60
|
loadCrunchDecoder = _context2.sent;
|
|
56
61
|
loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crunch-module-loader.js","names":["_workerUtils","require","loadCrunchModule","_x","_loadCrunchModule","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","options","modules","wrap","_callee$","_context","prev","next","crunch","abrupt","loadCrunch","stop","crunchModule","_x2","_loadCrunch","_callee2","loadCrunchDecoder","_callee2$","_context2","loadLibrary","sent","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(
|
|
1
|
+
{"version":3,"file":"crunch-module-loader.js","names":["_workerUtils","require","CRUNCH_EXTERNAL_LIBRARIES","DECODER","exports","loadCrunchModule","_x","_loadCrunchModule","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","options","modules","wrap","_callee$","_context","prev","next","crunch","abrupt","loadCrunch","stop","crunchModule","_x2","_loadCrunch","_callee2","loadCrunchDecoder","_callee2$","_context2","loadLibrary","sent","globalThis","LoadCrunchDecoder"],"sources":["../../../../src/lib/parsers/crunch-module-loader.ts"],"sourcesContent":["// @ts-nocheck\nimport {loadLibrary} from '@loaders.gl/worker-utils';\n\nexport const CRUNCH_EXTERNAL_LIBRARIES = {\n /** Crunch decoder library. It is used as dynamically imported script */\n DECODER: 'crunch.js'\n};\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_EXTERNAL_LIBRARIES.DECODER, '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,IAAAA,YAAA,GAAAC,OAAA;AAEO,IAAMC,yBAAyB,GAAG;EAEvCC,OAAO,EAAE;AACX,CAAC;AAACC,OAAA,CAAAF,yBAAA,GAAAA,yBAAA;AAAA,SAOoBG,gBAAgBA,CAAAC,EAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,kBAAA;EAAAA,iBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA/B,SAAAC,QAAgCC,OAAO;IAAA,IAAAC,OAAA;IAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACtCL,OAAO,GAAGD,OAAO,CAACC,OAAO,IAAI,CAAC,CAAC;UAAA,KACjCA,OAAO,CAACM,MAAM;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAI,MAAA,WACTP,OAAO,CAACM,MAAM;QAAA;UAAA,OAAAH,QAAA,CAAAI,MAAA,WAGhBC,UAAU,CAACT,OAAO,CAAC;QAAA;QAAA;UAAA,OAAAI,QAAA,CAAAM,IAAA;MAAA;IAAA,GAAAX,OAAA;EAAA,CAC3B;EAAA,OAAAP,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,IAAIiB,YAAY;AAAC,SAOFF,UAAUA,CAAAG,GAAA;EAAA,OAAAC,WAAA,CAAApB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAmB,YAAA;EAAAA,WAAA,OAAAlB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAzB,SAAAgB,SAA0Bd,OAAO;IAAA,IAAAe,iBAAA;IAAA,OAAAlB,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAc,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAZ,IAAA,GAAAY,SAAA,CAAAX,IAAA;QAAA;UAAA,KAC3BK,YAAY;YAAAM,SAAA,CAAAX,IAAA;YAAA;UAAA;UAAA,OAAAW,SAAA,CAAAT,MAAA,WACPG,YAAY;QAAA;UAAAM,SAAA,CAAAX,IAAA;UAAA,OAGS,IAAAY,wBAAW,EAAC/B,yBAAyB,CAACC,OAAO,EAAE,UAAU,EAAEY,OAAO,CAAC;QAAA;UAA7Fe,iBAAiB,GAAAE,SAAA,CAAAE,IAAA;UAIrBJ,iBAAiB,GAAGA,iBAAiB,IAAIK,UAAU,CAACC,iBAAiB;UACrEV,YAAY,GAAGI,iBAAiB,CAAC,CAAC;UAAC,OAAAE,SAAA,CAAAT,MAAA,WAC5BG,YAAY;QAAA;QAAA;UAAA,OAAAM,SAAA,CAAAP,IAAA;MAAA;IAAA,GAAAI,QAAA;EAAA,CACpB;EAAA,OAAAD,WAAA,CAAApB,KAAA,OAAAC,SAAA;AAAA"}
|
|
@@ -94,7 +94,7 @@ function parseBasis(_x, _x2) {
|
|
|
94
94
|
}
|
|
95
95
|
function _parseBasis() {
|
|
96
96
|
_parseBasis = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data, options) {
|
|
97
|
-
var fileConstructors, _yield$
|
|
97
|
+
var fileConstructors, _yield$loadBasisTrans, BasisFile, _fileConstructors, _yield$loadBasisTrans2, _BasisFile;
|
|
98
98
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
99
99
|
while (1) switch (_context.prev = _context.next) {
|
|
100
100
|
case 0:
|
|
@@ -113,10 +113,10 @@ function _parseBasis() {
|
|
|
113
113
|
return _context.abrupt("return", parseKTX2File(fileConstructors.KTX2File, data, options));
|
|
114
114
|
case 6:
|
|
115
115
|
_context.next = 8;
|
|
116
|
-
return (0, _basisModuleLoader.
|
|
116
|
+
return (0, _basisModuleLoader.loadBasisTranscoderModule)(options);
|
|
117
117
|
case 8:
|
|
118
|
-
_yield$
|
|
119
|
-
BasisFile = _yield$
|
|
118
|
+
_yield$loadBasisTrans = _context.sent;
|
|
119
|
+
BasisFile = _yield$loadBasisTrans.BasisFile;
|
|
120
120
|
return _context.abrupt("return", parseBasisFile(BasisFile, data, options));
|
|
121
121
|
case 11:
|
|
122
122
|
_context.t0 = options.basis.module;
|
|
@@ -136,10 +136,10 @@ function _parseBasis() {
|
|
|
136
136
|
return _context.abrupt("return", parseBasisFile(_fileConstructors.BasisFile, data, options));
|
|
137
137
|
case 22:
|
|
138
138
|
_context.next = 24;
|
|
139
|
-
return (0, _basisModuleLoader.
|
|
139
|
+
return (0, _basisModuleLoader.loadBasisTranscoderModule)(options);
|
|
140
140
|
case 24:
|
|
141
|
-
_yield$
|
|
142
|
-
_BasisFile = _yield$
|
|
141
|
+
_yield$loadBasisTrans2 = _context.sent;
|
|
142
|
+
_BasisFile = _yield$loadBasisTrans2.BasisFile;
|
|
143
143
|
return _context.abrupt("return", parseBasisFile(_BasisFile, data, options));
|
|
144
144
|
case 27:
|
|
145
145
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-basis.js","names":["_basisModuleLoader","require","_glExtensions","_textureFormats","_parseKtx","OutputFormat","etc1","basisFormat","compressed","format","GL_EXTENSIONS_CONSTANTS","COMPRESSED_RGB_ETC1_WEBGL","etc2","bc1","COMPRESSED_RGB_S3TC_DXT1_EXT","bc3","COMPRESSED_RGBA_S3TC_DXT5_EXT","bc4","bc5","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_ASTC_4X4_KHR","rgba32","rgb565","bgr565","rgba4444","parseBasis","_x","_x2","_parseBasis","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","fileConstructors","_yield$loadBasisTrasc","BasisFile","_fileConstructors","_yield$loadBasisTrasc2","_BasisFile","wrap","_callee$","_context","prev","next","basis","containerFormat","isKTX","loadBasisEncoderModule","sent","abrupt","parseKTX2File","KTX2File","loadBasisTrascoderModule","parseBasisFile","t0","module","t1","stop","basisFile","Uint8Array","startTranscoding","Error","imageCount","getNumImages","images","imageIndex","levelsCount","getNumLevels","levels","levelIndex","push","transcodeImage","close","delete","width","getImageWidth","height","getImageHeight","hasAlpha","getHasAlpha","_getBasisOptions","getBasisOptions","decodedSize","getImageTranscodedSizeInBytes","decodedData","ktx2File","getLevels","transcodeKTX2Image","_ktx2File$getImageLev","getImageLevelInfo","alphaFlag","_getBasisOptions2","levelSize","selectSupportedBasisFormat","_typeof2","alpha","noAlpha","toLowerCase","supportedFormats","getSupportedGPUTextureFormats","has"],"sources":["../../../../src/lib/parsers/parse-basis.ts"],"sourcesContent":["/* eslint-disable indent */\nimport type {TextureLevel} from '@loaders.gl/schema';\nimport {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';\nimport {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\nimport {getSupportedGPUTextureFormats} from '../utils/texture-formats';\nimport {isKTX} from './parse-ktx';\n\nexport type BasisFormat =\n | 'etc1'\n | 'etc2'\n | 'bc1'\n | 'bc3'\n | 'bc4'\n | 'bc5'\n | 'bc7-m6-opaque-only'\n | 'bc7-m5'\n | 'pvrtc1-4-rgb'\n | 'pvrtc1-4-rgba'\n | 'astc-4x4'\n | 'atc-rgb'\n | 'atc-rgba-interpolated-alpha'\n | 'rgba32'\n | 'rgb565'\n | 'bgr565'\n | 'rgba4444';\n\ntype BasisOutputOptions = {\n basisFormat: number;\n compressed: boolean;\n format?: number;\n};\n\nconst OutputFormat: Record<string, BasisOutputOptions> = {\n etc1: {\n basisFormat: 0,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL\n },\n etc2: {basisFormat: 1, compressed: true},\n bc1: {\n basisFormat: 2,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT\n },\n bc3: {\n basisFormat: 3,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT\n },\n bc4: {basisFormat: 4, compressed: true},\n bc5: {basisFormat: 5, compressed: true},\n 'bc7-m6-opaque-only': {basisFormat: 6, compressed: true},\n 'bc7-m5': {basisFormat: 7, compressed: true},\n 'pvrtc1-4-rgb': {\n basisFormat: 8,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG\n },\n 'pvrtc1-4-rgba': {\n basisFormat: 9,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\n },\n 'astc-4x4': {\n basisFormat: 10,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR\n },\n 'atc-rgb': {basisFormat: 11, compressed: true},\n 'atc-rgba-interpolated-alpha': {basisFormat: 12, compressed: true},\n rgba32: {basisFormat: 13, compressed: false},\n rgb565: {basisFormat: 14, compressed: false},\n bgr565: {basisFormat: 15, compressed: false},\n rgba4444: {basisFormat: 16, compressed: false}\n};\n\n/**\n * parse data with a Binomial Basis_Universal module\n * @param data\n * @param options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data: ArrayBuffer, options): Promise<TextureLevel[][]> {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n\n/**\n * Parse *.basis file data\n * @param BasisFile - initialized transcoder module\n * @param data\n * @param options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options): TextureLevel[][] {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n throw new Error('Failed to start basis transcoding');\n }\n\n const imageCount = basisFile.getNumImages();\n const images: TextureLevel[][] = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels: TextureLevel[] = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n\n images.push(levels);\n }\n\n return images;\n } finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n\n/**\n * Parse the particular level image of a basis file\n * @param basisFile\n * @param imageIndex\n * @param levelIndex\n * @param options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options): TextureLevel {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha(/* imageIndex, levelIndex */);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, hasAlpha);\n\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n throw new Error('failed to start Basis transcoding');\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n format,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha\n };\n}\n\n/**\n * Parse *.ktx2 file data\n * @param KTX2File\n * @param data\n * @param options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data: ArrayBuffer, options): TextureLevel[][] {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n throw new Error('failed to start KTX2 transcoding');\n }\n const levelsCount = ktx2File.getLevels();\n const levels: TextureLevel[] = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n\n return [levels];\n } finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n\n/**\n * Parse the particular level image of a ktx2 file\n * @param ktx2File\n * @param levelIndex\n * @param options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex: number, options): TextureLevel {\n const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, alphaFlag);\n\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat\n );\n const decodedData = new Uint8Array(decodedSize);\n\n if (\n !ktx2File.transcodeImage(\n decodedData,\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat,\n 0,\n -1 /* channel0 */,\n -1 /* channel1 */\n )\n ) {\n throw new Error('Failed to transcode KTX2 image');\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n levelSize: decodedSize,\n hasAlpha: alphaFlag,\n format\n };\n}\n\n/**\n * Get BasisFormat by loader format option\n * @param options\n * @param hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha: boolean): BasisOutputOptions {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat():\n | BasisFormat\n | {\n alpha: BasisFormat;\n noAlpha: BasisFormat;\n } {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n } else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n } else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n } else if (supportedFormats.has('etc1')) {\n return 'etc1';\n } else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-basis.js","names":["_basisModuleLoader","require","_glExtensions","_textureFormats","_parseKtx","OutputFormat","etc1","basisFormat","compressed","format","GL_EXTENSIONS_CONSTANTS","COMPRESSED_RGB_ETC1_WEBGL","etc2","bc1","COMPRESSED_RGB_S3TC_DXT1_EXT","bc3","COMPRESSED_RGBA_S3TC_DXT5_EXT","bc4","bc5","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_ASTC_4X4_KHR","rgba32","rgb565","bgr565","rgba4444","parseBasis","_x","_x2","_parseBasis","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","fileConstructors","_yield$loadBasisTrans","BasisFile","_fileConstructors","_yield$loadBasisTrans2","_BasisFile","wrap","_callee$","_context","prev","next","basis","containerFormat","isKTX","loadBasisEncoderModule","sent","abrupt","parseKTX2File","KTX2File","loadBasisTranscoderModule","parseBasisFile","t0","module","t1","stop","basisFile","Uint8Array","startTranscoding","Error","imageCount","getNumImages","images","imageIndex","levelsCount","getNumLevels","levels","levelIndex","push","transcodeImage","close","delete","width","getImageWidth","height","getImageHeight","hasAlpha","getHasAlpha","_getBasisOptions","getBasisOptions","decodedSize","getImageTranscodedSizeInBytes","decodedData","ktx2File","getLevels","transcodeKTX2Image","_ktx2File$getImageLev","getImageLevelInfo","alphaFlag","_getBasisOptions2","levelSize","selectSupportedBasisFormat","_typeof2","alpha","noAlpha","toLowerCase","supportedFormats","getSupportedGPUTextureFormats","has"],"sources":["../../../../src/lib/parsers/parse-basis.ts"],"sourcesContent":["/* eslint-disable indent */\nimport type {TextureLevel} from '@loaders.gl/schema';\nimport {loadBasisEncoderModule, loadBasisTranscoderModule} from './basis-module-loader';\nimport {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\nimport {getSupportedGPUTextureFormats} from '../utils/texture-formats';\nimport {isKTX} from './parse-ktx';\n\nexport type BasisFormat =\n | 'etc1'\n | 'etc2'\n | 'bc1'\n | 'bc3'\n | 'bc4'\n | 'bc5'\n | 'bc7-m6-opaque-only'\n | 'bc7-m5'\n | 'pvrtc1-4-rgb'\n | 'pvrtc1-4-rgba'\n | 'astc-4x4'\n | 'atc-rgb'\n | 'atc-rgba-interpolated-alpha'\n | 'rgba32'\n | 'rgb565'\n | 'bgr565'\n | 'rgba4444';\n\ntype BasisOutputOptions = {\n basisFormat: number;\n compressed: boolean;\n format?: number;\n};\n\nconst OutputFormat: Record<string, BasisOutputOptions> = {\n etc1: {\n basisFormat: 0,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL\n },\n etc2: {basisFormat: 1, compressed: true},\n bc1: {\n basisFormat: 2,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT\n },\n bc3: {\n basisFormat: 3,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT\n },\n bc4: {basisFormat: 4, compressed: true},\n bc5: {basisFormat: 5, compressed: true},\n 'bc7-m6-opaque-only': {basisFormat: 6, compressed: true},\n 'bc7-m5': {basisFormat: 7, compressed: true},\n 'pvrtc1-4-rgb': {\n basisFormat: 8,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG\n },\n 'pvrtc1-4-rgba': {\n basisFormat: 9,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\n },\n 'astc-4x4': {\n basisFormat: 10,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR\n },\n 'atc-rgb': {basisFormat: 11, compressed: true},\n 'atc-rgba-interpolated-alpha': {basisFormat: 12, compressed: true},\n rgba32: {basisFormat: 13, compressed: false},\n rgb565: {basisFormat: 14, compressed: false},\n bgr565: {basisFormat: 15, compressed: false},\n rgba4444: {basisFormat: 16, compressed: false}\n};\n\n/**\n * parse data with a Binomial Basis_Universal module\n * @param data\n * @param options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data: ArrayBuffer, options): Promise<TextureLevel[][]> {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const {BasisFile} = await loadBasisTranscoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const {BasisFile} = await loadBasisTranscoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n\n/**\n * Parse *.basis file data\n * @param BasisFile - initialized transcoder module\n * @param data\n * @param options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options): TextureLevel[][] {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n throw new Error('Failed to start basis transcoding');\n }\n\n const imageCount = basisFile.getNumImages();\n const images: TextureLevel[][] = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels: TextureLevel[] = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n\n images.push(levels);\n }\n\n return images;\n } finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n\n/**\n * Parse the particular level image of a basis file\n * @param basisFile\n * @param imageIndex\n * @param levelIndex\n * @param options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options): TextureLevel {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha(/* imageIndex, levelIndex */);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, hasAlpha);\n\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n throw new Error('failed to start Basis transcoding');\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n format,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha\n };\n}\n\n/**\n * Parse *.ktx2 file data\n * @param KTX2File\n * @param data\n * @param options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data: ArrayBuffer, options): TextureLevel[][] {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n throw new Error('failed to start KTX2 transcoding');\n }\n const levelsCount = ktx2File.getLevels();\n const levels: TextureLevel[] = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n\n return [levels];\n } finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n\n/**\n * Parse the particular level image of a ktx2 file\n * @param ktx2File\n * @param levelIndex\n * @param options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex: number, options): TextureLevel {\n const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, alphaFlag);\n\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat\n );\n const decodedData = new Uint8Array(decodedSize);\n\n if (\n !ktx2File.transcodeImage(\n decodedData,\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat,\n 0,\n -1 /* channel0 */,\n -1 /* channel1 */\n )\n ) {\n throw new Error('Failed to transcode KTX2 image');\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n levelSize: decodedSize,\n hasAlpha: alphaFlag,\n format\n };\n}\n\n/**\n * Get BasisFormat by loader format option\n * @param options\n * @param hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha: boolean): BasisOutputOptions {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat():\n | BasisFormat\n | {\n alpha: BasisFormat;\n noAlpha: BasisFormat;\n } {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n } else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n } else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n } else if (supportedFormats.has('etc1')) {\n return 'etc1';\n } else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-load.js","names":["_asyncDeepMap","require","deepLoad","_x","_x2","_x3","_deepLoad","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","urlTree","load","options","wrap","_callee$","_context","prev","next","asyncDeepMap","url","shallowLoad","abrupt","sent","stop","_x4","_x5","_x6","_shallowLoad","_callee2","response","arrayBuffer","_callee2$","_context2","fetch"],"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
|
|
1
|
+
{"version":3,"file":"deep-load.js","names":["_asyncDeepMap","require","deepLoad","_x","_x2","_x3","_deepLoad","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","urlTree","load","options","wrap","_callee$","_context","prev","next","asyncDeepMap","url","shallowLoad","abrupt","sent","stop","_x4","_x5","_x6","_shallowLoad","_callee2","response","arrayBuffer","_callee2$","_context2","fetch"],"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 const response = await fetch(url, options.fetch);\n const arrayBuffer = await response.arrayBuffer();\n return await load(arrayBuffer, options);\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAA8C,SAKxBC,QAAQA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,UAAA;EAAAA,SAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAvB,SAAAC,QAAwBC,OAAgB,EAAEC,IAAU,EAAEC,OAAoB;IAAA,OAAAL,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAClE,IAAAC,0BAAY,EAACR,OAAO,EAAE,UAACS,GAAW;YAAA,OAAKC,WAAW,CAACD,GAAG,EAAER,IAAI,EAAEC,OAAO,CAAC;UAAA,EAAC;QAAA;UAAA,OAAAG,QAAA,CAAAM,MAAA,WAAAN,QAAA,CAAAO,IAAA;QAAA;QAAA;UAAA,OAAAP,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAd,OAAA;EAAA,CACrF;EAAA,OAAAP,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEqBgB,WAAWA,CAAAI,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,YAAA,CAAAxB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAuB,aAAA;EAAAA,YAAA,OAAAtB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA1B,SAAAoB,SAA2BT,GAAW,EAAER,IAAU,EAAEC,OAAoB;IAAA,IAAAiB,QAAA,EAAAC,WAAA;IAAA,OAAAvB,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAkB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAhB,IAAA,GAAAgB,SAAA,CAAAf,IAAA;QAAA;UAAAe,SAAA,CAAAf,IAAA;UAAA,OACtDgB,KAAK,CAACd,GAAG,EAAEP,OAAO,CAACqB,KAAK,CAAC;QAAA;UAA1CJ,QAAQ,GAAAG,SAAA,CAAAV,IAAA;UAAAU,SAAA,CAAAf,IAAA;UAAA,OACYY,QAAQ,CAACC,WAAW,CAAC,CAAC;QAAA;UAA1CA,WAAW,GAAAE,SAAA,CAAAV,IAAA;UAAAU,SAAA,CAAAf,IAAA;UAAA,OACJN,IAAI,CAACmB,WAAW,EAAElB,OAAO,CAAC;QAAA;UAAA,OAAAoB,SAAA,CAAAX,MAAA,WAAAW,SAAA,CAAAV,IAAA;QAAA;QAAA;UAAA,OAAAU,SAAA,CAAAT,IAAA;MAAA;IAAA,GAAAK,QAAA;EAAA,CACxC;EAAA,OAAAD,YAAA,CAAAxB,KAAA,OAAAC,SAAA;AAAA"}
|
|
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VERSION = void 0;
|
|
7
|
-
var VERSION = typeof "4.0.0-
|
|
7
|
+
var VERSION = typeof "4.0.0-beta.2" !== 'undefined' ? "4.0.0-beta.2" : 'beta';
|
|
8
8
|
exports.VERSION = VERSION;
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":["VERSION","exports"],"sources":["../../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';\n"],"mappings":";;;;;;AAIO,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","names":["VERSION","exports"],"sources":["../../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';\n"],"mappings":";;;;;;AAIO,IAAMA,OAAO,GAAG,qBAAkB,KAAK,WAAW,oBAAiB,MAAM;AAACC,OAAA,CAAAD,OAAA,GAAAA,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressed-texture-worker.js","names":["_loaderUtils","require","_compressedTextureLoader","createLoaderWorker","CompressedTextureLoader"],"sources":["../../../src/workers/compressed-texture-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {CompressedTextureLoader} from '../compressed-texture-loader';\n\ncreateLoaderWorker(CompressedTextureLoader);\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"file":"compressed-texture-worker.js","names":["_loaderUtils","require","_compressedTextureLoader","createLoaderWorker","CompressedTextureLoader"],"sources":["../../../src/workers/compressed-texture-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {CompressedTextureLoader} from '../compressed-texture-loader';\n\n// @ts-expect-error\ncreateLoaderWorker(CompressedTextureLoader);\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAGA,IAAAE,+BAAkB,EAACC,gDAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ktx2-basis-writer-worker-node.js","names":["require","_workerUtils","_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-node.ts"],"sourcesContent":["// Polyfills increases the bundle size significantly. Use it for NodeJS worker only\nimport '@loaders.gl/polyfills';\nimport {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":";;;;;AACAA,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,CAAC,YAAM;EAEL,IAAI,CAACG,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,
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-worker-node.js","names":["require","_workerUtils","_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-node.ts"],"sourcesContent":["// Polyfills increases the bundle size significantly. Use it for NodeJS worker only\nimport '@loaders.gl/polyfills';\nimport {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {KTX2BasisWriter, KTX2BasisWriterOptions} 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 as KTX2BasisWriterOptions);\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":";;;;;AACAA,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,CAAC,YAAM;EAEL,IAAI,CAACG,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,OAAiC,CAAC;UAAA;YAAjFC,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"}
|
|
@@ -1 +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,
|
|
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, KTX2BasisWriterOptions} 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 as KTX2BasisWriterOptions);\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,OAAiC,CAAC;UAAA;YAAjFC,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"}
|