@needle-tools/gltf-progressive 3.6.1 → 3.6.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/CHANGELOG.md +3 -0
- package/gltf-progressive.js +188 -181
- package/gltf-progressive.min.js +8 -8
- package/gltf-progressive.umd.cjs +8 -8
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/loaders.d.ts +2 -0
- package/lib/loaders.js +17 -4
- package/lib/version.js +1 -1
- package/package.json +1 -1
package/lib/loaders.js
CHANGED
|
@@ -40,7 +40,8 @@ fetch(_remoteDracoDecoderUrl, {
|
|
|
40
40
|
}
|
|
41
41
|
})
|
|
42
42
|
.finally(() => {
|
|
43
|
-
|
|
43
|
+
if (preloadLoaders)
|
|
44
|
+
prepareLoaders();
|
|
44
45
|
});
|
|
45
46
|
// #region Loader Configuration
|
|
46
47
|
/**
|
|
@@ -89,15 +90,25 @@ export function setKTX2TranscoderLocation(location) {
|
|
|
89
90
|
* @returns The loaders/decoders.
|
|
90
91
|
*/
|
|
91
92
|
export function createLoaders(renderer) {
|
|
92
|
-
|
|
93
|
+
preloadLoaders = true;
|
|
94
|
+
const loaders = prepareLoaders();
|
|
93
95
|
if (renderer) {
|
|
94
|
-
ktx2Loader.detectSupport(renderer);
|
|
96
|
+
loaders.ktx2Loader.detectSupport(renderer);
|
|
95
97
|
}
|
|
96
98
|
else if (renderer !== null)
|
|
97
99
|
console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures might fail");
|
|
98
|
-
return
|
|
100
|
+
return loaders;
|
|
101
|
+
}
|
|
102
|
+
/** Release the shared Draco and KTX2 workers when no engine context uses them. */
|
|
103
|
+
export function disposeLoaders() {
|
|
104
|
+
preloadLoaders = false;
|
|
105
|
+
dracoLoader?.dispose();
|
|
106
|
+
ktx2Loader?.dispose();
|
|
107
|
+
dracoLoader = undefined;
|
|
108
|
+
ktx2Loader = undefined;
|
|
99
109
|
}
|
|
100
110
|
export function addDracoAndKTX2Loaders(loader) {
|
|
111
|
+
const { dracoLoader, ktx2Loader, meshoptDecoder } = prepareLoaders();
|
|
101
112
|
if (!loader.dracoLoader)
|
|
102
113
|
loader.setDRACOLoader(dracoLoader);
|
|
103
114
|
if (!loader.ktx2Loader)
|
|
@@ -107,6 +118,7 @@ export function addDracoAndKTX2Loaders(loader) {
|
|
|
107
118
|
}
|
|
108
119
|
// #region internal
|
|
109
120
|
const $dracoDecoderPath = Symbol("dracoDecoderPath");
|
|
121
|
+
let preloadLoaders = true;
|
|
110
122
|
let dracoLoader;
|
|
111
123
|
let meshoptDecoder;
|
|
112
124
|
let ktx2Loader;
|
|
@@ -127,6 +139,7 @@ function prepareLoaders() {
|
|
|
127
139
|
if (!meshoptDecoder) {
|
|
128
140
|
meshoptDecoder = MeshoptDecoder;
|
|
129
141
|
}
|
|
142
|
+
return { dracoLoader, ktx2Loader, meshoptDecoder };
|
|
130
143
|
}
|
|
131
144
|
const gltfLoaderConfigurations = new WeakMap();
|
|
132
145
|
export function configureLoader(loader, opts) {
|
package/lib/version.js
CHANGED
package/package.json
CHANGED