@@ -269,23 +269,8 @@ function Loader( editor ) {
269269
270270 const contents = event . target . result ;
271271
272- const { GLTFLoader } = await import ( 'three/addons/loaders/GLTFLoader.js' ) ;
273- const { DRACOLoader } = await import ( 'three/addons/loaders/DRACOLoader.js' ) ;
274- const { KTX2Loader } = await import ( 'three/addons/loaders/KTX2Loader.js' ) ;
275- const { MeshoptDecoder } = await import ( 'three/addons/libs/meshopt_decoder.module.js' ) ;
276-
277- const dracoLoader = new DRACOLoader ( ) ;
278- dracoLoader . setDecoderPath ( '../examples/jsm/libs/draco/gltf/' ) ;
279-
280- const ktx2Loader = new KTX2Loader ( ) ;
281- ktx2Loader . setTranscoderPath ( '../examples/jsm/libs/basis/' ) ;
282-
283- editor . signals . rendererDetectKTX2Support . dispatch ( ktx2Loader ) ;
272+ const loader = await createGLTFLoader ( ) ;
284273
285- const loader = new GLTFLoader ( ) ;
286- loader . setDRACOLoader ( dracoLoader ) ;
287- loader . setKTX2Loader ( ktx2Loader ) ;
288- loader . setMeshoptDecoder ( MeshoptDecoder ) ;
289274 loader . parse ( contents , '' , function ( result ) {
290275
291276 const scene = result . scene ;
@@ -294,7 +279,8 @@ function Loader( editor ) {
294279 scene . animations . push ( ...result . animations ) ;
295280 editor . execute ( new AddObjectCommand ( editor , scene ) ) ;
296281
297- dracoLoader . dispose ( ) ;
282+ loader . dracoLoader . dispose ( ) ;
283+ loader . ktx2Loader . dispose ( ) ;
298284
299285 } ) ;
300286
@@ -313,23 +299,7 @@ function Loader( editor ) {
313299
314300 const contents = event . target . result ;
315301
316- const { DRACOLoader } = await import ( 'three/addons/loaders/DRACOLoader.js' ) ;
317- const { GLTFLoader } = await import ( 'three/addons/loaders/GLTFLoader.js' ) ;
318- const { KTX2Loader } = await import ( 'three/addons/loaders/KTX2Loader.js' ) ;
319- const { MeshoptDecoder } = await import ( 'three/addons/libs/meshopt_decoder.module.js' ) ;
320-
321- const dracoLoader = new DRACOLoader ( ) ;
322- dracoLoader . setDecoderPath ( '../examples/jsm/libs/draco/gltf/' ) ;
323-
324- const ktx2Loader = new KTX2Loader ( ) ;
325- ktx2Loader . setTranscoderPath ( '../examples/jsm/libs/basis/' ) ;
326-
327- editor . signals . rendererDetectKTX2Support . dispatch ( ktx2Loader ) ;
328-
329- const loader = new GLTFLoader ( manager ) ;
330- loader . setDRACOLoader ( dracoLoader ) ;
331- loader . setKTX2Loader ( ktx2Loader ) ;
332- loader . setMeshoptDecoder ( MeshoptDecoder ) ;
302+ const loader = await createGLTFLoader ( ) ;
333303
334304 loader . parse ( contents , '' , function ( result ) {
335305
@@ -339,7 +309,8 @@ function Loader( editor ) {
339309 scene . animations . push ( ...result . animations ) ;
340310 editor . execute ( new AddObjectCommand ( editor , scene ) ) ;
341311
342- dracoLoader . dispose ( ) ;
312+ loader . dracoLoader . dispose ( ) ;
313+ loader . ktx2Loader . dispose ( ) ;
343314
344315 } ) ;
345316
@@ -970,23 +941,7 @@ function Loader( editor ) {
970941
971942 {
972943
973- const { GLTFLoader } = await import ( 'three/addons/loaders/GLTFLoader.js' ) ;
974- const { DRACOLoader } = await import ( 'three/addons/loaders/DRACOLoader.js' ) ;
975- const { KTX2Loader } = await import ( 'three/addons/loaders/KTX2Loader.js' ) ;
976- const { MeshoptDecoder } = await import ( 'three/addons/libs/meshopt_decoder.module.js' ) ;
977-
978- const dracoLoader = new DRACOLoader ( ) ;
979- dracoLoader . setDecoderPath ( '../examples/jsm/libs/draco/gltf/' ) ;
980-
981- const ktx2Loader = new KTX2Loader ( ) ;
982- ktx2Loader . setTranscoderPath ( '../examples/jsm/libs/basis/' ) ;
983-
984- editor . signals . rendererDetectKTX2Support . dispatch ( ktx2Loader ) ;
985-
986- const loader = new GLTFLoader ( ) ;
987- loader . setDRACOLoader ( dracoLoader ) ;
988- loader . setKTX2Loader ( ktx2Loader ) ;
989- loader . setMeshoptDecoder ( MeshoptDecoder ) ;
944+ const loader = await createGLTFLoader ( ) ;
990945
991946 loader . parse ( file . buffer , '' , function ( result ) {
992947
@@ -995,7 +950,8 @@ function Loader( editor ) {
995950 scene . animations . push ( ...result . animations ) ;
996951 editor . execute ( new AddObjectCommand ( editor , scene ) ) ;
997952
998- dracoLoader . dispose ( ) ;
953+ loader . dracoLoader . dispose ( ) ;
954+ loader . ktx2Loader . dispose ( ) ;
999955
1000956 } ) ;
1001957
@@ -1007,23 +963,7 @@ function Loader( editor ) {
1007963
1008964 {
1009965
1010- const { GLTFLoader } = await import ( 'three/addons/loaders/GLTFLoader.js' ) ;
1011- const { DRACOLoader } = await import ( 'three/addons/loaders/DRACOLoader.js' ) ;
1012- const { KTX2Loader } = await import ( 'three/addons/loaders/KTX2Loader.js' ) ;
1013- const { MeshoptDecoder } = await import ( 'three/addons/libs/meshopt_decoder.module.js' ) ;
1014-
1015- const dracoLoader = new DRACOLoader ( ) ;
1016- dracoLoader . setDecoderPath ( '../examples/jsm/libs/draco/gltf/' ) ;
1017-
1018- const ktx2Loader = new KTX2Loader ( ) ;
1019- ktx2Loader . setTranscoderPath ( '../examples/jsm/libs/basis/' ) ;
1020-
1021- editor . signals . rendererDetectKTX2Support . dispatch ( ktx2Loader ) ;
1022-
1023- const loader = new GLTFLoader ( ) ;
1024- loader . setDRACOLoader ( dracoLoader ) ;
1025- loader . setKTX2Loader ( ktx2Loader ) ;
1026- loader . setMeshoptDecoder ( MeshoptDecoder ) ;
966+ const loader = await createGLTFLoader ( ) ;
1027967
1028968 loader . parse ( strFromU8 ( file ) , '' , function ( result ) {
1029969
@@ -1032,7 +972,8 @@ function Loader( editor ) {
1032972 scene . animations . push ( ...result . animations ) ;
1033973 editor . execute ( new AddObjectCommand ( editor , scene ) ) ;
1034974
1035- dracoLoader . dispose ( ) ;
975+ loader . dracoLoader . dispose ( ) ;
976+ loader . ktx2Loader . dispose ( ) ;
1036977
1037978 } ) ;
1038979
@@ -1046,6 +987,30 @@ function Loader( editor ) {
1046987
1047988 }
1048989
990+ async function createGLTFLoader ( ) {
991+
992+ const { GLTFLoader } = await import ( 'three/addons/loaders/GLTFLoader.js' ) ;
993+ const { DRACOLoader } = await import ( 'three/addons/loaders/DRACOLoader.js' ) ;
994+ const { KTX2Loader } = await import ( 'three/addons/loaders/KTX2Loader.js' ) ;
995+ const { MeshoptDecoder } = await import ( 'three/addons/libs/meshopt_decoder.module.js' ) ;
996+
997+ const dracoLoader = new DRACOLoader ( ) ;
998+ dracoLoader . setDecoderPath ( '../examples/jsm/libs/draco/gltf/' ) ;
999+
1000+ const ktx2Loader = new KTX2Loader ( ) ;
1001+ ktx2Loader . setTranscoderPath ( '../examples/jsm/libs/basis/' ) ;
1002+
1003+ editor . signals . rendererDetectKTX2Support . dispatch ( ktx2Loader ) ;
1004+
1005+ const loader = new GLTFLoader ( ) ;
1006+ loader . setDRACOLoader ( dracoLoader ) ;
1007+ loader . setKTX2Loader ( ktx2Loader ) ;
1008+ loader . setMeshoptDecoder ( MeshoptDecoder ) ;
1009+
1010+ return loader ;
1011+
1012+ }
1013+
10491014}
10501015
10511016export { Loader } ;
0 commit comments