@loaders.gl/textures 4.0.0-alpha.4 → 4.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/basis-loader.d.ts +50 -0
- package/dist/basis-loader.d.ts.map +1 -0
- package/dist/basis-worker.js +116 -60
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/compressed-texture-loader.d.ts +49 -0
- package/dist/compressed-texture-loader.d.ts.map +1 -0
- package/dist/compressed-texture-loader.js +1 -1
- package/dist/compressed-texture-loader.js.map +1 -1
- package/dist/compressed-texture-worker.js +221 -123
- package/dist/compressed-texture-writer.d.ts +25 -0
- package/dist/compressed-texture-writer.d.ts.map +1 -0
- package/dist/crunch-loader.d.ts +21 -0
- package/dist/crunch-loader.d.ts.map +1 -0
- package/dist/crunch-worker.js +59 -26
- package/dist/dist.min.js +2123 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ktx2-basis-universal-texture-writer.d.ts +22 -0
- package/dist/ktx2-basis-universal-texture-writer.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx.d.ts +2 -0
- package/dist/lib/encoders/encode-ktx.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +10 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +1 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/lib/encoders/encode-texture.d.ts +4 -0
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-texture.js +2 -5
- package/dist/lib/encoders/encode-texture.js.map +1 -1
- package/dist/lib/gl-extensions.d.ts +61 -0
- package/dist/lib/gl-extensions.d.ts.map +1 -0
- package/dist/lib/{gl-constants.js → gl-extensions.js} +2 -2
- package/dist/lib/gl-extensions.js.map +1 -0
- package/dist/lib/parsers/basis-module-loader.d.ts +13 -0
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/basis-module-loader.js +1 -1
- package/dist/lib/parsers/crunch-module-loader.d.ts +7 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/crunch-module-loader.js +1 -1
- package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/lib/parsers/parse-basis.d.ts +18 -0
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -0
- package/dist/lib/parsers/parse-basis.js +16 -16
- package/dist/lib/parsers/parse-basis.js.map +1 -1
- package/dist/lib/parsers/parse-compressed-texture.d.ts +8 -0
- package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -0
- package/dist/lib/parsers/parse-compressed-texture.js.map +1 -1
- package/dist/lib/parsers/parse-crunch.d.ts +9 -0
- package/dist/lib/parsers/parse-crunch.d.ts.map +1 -0
- package/dist/lib/parsers/parse-crunch.js +14 -13
- package/dist/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/lib/parsers/parse-dds.d.ts +28 -0
- package/dist/lib/parsers/parse-dds.d.ts.map +1 -0
- package/dist/lib/parsers/parse-dds.js +7 -7
- package/dist/lib/parsers/parse-dds.js.map +1 -1
- package/dist/lib/parsers/parse-ktx.d.ts +4 -0
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -0
- package/dist/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/lib/parsers/parse-npy.d.ts +10 -0
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -0
- package/dist/lib/parsers/parse-npy.js.map +1 -1
- package/dist/lib/parsers/parse-pvr.d.ts +15 -0
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -0
- package/dist/lib/parsers/parse-pvr.js +28 -28
- package/dist/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/lib/texture-api/async-deep-map.d.ts +5 -0
- package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -0
- package/dist/lib/texture-api/deep-load.d.ts +5 -0
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -0
- package/dist/lib/texture-api/generate-url.d.ts +3 -0
- package/dist/lib/texture-api/generate-url.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-array.d.ts +4 -0
- package/dist/lib/texture-api/load-image-array.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-cube.d.ts +12 -0
- package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image.d.ts +8 -0
- package/dist/lib/texture-api/load-image.d.ts.map +1 -0
- package/dist/lib/texture-api/texture-api-types.d.ts +10 -0
- package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts +20 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -0
- package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/lib/utils/ktx-format-helper.d.ts +9 -0
- package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -0
- package/dist/lib/utils/ktx-format-helper.js +67 -67
- package/dist/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/lib/utils/texture-formats.d.ts +8 -0
- package/dist/lib/utils/texture-formats.d.ts.map +1 -0
- package/dist/lib/utils/texture-formats.js.map +1 -1
- package/dist/lib/utils/version.d.ts +2 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +1 -1
- package/dist/libs/README.md +2 -2
- package/dist/libs/basis_encoder.js +1 -1
- package/dist/libs/basis_transcoder.js +1 -1
- package/dist/libs/crunch.js +1 -0
- package/dist/libs/libs/README.md +9 -0
- package/dist/libs/libs/basis_encoder.js +22 -0
- package/dist/libs/libs/basis_encoder.wasm +0 -0
- package/dist/libs/libs/basis_transcoder.js +21 -0
- package/dist/libs/libs/basis_transcoder.wasm +0 -0
- package/dist/libs/libs/crunch.js +136 -0
- package/dist/npy-loader.d.ts +45 -0
- package/dist/npy-loader.d.ts.map +1 -0
- package/dist/npy-worker.js +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -1
- package/dist/workers/basis-worker.d.ts +2 -0
- package/dist/workers/basis-worker.d.ts.map +1 -0
- package/dist/workers/compressed-texture-worker.d.ts +2 -0
- package/dist/workers/compressed-texture-worker.d.ts.map +1 -0
- package/dist/workers/crunch-worker.d.ts +21 -0
- package/dist/workers/crunch-worker.d.ts.map +1 -0
- package/dist/workers/npy-worker.d.ts +2 -0
- package/dist/workers/npy-worker.d.ts.map +1 -0
- package/package.json +12 -11
- package/src/compressed-texture-loader.ts +1 -1
- package/src/index.ts +2 -2
- package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -2
- package/src/lib/encoders/encode-texture.ts +6 -6
- package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
- package/src/lib/parsers/crunch-module-loader.ts +1 -1
- package/src/lib/parsers/{parse-basis.js → parse-basis.ts} +100 -44
- package/src/lib/parsers/parse-compressed-texture.ts +1 -1
- package/src/lib/parsers/parse-crunch.ts +16 -15
- package/src/lib/parsers/parse-dds.ts +8 -8
- package/src/lib/parsers/parse-ktx.ts +2 -1
- package/src/lib/parsers/parse-npy.ts +2 -0
- package/src/lib/parsers/parse-pvr.ts +72 -29
- package/src/lib/utils/extract-mipmap-images.ts +9 -1
- package/src/lib/utils/ktx-format-helper.ts +67 -67
- package/src/lib/utils/texture-formats.ts +1 -1
- package/src/libs/README.md +2 -2
- package/src/libs/basis_encoder.js +1 -1
- package/src/libs/basis_transcoder.js +1 -1
- package/src/libs/crunch.js +1 -0
- package/src/types.ts +0 -30
- package/dist/lib/gl-constants.js.map +0 -1
- package/src/lib/parsers/parse-ktx.js +0 -45
- package/src/lib/parsers/parse-npy.js +0 -96
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
|
+
import parseBasis from './lib/parsers/parse-basis';
|
|
3
|
+
/**
|
|
4
|
+
* Worker loader for Basis super compressed textures
|
|
5
|
+
*/
|
|
6
|
+
export declare const BasisWorkerLoader: {
|
|
7
|
+
name: string;
|
|
8
|
+
id: string;
|
|
9
|
+
module: string;
|
|
10
|
+
version: any;
|
|
11
|
+
worker: boolean;
|
|
12
|
+
extensions: string[];
|
|
13
|
+
mimeTypes: string[];
|
|
14
|
+
tests: string[];
|
|
15
|
+
binary: boolean;
|
|
16
|
+
options: {
|
|
17
|
+
basis: {
|
|
18
|
+
format: string;
|
|
19
|
+
libraryPath: string;
|
|
20
|
+
containerFormat: string;
|
|
21
|
+
module: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Loader for Basis super compressed textures
|
|
27
|
+
*/
|
|
28
|
+
export declare const BasisLoader: {
|
|
29
|
+
parse: typeof parseBasis;
|
|
30
|
+
name: string;
|
|
31
|
+
id: string;
|
|
32
|
+
module: string;
|
|
33
|
+
version: any;
|
|
34
|
+
worker: boolean;
|
|
35
|
+
extensions: string[];
|
|
36
|
+
mimeTypes: string[];
|
|
37
|
+
tests: string[];
|
|
38
|
+
binary: boolean;
|
|
39
|
+
options: {
|
|
40
|
+
basis: {
|
|
41
|
+
format: string;
|
|
42
|
+
libraryPath: string;
|
|
43
|
+
containerFormat: string;
|
|
44
|
+
module: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export declare const _TypecheckBasisWorkerLoader: Loader;
|
|
49
|
+
export declare const _TypecheckBasisLoader: LoaderWithParser;
|
|
50
|
+
//# sourceMappingURL=basis-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basis-loader.d.ts","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAEvE,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAkB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAGvB,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,MAA0B,CAAC;AACrE,eAAO,MAAM,qBAAqB,EAAE,gBAA8B,CAAC"}
|
package/dist/basis-worker.js
CHANGED
|
@@ -1,8 +1,35 @@
|
|
|
1
1
|
(() => {
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
10
|
+
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module, desc) => {
|
|
13
|
+
if (module && typeof module === "object" || typeof module === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
16
|
+
__defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toModule = (module) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// (disabled):../worker-utils/src/lib/node/require-utils.node
|
|
25
|
+
var require_require_utils = __commonJS({
|
|
26
|
+
"(disabled):../worker-utils/src/lib/node/require-utils.node"() {
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
2
30
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
if (typeof __VERSION__ === "undefined") {
|
|
31
|
+
var VERSION = true ? "4.0.0-alpha.5" : DEFAULT_VERSION;
|
|
32
|
+
if (false) {
|
|
6
33
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
7
34
|
}
|
|
8
35
|
|
|
@@ -109,6 +136,7 @@
|
|
|
109
136
|
}
|
|
110
137
|
|
|
111
138
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
139
|
+
var node = __toModule(require_require_utils());
|
|
112
140
|
var LATEST = "beta";
|
|
113
141
|
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
114
142
|
var loadLibraryPromises = {};
|
|
@@ -145,7 +173,11 @@
|
|
|
145
173
|
return await response2.arrayBuffer();
|
|
146
174
|
}
|
|
147
175
|
if (!isBrowser) {
|
|
148
|
-
|
|
176
|
+
try {
|
|
177
|
+
return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
|
|
178
|
+
} catch {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
149
181
|
}
|
|
150
182
|
if (isWorker) {
|
|
151
183
|
return importScripts(libraryUrl);
|
|
@@ -248,10 +280,10 @@
|
|
|
248
280
|
}
|
|
249
281
|
|
|
250
282
|
// src/lib/utils/version.ts
|
|
251
|
-
var VERSION3 =
|
|
283
|
+
var VERSION3 = true ? "4.0.0-alpha.5" : "beta";
|
|
252
284
|
|
|
253
285
|
// src/lib/parsers/basis-module-loader.ts
|
|
254
|
-
var VERSION4 =
|
|
286
|
+
var VERSION4 = true ? "4.0.0-alpha.5" : "beta";
|
|
255
287
|
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
|
|
256
288
|
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
|
|
257
289
|
var loadBasisTranscoderPromise;
|
|
@@ -319,8 +351,8 @@
|
|
|
319
351
|
});
|
|
320
352
|
}
|
|
321
353
|
|
|
322
|
-
// src/lib/gl-
|
|
323
|
-
var
|
|
354
|
+
// src/lib/gl-extensions.ts
|
|
355
|
+
var GL_EXTENSIONS_CONSTANTS = {
|
|
324
356
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
|
|
325
357
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
|
|
326
358
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
|
|
@@ -381,6 +413,43 @@
|
|
|
381
413
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
|
|
382
414
|
};
|
|
383
415
|
|
|
416
|
+
// src/lib/utils/texture-formats.ts
|
|
417
|
+
var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
|
|
418
|
+
var WEBGL_EXTENSIONS = {
|
|
419
|
+
WEBGL_compressed_texture_s3tc: "dxt",
|
|
420
|
+
WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
|
|
421
|
+
WEBGL_compressed_texture_etc1: "etc1",
|
|
422
|
+
WEBGL_compressed_texture_etc: "etc2",
|
|
423
|
+
WEBGL_compressed_texture_pvrtc: "pvrtc",
|
|
424
|
+
WEBGL_compressed_texture_atc: "atc",
|
|
425
|
+
WEBGL_compressed_texture_astc: "astc",
|
|
426
|
+
EXT_texture_compression_rgtc: "rgtc"
|
|
427
|
+
};
|
|
428
|
+
var formats = null;
|
|
429
|
+
function getSupportedGPUTextureFormats(gl) {
|
|
430
|
+
if (!formats) {
|
|
431
|
+
gl = gl || getWebGLContext() || void 0;
|
|
432
|
+
formats = new Set();
|
|
433
|
+
for (const prefix of BROWSER_PREFIXES) {
|
|
434
|
+
for (const extension in WEBGL_EXTENSIONS) {
|
|
435
|
+
if (gl && gl.getExtension(`${prefix}${extension}`)) {
|
|
436
|
+
const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
|
|
437
|
+
formats.add(gpuTextureFormat);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return formats;
|
|
443
|
+
}
|
|
444
|
+
function getWebGLContext() {
|
|
445
|
+
try {
|
|
446
|
+
const canvas = document.createElement("canvas");
|
|
447
|
+
return canvas.getContext("webgl");
|
|
448
|
+
} catch (error) {
|
|
449
|
+
return null;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
384
453
|
// ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
|
|
385
454
|
var t = new Uint8Array([0]);
|
|
386
455
|
var n;
|
|
@@ -430,56 +499,43 @@
|
|
|
430
499
|
return !notKTX;
|
|
431
500
|
}
|
|
432
501
|
|
|
433
|
-
// src/lib/
|
|
434
|
-
var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
|
|
435
|
-
var WEBGL_EXTENSIONS = {
|
|
436
|
-
WEBGL_compressed_texture_s3tc: "dxt",
|
|
437
|
-
WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
|
|
438
|
-
WEBGL_compressed_texture_etc1: "etc1",
|
|
439
|
-
WEBGL_compressed_texture_etc: "etc2",
|
|
440
|
-
WEBGL_compressed_texture_pvrtc: "pvrtc",
|
|
441
|
-
WEBGL_compressed_texture_atc: "atc",
|
|
442
|
-
WEBGL_compressed_texture_astc: "astc",
|
|
443
|
-
EXT_texture_compression_rgtc: "rgtc"
|
|
444
|
-
};
|
|
445
|
-
var formats = null;
|
|
446
|
-
function getSupportedGPUTextureFormats(gl) {
|
|
447
|
-
if (!formats) {
|
|
448
|
-
gl = gl || getWebGLContext() || void 0;
|
|
449
|
-
formats = new Set();
|
|
450
|
-
for (const prefix of BROWSER_PREFIXES) {
|
|
451
|
-
for (const extension in WEBGL_EXTENSIONS) {
|
|
452
|
-
if (gl && gl.getExtension(`${prefix}${extension}`)) {
|
|
453
|
-
const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
|
|
454
|
-
formats.add(gpuTextureFormat);
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
return formats;
|
|
460
|
-
}
|
|
461
|
-
function getWebGLContext() {
|
|
462
|
-
try {
|
|
463
|
-
const canvas = document.createElement("canvas");
|
|
464
|
-
return canvas.getContext("webgl");
|
|
465
|
-
} catch (error) {
|
|
466
|
-
return null;
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
// src/lib/parsers/parse-basis.js
|
|
502
|
+
// src/lib/parsers/parse-basis.ts
|
|
471
503
|
var OutputFormat = {
|
|
472
|
-
etc1: {
|
|
504
|
+
etc1: {
|
|
505
|
+
basisFormat: 0,
|
|
506
|
+
compressed: true,
|
|
507
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
508
|
+
},
|
|
473
509
|
etc2: { basisFormat: 1, compressed: true },
|
|
474
|
-
bc1: {
|
|
475
|
-
|
|
510
|
+
bc1: {
|
|
511
|
+
basisFormat: 2,
|
|
512
|
+
compressed: true,
|
|
513
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
514
|
+
},
|
|
515
|
+
bc3: {
|
|
516
|
+
basisFormat: 3,
|
|
517
|
+
compressed: true,
|
|
518
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
519
|
+
},
|
|
476
520
|
bc4: { basisFormat: 4, compressed: true },
|
|
477
521
|
bc5: { basisFormat: 5, compressed: true },
|
|
478
522
|
"bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
|
|
479
523
|
"bc7-m5": { basisFormat: 7, compressed: true },
|
|
480
|
-
"pvrtc1-4-rgb": {
|
|
481
|
-
|
|
482
|
-
|
|
524
|
+
"pvrtc1-4-rgb": {
|
|
525
|
+
basisFormat: 8,
|
|
526
|
+
compressed: true,
|
|
527
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
528
|
+
},
|
|
529
|
+
"pvrtc1-4-rgba": {
|
|
530
|
+
basisFormat: 9,
|
|
531
|
+
compressed: true,
|
|
532
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
533
|
+
},
|
|
534
|
+
"astc-4x4": {
|
|
535
|
+
basisFormat: 10,
|
|
536
|
+
compressed: true,
|
|
537
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
538
|
+
},
|
|
483
539
|
"atc-rgb": { basisFormat: 11, compressed: true },
|
|
484
540
|
"atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
|
|
485
541
|
rgba32: { basisFormat: 13, compressed: false },
|
|
@@ -516,7 +572,7 @@
|
|
|
516
572
|
const basisFile = new BasisFile(new Uint8Array(data));
|
|
517
573
|
try {
|
|
518
574
|
if (!basisFile.startTranscoding()) {
|
|
519
|
-
|
|
575
|
+
throw new Error("Failed to start basis transcoding");
|
|
520
576
|
}
|
|
521
577
|
const imageCount = basisFile.getNumImages();
|
|
522
578
|
const images = [];
|
|
@@ -542,22 +598,22 @@
|
|
|
542
598
|
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
543
599
|
const decodedData = new Uint8Array(decodedSize);
|
|
544
600
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
545
|
-
|
|
601
|
+
throw new Error("failed to start Basis transcoding");
|
|
546
602
|
}
|
|
547
603
|
return {
|
|
548
604
|
width,
|
|
549
605
|
height,
|
|
550
606
|
data: decodedData,
|
|
551
607
|
compressed,
|
|
552
|
-
|
|
553
|
-
|
|
608
|
+
format,
|
|
609
|
+
hasAlpha
|
|
554
610
|
};
|
|
555
611
|
}
|
|
556
612
|
function parseKTX2File(KTX2File, data, options) {
|
|
557
613
|
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
558
614
|
try {
|
|
559
615
|
if (!ktx2File.startTranscoding()) {
|
|
560
|
-
|
|
616
|
+
throw new Error("failed to start KTX2 transcoding");
|
|
561
617
|
}
|
|
562
618
|
const levelsCount = ktx2File.getLevels();
|
|
563
619
|
const levels = [];
|
|
@@ -565,7 +621,7 @@
|
|
|
565
621
|
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
566
622
|
break;
|
|
567
623
|
}
|
|
568
|
-
return levels;
|
|
624
|
+
return [levels];
|
|
569
625
|
} finally {
|
|
570
626
|
ktx2File.close();
|
|
571
627
|
ktx2File.delete();
|
|
@@ -577,14 +633,14 @@
|
|
|
577
633
|
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
|
|
578
634
|
const decodedData = new Uint8Array(decodedSize);
|
|
579
635
|
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
|
|
580
|
-
|
|
636
|
+
throw new Error("Failed to transcode KTX2 image");
|
|
581
637
|
}
|
|
582
638
|
return {
|
|
583
639
|
width,
|
|
584
640
|
height,
|
|
585
641
|
data: decodedData,
|
|
586
642
|
compressed,
|
|
587
|
-
alphaFlag,
|
|
643
|
+
hasAlpha: alphaFlag,
|
|
588
644
|
format
|
|
589
645
|
};
|
|
590
646
|
}
|
package/dist/bundle.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
|
+
export declare type TextureLoaderOptions = {
|
|
3
|
+
'compressed-texture'?: {
|
|
4
|
+
libraryPath?: string;
|
|
5
|
+
useBasis?: boolean;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Worker Loader for KTX, DDS, and PVR texture container formats
|
|
10
|
+
*/
|
|
11
|
+
export declare const CompressedTextureWorkerLoader: {
|
|
12
|
+
name: string;
|
|
13
|
+
id: string;
|
|
14
|
+
module: string;
|
|
15
|
+
version: any;
|
|
16
|
+
worker: boolean;
|
|
17
|
+
extensions: string[];
|
|
18
|
+
mimeTypes: string[];
|
|
19
|
+
binary: boolean;
|
|
20
|
+
options: {
|
|
21
|
+
'compressed-texture': {
|
|
22
|
+
libraryPath: string;
|
|
23
|
+
useBasis: boolean;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Loader for KTX, DDS, and PVR texture container formats
|
|
29
|
+
*/
|
|
30
|
+
export declare const CompressedTextureLoader: {
|
|
31
|
+
parse: (arrayBuffer: any, options: any) => Promise<import("@loaders.gl/schema").TextureLevel[]>;
|
|
32
|
+
name: string;
|
|
33
|
+
id: string;
|
|
34
|
+
module: string;
|
|
35
|
+
version: any;
|
|
36
|
+
worker: boolean;
|
|
37
|
+
extensions: string[];
|
|
38
|
+
mimeTypes: string[];
|
|
39
|
+
binary: boolean;
|
|
40
|
+
options: {
|
|
41
|
+
'compressed-texture': {
|
|
42
|
+
libraryPath: string;
|
|
43
|
+
useBasis: boolean;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export declare const _TypecheckCompressedTextureWorkerLoader: Loader;
|
|
48
|
+
export declare const _TypecheckCompressedTextureLoader: LoaderWithParser;
|
|
49
|
+
//# sourceMappingURL=compressed-texture-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,oBAAY,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AASF;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;CAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;CAiBnC,CAAC;AAGF,eAAO,MAAM,uCAAuC,EAAE,MAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,EAAE,gBAA0C,CAAC"}
|
|
@@ -30,7 +30,7 @@ export const CompressedTextureLoader = { ...CompressedTextureWorkerLoader,
|
|
|
30
30
|
containerFormat: 'ktx2',
|
|
31
31
|
module: 'encoder'
|
|
32
32
|
};
|
|
33
|
-
return await parseBasis(arrayBuffer, options);
|
|
33
|
+
return (await parseBasis(arrayBuffer, options))[0];
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
return parseCompressedTexture(arrayBuffer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/compressed-texture-loader.ts"],"names":["VERSION","parseCompressedTexture","parseBasis","DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,SAAQC,sBAAR,QAAqC,wCAArC;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AASA,MAAMC,8BAA8B,GAAG;AACrC,wBAAsB;AACpBC,IAAAA,WAAW,EAAE,OADO;AAEpBC,IAAAA,QAAQ,EAAE;AAFU;AADe,CAAvC;AAUA,OAAO,MAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAE,oBADqC;AAE3CC,EAAAA,EAAE,EAAE,oBAFuC;AAG3CC,EAAAA,MAAM,EAAE,UAHmC;AAI3CC,EAAAA,OAAO,EAAEV,OAJkC;AAK3CW,EAAAA,MAAM,EAAE,IALmC;AAM3CC,EAAAA,UAAU,EAAE,CACV,KADU,EAEV,MAFU,EAGV,KAHU,EAIV,KAJU,CAN+B;AAY3CC,EAAAA,SAAS,EAAE,CACT,YADS,EAET,WAFS,EAGT,kBAHS,EAIT,aAJS,EAKT,0BALS,CAZgC;AAmB3CC,EAAAA,MAAM,EAAE,IAnBmC;AAoB3CC,EAAAA,OAAO,EAAEZ;AApBkC,CAAtC;AA0BP,OAAO,MAAMa,uBAAuB,GAAG,EACrC,GAAGV,6BADkC;AAErCW,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBH,OAApB,KAAgC;AACrC,QAAIA,OAAO,CAAC,oBAAD,CAAP,CAA8BV,QAAlC,EAA4C;AAC1CU,MAAAA,OAAO,CAACI,KAAR,GAAgB;AACdC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE,KADD;AAENC,UAAAA,OAAO,EAAE;AAFH,SADM;AAKd,WAAGP,OAAO,CAACI,KALG;AAMdI,QAAAA,eAAe,EAAE,MANH;AAOdd,QAAAA,MAAM,EAAE;AAPM,OAAhB;AASA,aAAO,MAAMP,UAAU,CAACgB,WAAD,EAAcH,OAAd,
|
|
1
|
+
{"version":3,"sources":["../src/compressed-texture-loader.ts"],"names":["VERSION","parseCompressedTexture","parseBasis","DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,SAAQC,sBAAR,QAAqC,wCAArC;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AASA,MAAMC,8BAA8B,GAAG;AACrC,wBAAsB;AACpBC,IAAAA,WAAW,EAAE,OADO;AAEpBC,IAAAA,QAAQ,EAAE;AAFU;AADe,CAAvC;AAUA,OAAO,MAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAE,oBADqC;AAE3CC,EAAAA,EAAE,EAAE,oBAFuC;AAG3CC,EAAAA,MAAM,EAAE,UAHmC;AAI3CC,EAAAA,OAAO,EAAEV,OAJkC;AAK3CW,EAAAA,MAAM,EAAE,IALmC;AAM3CC,EAAAA,UAAU,EAAE,CACV,KADU,EAEV,MAFU,EAGV,KAHU,EAIV,KAJU,CAN+B;AAY3CC,EAAAA,SAAS,EAAE,CACT,YADS,EAET,WAFS,EAGT,kBAHS,EAIT,aAJS,EAKT,0BALS,CAZgC;AAmB3CC,EAAAA,MAAM,EAAE,IAnBmC;AAoB3CC,EAAAA,OAAO,EAAEZ;AApBkC,CAAtC;AA0BP,OAAO,MAAMa,uBAAuB,GAAG,EACrC,GAAGV,6BADkC;AAErCW,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBH,OAApB,KAAgC;AACrC,QAAIA,OAAO,CAAC,oBAAD,CAAP,CAA8BV,QAAlC,EAA4C;AAC1CU,MAAAA,OAAO,CAACI,KAAR,GAAgB;AACdC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE,KADD;AAENC,UAAAA,OAAO,EAAE;AAFH,SADM;AAKd,WAAGP,OAAO,CAACI,KALG;AAMdI,QAAAA,eAAe,EAAE,MANH;AAOdd,QAAAA,MAAM,EAAE;AAPM,OAAhB;AASA,aAAO,CAAC,MAAMP,UAAU,CAACgB,WAAD,EAAcH,OAAd,CAAjB,EAAyC,CAAzC,CAAP;AACD;;AACD,WAAOd,sBAAsB,CAACiB,WAAD,CAA7B;AACD;AAhBoC,CAAhC;AAoBP,OAAO,MAAMM,uCAA+C,GAAGlB,6BAAxD;AACP,OAAO,MAAMmB,iCAAmD,GAAGT,uBAA5D","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseCompressedTexture} from './lib/parsers/parse-compressed-texture';\nimport parseBasis from './lib/parsers/parse-basis';\n\nexport type TextureLoaderOptions = {\n 'compressed-texture'?: {\n libraryPath?: string;\n useBasis?: boolean;\n };\n};\n\nconst DEFAULT_TEXTURE_LOADER_OPTIONS = {\n 'compressed-texture': {\n libraryPath: 'libs/',\n useBasis: false\n }\n};\n\n/**\n * Worker Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureWorkerLoader = {\n name: 'Texture Containers',\n id: 'compressed-texture',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: [\n 'ktx',\n 'ktx2',\n 'dds', // WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_atc\n 'pvr' // WEBGL_compressed_texture_pvrtc\n ],\n mimeTypes: [\n 'image/ktx2',\n 'image/ktx',\n 'image/vnd-ms.dds',\n 'image/x-dds',\n 'application/octet-stream'\n ],\n binary: true,\n options: DEFAULT_TEXTURE_LOADER_OPTIONS\n};\n\n/**\n * Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureLoader = {\n ...CompressedTextureWorkerLoader,\n parse: async (arrayBuffer, options) => {\n if (options['compressed-texture'].useBasis) {\n options.basis = {\n format: {\n alpha: 'BC3',\n noAlpha: 'BC1'\n },\n ...options.basis,\n containerFormat: 'ktx2',\n module: 'encoder'\n };\n return (await parseBasis(arrayBuffer, options))[0];\n }\n return parseCompressedTexture(arrayBuffer);\n }\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWorkerLoader: Loader = CompressedTextureWorkerLoader;\nexport const _TypecheckCompressedTextureLoader: LoaderWithParser = CompressedTextureLoader;\n"],"file":"compressed-texture-loader.js"}
|