|
@@ -269,23 +269,8 @@ function Loader( editor ) {
|
|
|
|
|
|
const contents = event.target.result;
|
|
|
|
|
|
- const { GLTFLoader } = await import( 'three/addons/loaders/GLTFLoader.js' );
|
|
|
- const { DRACOLoader } = await import( 'three/addons/loaders/DRACOLoader.js' );
|
|
|
- const { KTX2Loader } = await import( 'three/addons/loaders/KTX2Loader.js' );
|
|
|
- const { MeshoptDecoder } = await import( 'three/addons/libs/meshopt_decoder.module.js' );
|
|
|
-
|
|
|
- const dracoLoader = new DRACOLoader();
|
|
|
- dracoLoader.setDecoderPath( '../examples/jsm/libs/draco/gltf/' );
|
|
|
-
|
|
|
- const ktx2Loader = new KTX2Loader();
|
|
|
- ktx2Loader.setTranscoderPath( '../examples/jsm/libs/basis/' );
|
|
|
-
|
|
|
- editor.signals.rendererDetectKTX2Support.dispatch( ktx2Loader );
|
|
|
+ const loader = await createGLTFLoader();
|
|
|
|
|
|
- const loader = new GLTFLoader();
|
|
|
- loader.setDRACOLoader( dracoLoader );
|
|
|
- loader.setKTX2Loader( ktx2Loader );
|
|
|
- loader.setMeshoptDecoder( MeshoptDecoder );
|
|
|
loader.parse( contents, '', function ( result ) {
|
|
|
|
|
|
const scene = result.scene;
|
|
@@ -294,7 +279,8 @@ function Loader( editor ) {
|
|
|
scene.animations.push( ...result.animations );
|
|
|
editor.execute( new AddObjectCommand( editor, scene ) );
|
|
|
|
|
|
- dracoLoader.dispose();
|
|
|
+ loader.dracoLoader.dispose();
|
|
|
+ loader.ktx2Loader.dispose();
|
|
|
|
|
|
} );
|
|
|
|
|
@@ -313,23 +299,7 @@ function Loader( editor ) {
|
|
|
|
|
|
const contents = event.target.result;
|
|
|
|
|
|
- const { DRACOLoader } = await import( 'three/addons/loaders/DRACOLoader.js' );
|
|
|
- const { GLTFLoader } = await import( 'three/addons/loaders/GLTFLoader.js' );
|
|
|
- const { KTX2Loader } = await import( 'three/addons/loaders/KTX2Loader.js' );
|
|
|
- const { MeshoptDecoder } = await import( 'three/addons/libs/meshopt_decoder.module.js' );
|
|
|
-
|
|
|
- const dracoLoader = new DRACOLoader();
|
|
|
- dracoLoader.setDecoderPath( '../examples/jsm/libs/draco/gltf/' );
|
|
|
-
|
|
|
- const ktx2Loader = new KTX2Loader();
|
|
|
- ktx2Loader.setTranscoderPath( '../examples/jsm/libs/basis/' );
|
|
|
-
|
|
|
- editor.signals.rendererDetectKTX2Support.dispatch( ktx2Loader );
|
|
|
-
|
|
|
- const loader = new GLTFLoader( manager );
|
|
|
- loader.setDRACOLoader( dracoLoader );
|
|
|
- loader.setKTX2Loader( ktx2Loader );
|
|
|
- loader.setMeshoptDecoder( MeshoptDecoder );
|
|
|
+ const loader = await createGLTFLoader();
|
|
|
|
|
|
loader.parse( contents, '', function ( result ) {
|
|
|
|
|
@@ -339,7 +309,8 @@ function Loader( editor ) {
|
|
|
scene.animations.push( ...result.animations );
|
|
|
editor.execute( new AddObjectCommand( editor, scene ) );
|
|
|
|
|
|
- dracoLoader.dispose();
|
|
|
+ loader.dracoLoader.dispose();
|
|
|
+ loader.ktx2Loader.dispose();
|
|
|
|
|
|
} );
|
|
|
|
|
@@ -970,23 +941,7 @@ function Loader( editor ) {
|
|
|
|
|
|
{
|
|
|
|
|
|
- const { GLTFLoader } = await import( 'three/addons/loaders/GLTFLoader.js' );
|
|
|
- const { DRACOLoader } = await import( 'three/addons/loaders/DRACOLoader.js' );
|
|
|
- const { KTX2Loader } = await import( 'three/addons/loaders/KTX2Loader.js' );
|
|
|
- const { MeshoptDecoder } = await import( 'three/addons/libs/meshopt_decoder.module.js' );
|
|
|
-
|
|
|
- const dracoLoader = new DRACOLoader();
|
|
|
- dracoLoader.setDecoderPath( '../examples/jsm/libs/draco/gltf/' );
|
|
|
-
|
|
|
- const ktx2Loader = new KTX2Loader();
|
|
|
- ktx2Loader.setTranscoderPath( '../examples/jsm/libs/basis/' );
|
|
|
-
|
|
|
- editor.signals.rendererDetectKTX2Support.dispatch( ktx2Loader );
|
|
|
-
|
|
|
- const loader = new GLTFLoader();
|
|
|
- loader.setDRACOLoader( dracoLoader );
|
|
|
- loader.setKTX2Loader( ktx2Loader );
|
|
|
- loader.setMeshoptDecoder( MeshoptDecoder );
|
|
|
+ const loader = await createGLTFLoader();
|
|
|
|
|
|
loader.parse( file.buffer, '', function ( result ) {
|
|
|
|
|
@@ -995,7 +950,8 @@ function Loader( editor ) {
|
|
|
scene.animations.push( ...result.animations );
|
|
|
editor.execute( new AddObjectCommand( editor, scene ) );
|
|
|
|
|
|
- dracoLoader.dispose();
|
|
|
+ loader.dracoLoader.dispose();
|
|
|
+ loader.ktx2Loader.dispose();
|
|
|
|
|
|
} );
|
|
|
|
|
@@ -1007,23 +963,7 @@ function Loader( editor ) {
|
|
|
|
|
|
{
|
|
|
|
|
|
- const { GLTFLoader } = await import( 'three/addons/loaders/GLTFLoader.js' );
|
|
|
- const { DRACOLoader } = await import( 'three/addons/loaders/DRACOLoader.js' );
|
|
|
- const { KTX2Loader } = await import( 'three/addons/loaders/KTX2Loader.js' );
|
|
|
- const { MeshoptDecoder } = await import( 'three/addons/libs/meshopt_decoder.module.js' );
|
|
|
-
|
|
|
- const dracoLoader = new DRACOLoader();
|
|
|
- dracoLoader.setDecoderPath( '../examples/jsm/libs/draco/gltf/' );
|
|
|
-
|
|
|
- const ktx2Loader = new KTX2Loader();
|
|
|
- ktx2Loader.setTranscoderPath( '../examples/jsm/libs/basis/' );
|
|
|
-
|
|
|
- editor.signals.rendererDetectKTX2Support.dispatch( ktx2Loader );
|
|
|
-
|
|
|
- const loader = new GLTFLoader();
|
|
|
- loader.setDRACOLoader( dracoLoader );
|
|
|
- loader.setKTX2Loader( ktx2Loader );
|
|
|
- loader.setMeshoptDecoder( MeshoptDecoder );
|
|
|
+ const loader = await createGLTFLoader();
|
|
|
|
|
|
loader.parse( strFromU8( file ), '', function ( result ) {
|
|
|
|
|
@@ -1032,7 +972,8 @@ function Loader( editor ) {
|
|
|
scene.animations.push( ...result.animations );
|
|
|
editor.execute( new AddObjectCommand( editor, scene ) );
|
|
|
|
|
|
- dracoLoader.dispose();
|
|
|
+ loader.dracoLoader.dispose();
|
|
|
+ loader.ktx2Loader.dispose();
|
|
|
|
|
|
} );
|
|
|
|
|
@@ -1046,6 +987,30 @@ function Loader( editor ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ async function createGLTFLoader() {
|
|
|
+
|
|
|
+ const { GLTFLoader } = await import( 'three/addons/loaders/GLTFLoader.js' );
|
|
|
+ const { DRACOLoader } = await import( 'three/addons/loaders/DRACOLoader.js' );
|
|
|
+ const { KTX2Loader } = await import( 'three/addons/loaders/KTX2Loader.js' );
|
|
|
+ const { MeshoptDecoder } = await import( 'three/addons/libs/meshopt_decoder.module.js' );
|
|
|
+
|
|
|
+ const dracoLoader = new DRACOLoader();
|
|
|
+ dracoLoader.setDecoderPath( '../examples/jsm/libs/draco/gltf/' );
|
|
|
+
|
|
|
+ const ktx2Loader = new KTX2Loader();
|
|
|
+ ktx2Loader.setTranscoderPath( '../examples/jsm/libs/basis/' );
|
|
|
+
|
|
|
+ editor.signals.rendererDetectKTX2Support.dispatch( ktx2Loader );
|
|
|
+
|
|
|
+ const loader = new GLTFLoader();
|
|
|
+ loader.setDRACOLoader( dracoLoader );
|
|
|
+ loader.setKTX2Loader( ktx2Loader );
|
|
|
+ loader.setMeshoptDecoder( MeshoptDecoder );
|
|
|
+
|
|
|
+ return loader;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
export { Loader };
|