@galacean/engine 1.3.16 → 1.3.17

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/dist/browser.js CHANGED
@@ -5619,6 +5619,11 @@
5619
5619
  if (Utils.isBase64Url(relativeUrl)) {
5620
5620
  return relativeUrl;
5621
5621
  }
5622
+ if (!/^https?:/.test(baseUrl)) {
5623
+ var fileSchema = "files://";
5624
+ baseUrl = fileSchema + baseUrl;
5625
+ return new URL(relativeUrl, baseUrl).href.substring(fileSchema.length);
5626
+ }
5622
5627
  return relativeUrl ? new URL(relativeUrl, baseUrl).href : baseUrl;
5623
5628
  };
5624
5629
  /**
@@ -23799,6 +23804,7 @@
23799
23804
  AssetType[/** 2D Texture. */ "Texture2D"] = "Texture2D";
23800
23805
  AssetType[/** Cube Texture. */ "TextureCube"] = "TextureCube";
23801
23806
  AssetType[/** Material. */ "Material"] = "Material";
23807
+ AssetType[/** Shader. */ "Shader"] = "Shader";
23802
23808
  AssetType[/** Mesh. */ "Mesh"] = "Mesh";
23803
23809
  AssetType[/** AnimationClip. */ "AnimationClip"] = "AnimationClip";
23804
23810
  AssetType[/** AnimatorController. */ "AnimatorController"] = "AnimatorController";
