@galacean/engine-loader 1.1.0-beta.0 → 1.1.0-beta.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.
@@ -2430,20 +2430,56 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2430
2430
  }();
2431
2431
 
2432
2432
  /** @internal */ function TranscodeWorkerCode$1() {
2433
- var concat = function concat(arrays) {
2434
- if (arrays.length === 1) return arrays[0];
2435
- var totalByteLength = 0;
2436
- for(var i = 0; i < arrays.length; i++){
2437
- totalByteLength += arrays[i].byteLength;
2433
+ self.onmessage = function onmessage(event) {
2434
+ var message = event.data;
2435
+ switch(message.type){
2436
+ case "init":
2437
+ init(message.transcoderWasm).then(function() {
2438
+ self.postMessage("init-completed");
2439
+ }).catch(function(e) {
2440
+ return self.postMessage({
2441
+ error: e
2442
+ });
2443
+ });
2444
+ break;
2445
+ case "transcode":
2446
+ init().then(function(KTX2File) {
2447
+ var result = transcode(message.buffer, message.format, KTX2File);
2448
+ // @ts-ignore
2449
+ result.type = "transcoded";
2450
+ self.postMessage(result);
2451
+ }).catch(function(e) {
2452
+ return self.postMessage({
2453
+ error: e
2454
+ });
2455
+ });
2456
+ break;
2438
2457
  }
2439
- var result = new Uint8Array(totalByteLength);
2440
- var byteOffset = 0;
2441
- for(var i1 = 0; i1 < arrays.length; i1++){
2442
- result.set(arrays[i1], byteOffset);
2443
- byteOffset += arrays[i1].byteLength;
2458
+ };
2459
+ }
2460
+ var _init = function init() {
2461
+ var initPromise;
2462
+ return function init(wasmBinary) {
2463
+ if (!initPromise) {
2464
+ initPromise = new Promise(function(resolve, reject) {
2465
+ var BasisModule = {
2466
+ wasmBinary: wasmBinary,
2467
+ onRuntimeInitialized: function() {
2468
+ return resolve(BasisModule);
2469
+ },
2470
+ onAbort: reject
2471
+ };
2472
+ self["BASIS"](BasisModule);
2473
+ }).then(function(BasisModule) {
2474
+ BasisModule.initializeBasis();
2475
+ return BasisModule.KTX2File;
2476
+ });
2444
2477
  }
2445
- return result;
2478
+ return initPromise;
2446
2479
  };
2480
+ };
2481
+ var init = _init();
2482
+ function transcode(buffer, targetFormat, KTX2File) {
2447
2483
  var getTranscodeFormatFromTarget = function getTranscodeFormatFromTarget(target, hasAlpha) {
2448
2484
  switch(target){
2449
2485
  case 2:
@@ -2460,76 +2496,24 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2460
2496
  return 7;
2461
2497
  }
2462
2498
  };
2463
- var init = function init(wasmBinary) {
2464
- transcodePromise = new Promise(function(resolve, reject) {
2465
- var BasisModule = {
2466
- wasmBinary: wasmBinary,
2467
- onRuntimeInitialized: function() {
2468
- return resolve(BasisModule);
2469
- },
2470
- onAbort: reject
2471
- };
2472
- self["BASIS"](BasisModule);
2473
- }).then(function(BasisModule) {
2474
- BasisModule.initializeBasis();
2475
- return BasisModule.KTX2File;
2476
- });
2477
- return transcodePromise;
2478
- };
2479
- var transcode = function transcode(buffer, targetFormat, KTX2File) {
2480
- var ktx2File = new KTX2File(new Uint8Array(buffer));
2481
- function cleanup() {
2482
- ktx2File.close();
2483
- ktx2File.delete();
2484
- }
2485
- if (!ktx2File.isValid()) {
2486
- cleanup();
2487
- throw new Error("Invalid or unsupported .ktx2 file");
2488
- }
2489
- var width = ktx2File.getWidth();
2490
- var height = ktx2File.getHeight();
2491
- var layerCount = ktx2File.getLayers() || 1;
2492
- var levelCount = ktx2File.getLevels();
2493
- var hasAlpha = ktx2File.getHasAlpha();
2494
- var faceCount = ktx2File.getFaces();
2495
- var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2496
- var faces = new Array(faceCount);
2497
- for(var face = 0; face < faceCount; face++){
2498
- var mipmaps = new Array(levelCount);
2499
- for(var mip = 0; mip < levelCount; mip++){
2500
- var layerMips = new Array(layerCount);
2501
- var mipWidth = void 0, mipHeight = void 0;
2502
- for(var layer = 0; layer < layerCount; layer++){
2503
- var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2504
- mipWidth = levelInfo.origWidth;
2505
- mipHeight = levelInfo.origHeight;
2506
- var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2507
- var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2508
- if (!status) {
2509
- cleanup();
2510
- throw new Error("transcodeImage failed.");
2511
- }
2512
- layerMips[layer] = dst;
2513
- }
2514
- mipmaps[mip] = {
2515
- data: concat(layerMips),
2516
- width: mipWidth,
2517
- height: mipHeight
2518
- };
2519
- }
2520
- faces[face] = mipmaps;
2499
+ var concat = function concat(arrays) {
2500
+ if (arrays.length === 1) return arrays[0];
2501
+ var totalByteLength = 0;
2502
+ for(var i = 0; i < arrays.length; i++){
2503
+ totalByteLength += arrays[i].byteLength;
2521
2504
  }
2522
- cleanup();
2523
- return {
2524
- faces: faces,
2525
- width: width,
2526
- height: height,
2527
- hasAlpha: hasAlpha,
2528
- faceCount: faceCount,
2529
- format: format
2530
- };
2505
+ var result = new Uint8Array(totalByteLength);
2506
+ var byteOffset = 0;
2507
+ for(var i1 = 0; i1 < arrays.length; i1++){
2508
+ result.set(arrays[i1], byteOffset);
2509
+ byteOffset += arrays[i1].byteLength;
2510
+ }
2511
+ return result;
2512
+ };
2513
+ var cleanup = function cleanup() {
2514
+ ktx2File.close();
2515
+ ktx2File.delete();
2531
2516
  };
2532
- var transcodePromise;
2533
2517
  var BasisFormat;
2534
2518
  (function(BasisFormat) {
2535
2519
  BasisFormat[BasisFormat["ETC1"] = 0] = "ETC1";
@@ -2555,31 +2539,52 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2555
2539
  TargetFormat[TargetFormat["RG8"] = 6] = "RG8";
2556
2540
  TargetFormat[TargetFormat["RGBA8"] = 7] = "RGBA8";
2557
2541
  })(TargetFormat || (TargetFormat = {}));
2558
- self.onmessage = function onmessage(event) {
2559
- var message = event.data;
2560
- switch(message.type){
2561
- case "init":
2562
- init(message.transcoderWasm).then(function() {
2563
- return self.postMessage("init-completed");
2564
- }).catch(function(e) {
2565
- return self.postMessage({
2566
- error: e
2567
- });
2568
- });
2569
- break;
2570
- case "transcode":
2571
- transcodePromise.then(function(KTX2File) {
2572
- var result = transcode(message.buffer, message.format, KTX2File);
2573
- // @ts-ignore
2574
- result.type = "transcoded";
2575
- self.postMessage(result);
2576
- }).catch(function(e) {
2577
- return self.postMessage({
2578
- error: e
2579
- });
2580
- });
2581
- break;
2542
+ var ktx2File = new KTX2File(new Uint8Array(buffer));
2543
+ if (!ktx2File.isValid()) {
2544
+ cleanup();
2545
+ throw new Error("Invalid or unsupported .ktx2 file");
2546
+ }
2547
+ var width = ktx2File.getWidth();
2548
+ var height = ktx2File.getHeight();
2549
+ var layerCount = ktx2File.getLayers() || 1;
2550
+ var levelCount = ktx2File.getLevels();
2551
+ var hasAlpha = ktx2File.getHasAlpha();
2552
+ var faceCount = ktx2File.getFaces();
2553
+ var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2554
+ var faces = new Array(faceCount);
2555
+ for(var face = 0; face < faceCount; face++){
2556
+ var mipmaps = new Array(levelCount);
2557
+ for(var mip = 0; mip < levelCount; mip++){
2558
+ var layerMips = new Array(layerCount);
2559
+ var mipWidth = void 0, mipHeight = void 0;
2560
+ for(var layer = 0; layer < layerCount; layer++){
2561
+ var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2562
+ mipWidth = levelInfo.origWidth;
2563
+ mipHeight = levelInfo.origHeight;
2564
+ var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2565
+ var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2566
+ if (!status) {
2567
+ cleanup();
2568
+ throw new Error("transcodeImage failed.");
2569
+ }
2570
+ layerMips[layer] = dst;
2571
+ }
2572
+ mipmaps[mip] = {
2573
+ data: concat(layerMips),
2574
+ width: mipWidth,
2575
+ height: mipHeight
2576
+ };
2582
2577
  }
2578
+ faces[face] = mipmaps;
2579
+ }
2580
+ cleanup();
2581
+ return {
2582
+ faces: faces,
2583
+ width: width,
2584
+ height: height,
2585
+ hasAlpha: hasAlpha,
2586
+ faceCount: faceCount,
2587
+ format: format
2583
2588
  };
2584
2589
  }
2585
2590
 
@@ -2600,23 +2605,49 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2600
2605
  })
2601
2606
  ]).then(function(param) {
2602
2607
  var jsCode = param[0], wasmBuffer = param[1];
2603
- var funcCode = TranscodeWorkerCode$1.toString();
2604
- var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
2605
- var workerCode = "\n " + jsCode + "\n " + transcodeString + "\n ";
2606
- var workerURL = engineMiniprogramAdapter.URL.createObjectURL(new engineMiniprogramAdapter.Blob([
2607
- workerCode
2608
- ], {
2609
- type: "application/javascript"
2610
- }));
2611
- return _this._createTranscodePool(workerURL, wasmBuffer);
2608
+ if (_this.workerLimitCount === 0) {
2609
+ return new Promise(function(resolve, reject) {
2610
+ var scriptDom = engineMiniprogramAdapter.document.createElement("script");
2611
+ scriptDom.src = engineMiniprogramAdapter.URL.createObjectURL(new engineMiniprogramAdapter.Blob([
2612
+ jsCode
2613
+ ], {
2614
+ type: "application/javascript"
2615
+ }));
2616
+ engineMiniprogramAdapter.document.body.appendChild(scriptDom);
2617
+ scriptDom.onload = function() {
2618
+ init(wasmBuffer).then(function() {
2619
+ resolve(null);
2620
+ });
2621
+ };
2622
+ scriptDom.onerror = function() {
2623
+ reject();
2624
+ };
2625
+ });
2626
+ } else {
2627
+ var funcCode = TranscodeWorkerCode$1.toString();
2628
+ var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
2629
+ var workerCode = "\n " + jsCode + "\n var init = (" + _init.toString() + ")();\n " + transcode.toString() + "\n " + transcodeString + "\n ";
2630
+ var workerURL = engineMiniprogramAdapter.URL.createObjectURL(new engineMiniprogramAdapter.Blob([
2631
+ workerCode
2632
+ ], {
2633
+ type: "application/javascript"
2634
+ }));
2635
+ return _this._createTranscodePool(workerURL, wasmBuffer);
2636
+ }
2612
2637
  });
2613
2638
  };
2614
- _proto.transcode = function transcode(buffer, format) {
2615
- return this._transcodeWorkerPool.postMessage({
2616
- buffer: buffer,
2617
- format: format,
2618
- type: "transcode"
2619
- });
2639
+ _proto.transcode = function transcode1(buffer, format) {
2640
+ if (this.workerLimitCount === 0) {
2641
+ return init().then(function(KTX2File) {
2642
+ return transcode(buffer, format, KTX2File);
2643
+ });
2644
+ } else {
2645
+ return this._transcodeWorkerPool.postMessage({
2646
+ buffer: buffer,
2647
+ format: format,
2648
+ type: "transcode"
2649
+ });
2650
+ }
2620
2651
  };
2621
2652
  return BinomialLLCTranscoder;
2622
2653
  }(AbstractTranscoder);
@@ -2844,7 +2875,7 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2844
2875
  _proto.initialize = function initialize(engine, configuration) {
2845
2876
  if (configuration.ktx2Loader) {
2846
2877
  var options = configuration.ktx2Loader;
2847
- if (this._isKhronosSupported(options.priorityFormats, engine)) {
2878
+ if (this._isKhronosSupported(options.priorityFormats, engine) && options.workerCount !== 0) {
2848
2879
  return exports.KTX2Loader._getKhronosTranscoder(options.workerCount).init();
2849
2880
  } else {
2850
2881
  return exports.KTX2Loader._getBinomialLLCTranscoder(options.workerCount).init();
package/dist/module.js CHANGED
@@ -2425,20 +2425,56 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2425
2425
  }();
2426
2426
 
2427
2427
  /** @internal */ function TranscodeWorkerCode$1() {
2428
- var concat = function concat(arrays) {
2429
- if (arrays.length === 1) return arrays[0];
2430
- var totalByteLength = 0;
2431
- for(var i = 0; i < arrays.length; i++){
2432
- totalByteLength += arrays[i].byteLength;
2428
+ self.onmessage = function onmessage(event) {
2429
+ var message = event.data;
2430
+ switch(message.type){
2431
+ case "init":
2432
+ init(message.transcoderWasm).then(function() {
2433
+ self.postMessage("init-completed");
2434
+ }).catch(function(e) {
2435
+ return self.postMessage({
2436
+ error: e
2437
+ });
2438
+ });
2439
+ break;
2440
+ case "transcode":
2441
+ init().then(function(KTX2File) {
2442
+ var result = transcode(message.buffer, message.format, KTX2File);
2443
+ // @ts-ignore
2444
+ result.type = "transcoded";
2445
+ self.postMessage(result);
2446
+ }).catch(function(e) {
2447
+ return self.postMessage({
2448
+ error: e
2449
+ });
2450
+ });
2451
+ break;
2433
2452
  }
2434
- var result = new Uint8Array(totalByteLength);
2435
- var byteOffset = 0;
2436
- for(var i1 = 0; i1 < arrays.length; i1++){
2437
- result.set(arrays[i1], byteOffset);
2438
- byteOffset += arrays[i1].byteLength;
2453
+ };
2454
+ }
2455
+ var _init = function init() {
2456
+ var initPromise;
2457
+ return function init(wasmBinary) {
2458
+ if (!initPromise) {
2459
+ initPromise = new Promise(function(resolve, reject) {
2460
+ var BasisModule = {
2461
+ wasmBinary: wasmBinary,
2462
+ onRuntimeInitialized: function() {
2463
+ return resolve(BasisModule);
2464
+ },
2465
+ onAbort: reject
2466
+ };
2467
+ self["BASIS"](BasisModule);
2468
+ }).then(function(BasisModule) {
2469
+ BasisModule.initializeBasis();
2470
+ return BasisModule.KTX2File;
2471
+ });
2439
2472
  }
2440
- return result;
2473
+ return initPromise;
2441
2474
  };
2475
+ };
2476
+ var init = _init();
2477
+ function transcode(buffer, targetFormat, KTX2File) {
2442
2478
  var getTranscodeFormatFromTarget = function getTranscodeFormatFromTarget(target, hasAlpha) {
2443
2479
  switch(target){
2444
2480
  case 2:
@@ -2455,76 +2491,24 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2455
2491
  return 7;
2456
2492
  }
2457
2493
  };
2458
- var init = function init(wasmBinary) {
2459
- transcodePromise = new Promise(function(resolve, reject) {
2460
- var BasisModule = {
2461
- wasmBinary: wasmBinary,
2462
- onRuntimeInitialized: function() {
2463
- return resolve(BasisModule);
2464
- },
2465
- onAbort: reject
2466
- };
2467
- self["BASIS"](BasisModule);
2468
- }).then(function(BasisModule) {
2469
- BasisModule.initializeBasis();
2470
- return BasisModule.KTX2File;
2471
- });
2472
- return transcodePromise;
2473
- };
2474
- var transcode = function transcode(buffer, targetFormat, KTX2File) {
2475
- var ktx2File = new KTX2File(new Uint8Array(buffer));
2476
- function cleanup() {
2477
- ktx2File.close();
2478
- ktx2File.delete();
2479
- }
2480
- if (!ktx2File.isValid()) {
2481
- cleanup();
2482
- throw new Error("Invalid or unsupported .ktx2 file");
2483
- }
2484
- var width = ktx2File.getWidth();
2485
- var height = ktx2File.getHeight();
2486
- var layerCount = ktx2File.getLayers() || 1;
2487
- var levelCount = ktx2File.getLevels();
2488
- var hasAlpha = ktx2File.getHasAlpha();
2489
- var faceCount = ktx2File.getFaces();
2490
- var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2491
- var faces = new Array(faceCount);
2492
- for(var face = 0; face < faceCount; face++){
2493
- var mipmaps = new Array(levelCount);
2494
- for(var mip = 0; mip < levelCount; mip++){
2495
- var layerMips = new Array(layerCount);
2496
- var mipWidth = void 0, mipHeight = void 0;
2497
- for(var layer = 0; layer < layerCount; layer++){
2498
- var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2499
- mipWidth = levelInfo.origWidth;
2500
- mipHeight = levelInfo.origHeight;
2501
- var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2502
- var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2503
- if (!status) {
2504
- cleanup();
2505
- throw new Error("transcodeImage failed.");
2506
- }
2507
- layerMips[layer] = dst;
2508
- }
2509
- mipmaps[mip] = {
2510
- data: concat(layerMips),
2511
- width: mipWidth,
2512
- height: mipHeight
2513
- };
2514
- }
2515
- faces[face] = mipmaps;
2494
+ var concat = function concat(arrays) {
2495
+ if (arrays.length === 1) return arrays[0];
2496
+ var totalByteLength = 0;
2497
+ for(var i = 0; i < arrays.length; i++){
2498
+ totalByteLength += arrays[i].byteLength;
2516
2499
  }
2517
- cleanup();
2518
- return {
2519
- faces: faces,
2520
- width: width,
2521
- height: height,
2522
- hasAlpha: hasAlpha,
2523
- faceCount: faceCount,
2524
- format: format
2525
- };
2500
+ var result = new Uint8Array(totalByteLength);
2501
+ var byteOffset = 0;
2502
+ for(var i1 = 0; i1 < arrays.length; i1++){
2503
+ result.set(arrays[i1], byteOffset);
2504
+ byteOffset += arrays[i1].byteLength;
2505
+ }
2506
+ return result;
2507
+ };
2508
+ var cleanup = function cleanup() {
2509
+ ktx2File.close();
2510
+ ktx2File.delete();
2526
2511
  };
2527
- var transcodePromise;
2528
2512
  var BasisFormat;
2529
2513
  (function(BasisFormat) {
2530
2514
  BasisFormat[BasisFormat["ETC1"] = 0] = "ETC1";
@@ -2550,31 +2534,52 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2550
2534
  TargetFormat[TargetFormat["RG8"] = 6] = "RG8";
2551
2535
  TargetFormat[TargetFormat["RGBA8"] = 7] = "RGBA8";
2552
2536
  })(TargetFormat || (TargetFormat = {}));
2553
- self.onmessage = function onmessage(event) {
2554
- var message = event.data;
2555
- switch(message.type){
2556
- case "init":
2557
- init(message.transcoderWasm).then(function() {
2558
- return self.postMessage("init-completed");
2559
- }).catch(function(e) {
2560
- return self.postMessage({
2561
- error: e
2562
- });
2563
- });
2564
- break;
2565
- case "transcode":
2566
- transcodePromise.then(function(KTX2File) {
2567
- var result = transcode(message.buffer, message.format, KTX2File);
2568
- // @ts-ignore
2569
- result.type = "transcoded";
2570
- self.postMessage(result);
2571
- }).catch(function(e) {
2572
- return self.postMessage({
2573
- error: e
2574
- });
2575
- });
2576
- break;
2537
+ var ktx2File = new KTX2File(new Uint8Array(buffer));
2538
+ if (!ktx2File.isValid()) {
2539
+ cleanup();
2540
+ throw new Error("Invalid or unsupported .ktx2 file");
2541
+ }
2542
+ var width = ktx2File.getWidth();
2543
+ var height = ktx2File.getHeight();
2544
+ var layerCount = ktx2File.getLayers() || 1;
2545
+ var levelCount = ktx2File.getLevels();
2546
+ var hasAlpha = ktx2File.getHasAlpha();
2547
+ var faceCount = ktx2File.getFaces();
2548
+ var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2549
+ var faces = new Array(faceCount);
2550
+ for(var face = 0; face < faceCount; face++){
2551
+ var mipmaps = new Array(levelCount);
2552
+ for(var mip = 0; mip < levelCount; mip++){
2553
+ var layerMips = new Array(layerCount);
2554
+ var mipWidth = void 0, mipHeight = void 0;
2555
+ for(var layer = 0; layer < layerCount; layer++){
2556
+ var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2557
+ mipWidth = levelInfo.origWidth;
2558
+ mipHeight = levelInfo.origHeight;
2559
+ var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2560
+ var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2561
+ if (!status) {
2562
+ cleanup();
2563
+ throw new Error("transcodeImage failed.");
2564
+ }
2565
+ layerMips[layer] = dst;
2566
+ }
2567
+ mipmaps[mip] = {
2568
+ data: concat(layerMips),
2569
+ width: mipWidth,
2570
+ height: mipHeight
2571
+ };
2577
2572
  }
2573
+ faces[face] = mipmaps;
2574
+ }
2575
+ cleanup();
2576
+ return {
2577
+ faces: faces,
2578
+ width: width,
2579
+ height: height,
2580
+ hasAlpha: hasAlpha,
2581
+ faceCount: faceCount,
2582
+ format: format
2578
2583
  };
2579
2584
  }
2580
2585
 
@@ -2595,23 +2600,49 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
2595
2600
  })
2596
2601
  ]).then(function(param) {
2597
2602
  var jsCode = param[0], wasmBuffer = param[1];
2598
- var funcCode = TranscodeWorkerCode$1.toString();
2599
- var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
2600
- var workerCode = "\n " + jsCode + "\n " + transcodeString + "\n ";
2601
- var workerURL = URL.createObjectURL(new Blob([
2602
- workerCode
2603
- ], {
2604
- type: "application/javascript"
2605
- }));
2606
- return _this._createTranscodePool(workerURL, wasmBuffer);
2603
+ if (_this.workerLimitCount === 0) {
2604
+ return new Promise(function(resolve, reject) {
2605
+ var scriptDom = document.createElement("script");
2606
+ scriptDom.src = URL.createObjectURL(new Blob([
2607
+ jsCode
2608
+ ], {
2609
+ type: "application/javascript"
2610
+ }));
2611
+ document.body.appendChild(scriptDom);
2612
+ scriptDom.onload = function() {
2613
+ init(wasmBuffer).then(function() {
2614
+ resolve(null);
2615
+ });
2616
+ };
2617
+ scriptDom.onerror = function() {
2618
+ reject();
2619
+ };
2620
+ });
2621
+ } else {
2622
+ var funcCode = TranscodeWorkerCode$1.toString();
2623
+ var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
2624
+ var workerCode = "\n " + jsCode + "\n var init = (" + _init.toString() + ")();\n " + transcode.toString() + "\n " + transcodeString + "\n ";
2625
+ var workerURL = URL.createObjectURL(new Blob([
2626
+ workerCode
2627
+ ], {
2628
+ type: "application/javascript"
2629
+ }));
2630
+ return _this._createTranscodePool(workerURL, wasmBuffer);
2631
+ }
2607
2632
  });
2608
2633
  };
2609
- _proto.transcode = function transcode(buffer, format) {
2610
- return this._transcodeWorkerPool.postMessage({
2611
- buffer: buffer,
2612
- format: format,
2613
- type: "transcode"
2614
- });
2634
+ _proto.transcode = function transcode1(buffer, format) {
2635
+ if (this.workerLimitCount === 0) {
2636
+ return init().then(function(KTX2File) {
2637
+ return transcode(buffer, format, KTX2File);
2638
+ });
2639
+ } else {
2640
+ return this._transcodeWorkerPool.postMessage({
2641
+ buffer: buffer,
2642
+ format: format,
2643
+ type: "transcode"
2644
+ });
2645
+ }
2615
2646
  };
2616
2647
  return BinomialLLCTranscoder;
2617
2648
  }(AbstractTranscoder);
@@ -2839,7 +2870,7 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2839
2870
  _proto.initialize = function initialize(engine, configuration) {
2840
2871
  if (configuration.ktx2Loader) {
2841
2872
  var options = configuration.ktx2Loader;
2842
- if (this._isKhronosSupported(options.priorityFormats, engine)) {
2873
+ if (this._isKhronosSupported(options.priorityFormats, engine) && options.workerCount !== 0) {
2843
2874
  return KTX2Loader._getKhronosTranscoder(options.workerCount).init();
2844
2875
  } else {
2845
2876
  return KTX2Loader._getBinomialLLCTranscoder(options.workerCount).init();