@needle-tools/gltf-progressive 4.0.0-alpha.5 → 4.0.0-alpha.7
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 +254 -248
- package/gltf-progressive.min.js +8 -8
- package/gltf-progressive.umd.cjs +8 -8
- package/lib/extension.js +1 -1
- 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 +2 -2
package/lib/loaders.js
CHANGED
|
@@ -29,7 +29,8 @@ if (typeof window !== "undefined") {
|
|
|
29
29
|
}
|
|
30
30
|
})
|
|
31
31
|
.finally(() => {
|
|
32
|
-
|
|
32
|
+
if (preloadLoaders)
|
|
33
|
+
prepareLoaders();
|
|
33
34
|
});
|
|
34
35
|
}
|
|
35
36
|
// #region Loader Configuration
|
|
@@ -79,15 +80,25 @@ export function setKTX2TranscoderLocation(location) {
|
|
|
79
80
|
* @returns The loaders/decoders.
|
|
80
81
|
*/
|
|
81
82
|
export function createLoaders(renderer) {
|
|
82
|
-
|
|
83
|
+
preloadLoaders = true;
|
|
84
|
+
const loaders = prepareLoaders();
|
|
83
85
|
if (renderer) {
|
|
84
|
-
ktx2Loader.detectSupport(renderer);
|
|
86
|
+
loaders.ktx2Loader.detectSupport(renderer);
|
|
85
87
|
}
|
|
86
88
|
else if (renderer !== null)
|
|
87
89
|
console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures might fail");
|
|
88
|
-
return
|
|
90
|
+
return loaders;
|
|
91
|
+
}
|
|
92
|
+
/** Release the shared Draco and KTX2 workers when no engine context uses them. */
|
|
93
|
+
export function disposeLoaders() {
|
|
94
|
+
preloadLoaders = false;
|
|
95
|
+
dracoLoader?.dispose();
|
|
96
|
+
ktx2Loader?.dispose();
|
|
97
|
+
dracoLoader = undefined;
|
|
98
|
+
ktx2Loader = undefined;
|
|
89
99
|
}
|
|
90
100
|
export function addDracoAndKTX2Loaders(loader) {
|
|
101
|
+
const { dracoLoader, ktx2Loader, meshoptDecoder } = prepareLoaders();
|
|
91
102
|
if (!loader.dracoLoader)
|
|
92
103
|
loader.setDRACOLoader(dracoLoader);
|
|
93
104
|
if (!loader.ktx2Loader)
|
|
@@ -97,6 +108,7 @@ export function addDracoAndKTX2Loaders(loader) {
|
|
|
97
108
|
}
|
|
98
109
|
// #region internal
|
|
99
110
|
const $dracoDecoderPath = Symbol("dracoDecoderPath");
|
|
111
|
+
let preloadLoaders = true;
|
|
100
112
|
let dracoLoader;
|
|
101
113
|
let meshoptDecoder;
|
|
102
114
|
let ktx2Loader;
|
|
@@ -119,6 +131,7 @@ function prepareLoaders() {
|
|
|
119
131
|
if (!meshoptDecoder) {
|
|
120
132
|
meshoptDecoder = MeshoptDecoder;
|
|
121
133
|
}
|
|
134
|
+
return { dracoLoader, ktx2Loader, meshoptDecoder };
|
|
122
135
|
}
|
|
123
136
|
const gltfLoaderConfigurations = new WeakMap();
|
|
124
137
|
export function configureLoader(loader, opts) {
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/gltf-progressive",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.7",
|
|
4
4
|
"description": "three.js support for loading glTF or GLB files that contain progressive loading data",
|
|
5
5
|
"homepage": "https://needle.tools",
|
|
6
6
|
"author": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"three": "
|
|
59
|
+
"three": "*"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@needle-tools/engine": "^5.1.0-alpha.6",
|