@@ -24286,13 +24292,15 @@
24286
24292
  /**
24287
24293
  * @internal
24288
24294
  */ _proto._onSubAssetSuccess = function _onSubAssetSuccess(assetBaseURL, assetSubPath, value) {
24289
- var _this__subAssetPromiseCallbacks_assetBaseURL;
24290
- var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
24295
+ var _this__subAssetPromiseCallbacks_remoteAssetBaseURL;
24296
+ var _this__virtualPathMap_assetBaseURL;
24297
+ var remoteAssetBaseURL = (_this__virtualPathMap_assetBaseURL = this._virtualPathMap[assetBaseURL]) != null ? _this__virtualPathMap_assetBaseURL : assetBaseURL;
24298
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_remoteAssetBaseURL = this._subAssetPromiseCallbacks[remoteAssetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_remoteAssetBaseURL[assetSubPath];
24291
24299
  if (subPromiseCallback) {
24292
24300
  subPromiseCallback.resolve(value);
24293
24301
  } else {
24294
- var _this__subAssetPromiseCallbacks, _assetBaseURL;
24295
- ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
24302
+ var _this__subAssetPromiseCallbacks, _remoteAssetBaseURL;
24303
+ ((_this__subAssetPromiseCallbacks = this._subAssetPromiseCallbacks)[_remoteAssetBaseURL = remoteAssetBaseURL] || (_this__subAssetPromiseCallbacks[_remoteAssetBaseURL] = {}))[assetSubPath] = {
24296
24304
  resolvedValue: value
24297
24305
  };
24298
24306
  }
@@ -24413,33 +24421,34 @@
24413
24421
  var item = this._assignDefaultOptions(typeof itemOrURL === "string" ? {
24414
24422
  url: itemOrURL
24415
24423
  } : itemOrURL);
24416
- // Check url mapping
24417
- var itemURL = item.url;
24418
- var url = this._virtualPathMap[itemURL] ? this._virtualPathMap[itemURL] : itemURL;
24424
+ var url = item.url;
24419
24425
  // Not absolute and base url is set
24420
24426
  if (!Utils.isAbsoluteUrl(url) && this.baseUrl) url = Utils.resolveAbsoluteUrl(this.baseUrl, url);
24421
24427
  // Parse url
24422
24428
  var _this__parseURL = this._parseURL(url), assetBaseURL = _this__parseURL.assetBaseURL, queryPath = _this__parseURL.queryPath;
24423
24429
  var paths = queryPath ? this._parseQueryPath(queryPath) : [];
24430
+ var _this__virtualPathMap_assetBaseURL;
24431
+ // Get remote asset base url
24432
+ var remoteAssetBaseURL = (_this__virtualPathMap_assetBaseURL = this._virtualPathMap[assetBaseURL]) != null ? _this__virtualPathMap_assetBaseURL : assetBaseURL;
24424
24433
  // Check cache
24425
- var cacheObject = this._assetUrlPool[assetBaseURL];
24434
+ var cacheObject = this._assetUrlPool[remoteAssetBaseURL];
24426
24435
  if (cacheObject) {
24427
24436
  return new AssetPromise(function(resolve) {
24428
24437
  resolve(_this._getResolveResource(cacheObject, paths));
24429
24438
  });
24430
24439
  }
24431
24440
  // Get asset url
24432
- var assetURL = assetBaseURL;
24441
+ var remoteAssetURL = remoteAssetBaseURL;
24433
24442
  if (queryPath) {
24434
- assetURL += "?q=" + paths.shift();
24443
+ remoteAssetURL += "?q=" + paths.shift();
24435
24444
  var index;
24436
24445
  while(index = paths.shift()){
24437
- assetURL += "[" + index + "]";
24446
+ remoteAssetURL += "[" + index + "]";
24438
24447
  }
24439
24448
  }
24440
24449
  // Check is loading
24441
24450
  var loadingPromises = this._loadingPromises;
24442
- var loadingPromise = loadingPromises[assetURL];
24451
+ var loadingPromise = loadingPromises[remoteAssetURL];
24443
24452
  if (loadingPromise) {
24444
24453
  return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
24445
24454
  loadingPromise.onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(resource) {
@@ -24457,37 +24466,37 @@
24457
24466
  // Check sub asset
24458
24467
  if (queryPath) {
24459
24468
  // Check whether load main asset
24460
- var mainPromise = loadingPromises[assetBaseURL] || this._loadMainAsset(loader, item, assetBaseURL);
24469
+ var mainPromise = loadingPromises[remoteAssetBaseURL] || this._loadMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL);
24461
24470
  mainPromise.catch(function(e) {
24462
- _this._onSubAssetFail(assetBaseURL, queryPath, e);
24471
+ _this._onSubAssetFail(remoteAssetBaseURL, queryPath, e);
24463
24472
  });
24464
- return this._createSubAssetPromiseCallback(assetBaseURL, assetURL, queryPath);
24473
+ return this._createSubAssetPromiseCallback(remoteAssetBaseURL, remoteAssetURL, queryPath);
24465
24474
  }
24466
- return this._loadMainAsset(loader, item, assetBaseURL);
24475
+ return this._loadMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL);
24467
24476
  };
24468
- _proto._loadMainAsset = function _loadMainAsset(loader, item, assetBaseURL) {
24477
+ _proto._loadMainAsset = function _loadMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL) {
24469
24478
  var _this = this;
24470
24479
  item.url = assetBaseURL;
24471
24480
  var loadingPromises = this._loadingPromises;
24472
24481
  var promise = loader.load(item, this);
24473
- loadingPromises[assetBaseURL] = promise;
24482
+ loadingPromises[remoteAssetBaseURL] = promise;
24474
24483
  promise.then(function(resource) {
24475
24484
  if (loader.useCache) {
24476
- _this._addAsset(assetBaseURL, resource);
24485
+ _this._addAsset(remoteAssetBaseURL, resource);
24477
24486
  }
24478
- delete loadingPromises[assetBaseURL];
24479
- _this._releaseSubAssetPromiseCallback(assetBaseURL);
24487
+ delete loadingPromises[remoteAssetBaseURL];
24488
+ _this._releaseSubAssetPromiseCallback(remoteAssetBaseURL);
24480
24489
  }, function() {
24481
- delete loadingPromises[assetBaseURL];
24482
- _this._releaseSubAssetPromiseCallback(assetBaseURL);
24490
+ delete loadingPromises[remoteAssetBaseURL];
24491
+ _this._releaseSubAssetPromiseCallback(remoteAssetBaseURL);
24483
24492
  });
24484
24493
  return promise;
24485
24494
  };
24486
- _proto._createSubAssetPromiseCallback = function _createSubAssetPromiseCallback(assetBaseURL, assetURL, assetSubPath) {
24495
+ _proto._createSubAssetPromiseCallback = function _createSubAssetPromiseCallback(remoteAssetBaseURL, remoteAssetURL, assetSubPath) {
24487
24496
  var _this = this;
24488
- var _this__subAssetPromiseCallbacks_assetBaseURL, _subPromiseCallback, _subPromiseCallback1;
24497
+ var _this__subAssetPromiseCallbacks_remoteAssetBaseURL, _subPromiseCallback, _subPromiseCallback1;
24489
24498
  var loadingPromises = this._loadingPromises;
24490
- var subPromiseCallback = (_this__subAssetPromiseCallbacks_assetBaseURL = this._subAssetPromiseCallbacks[assetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_assetBaseURL[assetSubPath];
24499
+ var subPromiseCallback = (_this__subAssetPromiseCallbacks_remoteAssetBaseURL = this._subAssetPromiseCallbacks[remoteAssetBaseURL]) == null ? void 0 : _this__subAssetPromiseCallbacks_remoteAssetBaseURL[assetSubPath];
24491
24500
  var resolvedValue = (_subPromiseCallback = subPromiseCallback) == null ? void 0 : _subPromiseCallback.resolvedValue;
24492
24501
  var rejectedValue = (_subPromiseCallback1 = subPromiseCallback) == null ? void 0 : _subPromiseCallback1.rejectedValue;
24493
24502
  // Already resolved or rejected
@@ -24502,17 +24511,17 @@
24502
24511
  }
24503
24512
  // Pending
24504
24513
  var promise = new AssetPromise(function(resolve, reject) {
24505
- var _this__subAssetPromiseCallbacks, _assetBaseURL;
24506
- ((_this__subAssetPromiseCallbacks = _this._subAssetPromiseCallbacks)[_assetBaseURL = assetBaseURL] || (_this__subAssetPromiseCallbacks[_assetBaseURL] = {}))[assetSubPath] = {
24514
+ var _this__subAssetPromiseCallbacks, _remoteAssetBaseURL;
24515
+ ((_this__subAssetPromiseCallbacks = _this._subAssetPromiseCallbacks)[_remoteAssetBaseURL = remoteAssetBaseURL] || (_this__subAssetPromiseCallbacks[_remoteAssetBaseURL] = {}))[assetSubPath] = {
24507
24516
  resolve: resolve,
24508
24517
  reject: reject
24509
24518
  };
24510
24519
  });
24511
- loadingPromises[assetURL] = promise;
24520
+ loadingPromises[remoteAssetURL] = promise;
24512
24521
  promise.then(function() {
24513
- delete loadingPromises[assetURL];
24522
+ delete loadingPromises[remoteAssetURL];
24514
24523
  }, function() {
24515
- return delete loadingPromises[assetURL];
24524
+ return delete loadingPromises[remoteAssetURL];
24516
24525
  });
24517
24526
  return promise;
24518
24527
  };
@@ -24585,16 +24594,20 @@
24585
24594
  if (obj) {
24586
24595
  promise = Promise.resolve(obj);
24587
24596
  } else {
24588
- var _this__editorResourceConfig_refId;
24589
- var url = (_this__editorResourceConfig_refId = this._editorResourceConfig[refId]) == null ? void 0 : _this__editorResourceConfig_refId.path;
24590
- if (!url) {
24597
+ var resourceConfig = this._editorResourceConfig[refId];
24598
+ if (!resourceConfig) {
24591
24599
  Logger.warn("refId:" + refId + " is not find in this._editorResourceConfig.");
24592
24600
  return Promise.resolve(null);
24593
24601
  }
24594
- url = key ? "" + url + (url.indexOf("?") > -1 ? "&" : "?") + "q=" + key : url;
24602
+ var remoteUrl = resourceConfig.path;
24603
+ var queryPath = new URL(remoteUrl).search;
24604
+ var url = resourceConfig.virtualPath + queryPath;
24605
+ if (key) {
24606
+ url += (url.indexOf("?") > -1 ? "&" : "?") + "q=" + key;
24607
+ }
24595
24608
  promise = this.load({
24596
24609
  url: url,
24597
- type: this._editorResourceConfig[refId].type
24610
+ type: resourceConfig.type
24598
24611
  });
24599
24612
  }
24600
24613
  return promise.then(function(item) {
@@ -31098,7 +31111,12 @@
31098
31111
  */ var Loader = /*#__PURE__*/ function() {
31099
31112
  var Loader = function Loader(useCache) {
31100
31113
  this.useCache = useCache;
31101
- this.request = request;
31114
+ };
31115
+ var _proto = Loader.prototype;
31116
+ _proto.request = function request1(url, resourceManager, config) {
31117
+ var _resourceManager__virtualPathMap_url;
31118
+ var remoteUrl = (_resourceManager__virtualPathMap_url = resourceManager._virtualPathMap[url]) != null ? _resourceManager__virtualPathMap_url : url;
31119
+ return request(remoteUrl, config);
31102
31120
  };
31103
31121
  /**
31104
31122
  * Register a class with a string name for serialization and deserialization.
@@ -42269,6 +42287,17 @@
42269
42287
  exports.AnimationClipDecoder = __decorate([
42270
42288
  decoder("AnimationClip")
42271
42289
  ], exports.AnimationClipDecoder);
42290
+ exports.MaterialLoaderType = void 0;
42291
+ (function(MaterialLoaderType) {
42292
+ MaterialLoaderType["Vector2"] = "Vector2";
42293
+ MaterialLoaderType["Vector3"] = "Vector3";
42294
+ MaterialLoaderType["Vector4"] = "Vector4";
42295
+ MaterialLoaderType["Color"] = "Color";
42296
+ MaterialLoaderType["Float"] = "Float";
42297
+ MaterialLoaderType["Texture"] = "Texture";
42298
+ MaterialLoaderType["Boolean"] = "Boolean";
42299
+ MaterialLoaderType["Integer"] = "Integer";
42300
+ })(exports.MaterialLoaderType || (exports.MaterialLoaderType = {}));
42272
42301
  exports.SpecularMode = void 0;
42273
42302
  (function(SpecularMode) {
42274
42303
  SpecularMode["Sky"] = "Sky";
@@ -42642,31 +42671,6 @@
42642
42671
  };
42643
42672
  return SceneParser;
42644
42673
  }(HierarchyParser);
42645
- exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
42646
- var MeshLoader = function MeshLoader() {
42647
- return Loader1.apply(this, arguments);
42648
- };
42649
- _inherits(MeshLoader, Loader1);
42650
- var _proto = MeshLoader.prototype;
42651
- _proto.load = function load(item, resourceManager) {
42652
- var _this = this;
42653
- return new AssetPromise(function(resolve, reject) {
42654
- _this.request(item.url, _extends({}, item, {
42655
- type: "arraybuffer"
42656
- })).then(function(data) {
42657
- decode(data, resourceManager.engine).then(function(mesh) {
42658
- resolve(mesh);
42659
- });
42660
- }).catch(reject);
42661
- });
42662
- };
42663
- return MeshLoader;
42664
- }(Loader);
42665
- exports.MeshLoader = __decorate([
42666
- resourceLoader("Mesh", [
42667
- "prefab"
42668
- ], true)
42669
- ], exports.MeshLoader);
42670
42674
  exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
42671
42675
  var EditorTextureLoader = function EditorTextureLoader() {
42672
42676
  return Loader1.apply(this, arguments);
@@ -42676,7 +42680,7 @@
42676
42680
  _proto.load = function load(item, resourceManager) {
42677
42681
  var _this = this;
42678
42682
  return new AssetPromise(function(resolve, reject) {
42679
- _this.request(item.url, _extends({}, item, {
42683
+ _this.request(item.url, resourceManager, _extends({}, item, {
42680
42684
  type: "arraybuffer"
42681
42685
  })).then(function(data) {
42682
42686
  decode(data, resourceManager.engine).then(function(texture) {
@@ -42714,7 +42718,7 @@
42714
42718
  _proto.load = function load(item, resourceManager) {
42715
42719
  var _this = this;
42716
42720
  return new AssetPromise(function(resolve, reject) {
42717
- _this.request(item.url, _extends({}, item, {
42721
+ _this.request(item.url, resourceManager, _extends({}, item, {
42718
42722
  type: "arraybuffer"
42719
42723
  })).then(function(data) {
42720
42724
  return decode(data, resourceManager.engine).then(function(clip) {
@@ -42765,7 +42769,7 @@
42765
42769
  _proto.load = function load(item, resourceManager) {
42766
42770
  var _this = this;
42767
42771
  return new AssetPromise(function(resolve, reject) {
42768
- _this.request(item.url, _extends({}, item, {
42772
+ _this.request(item.url, resourceManager, _extends({}, item, {
42769
42773
  type: "json"
42770
42774
  })).then(function(data) {
42771
42775
  var animatorController = new AnimatorController(resourceManager.engine);
@@ -42869,7 +42873,7 @@
42869
42873
  };
42870
42874
  _inherits(BufferLoader, Loader1);
42871
42875
  var _proto = BufferLoader.prototype;
42872
- _proto.load = function load(item) {
42876
+ _proto.load = function load(item, resourceManager) {
42873
42877
  var url = item.url;
42874
42878
  if (isBase64(url)) {
42875
42879
  return new AssetPromise(function(resolve) {
@@ -42880,7 +42884,7 @@
42880
42884
  resolve(result.buffer);
42881
42885
  });
42882
42886
  }
42883
- return this.request(url, _extends({}, item, {
42887
+ return this.request(url, resourceManager, _extends({}, item, {
42884
42888
  type: "arraybuffer"
42885
42889
  }));
42886
42890
  };
@@ -42901,7 +42905,7 @@
42901
42905
  _proto.load = function load(item, resourceManager) {
42902
42906
  var _this = this;
42903
42907
  return new AssetPromise(function(resolve, reject) {
42904
- _this.request(item.url, _extends({}, item, {
42908
+ _this.request(item.url, resourceManager, _extends({}, item, {
42905
42909
  type: "arraybuffer"
42906
42910
  })).then(function(arraybuffer) {
42907
42911
  var _this;
@@ -42977,7 +42981,7 @@
42977
42981
  _proto.load = function load(item, resourceManager) {
42978
42982
  var _this = this;
42979
42983
  return new AssetPromise(function(resolve, reject) {
42980
- _this.request(item.url, _extends({}, item, {
42984
+ _this.request(item.url, resourceManager, _extends({}, item, {
42981
42985
  type: "json"
42982
42986
  })).then(function(data) {
42983
42987
  var fontName = data.fontName, fontUrl = data.fontUrl;
@@ -44621,7 +44625,7 @@
44621
44625
  */ _proto.load = function load(item, resourceManager) {
44622
44626
  var _this = this;
44623
44627
  return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
44624
- _this.request(item.url, {
44628
+ _this.request(item.url, resourceManager, {
44625
44629
  type: "arraybuffer"
44626
44630
  }).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
44627
44631
  return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
@@ -45156,8 +45160,11 @@
45156
45160
  var requestConfig = {
45157
45161
  type: "arraybuffer"
45158
45162
  };
45159
- return request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
45160
- restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
45163
+ var _context_resourceManager__virtualPathMap_url;
45164
+ // @ts-ignore
45165
+ var remoteUrl = (_context_resourceManager__virtualPathMap_url = context.resourceManager._virtualPathMap[url]) != null ? _context_resourceManager__virtualPathMap_url : url;
45166
+ return request(remoteUrl, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
45167
+ restoreBufferRequests.push(new BufferRequestInfo(remoteUrl, requestConfig));
45161
45168
  return GLTFUtils.parseGLB(context, buffer);
45162
45169
  }).then(function(result) {
45163
45170
  var _result;
@@ -45383,11 +45390,14 @@
45383
45390
  _proto._parseSingleBuffer = function _parseSingleBuffer(context, bufferInfo) {
45384
45391
  var glTFResource = context.glTFResource, contentRestorer = context.contentRestorer;
45385
45392
  var url = glTFResource.url;
45393
+ var _context_resourceManager__virtualPathMap_url;
45394
+ // @ts-ignore
45395
+ var remoteUrl = (_context_resourceManager__virtualPathMap_url = context.resourceManager._virtualPathMap[url]) != null ? _context_resourceManager__virtualPathMap_url : url;
45386
45396
  var restoreBufferRequests = contentRestorer.bufferRequests;
45387
45397
  var requestConfig = {
45388
45398
  type: "arraybuffer"
45389
45399
  };
45390
- var absoluteUrl = Utils.resolveAbsoluteUrl(url, bufferInfo.uri);
45400
+ var absoluteUrl = Utils.resolveAbsoluteUrl(remoteUrl, bufferInfo.uri);
45391
45401
  restoreBufferRequests.push(new BufferRequestInfo(absoluteUrl, requestConfig));
45392
45402
  var promise = request(absoluteUrl, requestConfig).onProgress(undefined, context._onTaskDetail);
45393
45403
  context._addTaskCompletePromise(promise);
@@ -46420,9 +46430,8 @@
46420
46430
  return Promise.resolve();
46421
46431
  };
46422
46432
  _proto.load = function load(item, resourceManager) {
46423
- var url = item.url;
46424
46433
  var params = item.params;
46425
- var glTFResource = new GLTFResource(resourceManager.engine, url);
46434
+ var glTFResource = new GLTFResource(resourceManager.engine, item.url);
46426
46435
  var context = new GLTFParserContext(glTFResource, resourceManager, _extends({
46427
46436
  keepMeshData: false
46428
46437
  }, params));
@@ -46487,7 +46496,7 @@
46487
46496
  var _this = this;
46488
46497
  var engine = resourceManager.engine;
46489
46498
  return new AssetPromise(function(resolve, reject) {
46490
- _this.request(item.url, _extends({}, item, {
46499
+ _this.request(item.url, resourceManager, _extends({}, item, {
46491
46500
  type: "json"
46492
46501
  })).then(function(data) {
46493
46502
  PrefabParser.parse(engine, item.url, data).then(resolve).catch(reject);
@@ -46513,7 +46522,7 @@
46513
46522
  var _this = this;
46514
46523
  return new AssetPromise(function(resolve, reject) {
46515
46524
  var engine = resourceManager.engine;
46516
- _this.request(item.url, _extends({}, item, {
46525
+ _this.request(item.url, resourceManager, _extends({}, item, {
46517
46526
  type: "arraybuffer"
46518
46527
  })).then(function(buffer) {
46519
46528
  var uint8Array = new Uint8Array(buffer);
@@ -46827,8 +46836,8 @@
46827
46836
  };
46828
46837
  _inherits(JSONLoader, Loader1);
46829
46838
  var _proto = JSONLoader.prototype;
46830
- _proto.load = function load(item) {
46831
- return this.request(item.url, _extends({}, item, {
46839
+ _proto.load = function load(item, resourceManager) {
46840
+ return this.request(item.url, resourceManager, _extends({}, item, {
46832
46841
  type: "json"
46833
46842
  }));
46834
46843
  };
@@ -47032,7 +47041,7 @@
47032
47041
  var _this = this;
47033
47042
  return new AssetPromise(function(resolve, reject) {
47034
47043
  Promise.all(item.urls.map(function(url) {
47035
- return _this.request(url, _extends({}, item, {
47044
+ return _this.request(url, resourceManager, _extends({}, item, {
47036
47045
  type: "arraybuffer"
47037
47046
  }));
47038
47047
  })).then(function(data) {
@@ -47067,7 +47076,7 @@
47067
47076
  _proto.load = function load(item, resourceManager) {
47068
47077
  var _this = this;
47069
47078
  return new AssetPromise(function(resolve, reject) {
47070
- _this.request(item.url, _extends({}, item, {
47079
+ _this.request(item.url, resourceManager, _extends({}, item, {
47071
47080
  type: "arraybuffer"
47072
47081
  })).then(function(bin) {
47073
47082
  var parsedData = parseSingleKTX(bin);
@@ -47109,62 +47118,75 @@
47109
47118
  _proto.load = function load(item, resourceManager) {
47110
47119
  var _this = this;
47111
47120
  return new AssetPromise(function(resolve, reject) {
47112
- _this.request(item.url, _extends({}, item, {
47121
+ _this.request(item.url, resourceManager, _extends({}, item, {
47113
47122
  type: "json"
47114
47123
  })).then(function(materialSchema) {
47115
- var _loop = function _loop(key) {
47116
- var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
47117
- switch(type){
47118
- case "Vector2":
47119
- materialShaderData.setVector2(key, new Vector2(value.x, value.y));
47120
- break;
47121
- case "Vector3":
47122
- materialShaderData.setVector3(key, new Vector3(value.x, value.y, value.z));
47123
- break;
47124
- case "Vector4":
47125
- materialShaderData.setVector4(key, new Vector4(value.x, value.y, value.z, value.w));
47126
- break;
47127
- case "Color":
47128
- materialShaderData.setColor(key, new Color(value.r, value.g, value.b, value.a));
47129
- break;
47130
- case "Float":
47131
- materialShaderData.setFloat(key, value);
47132
- break;
47133
- case "Texture":
47134
- texturePromises.push(resourceManager.getResourceByRef(value).then(function(texture) {
47135
- materialShaderData.setTexture(key, texture);
47136
- }));
47137
- break;
47138
- case "Boolean":
47139
- materialShaderData.setInt(key, value ? 1 : 0);
47140
- break;
47141
- case "Integer":
47142
- materialShaderData.setInt(key, Number(value));
47143
- break;
47144
- }
47145
- };
47146
47124
  var engine = resourceManager.engine;
47147
- var name = materialSchema.name, shader = materialSchema.shader, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
47148
- var material = new Material(engine, Shader.find(shader));
47149
- material.name = name;
47150
- var texturePromises = new Array();
47151
- var materialShaderData = material.shaderData;
47152
- for(var key in shaderData)_loop(key);
47153
- for(var i = 0, length = macros.length; i < length; i++){
47154
- var _macros_i = macros[i], name1 = _macros_i.name, value = _macros_i.value;
47155
- if (value == undefined) {
47156
- materialShaderData.enableMacro(name1);
47157
- } else {
47158
- materialShaderData.enableMacro(name1, value);
47159
- }
47125
+ var shaderRef = materialSchema.shaderRef, shaderName = materialSchema.shader;
47126
+ if (shaderRef) {
47127
+ resolve(resourceManager // @ts-ignore
47128
+ .getResourceByRef(shaderRef).then(function(shader) {
47129
+ return _this.getMaterialByShader(materialSchema, shader, engine);
47130
+ }));
47131
+ } else {
47132
+ // compatible with 1.2-pre version material schema
47133
+ var shader = Shader.find(shaderName);
47134
+ resolve(_this.getMaterialByShader(materialSchema, shader, engine));
47160
47135
  }
47161
- parseProperty(material, "renderState", renderState);
47162
- return Promise.all(texturePromises).then(function() {
47163
- resolve(material);
47164
- });
47165
47136
  }).catch(reject);
47166
47137
  });
47167
47138
  };
47139
+ _proto.getMaterialByShader = function getMaterialByShader(materialSchema, shader, engine) {
47140
+ var _loop = function _loop(key) {
47141
+ var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
47142
+ switch(type){
47143
+ case exports.MaterialLoaderType.Vector2:
47144
+ materialShaderData.setVector2(key, new Vector2(value.x, value.y));
47145
+ break;
47146
+ case exports.MaterialLoaderType.Vector3:
47147
+ materialShaderData.setVector3(key, new Vector3(value.x, value.y, value.z));
47148
+ break;
47149
+ case exports.MaterialLoaderType.Vector4:
47150
+ materialShaderData.setVector4(key, new Vector4(value.x, value.y, value.z, value.w));
47151
+ break;
47152
+ case exports.MaterialLoaderType.Color:
47153
+ materialShaderData.setColor(key, new Color(value.r, value.g, value.b, value.a));
47154
+ break;
47155
+ case exports.MaterialLoaderType.Float:
47156
+ materialShaderData.setFloat(key, value);
47157
+ break;
47158
+ case exports.MaterialLoaderType.Texture:
47159
+ texturePromises.push(engine.resourceManager.getResourceByRef(value).then(function(texture) {
47160
+ materialShaderData.setTexture(key, texture);
47161
+ }));
47162
+ break;
47163
+ case exports.MaterialLoaderType.Boolean:
47164
+ materialShaderData.setInt(key, value ? 1 : 0);
47165
+ break;
47166
+ case exports.MaterialLoaderType.Integer:
47167
+ materialShaderData.setInt(key, Number(value));
47168
+ break;
47169
+ }
47170
+ };
47171
+ var name = materialSchema.name, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
47172
+ var material = new Material(engine, shader);
47173
+ material.name = name;
47174
+ var texturePromises = new Array();
47175
+ var materialShaderData = material.shaderData;
47176
+ for(var key in shaderData)_loop(key);
47177
+ for(var i = 0, length = macros.length; i < length; i++){
47178
+ var _macros_i = macros[i], name1 = _macros_i.name, value = _macros_i.value;
47179
+ if (value == undefined) {
47180
+ materialShaderData.enableMacro(name1);
47181
+ } else {
47182
+ materialShaderData.enableMacro(name1, value);
47183
+ }
47184
+ }
47185
+ parseProperty(material, "renderState", renderState);
47186
+ return Promise.all(texturePromises).then(function() {
47187
+ return material;
47188
+ });
47189
+ };
47168
47190
  return MaterialLoader;
47169
47191
  }(Loader);
47170
47192
  MaterialLoader = __decorate([
@@ -47172,40 +47194,15 @@
47172
47194
  "json"
47173
47195
  ])
47174
47196
  ], MaterialLoader);
47175
- var MeshLoader = /*#__PURE__*/ function(Loader1) {
47176
- var MeshLoader = function MeshLoader() {
47177
- return Loader1.apply(this, arguments);
47178
- };
47179
- _inherits(MeshLoader, Loader1);
47180
- var _proto = MeshLoader.prototype;
47181
- _proto.load = function load(item, resourceManager) {
47182
- var _this = this;
47183
- return new AssetPromise(function(resolve, reject) {
47184
- _this.request(item.url, _extends({}, item, {
47185
- type: "arraybuffer"
47186
- })).then(function(data) {
47187
- return decode(data, resourceManager.engine);
47188
- }).then(function(mesh) {
47189
- resolve(mesh);
47190
- }).catch(reject);
47191
- });
47192
- };
47193
- return MeshLoader;
47194
- }(Loader);
47195
- MeshLoader = __decorate([
47196
- resourceLoader(exports.AssetType.Mesh, [
47197
- "mesh"
47198
- ])
47199
- ], MeshLoader);
47200
47197
  var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader1) {
47201
47198
  var PrimitiveMeshLoader = function PrimitiveMeshLoader() {
47202
47199
  return Loader1.apply(this, arguments);
47203
47200
  };
47204
47201
  _inherits(PrimitiveMeshLoader, Loader1);
47205
47202
  var _proto = PrimitiveMeshLoader.prototype;
47206
- _proto.load = function load(item, param) {
47207
- var engine = param.engine;
47208
- return this.request(item.url, _extends({}, item, {
47203
+ _proto.load = function load(item, resourceManager) {
47204
+ var engine = resourceManager.engine;
47205
+ return this.request(item.url, resourceManager, _extends({}, item, {
47209
47206
  type: "json"
47210
47207
  })).then(function(data) {
47211
47208
  switch(data.type){
@@ -47253,7 +47250,7 @@
47253
47250
  var _this = this;
47254
47251
  var engine = resourceManager.engine;
47255
47252
  return new AssetPromise(function(resolve, reject) {
47256
- _this.request(item.url, _extends({}, item, {
47253
+ _this.request(item.url, resourceManager, _extends({}, item, {
47257
47254
  type: "json"
47258
47255
  })).then(function(data) {
47259
47256
  // @ts-ignore
@@ -47284,7 +47281,9 @@
47284
47281
  _proto.load = function load(item, resourceManager) {
47285
47282
  var _this = this;
47286
47283
  return new AssetPromise(function(resolve, reject) {
47287
- var url = item.url;
47284
+ var _resourceManager__virtualPathMap_item_url;
47285
+ // @ts-ignore
47286
+ var url = (_resourceManager__virtualPathMap_item_url = resourceManager._virtualPathMap[item.url]) != null ? _resourceManager__virtualPathMap_item_url : item.url;
47288
47287
  _this._registerFont(url, url).then(function() {
47289
47288
  var font = new Font(resourceManager.engine, url);
47290
47289
  resolve(font);
@@ -47343,7 +47342,7 @@
47343
47342
  chainPromises[i].cancel();
47344
47343
  }
47345
47344
  });
47346
- var configPromise = _this.request(item.url, _extends({}, item, {
47345
+ var configPromise = _this.request(item.url, resourceManager, _extends({}, item, {
47347
47346
  type: "json"
47348
47347
  }));
47349
47348
  chainPromises.push(configPromise);
@@ -47425,7 +47424,7 @@
47425
47424
  var _proto = SpriteLoader.prototype;
47426
47425
  _proto.load = function load(item, resourceManager) {
47427
47426
  var _this = this;
47428
- return this.request(item.url, _extends({}, item, {
47427
+ return this.request(item.url, resourceManager, _extends({}, item, {
47429
47428
  type: "json"
47430
47429
  })).then(function(data) {
47431
47430
  return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
@@ -47501,7 +47500,7 @@
47501
47500
  var requestConfig = _extends({}, item, {
47502
47501
  type: "image"
47503
47502
  });
47504
- _this.request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
47503
+ _this.request(url, resourceManager, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(image) {
47505
47504
  var _item_params;
47506
47505
  var _ref = (_item_params = item.params) != null ? _item_params : {}, format = _ref.format, mipmap = _ref.mipmap, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode;
47507
47506
  var texture = new Texture2D(resourceManager.engine, image.width, image.height, format, mipmap);
@@ -47577,7 +47576,7 @@
47577
47576
  type: "image"
47578
47577
  });
47579
47578
  Promise.all(urls.map(function(url) {
47580
- return _this.request(url, requestConfig);
47579
+ return _this.request(url, resourceManager, requestConfig);
47581
47580
  })).then(function(images) {
47582
47581
  var _images_ = images[0], width = _images_.width, height = _images_.height;
47583
47582
  if (width !== height) {
@@ -47603,6 +47602,89 @@
47603
47602
  ""
47604
47603
  ])
47605
47604
  ], TextureCubeLoader);
47605
+ var _ShaderChunkLoader;
47606
+ var ShaderChunkLoader = (_ShaderChunkLoader = /*#__PURE__*/ function(Loader1) {
47607
+ var ShaderChunkLoader1 = function ShaderChunkLoader1() {
47608
+ return Loader1.apply(this, arguments);
47609
+ };
47610
+ _inherits(ShaderChunkLoader1, Loader1);
47611
+ var _proto = ShaderChunkLoader1.prototype;
47612
+ _proto.load = function load(item, resourceManager) {
47613
+ var url = item.url;
47614
+ return this.request(url, resourceManager, _extends({}, item, {
47615
+ type: "text"
47616
+ })).then(function(code) {
47617
+ ShaderFactory.registerInclude(url.substring(1), code);
47618
+ return ShaderChunkLoader._loadChunksInCode(code, url, resourceManager);
47619
+ });
47620
+ };
47621
+ /**
47622
+ * @internal
47623
+ */ ShaderChunkLoader1._loadChunksInCode = function _loadChunksInCode(code, basePath, resourceManager) {
47624
+ var shaderChunkPaths = new Array();
47625
+ var matches = code.matchAll(ShaderChunkLoader._shaderIncludeRegex);
47626
+ for(var _iterator = _create_for_of_iterator_helper_loose(matches), _step; !(_step = _iterator()).done;){
47627
+ var match = _step.value;
47628
+ var chunkPath = Utils.resolveAbsoluteUrl(basePath, match[1]);
47629
+ if (!ShaderLib[chunkPath.substring(1)]) {
47630
+ shaderChunkPaths.push(chunkPath);
47631
+ }
47632
+ }
47633
+ return Promise.all(shaderChunkPaths.map(function(chunkPath) {
47634
+ return resourceManager.load({
47635
+ type: "ShaderChunk",
47636
+ url: chunkPath
47637
+ });
47638
+ }));
47639
+ };
47640
+ return ShaderChunkLoader1;
47641
+ }(Loader), function() {
47642
+ _ShaderChunkLoader._shaderIncludeRegex = /\s#include\s+"([./][^\\"]+)"/gm;
47643
+ }(), _ShaderChunkLoader);
47644
+ ShaderChunkLoader = __decorate([
47645
+ resourceLoader("ShaderChunk", [
47646
+ "glsl"
47647
+ ])
47648
+ ], ShaderChunkLoader);
47649
+ var _ShaderLoader;
47650
+ var ShaderLoader = (_ShaderLoader = /*#__PURE__*/ function(Loader1) {
47651
+ var ShaderLoader1 = function ShaderLoader1() {
47652
+ return Loader1.apply(this, arguments);
47653
+ };
47654
+ _inherits(ShaderLoader1, Loader1);
47655
+ var _proto = ShaderLoader1.prototype;
47656
+ _proto.load = function load(item, resourceManager) {
47657
+ var _this = this;
47658
+ var url = item.url;
47659
+ return this.request(url, resourceManager, _extends({}, item, {
47660
+ type: "text"
47661
+ })).then(function(code) {
47662
+ var builtinShader = _this._getBuiltinShader(code);
47663
+ if (builtinShader) {
47664
+ return Shader.find(builtinShader);
47665
+ }
47666
+ return ShaderChunkLoader._loadChunksInCode(code, url, resourceManager).then(function() {
47667
+ var shader = Shader.create(code);
47668
+ // @ts-ignore
47669
+ shader._registerPath(url);
47670
+ return shader;
47671
+ });
47672
+ });
47673
+ };
47674
+ _proto._getBuiltinShader = function _getBuiltinShader(code) {
47675
+ var match = code.match(ShaderLoader._builtinRegex);
47676
+ if (match && match[1]) return match[1];
47677
+ };
47678
+ return ShaderLoader1;
47679
+ }(Loader), function() {
47680
+ _ShaderLoader._builtinRegex = /^\s*\/\/\s*@builtin\s+(\w+)/;
47681
+ }(), _ShaderLoader);
47682
+ ShaderLoader = __decorate([
47683
+ resourceLoader(exports.AssetType.Shader, [
47684
+ "gs",
47685
+ "gsl"
47686
+ ])
47687
+ ], ShaderLoader);
47606
47688
  var SceneLoader = /*#__PURE__*/ function(Loader1) {
47607
47689
  var SceneLoader = function SceneLoader() {
47608
47690
  return Loader1.apply(this, arguments);
@@ -47613,7 +47695,7 @@
47613
47695
  var _this = this;
47614
47696
  var engine = resourceManager.engine;
47615
47697
  return new AssetPromise(function(resolve, reject) {
47616
- _this.request(item.url, _extends({}, item, {
47698
+ _this.request(item.url, resourceManager, _extends({}, item, {
47617
47699
  type: "json"
47618
47700
  })).then(function(data) {
47619
47701
  return SceneParser.parse(engine, data).then(function(scene) {
@@ -48162,7 +48244,7 @@
48162
48244
  ], EXT_texture_webp);
48163
48245
 
48164
48246
  //@ts-ignore
48165
- var version = "1.3.16";
48247
+ var version = "1.3.17";
48166
48248
  console.log("Galacean engine version: " + version);
48167
48249
  for(var key in CoreObjects){
48168
48250
  Loader.registerClass(key, CoreObjects[key]);