@loaders.gl/textures 3.1.3 → 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.js +24 -37
- package/dist/basis-loader.js.map +1 -0
- package/dist/basis-worker.js +13 -14
- package/dist/bundle.js +2 -2
- package/dist/bundle.js.map +1 -0
- package/dist/compressed-texture-loader.d.ts +1 -1
- package/dist/compressed-texture-loader.js +36 -59
- package/dist/compressed-texture-loader.js.map +1 -0
- package/dist/compressed-texture-worker.js +14 -15
- package/dist/compressed-texture-writer.js +21 -27
- package/dist/compressed-texture-writer.js.map +1 -0
- package/dist/crunch-loader.js +16 -23
- package/dist/crunch-loader.js.map +1 -0
- package/dist/crunch-worker.js +18 -18
- package/dist/dist.min.js +13 -13
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -37
- package/dist/index.js.map +1 -0
- package/dist/ktx2-basis-universal-texture-writer.js +17 -24
- package/dist/ktx2-basis-universal-texture-writer.js.map +1 -0
- package/dist/lib/encoders/encode-ktx.js +5 -9
- package/dist/lib/encoders/encode-ktx.js.map +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +34 -40
- package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
- package/dist/lib/encoders/encode-texture.js +11 -26
- package/dist/lib/encoders/encode-texture.js.map +1 -0
- package/dist/lib/gl-extensions.js +60 -71
- package/dist/lib/gl-extensions.js.map +1 -0
- package/dist/lib/parsers/basis-module-loader.js +76 -100
- package/dist/lib/parsers/basis-module-loader.js.map +1 -0
- package/dist/lib/parsers/crunch-module-loader.js +18 -30
- package/dist/lib/parsers/crunch-module-loader.js.map +1 -0
- package/dist/lib/parsers/parse-basis.d.ts +8 -6
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
- package/dist/lib/parsers/parse-basis.js +240 -225
- package/dist/lib/parsers/parse-basis.js.map +1 -0
- package/dist/lib/parsers/parse-compressed-texture.d.ts +1 -1
- package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -1
- package/dist/lib/parsers/parse-compressed-texture.js +18 -25
- package/dist/lib/parsers/parse-compressed-texture.js.map +1 -0
- package/dist/lib/parsers/parse-crunch.d.ts +1 -1
- package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
- package/dist/lib/parsers/parse-crunch.js +83 -96
- package/dist/lib/parsers/parse-crunch.js.map +1 -0
- package/dist/lib/parsers/parse-dds.d.ts +1 -1
- package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
- package/dist/lib/parsers/parse-dds.js +63 -93
- package/dist/lib/parsers/parse-dds.js.map +1 -0
- package/dist/lib/parsers/parse-ktx.d.ts +2 -1
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
- package/dist/lib/parsers/parse-ktx.js +23 -44
- package/dist/lib/parsers/parse-ktx.js.map +1 -0
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
- package/dist/lib/parsers/parse-npy.js +68 -77
- package/dist/lib/parsers/parse-npy.js.map +1 -0
- package/dist/lib/parsers/parse-pvr.d.ts +1 -1
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
- package/dist/lib/parsers/parse-pvr.js +133 -212
- package/dist/lib/parsers/parse-pvr.js.map +1 -0
- package/dist/lib/texture-api/async-deep-map.js +33 -35
- package/dist/lib/texture-api/async-deep-map.js.map +1 -0
- package/dist/lib/texture-api/deep-load.js +8 -14
- package/dist/lib/texture-api/deep-load.js.map +1 -0
- package/dist/lib/texture-api/generate-url.js +13 -16
- package/dist/lib/texture-api/generate-url.js.map +1 -0
- package/dist/lib/texture-api/load-image-array.js +18 -19
- package/dist/lib/texture-api/load-image-array.js.map +1 -0
- package/dist/lib/texture-api/load-image-cube.js +55 -39
- package/dist/lib/texture-api/load-image-cube.js.map +1 -0
- package/dist/lib/texture-api/load-image.js +43 -38
- package/dist/lib/texture-api/load-image.js.map +1 -0
- package/dist/lib/texture-api/texture-api-types.js +2 -3
- package/dist/{es5/lib → lib}/texture-api/texture-api-types.js.map +0 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts +8 -1
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
- package/dist/lib/utils/extract-mipmap-images.js +36 -45
- package/dist/lib/utils/extract-mipmap-images.js.map +1 -0
- package/dist/lib/utils/ktx-format-helper.js +70 -122
- package/dist/lib/utils/ktx-format-helper.js.map +1 -0
- package/dist/lib/utils/texture-formats.js +30 -42
- package/dist/lib/utils/texture-formats.js.map +1 -0
- package/dist/lib/utils/version.d.ts.map +1 -1
- package/dist/lib/utils/version.js +2 -7
- package/dist/lib/utils/version.js.map +1 -0
- package/dist/{es5 → libs}/libs/README.md +0 -0
- package/dist/{es5 → libs}/libs/basis_encoder.js +0 -0
- package/dist/{es5 → libs}/libs/basis_encoder.wasm +0 -0
- package/dist/{es5 → libs}/libs/basis_transcoder.js +0 -0
- package/dist/{es5 → libs}/libs/basis_transcoder.wasm +0 -0
- package/dist/{es5 → libs}/libs/crunch.js +0 -0
- package/dist/npy-loader.js +20 -31
- package/dist/npy-loader.js.map +1 -0
- package/dist/npy-worker.js +1 -1
- package/dist/types.d.ts +0 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/{es5/types.js.map → types.js.map} +0 -0
- package/dist/workers/basis-worker.js +4 -5
- package/dist/workers/basis-worker.js.map +1 -0
- package/dist/workers/compressed-texture-worker.js +4 -5
- package/dist/workers/compressed-texture-worker.js.map +1 -0
- package/dist/workers/crunch-worker.js +7 -13
- package/dist/workers/crunch-worker.js.map +1 -0
- package/dist/workers/npy-worker.js +4 -5
- package/dist/workers/npy-worker.js.map +1 -0
- package/package.json +12 -11
- package/src/compressed-texture-loader.ts +1 -1
- package/src/index.ts +1 -1
- package/src/lib/parsers/basis-module-loader.ts +1 -1
- package/src/lib/parsers/crunch-module-loader.ts +1 -1
- package/src/lib/parsers/parse-basis.ts +68 -36
- package/src/lib/parsers/parse-compressed-texture.ts +1 -1
- package/src/lib/parsers/parse-crunch.ts +15 -14
- package/src/lib/parsers/parse-dds.ts +1 -1
- 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 +2 -1
- package/src/lib/utils/extract-mipmap-images.ts +9 -1
- package/src/lib/utils/texture-formats.ts +1 -1
- package/src/lib/utils/version.ts +2 -1
- package/src/types.ts +0 -30
- package/dist/es5/basis-loader.js +0 -50
- package/dist/es5/basis-loader.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/compressed-texture-loader.js +0 -96
- package/dist/es5/compressed-texture-loader.js.map +0 -1
- package/dist/es5/compressed-texture-writer.js +0 -33
- package/dist/es5/compressed-texture-writer.js.map +0 -1
- package/dist/es5/crunch-loader.js +0 -28
- package/dist/es5/crunch-loader.js.map +0 -1
- package/dist/es5/index.js +0 -126
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/ktx2-basis-universal-texture-writer.js +0 -29
- package/dist/es5/ktx2-basis-universal-texture-writer.js.map +0 -1
- package/dist/es5/lib/encoders/encode-ktx.js +0 -14
- package/dist/es5/lib/encoders/encode-ktx.js.map +0 -1
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +0 -87
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
- package/dist/es5/lib/encoders/encode-texture.js +0 -48
- package/dist/es5/lib/encoders/encode-texture.js.map +0 -1
- package/dist/es5/lib/gl-extensions.js +0 -68
- package/dist/es5/lib/gl-extensions.js.map +0 -1
- package/dist/es5/lib/parsers/basis-module-loader.js +0 -245
- package/dist/es5/lib/parsers/basis-module-loader.js.map +0 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js +0 -88
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +0 -1
- package/dist/es5/lib/parsers/parse-basis.js +0 -325
- package/dist/es5/lib/parsers/parse-basis.js.map +0 -1
- package/dist/es5/lib/parsers/parse-compressed-texture.js +0 -29
- package/dist/es5/lib/parsers/parse-compressed-texture.js.map +0 -1
- package/dist/es5/lib/parsers/parse-crunch.js +0 -125
- package/dist/es5/lib/parsers/parse-crunch.js.map +0 -1
- package/dist/es5/lib/parsers/parse-dds.js +0 -95
- package/dist/es5/lib/parsers/parse-dds.js.map +0 -1
- package/dist/es5/lib/parsers/parse-ktx.js +0 -40
- package/dist/es5/lib/parsers/parse-ktx.js.map +0 -1
- package/dist/es5/lib/parsers/parse-npy.js +0 -87
- package/dist/es5/lib/parsers/parse-npy.js.map +0 -1
- package/dist/es5/lib/parsers/parse-pvr.js +0 -183
- package/dist/es5/lib/parsers/parse-pvr.js.map +0 -1
- package/dist/es5/lib/texture-api/async-deep-map.js +0 -177
- package/dist/es5/lib/texture-api/async-deep-map.js.map +0 -1
- package/dist/es5/lib/texture-api/deep-load.js +0 -81
- package/dist/es5/lib/texture-api/deep-load.js.map +0 -1
- package/dist/es5/lib/texture-api/generate-url.js +0 -28
- package/dist/es5/lib/texture-api/generate-url.js.map +0 -1
- package/dist/es5/lib/texture-api/load-image-array.js +0 -96
- package/dist/es5/lib/texture-api/load-image-array.js.map +0 -1
- package/dist/es5/lib/texture-api/load-image-cube.js +0 -145
- package/dist/es5/lib/texture-api/load-image-cube.js.map +0 -1
- package/dist/es5/lib/texture-api/load-image.js +0 -169
- package/dist/es5/lib/texture-api/load-image.js.map +0 -1
- package/dist/es5/lib/texture-api/texture-api-types.js +0 -2
- package/dist/es5/lib/utils/extract-mipmap-images.js +0 -48
- package/dist/es5/lib/utils/extract-mipmap-images.js.map +0 -1
- package/dist/es5/lib/utils/ktx-format-helper.js +0 -82
- package/dist/es5/lib/utils/ktx-format-helper.js.map +0 -1
- package/dist/es5/lib/utils/texture-formats.js +0 -64
- package/dist/es5/lib/utils/texture-formats.js.map +0 -1
- package/dist/es5/lib/utils/version.js +0 -9
- package/dist/es5/lib/utils/version.js.map +0 -1
- package/dist/es5/npy-loader.js +0 -71
- package/dist/es5/npy-loader.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/workers/basis-worker.js +0 -8
- package/dist/es5/workers/basis-worker.js.map +0 -1
- package/dist/es5/workers/compressed-texture-worker.js +0 -8
- package/dist/es5/workers/compressed-texture-worker.js.map +0 -1
- package/dist/es5/workers/crunch-worker.js +0 -28
- package/dist/es5/workers/crunch-worker.js.map +0 -1
- package/dist/es5/workers/npy-worker.js +0 -8
- package/dist/es5/workers/npy-worker.js.map +0 -1
- package/dist/esm/basis-loader.js +0 -27
- package/dist/esm/basis-loader.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/compressed-texture-loader.js +0 -41
- package/dist/esm/compressed-texture-loader.js.map +0 -1
- package/dist/esm/compressed-texture-writer.js +0 -22
- package/dist/esm/compressed-texture-writer.js.map +0 -1
- package/dist/esm/crunch-loader.js +0 -18
- package/dist/esm/crunch-loader.js.map +0 -1
- package/dist/esm/index.js +0 -14
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/ktx2-basis-universal-texture-writer.js +0 -18
- package/dist/esm/ktx2-basis-universal-texture-writer.js.map +0 -1
- package/dist/esm/lib/encoders/encode-ktx.js +0 -6
- package/dist/esm/lib/encoders/encode-ktx.js.map +0 -1
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +0 -35
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
- package/dist/esm/lib/encoders/encode-texture.js +0 -12
- package/dist/esm/lib/encoders/encode-texture.js.map +0 -1
- package/dist/esm/lib/gl-extensions.js +0 -61
- package/dist/esm/lib/gl-extensions.js.map +0 -1
- package/dist/esm/lib/parsers/basis-module-loader.js +0 -90
- package/dist/esm/lib/parsers/basis-module-loader.js.map +0 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js +0 -23
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +0 -1
- package/dist/esm/lib/parsers/parse-basis.js +0 -260
- package/dist/esm/lib/parsers/parse-basis.js.map +0 -1
- package/dist/esm/lib/parsers/parse-compressed-texture.js +0 -19
- package/dist/esm/lib/parsers/parse-compressed-texture.js.map +0 -1
- package/dist/esm/lib/parsers/parse-crunch.js +0 -91
- package/dist/esm/lib/parsers/parse-crunch.js.map +0 -1
- package/dist/esm/lib/parsers/parse-dds.js +0 -78
- package/dist/esm/lib/parsers/parse-dds.js.map +0 -1
- package/dist/esm/lib/parsers/parse-ktx.js +0 -25
- package/dist/esm/lib/parsers/parse-ktx.js.map +0 -1
- package/dist/esm/lib/parsers/parse-npy.js +0 -76
- package/dist/esm/lib/parsers/parse-npy.js.map +0 -1
- package/dist/esm/lib/parsers/parse-pvr.js +0 -171
- package/dist/esm/lib/parsers/parse-pvr.js.map +0 -1
- package/dist/esm/lib/texture-api/async-deep-map.js +0 -39
- package/dist/esm/lib/texture-api/async-deep-map.js.map +0 -1
- package/dist/esm/lib/texture-api/deep-load.js +0 -10
- package/dist/esm/lib/texture-api/deep-load.js.map +0 -1
- package/dist/esm/lib/texture-api/generate-url.js +0 -14
- package/dist/esm/lib/texture-api/generate-url.js.map +0 -1
- package/dist/esm/lib/texture-api/load-image-array.js +0 -20
- package/dist/esm/lib/texture-api/load-image-array.js.map +0 -1
- package/dist/esm/lib/texture-api/load-image-cube.js +0 -63
- package/dist/esm/lib/texture-api/load-image-cube.js.map +0 -1
- package/dist/esm/lib/texture-api/load-image.js +0 -48
- package/dist/esm/lib/texture-api/load-image.js.map +0 -1
- package/dist/esm/lib/texture-api/texture-api-types.js +0 -2
- package/dist/esm/lib/texture-api/texture-api-types.js.map +0 -1
- package/dist/esm/lib/utils/extract-mipmap-images.js +0 -41
- package/dist/esm/lib/utils/extract-mipmap-images.js.map +0 -1
- package/dist/esm/lib/utils/ktx-format-helper.js +0 -73
- package/dist/esm/lib/utils/ktx-format-helper.js.map +0 -1
- package/dist/esm/lib/utils/texture-formats.js +0 -39
- package/dist/esm/lib/utils/texture-formats.js.map +0 -1
- package/dist/esm/lib/utils/version.js +0 -2
- package/dist/esm/lib/utils/version.js.map +0 -1
- package/dist/esm/libs/README.md +0 -9
- package/dist/esm/libs/basis_encoder.js +0 -22
- package/dist/esm/libs/basis_encoder.wasm +0 -0
- package/dist/esm/libs/basis_transcoder.js +0 -21
- package/dist/esm/libs/basis_transcoder.wasm +0 -0
- package/dist/esm/libs/crunch.js +0 -136
- package/dist/esm/npy-loader.js +0 -23
- package/dist/esm/npy-loader.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/workers/basis-worker.js +0 -4
- package/dist/esm/workers/basis-worker.js.map +0 -1
- package/dist/esm/workers/compressed-texture-worker.js +0 -4
- package/dist/esm/workers/compressed-texture-worker.js.map +0 -1
- package/dist/esm/workers/crunch-worker.js +0 -8
- package/dist/esm/workers/crunch-worker.js.map +0 -1
- package/dist/esm/workers/npy-worker.js +0 -4
- package/dist/esm/workers/npy-worker.js.map +0 -1
|
@@ -31,7 +31,7 @@ async function loadCrunch(options) {
|
|
|
31
31
|
|
|
32
32
|
// Depends on how import happened...
|
|
33
33
|
// @ts-ignore TS2339: Property does not exist on type
|
|
34
|
-
loadCrunchDecoder = loadCrunchDecoder || globalThis.
|
|
34
|
+
loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
|
|
35
35
|
crunchModule = loadCrunchDecoder();
|
|
36
36
|
return crunchModule;
|
|
37
37
|
}
|
|
@@ -1,9 +1,36 @@
|
|
|
1
|
+
/* eslint-disable indent */
|
|
2
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
1
3
|
import {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';
|
|
2
4
|
import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
|
|
3
5
|
import {getSupportedGPUTextureFormats} from '../utils/texture-formats';
|
|
4
6
|
import {isKTX} from './parse-ktx';
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
export type BasisFormat =
|
|
9
|
+
| 'etc1'
|
|
10
|
+
| 'etc2'
|
|
11
|
+
| 'bc1'
|
|
12
|
+
| 'bc3'
|
|
13
|
+
| 'bc4'
|
|
14
|
+
| 'bc5'
|
|
15
|
+
| 'bc7-m6-opaque-only'
|
|
16
|
+
| 'bc7-m5'
|
|
17
|
+
| 'pvrtc1-4-rgb'
|
|
18
|
+
| 'pvrtc1-4-rgba'
|
|
19
|
+
| 'astc-4x4'
|
|
20
|
+
| 'atc-rgb'
|
|
21
|
+
| 'atc-rgba-interpolated-alpha'
|
|
22
|
+
| 'rgba32'
|
|
23
|
+
| 'rgb565'
|
|
24
|
+
| 'bgr565'
|
|
25
|
+
| 'rgba4444';
|
|
26
|
+
|
|
27
|
+
type BasisOutputOptions = {
|
|
28
|
+
basisFormat: number;
|
|
29
|
+
compressed: boolean;
|
|
30
|
+
format?: number;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const OutputFormat: Record<string, BasisOutputOptions> = {
|
|
7
34
|
etc1: {
|
|
8
35
|
basisFormat: 0,
|
|
9
36
|
compressed: true,
|
|
@@ -49,11 +76,11 @@ const OutputFormat = {
|
|
|
49
76
|
|
|
50
77
|
/**
|
|
51
78
|
* parse data with a Binomial Basis_Universal module
|
|
52
|
-
* @param
|
|
53
|
-
* @param
|
|
79
|
+
* @param data
|
|
80
|
+
* @param options
|
|
54
81
|
* @returns compressed texture data
|
|
55
82
|
*/
|
|
56
|
-
export default async function parseBasis(data, options) {
|
|
83
|
+
export default async function parseBasis(data: ArrayBuffer, options): Promise<TextureLevel[][]> {
|
|
57
84
|
if (options.basis.containerFormat === 'auto') {
|
|
58
85
|
if (isKTX(data)) {
|
|
59
86
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
@@ -81,25 +108,25 @@ export default async function parseBasis(data, options) {
|
|
|
81
108
|
|
|
82
109
|
/**
|
|
83
110
|
* Parse *.basis file data
|
|
84
|
-
* @param
|
|
85
|
-
* @param
|
|
86
|
-
* @param
|
|
111
|
+
* @param BasisFile - initialized transcoder module
|
|
112
|
+
* @param data
|
|
113
|
+
* @param options
|
|
87
114
|
* @returns compressed texture data
|
|
88
115
|
*/
|
|
89
|
-
function parseBasisFile(BasisFile, data, options) {
|
|
116
|
+
function parseBasisFile(BasisFile, data, options): TextureLevel[][] {
|
|
90
117
|
const basisFile = new BasisFile(new Uint8Array(data));
|
|
91
118
|
|
|
92
119
|
try {
|
|
93
120
|
if (!basisFile.startTranscoding()) {
|
|
94
|
-
|
|
121
|
+
throw new Error('Failed to start basis transcoding');
|
|
95
122
|
}
|
|
96
123
|
|
|
97
124
|
const imageCount = basisFile.getNumImages();
|
|
98
|
-
const images:
|
|
125
|
+
const images: TextureLevel[][] = [];
|
|
99
126
|
|
|
100
127
|
for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
|
|
101
128
|
const levelsCount = basisFile.getNumLevels(imageIndex);
|
|
102
|
-
const levels:
|
|
129
|
+
const levels: TextureLevel[] = [];
|
|
103
130
|
|
|
104
131
|
for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
|
|
105
132
|
levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
|
|
@@ -117,13 +144,13 @@ function parseBasisFile(BasisFile, data, options) {
|
|
|
117
144
|
|
|
118
145
|
/**
|
|
119
146
|
* Parse the particular level image of a basis file
|
|
120
|
-
* @param
|
|
121
|
-
* @param
|
|
122
|
-
* @param
|
|
123
|
-
* @param
|
|
147
|
+
* @param basisFile
|
|
148
|
+
* @param imageIndex
|
|
149
|
+
* @param levelIndex
|
|
150
|
+
* @param options
|
|
124
151
|
* @returns compressed texture data
|
|
125
152
|
*/
|
|
126
|
-
function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
153
|
+
function transcodeImage(basisFile, imageIndex, levelIndex, options): TextureLevel {
|
|
127
154
|
const width = basisFile.getImageWidth(imageIndex, levelIndex);
|
|
128
155
|
const height = basisFile.getImageHeight(imageIndex, levelIndex);
|
|
129
156
|
|
|
@@ -137,7 +164,7 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
|
137
164
|
const decodedData = new Uint8Array(decodedSize);
|
|
138
165
|
|
|
139
166
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
140
|
-
|
|
167
|
+
throw new Error('failed to start Basis transcoding');
|
|
141
168
|
}
|
|
142
169
|
|
|
143
170
|
return {
|
|
@@ -146,37 +173,37 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
|
146
173
|
height,
|
|
147
174
|
data: decodedData,
|
|
148
175
|
compressed,
|
|
176
|
+
format,
|
|
149
177
|
|
|
150
178
|
// Additional fields
|
|
151
179
|
// Add levelSize field.
|
|
152
|
-
hasAlpha
|
|
153
|
-
format
|
|
180
|
+
hasAlpha
|
|
154
181
|
};
|
|
155
182
|
}
|
|
156
183
|
|
|
157
184
|
/**
|
|
158
185
|
* Parse *.ktx2 file data
|
|
159
|
-
* @param
|
|
160
|
-
* @param
|
|
161
|
-
* @param
|
|
186
|
+
* @param KTX2File
|
|
187
|
+
* @param data
|
|
188
|
+
* @param options
|
|
162
189
|
* @returns compressed texture data
|
|
163
190
|
*/
|
|
164
|
-
function parseKTX2File(KTX2File, data, options) {
|
|
191
|
+
function parseKTX2File(KTX2File, data: ArrayBuffer, options): TextureLevel[][] {
|
|
165
192
|
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
166
193
|
|
|
167
194
|
try {
|
|
168
195
|
if (!ktx2File.startTranscoding()) {
|
|
169
|
-
|
|
196
|
+
throw new Error('failed to start KTX2 transcoding');
|
|
170
197
|
}
|
|
171
198
|
const levelsCount = ktx2File.getLevels();
|
|
172
|
-
const levels:
|
|
199
|
+
const levels: TextureLevel[] = [];
|
|
173
200
|
|
|
174
201
|
for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
|
|
175
202
|
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
176
203
|
break; // texture app can only show one level for some reason
|
|
177
204
|
}
|
|
178
205
|
|
|
179
|
-
return levels;
|
|
206
|
+
return [levels];
|
|
180
207
|
} finally {
|
|
181
208
|
ktx2File.close();
|
|
182
209
|
ktx2File.delete();
|
|
@@ -185,12 +212,12 @@ function parseKTX2File(KTX2File, data, options) {
|
|
|
185
212
|
|
|
186
213
|
/**
|
|
187
214
|
* Parse the particular level image of a ktx2 file
|
|
188
|
-
* @param
|
|
189
|
-
* @param
|
|
190
|
-
* @param
|
|
215
|
+
* @param ktx2File
|
|
216
|
+
* @param levelIndex
|
|
217
|
+
* @param options
|
|
191
218
|
* @returns
|
|
192
219
|
*/
|
|
193
|
-
function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
220
|
+
function transcodeKTX2Image(ktx2File, levelIndex: number, options): TextureLevel {
|
|
194
221
|
const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
|
|
195
222
|
|
|
196
223
|
// Check options for output format etc
|
|
@@ -216,7 +243,7 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
|
216
243
|
-1 /* channel1 */
|
|
217
244
|
)
|
|
218
245
|
) {
|
|
219
|
-
|
|
246
|
+
throw new Error('Failed to transcode KTX2 image');
|
|
220
247
|
}
|
|
221
248
|
|
|
222
249
|
return {
|
|
@@ -228,18 +255,18 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
|
228
255
|
|
|
229
256
|
// Additional fields
|
|
230
257
|
// Add levelSize field.
|
|
231
|
-
alphaFlag,
|
|
258
|
+
hasAlpha: alphaFlag,
|
|
232
259
|
format
|
|
233
260
|
};
|
|
234
261
|
}
|
|
235
262
|
|
|
236
263
|
/**
|
|
237
264
|
* Get BasisFormat by loader format option
|
|
238
|
-
* @param
|
|
239
|
-
* @param
|
|
265
|
+
* @param options
|
|
266
|
+
* @param hasAlpha
|
|
240
267
|
* @returns BasisFormat data
|
|
241
268
|
*/
|
|
242
|
-
function getBasisOptions(options, hasAlpha) {
|
|
269
|
+
function getBasisOptions(options, hasAlpha: boolean): BasisOutputOptions {
|
|
243
270
|
let format = options && options.basis && options.basis.format;
|
|
244
271
|
if (format === 'auto') {
|
|
245
272
|
format = selectSupportedBasisFormat();
|
|
@@ -255,7 +282,12 @@ function getBasisOptions(options, hasAlpha) {
|
|
|
255
282
|
* Select transcode format from the list of supported formats
|
|
256
283
|
* @returns key for OutputFormat map
|
|
257
284
|
*/
|
|
258
|
-
export function selectSupportedBasisFormat()
|
|
285
|
+
export function selectSupportedBasisFormat():
|
|
286
|
+
| BasisFormat
|
|
287
|
+
| {
|
|
288
|
+
alpha: BasisFormat;
|
|
289
|
+
noAlpha: BasisFormat;
|
|
290
|
+
} {
|
|
259
291
|
const supportedFormats = getSupportedGPUTextureFormats();
|
|
260
292
|
if (supportedFormats.has('astc')) {
|
|
261
293
|
return 'astc-4x4';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {TextureLevel} from '
|
|
1
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
2
2
|
import {loadCrunchModule} from './crunch-module-loader';
|
|
3
3
|
import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
|
|
4
4
|
import {assert} from '@loaders.gl/loader-utils';
|
|
@@ -17,19 +17,20 @@ const CRN_FORMAT = {
|
|
|
17
17
|
// Crunch supports more formats than this.
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
const DXT_FORMAT_MAP = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
/** Mapping of Crunch formats to DXT formats. */
|
|
21
|
+
const DXT_FORMAT_MAP = {
|
|
22
|
+
[CRN_FORMAT.cCRNFmtDXT1]: {
|
|
23
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
24
|
+
sizeFunction: getDxt1LevelSize
|
|
25
|
+
},
|
|
26
|
+
[CRN_FORMAT.cCRNFmtDXT3]: {
|
|
27
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
28
|
+
sizeFunction: getDxtXLevelSize
|
|
29
|
+
},
|
|
30
|
+
[CRN_FORMAT.cCRNFmtDXT5]: {
|
|
31
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
32
|
+
sizeFunction: getDxtXLevelSize
|
|
33
|
+
}
|
|
33
34
|
};
|
|
34
35
|
|
|
35
36
|
let cachedDstSize = 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {TextureLevel} from '
|
|
1
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
2
2
|
import {assert} from '@loaders.gl/loader-utils';
|
|
3
3
|
import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
|
|
4
4
|
import {extractMipmapImages} from '../utils/extract-mipmap-images';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
1
2
|
import {read} from 'ktx-parse';
|
|
2
3
|
import {extractMipmapImages} from '../utils/extract-mipmap-images';
|
|
3
4
|
import {mapVkFormatToWebGL} from '../utils/ktx-format-helper';
|
|
@@ -29,7 +30,7 @@ export function isKTX(data: ArrayBuffer) {
|
|
|
29
30
|
return !notKTX;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
export function parseKTX(arrayBuffer: ArrayBuffer) {
|
|
33
|
+
export function parseKTX(arrayBuffer: ArrayBuffer): TextureLevel[] {
|
|
33
34
|
const uint8Array = new Uint8Array(arrayBuffer);
|
|
34
35
|
const ktx = read(uint8Array);
|
|
35
36
|
const mipMapLevels = Math.max(1, ktx.levels.length);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {TextureLevel} from '../../types';
|
|
2
1
|
/* eslint-disable camelcase */
|
|
3
2
|
// Forked from PicoGL: https://github.com/tsherif/picogl.js/blob/master/examples/utils/utils.js
|
|
4
3
|
// Copyright (c) 2017 Tarek Sherif, The MIT License (MIT)
|
|
4
|
+
|
|
5
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
5
6
|
import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
|
|
6
7
|
import {extractMipmapImages} from '../utils/extract-mipmap-images';
|
|
7
8
|
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {TextureLevel} from '@loaders.gl/schema';
|
|
2
|
+
|
|
3
|
+
export type CompressedTextureExtractOptions = {
|
|
4
|
+
mipMapLevels: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
sizeFunction: Function;
|
|
8
|
+
internalFormat: number;
|
|
9
|
+
};
|
|
2
10
|
|
|
3
11
|
/**
|
|
4
12
|
* Extract mipmap images from compressed texture buffer
|
package/src/lib/utils/version.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Version constant cannot be imported, it needs to correspond to the build version of **this** module.
|
|
2
2
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
3
|
+
// TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'
|
|
3
4
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
4
|
-
export const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '
|
|
5
|
+
export const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
|
package/src/types.ts
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* These represent the main compressed texture formats
|
|
3
|
-
* Each format typically has a number of more specific subformats
|
|
4
|
-
*/
|
|
5
|
-
export type GPUTextureFormat =
|
|
6
|
-
| 'dxt'
|
|
7
|
-
| 'dxt-srgb'
|
|
8
|
-
| 'etc1'
|
|
9
|
-
| 'etc2'
|
|
10
|
-
| 'pvrtc'
|
|
11
|
-
| 'atc'
|
|
12
|
-
| 'astc'
|
|
13
|
-
| 'rgtc';
|
|
14
|
-
|
|
15
|
-
export interface TextureLevel {
|
|
16
|
-
compressed: boolean;
|
|
17
|
-
format: number;
|
|
18
|
-
data: Uint8Array;
|
|
19
|
-
witdh: number;
|
|
20
|
-
height: number;
|
|
21
|
-
levelSize?: number;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface CompressedTextureExtractOptions {
|
|
25
|
-
mipMapLevels: number;
|
|
26
|
-
width: number;
|
|
27
|
-
height: number;
|
|
28
|
-
sizeFunction: Function;
|
|
29
|
-
internalFormat: number;
|
|
30
|
-
}
|
package/dist/es5/basis-loader.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports._TypecheckBasisLoader = exports._TypecheckBasisWorkerLoader = exports.BasisLoader = exports.BasisWorkerLoader = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _version = require("./lib/utils/version");
|
|
13
|
-
|
|
14
|
-
var _parseBasis = _interopRequireDefault(require("./lib/parsers/parse-basis"));
|
|
15
|
-
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
-
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19
|
-
|
|
20
|
-
var BasisWorkerLoader = {
|
|
21
|
-
name: 'Basis',
|
|
22
|
-
id: 'basis',
|
|
23
|
-
module: 'textures',
|
|
24
|
-
version: _version.VERSION,
|
|
25
|
-
worker: true,
|
|
26
|
-
extensions: ['basis', 'ktx2'],
|
|
27
|
-
mimeTypes: ['application/octet-stream', 'image/ktx2'],
|
|
28
|
-
tests: ['sB'],
|
|
29
|
-
binary: true,
|
|
30
|
-
options: {
|
|
31
|
-
basis: {
|
|
32
|
-
format: 'auto',
|
|
33
|
-
libraryPath: 'libs/',
|
|
34
|
-
containerFormat: 'auto',
|
|
35
|
-
module: 'transcoder'
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
exports.BasisWorkerLoader = BasisWorkerLoader;
|
|
40
|
-
|
|
41
|
-
var BasisLoader = _objectSpread(_objectSpread({}, BasisWorkerLoader), {}, {
|
|
42
|
-
parse: _parseBasis.default
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
exports.BasisLoader = BasisLoader;
|
|
46
|
-
var _TypecheckBasisWorkerLoader = BasisWorkerLoader;
|
|
47
|
-
exports._TypecheckBasisWorkerLoader = _TypecheckBasisWorkerLoader;
|
|
48
|
-
var _TypecheckBasisLoader = BasisLoader;
|
|
49
|
-
exports._TypecheckBasisLoader = _TypecheckBasisLoader;
|
|
50
|
-
//# sourceMappingURL=basis-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/basis-loader.ts"],"names":["BasisWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","tests","binary","options","basis","format","libraryPath","containerFormat","BasisLoader","parse","parseBasis","_TypecheckBasisWorkerLoader","_TypecheckBasisLoader"],"mappings":";;;;;;;;;;;AACA;;AACA;;;;;;AAKO,IAAMA,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,OADyB;AAE/BC,EAAAA,EAAE,EAAE,OAF2B;AAG/BC,EAAAA,MAAM,EAAE,UAHuB;AAI/BC,EAAAA,OAAO,EAAEC,gBAJsB;AAK/BC,EAAAA,MAAM,EAAE,IALuB;AAM/BC,EAAAA,UAAU,EAAE,CAAC,OAAD,EAAU,MAAV,CANmB;AAO/BC,EAAAA,SAAS,EAAE,CAAC,0BAAD,EAA6B,YAA7B,CAPoB;AAQ/BC,EAAAA,KAAK,EAAE,CAAC,IAAD,CARwB;AAS/BC,EAAAA,MAAM,EAAE,IATuB;AAU/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE,MADH;AAELC,MAAAA,WAAW,EAAE,OAFR;AAGLC,MAAAA,eAAe,EAAE,MAHZ;AAILZ,MAAAA,MAAM,EAAE;AAJH;AADA;AAVsB,CAA1B;;;AAuBA,IAAMa,WAAW,mCACnBhB,iBADmB;AAEtBiB,EAAAA,KAAK,EAAEC;AAFe,EAAjB;;;AAMA,IAAMC,2BAAmC,GAAGnB,iBAA5C;;AACA,IAAMoB,qBAAuC,GAAGJ,WAAhD","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseBasis from './lib/parsers/parse-basis';\n\n/**\n * Worker loader for Basis super compressed textures\n */\nexport const BasisWorkerLoader = {\n name: 'Basis',\n id: 'basis',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['basis', 'ktx2'],\n mimeTypes: ['application/octet-stream', 'image/ktx2'],\n tests: ['sB'],\n binary: true,\n options: {\n basis: {\n format: 'auto', // gl context doesn't exist on a worker thread\n libraryPath: 'libs/',\n containerFormat: 'auto', // 'basis' || 'ktx2' || 'auto'\n module: 'transcoder' // 'transcoder' || 'encoder'\n }\n }\n};\n\n/**\n * Loader for Basis super compressed textures\n */\nexport const BasisLoader = {\n ...BasisWorkerLoader,\n parse: parseBasis\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckBasisWorkerLoader: Loader = BasisWorkerLoader;\nexport const _TypecheckBasisLoader: LoaderWithParser = BasisLoader;\n"],"file":"basis-loader.js"}
|
package/dist/es5/bundle.js
DELETED
package/dist/es5/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports._TypecheckCompressedTextureLoader = exports._TypecheckCompressedTextureWorkerLoader = exports.CompressedTextureLoader = exports.CompressedTextureWorkerLoader = void 0;
|
|
9
|
-
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
|
-
var _version = require("./lib/utils/version");
|
|
17
|
-
|
|
18
|
-
var _parseCompressedTexture = require("./lib/parsers/parse-compressed-texture");
|
|
19
|
-
|
|
20
|
-
var _parseBasis = _interopRequireDefault(require("./lib/parsers/parse-basis"));
|
|
21
|
-
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
-
|
|
24
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
25
|
-
|
|
26
|
-
var DEFAULT_TEXTURE_LOADER_OPTIONS = {
|
|
27
|
-
'compressed-texture': {
|
|
28
|
-
libraryPath: 'libs/',
|
|
29
|
-
useBasis: false
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
var CompressedTextureWorkerLoader = {
|
|
33
|
-
name: 'Texture Containers',
|
|
34
|
-
id: 'compressed-texture',
|
|
35
|
-
module: 'textures',
|
|
36
|
-
version: _version.VERSION,
|
|
37
|
-
worker: true,
|
|
38
|
-
extensions: ['ktx', 'ktx2', 'dds', 'pvr'],
|
|
39
|
-
mimeTypes: ['image/ktx2', 'image/ktx', 'image/vnd-ms.dds', 'image/x-dds', 'application/octet-stream'],
|
|
40
|
-
binary: true,
|
|
41
|
-
options: DEFAULT_TEXTURE_LOADER_OPTIONS
|
|
42
|
-
};
|
|
43
|
-
exports.CompressedTextureWorkerLoader = CompressedTextureWorkerLoader;
|
|
44
|
-
|
|
45
|
-
var CompressedTextureLoader = _objectSpread(_objectSpread({}, CompressedTextureWorkerLoader), {}, {
|
|
46
|
-
parse: function () {
|
|
47
|
-
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
48
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
49
|
-
while (1) {
|
|
50
|
-
switch (_context.prev = _context.next) {
|
|
51
|
-
case 0:
|
|
52
|
-
if (!options['compressed-texture'].useBasis) {
|
|
53
|
-
_context.next = 5;
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
options.basis = _objectSpread(_objectSpread({
|
|
58
|
-
format: {
|
|
59
|
-
alpha: 'BC3',
|
|
60
|
-
noAlpha: 'BC1'
|
|
61
|
-
}
|
|
62
|
-
}, options.basis), {}, {
|
|
63
|
-
containerFormat: 'ktx2',
|
|
64
|
-
module: 'encoder'
|
|
65
|
-
});
|
|
66
|
-
_context.next = 4;
|
|
67
|
-
return (0, _parseBasis.default)(arrayBuffer, options);
|
|
68
|
-
|
|
69
|
-
case 4:
|
|
70
|
-
return _context.abrupt("return", _context.sent);
|
|
71
|
-
|
|
72
|
-
case 5:
|
|
73
|
-
return _context.abrupt("return", (0, _parseCompressedTexture.parseCompressedTexture)(arrayBuffer));
|
|
74
|
-
|
|
75
|
-
case 6:
|
|
76
|
-
case "end":
|
|
77
|
-
return _context.stop();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}, _callee);
|
|
81
|
-
}));
|
|
82
|
-
|
|
83
|
-
function parse(_x, _x2) {
|
|
84
|
-
return _parse.apply(this, arguments);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return parse;
|
|
88
|
-
}()
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
exports.CompressedTextureLoader = CompressedTextureLoader;
|
|
92
|
-
var _TypecheckCompressedTextureWorkerLoader = CompressedTextureWorkerLoader;
|
|
93
|
-
exports._TypecheckCompressedTextureWorkerLoader = _TypecheckCompressedTextureWorkerLoader;
|
|
94
|
-
var _TypecheckCompressedTextureLoader = CompressedTextureLoader;
|
|
95
|
-
exports._TypecheckCompressedTextureLoader = _TypecheckCompressedTextureLoader;
|
|
96
|
-
//# sourceMappingURL=compressed-texture-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/compressed-texture-loader.ts"],"names":["DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;AASA,IAAMA,8BAA8B,GAAG;AACrC,wBAAsB;AACpBC,IAAAA,WAAW,EAAE,OADO;AAEpBC,IAAAA,QAAQ,EAAE;AAFU;AADe,CAAvC;AAUO,IAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAE,oBADqC;AAE3CC,EAAAA,EAAE,EAAE,oBAFuC;AAG3CC,EAAAA,MAAM,EAAE,UAHmC;AAI3CC,EAAAA,OAAO,EAAEC,gBAJkC;AAK3CC,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,EAAEb;AApBkC,CAAtC;;;AA0BA,IAAMc,uBAAuB,mCAC/BX,6BAD+B;AAElCY,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBH,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,mBACDA,OAAO,CAAC,oBAAD,CAAP,CAA8BX,QAD7B;AAAA;AAAA;AAAA;;AAEHW,cAAAA,OAAO,CAACI,KAAR;AACEC,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,KAAK,EAAE,KADD;AAENC,kBAAAA,OAAO,EAAE;AAFH;AADV,iBAKKP,OAAO,CAACI,KALb;AAMEI,gBAAAA,eAAe,EAAE,MANnB;AAOEf,gBAAAA,MAAM,EAAE;AAPV;AAFG;AAAA,qBAWU,yBAAWU,WAAX,EAAwBH,OAAxB,CAXV;;AAAA;AAAA;;AAAA;AAAA,+CAaE,oDAAuBG,WAAvB,CAbF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAF6B,EAA7B;;;AAoBA,IAAMM,uCAA+C,GAAGnB,6BAAxD;;AACA,IAAMoB,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);\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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports._TypecheckCompressedTextureWriter = exports.CompressedTextureWriter = void 0;
|
|
7
|
-
|
|
8
|
-
var _version = require("./lib/utils/version");
|
|
9
|
-
|
|
10
|
-
var _encodeTexture = require("./lib/encoders/encode-texture");
|
|
11
|
-
|
|
12
|
-
var CompressedTextureWriter = {
|
|
13
|
-
name: 'DDS Texture Container',
|
|
14
|
-
id: 'dds',
|
|
15
|
-
module: 'textures',
|
|
16
|
-
version: _version.VERSION,
|
|
17
|
-
extensions: ['dds'],
|
|
18
|
-
options: {
|
|
19
|
-
texture: {
|
|
20
|
-
format: 'auto',
|
|
21
|
-
compression: 'auto',
|
|
22
|
-
quality: 'auto',
|
|
23
|
-
mipmap: false,
|
|
24
|
-
flipY: false,
|
|
25
|
-
toolFlags: ''
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
encodeURLtoURL: _encodeTexture.encodeImageURLToCompressedTextureURL
|
|
29
|
-
};
|
|
30
|
-
exports.CompressedTextureWriter = CompressedTextureWriter;
|
|
31
|
-
var _TypecheckCompressedTextureWriter = CompressedTextureWriter;
|
|
32
|
-
exports._TypecheckCompressedTextureWriter = _TypecheckCompressedTextureWriter;
|
|
33
|
-
//# sourceMappingURL=compressed-texture-writer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/compressed-texture-writer.ts"],"names":["CompressedTextureWriter","name","id","module","version","VERSION","extensions","options","texture","format","compression","quality","mipmap","flipY","toolFlags","encodeURLtoURL","encodeImageURLToCompressedTextureURL","_TypecheckCompressedTextureWriter"],"mappings":";;;;;;;AACA;;AACA;;AAKO,IAAMA,uBAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,UAH6B;AAIrCC,EAAAA,OAAO,EAAEC,gBAJ4B;AAMrCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANyB;AAQrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE;AACPC,MAAAA,MAAM,EAAE,MADD;AAEPC,MAAAA,WAAW,EAAE,MAFN;AAGPC,MAAAA,OAAO,EAAE,MAHF;AAIPC,MAAAA,MAAM,EAAE,KAJD;AAKPC,MAAAA,KAAK,EAAE,KALA;AAMPC,MAAAA,SAAS,EAAE;AANJ;AADF,GAR4B;AAmBrCC,EAAAA,cAAc,EAAEC;AAnBqB,CAAhC;;AAuBA,IAAMC,iCAAyC,GAAGjB,uBAAlD","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeImageURLToCompressedTextureURL} from './lib/encoders/encode-texture';\n\n/**\n * DDS Texture Container Exporter\n */\nexport const CompressedTextureWriter = {\n name: 'DDS Texture Container',\n id: 'dds',\n module: 'textures',\n version: VERSION,\n\n extensions: ['dds'],\n\n options: {\n texture: {\n format: 'auto',\n compression: 'auto',\n quality: 'auto',\n mipmap: false,\n flipY: false,\n toolFlags: ''\n }\n },\n\n encodeURLtoURL: encodeImageURLToCompressedTextureURL\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWriter: Writer = CompressedTextureWriter;\n"],"file":"compressed-texture-writer.js"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports._TypecheckCrunchLoader = exports.CrunchLoader = void 0;
|
|
7
|
-
|
|
8
|
-
var _version = require("./lib/utils/version");
|
|
9
|
-
|
|
10
|
-
var CrunchLoader = {
|
|
11
|
-
id: 'crunch',
|
|
12
|
-
name: 'Crunch',
|
|
13
|
-
module: 'textures',
|
|
14
|
-
version: _version.VERSION,
|
|
15
|
-
worker: true,
|
|
16
|
-
extensions: ['crn'],
|
|
17
|
-
mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],
|
|
18
|
-
binary: true,
|
|
19
|
-
options: {
|
|
20
|
-
crunch: {
|
|
21
|
-
libraryPath: 'libs/'
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
exports.CrunchLoader = CrunchLoader;
|
|
26
|
-
var _TypecheckCrunchLoader = CrunchLoader;
|
|
27
|
-
exports._TypecheckCrunchLoader = _TypecheckCrunchLoader;
|
|
28
|
-
//# sourceMappingURL=crunch-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/crunch-loader.ts"],"names":["CrunchLoader","id","name","module","version","VERSION","worker","extensions","mimeTypes","binary","options","crunch","libraryPath","_TypecheckCrunchLoader"],"mappings":";;;;;;;AACA;;AAKO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,QADsB;AAE1BC,EAAAA,IAAI,EAAE,QAFoB;AAG1BC,EAAAA,MAAM,EAAE,UAHkB;AAI1BC,EAAAA,OAAO,EAAEC,gBAJiB;AAK1BC,EAAAA,MAAM,EAAE,IALkB;AAM1BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANc;AAO1BC,EAAAA,SAAS,EAAE,CAAC,WAAD,EAAc,aAAd,EAA6B,0BAA7B,CAPe;AAQ1BC,EAAAA,MAAM,EAAE,IARkB;AAS1BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE;AACNC,MAAAA,WAAW,EAAE;AADP;AADD;AATiB,CAArB;;AAmBA,IAAMC,sBAA8B,GAAGb,YAAvC","sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\n\n/**\n * Worker loader for the Crunch compressed texture container format\n */\nexport const CrunchLoader = {\n id: 'crunch',\n name: 'Crunch',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['crn'],\n mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],\n binary: true,\n options: {\n crunch: {\n libraryPath: 'libs/'\n }\n }\n};\n\n// We avoid bundling crunch - rare format, only offer worker loader\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCrunchLoader: Loader = CrunchLoader;\n"],"file":"crunch-loader.js"}
|