@galacean/engine-loader 2.0.0-alpha.41 → 2.0.0-alpha.44
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/main.js +140 -107
- package/dist/main.js.map +1 -1
- package/dist/module.js +141 -108
- package/dist/module.js.map +1 -1
- package/package.json +4 -4
- package/types/gltf/GLTFResource.d.ts +3 -3
- package/types/gltf/GLTFUtils.d.ts +1 -1
- package/types/gltf/parser/GLTFParserContext.d.ts +1 -0
- package/types/prefab/PrefabResource.d.ts +2 -2
- package/types/resource-deserialize/utils/BufferReader.d.ts +3 -1
package/dist/main.js
CHANGED
|
@@ -119,10 +119,11 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
var BufferReader = /*#__PURE__*/ function() {
|
|
122
|
-
function BufferReader(data, byteOffset, byteLength, littleEndian) {
|
|
122
|
+
function BufferReader(data, byteOffset, byteLength, littleEndian, header) {
|
|
123
123
|
if (byteOffset === void 0) byteOffset = 0;
|
|
124
124
|
if (littleEndian === void 0) littleEndian = true;
|
|
125
125
|
this.data = data;
|
|
126
|
+
this.header = header;
|
|
126
127
|
this._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength != null ? byteLength : data.byteLength - byteOffset);
|
|
127
128
|
this._littleEndian = littleEndian;
|
|
128
129
|
this._position = 0;
|
|
@@ -322,8 +323,11 @@ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
|
322
323
|
function AnimationClipDecoder() {}
|
|
323
324
|
AnimationClipDecoder.decode = function decode(engine, bufferReader) {
|
|
324
325
|
return new engineCore.AssetPromise(function(resolve) {
|
|
326
|
+
var _bufferReader_header;
|
|
325
327
|
var name = bufferReader.nextStr();
|
|
326
328
|
var clip = new engineCore.AnimationClip(name);
|
|
329
|
+
var _bufferReader_header_version;
|
|
330
|
+
var version = (_bufferReader_header_version = (_bufferReader_header = bufferReader.header) == null ? void 0 : _bufferReader_header.version) != null ? _bufferReader_header_version : 1;
|
|
327
331
|
var eventsLen = bufferReader.nextUint16();
|
|
328
332
|
for(var i = 0; i < eventsLen; ++i){
|
|
329
333
|
var event = new engineCore.AnimationEvent();
|
|
@@ -337,6 +341,7 @@ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
|
337
341
|
var relativePath = bufferReader.nextStr();
|
|
338
342
|
var componentStr = bufferReader.nextStr();
|
|
339
343
|
var componentType = engineCore.Loader.getClass(componentStr);
|
|
344
|
+
var typeIndex = version >= 2 ? bufferReader.nextUint16() : 0;
|
|
340
345
|
var property = bufferReader.nextStr();
|
|
341
346
|
var getProperty = bufferReader.nextStr();
|
|
342
347
|
var curve = void 0;
|
|
@@ -498,7 +503,7 @@ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
|
498
503
|
break;
|
|
499
504
|
}
|
|
500
505
|
}
|
|
501
|
-
clip.addCurveBinding(relativePath, componentType, property, getProperty, curve);
|
|
506
|
+
clip.addCurveBinding(relativePath, componentType, typeIndex, property, getProperty, curve);
|
|
502
507
|
}
|
|
503
508
|
resolve(clip);
|
|
504
509
|
});
|
|
@@ -1327,8 +1332,8 @@ function _instanceof(left, right) {
|
|
|
1327
1332
|
}
|
|
1328
1333
|
var _proto = PrefabResource.prototype;
|
|
1329
1334
|
/**
|
|
1330
|
-
* Instantiate prefab.
|
|
1331
|
-
* @returns prefab
|
|
1335
|
+
* Instantiate the prefab.
|
|
1336
|
+
* @returns A detached prefab instance that must be added to a parent Entity or Scene to update and render
|
|
1332
1337
|
*/ _proto.instantiate = function instantiate() {
|
|
1333
1338
|
var _this__root;
|
|
1334
1339
|
return (_this__root = this._root) == null ? void 0 : _this__root.clone();
|
|
@@ -1680,7 +1685,7 @@ var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
|
|
|
1680
1685
|
}
|
|
1681
1686
|
var _decoderMap_header_type;
|
|
1682
1687
|
var header = FileHeader.decode(arrayBuffer);
|
|
1683
|
-
var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
|
|
1688
|
+
var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength, true, header);
|
|
1684
1689
|
return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat([
|
|
1685
1690
|
engine,
|
|
1686
1691
|
bufferReader
|
|
@@ -2483,18 +2488,19 @@ exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
|
|
|
2483
2488
|
/**
|
|
2484
2489
|
* @internal
|
|
2485
2490
|
*/ _proto.load = function load(item, resourceManager) {
|
|
2491
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
2492
|
+
var remoteUrl = resourceManager._getRemoteUrl(item.url);
|
|
2486
2493
|
return new engineCore.AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
|
|
2487
2494
|
var requestConfig = _extends({}, item, {
|
|
2488
2495
|
type: "arraybuffer"
|
|
2489
2496
|
});
|
|
2490
|
-
var url = item.url;
|
|
2491
2497
|
resourceManager// @ts-ignore
|
|
2492
|
-
.
|
|
2498
|
+
._requestByRemoteUrl(remoteUrl, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
|
|
2493
2499
|
return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
|
|
2494
2500
|
var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
2495
2501
|
return KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params);
|
|
2496
2502
|
}).then(function(texture) {
|
|
2497
|
-
resourceManager.addContentRestorer(new KTX2ContentRestorer(texture,
|
|
2503
|
+
resourceManager.addContentRestorer(new KTX2ContentRestorer(texture, remoteUrl, requestConfig));
|
|
2498
2504
|
resolve(texture);
|
|
2499
2505
|
});
|
|
2500
2506
|
}).catch(reject);
|
|
@@ -2678,9 +2684,9 @@ exports.KTX2Loader = __decorate([
|
|
|
2678
2684
|
], exports.KTX2Loader);
|
|
2679
2685
|
var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
2680
2686
|
_inherits(KTX2ContentRestorer, ContentRestorer);
|
|
2681
|
-
function KTX2ContentRestorer(resource,
|
|
2687
|
+
function KTX2ContentRestorer(resource, remoteUrl, requestConfig) {
|
|
2682
2688
|
var _this;
|
|
2683
|
-
_this = ContentRestorer.call(this, resource) || this, _this.
|
|
2689
|
+
_this = ContentRestorer.call(this, resource) || this, _this.remoteUrl = remoteUrl, _this.requestConfig = requestConfig;
|
|
2684
2690
|
return _this;
|
|
2685
2691
|
}
|
|
2686
2692
|
var _proto = KTX2ContentRestorer.prototype;
|
|
@@ -2690,7 +2696,7 @@ var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
|
2690
2696
|
var engine = resource.engine;
|
|
2691
2697
|
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
2692
2698
|
engine.resourceManager// @ts-ignore
|
|
2693
|
-
.
|
|
2699
|
+
._requestByRemoteUrl(_this.remoteUrl, requestConfig).then(function(buffer) {
|
|
2694
2700
|
return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), engine, requestConfig.params).then(function(param) {
|
|
2695
2701
|
var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
2696
2702
|
return exports.KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params, resource);
|
|
@@ -2708,21 +2714,22 @@ var AmbientLightLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2708
2714
|
}
|
|
2709
2715
|
var _proto = AmbientLightLoader.prototype;
|
|
2710
2716
|
_proto.load = function load(item, resourceManager) {
|
|
2717
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
2718
|
+
var remoteUrl = resourceManager._getRemoteUrl(item.url);
|
|
2711
2719
|
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
2712
2720
|
var requestConfig = _extends({}, item, {
|
|
2713
2721
|
type: "arraybuffer"
|
|
2714
2722
|
});
|
|
2715
2723
|
var engine = resourceManager.engine;
|
|
2716
|
-
var url = item.url;
|
|
2717
2724
|
resourceManager// @ts-ignore
|
|
2718
|
-
.
|
|
2725
|
+
._requestByRemoteUrl(remoteUrl, requestConfig).then(function(buffer) {
|
|
2719
2726
|
var header = FileHeader.decode(buffer);
|
|
2720
2727
|
var dataOffset = header.headerLength;
|
|
2721
2728
|
var sh = new engineMath.SphericalHarmonics3();
|
|
2722
2729
|
sh.copyFromArray(new Float32Array(buffer, dataOffset, 27));
|
|
2723
2730
|
var textureOffset = dataOffset + AmbientLightLoader._shByteLength;
|
|
2724
2731
|
return AmbientLightLoader._parseTexture(engine, buffer, textureOffset, header.dataLength - AmbientLightLoader._shByteLength).then(function(specularTexture) {
|
|
2725
|
-
engine.resourceManager.addContentRestorer(new AmbientLightContentRestorer(specularTexture,
|
|
2732
|
+
engine.resourceManager.addContentRestorer(new AmbientLightContentRestorer(specularTexture, remoteUrl, requestConfig));
|
|
2726
2733
|
var ambientLight = new engineCore.AmbientLight(engine);
|
|
2727
2734
|
ambientLight.diffuseMode = engineCore.DiffuseMode.SphericalHarmonics;
|
|
2728
2735
|
ambientLight.diffuseSphericalHarmonics = sh;
|
|
@@ -2771,9 +2778,9 @@ AmbientLightLoader = __decorate([
|
|
|
2771
2778
|
* @internal
|
|
2772
2779
|
*/ var AmbientLightContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
2773
2780
|
_inherits(AmbientLightContentRestorer, ContentRestorer);
|
|
2774
|
-
function AmbientLightContentRestorer(resource,
|
|
2781
|
+
function AmbientLightContentRestorer(resource, remoteUrl, requestConfig) {
|
|
2775
2782
|
var _this;
|
|
2776
|
-
_this = ContentRestorer.call(this, resource) || this, _this.
|
|
2783
|
+
_this = ContentRestorer.call(this, resource) || this, _this.remoteUrl = remoteUrl, _this.requestConfig = requestConfig;
|
|
2777
2784
|
return _this;
|
|
2778
2785
|
}
|
|
2779
2786
|
var _proto = AmbientLightContentRestorer.prototype;
|
|
@@ -2783,7 +2790,7 @@ AmbientLightLoader = __decorate([
|
|
|
2783
2790
|
var resource = _this.resource;
|
|
2784
2791
|
var engine = resource.engine;
|
|
2785
2792
|
engine.resourceManager// @ts-ignore
|
|
2786
|
-
.
|
|
2793
|
+
._requestByRemoteUrl(_this.remoteUrl, _this.requestConfig).then(function(buffer) {
|
|
2787
2794
|
var header = FileHeader.decode(buffer);
|
|
2788
2795
|
var dataOffset = header.headerLength;
|
|
2789
2796
|
var textureOffset = dataOffset + AmbientLightLoader._shByteLength;
|
|
@@ -2840,7 +2847,10 @@ var FontLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2840
2847
|
})).then(function(data) {
|
|
2841
2848
|
var fontName = data.fontName, fontUrl = data.fontUrl;
|
|
2842
2849
|
if (fontUrl) {
|
|
2843
|
-
|
|
2850
|
+
var absoluteUrl = engineCore.Utils.resolveAbsoluteUrl(item.url, fontUrl);
|
|
2851
|
+
// @ts-ignore
|
|
2852
|
+
var remoteUrl = resourceManager._getRemoteUrl(absoluteUrl);
|
|
2853
|
+
_this._registerFont(fontName, remoteUrl).then(function() {
|
|
2844
2854
|
var font = new engineCore.Font(resourceManager.engine, fontName);
|
|
2845
2855
|
resolve(font);
|
|
2846
2856
|
}).catch(function(e) {
|
|
@@ -3093,9 +3103,9 @@ function getMeshoptDecoder() {
|
|
|
3093
3103
|
}
|
|
3094
3104
|
var _proto = GLTFResource.prototype;
|
|
3095
3105
|
/**
|
|
3096
|
-
* Instantiate scene root
|
|
3097
|
-
* @param sceneIndex -
|
|
3098
|
-
* @returns
|
|
3106
|
+
* Instantiate a glTF scene root Entity.
|
|
3107
|
+
* @param sceneIndex - The scene index
|
|
3108
|
+
* @returns A detached scene-root instance that must be added to a parent Entity or Scene to update and render
|
|
3099
3109
|
*/ _proto.instantiateSceneRoot = function instantiateSceneRoot(sceneIndex) {
|
|
3100
3110
|
var sceneRoot = sceneIndex === undefined ? this._defaultSceneRoot : this._sceneRoots[sceneIndex];
|
|
3101
3111
|
return sceneRoot.clone();
|
|
@@ -3334,6 +3344,8 @@ function getMeshoptDecoder() {
|
|
|
3334
3344
|
detail.total = total;
|
|
3335
3345
|
_this._setTaskDetailProgress(url, loaded, total);
|
|
3336
3346
|
};
|
|
3347
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
3348
|
+
this._remoteAssetBaseURL = resourceManager._getRemoteUrl(glTFResource.url);
|
|
3337
3349
|
this.contentRestorer = new GLTFContentRestorer(glTFResource);
|
|
3338
3350
|
}
|
|
3339
3351
|
var _proto = GLTFParserContext.prototype;
|
|
@@ -3424,7 +3436,7 @@ function getMeshoptDecoder() {
|
|
|
3424
3436
|
var _this_glTFResource, _glTFResourceKey;
|
|
3425
3437
|
((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
|
|
3426
3438
|
} else {
|
|
3427
|
-
var
|
|
3439
|
+
var remoteAssetBaseURL = this._remoteAssetBaseURL;
|
|
3428
3440
|
resource.then(function(item) {
|
|
3429
3441
|
if (index == undefined) {
|
|
3430
3442
|
_this.glTFResource[glTFResourceKey] = item;
|
|
@@ -3436,15 +3448,15 @@ function getMeshoptDecoder() {
|
|
|
3436
3448
|
for(var i = 0, length = item.length; i < length; i++){
|
|
3437
3449
|
var mesh = item[i];
|
|
3438
3450
|
// @ts-ignore
|
|
3439
|
-
_this.resourceManager._onSubAssetSuccess(
|
|
3451
|
+
_this.resourceManager._onSubAssetSuccess(remoteAssetBaseURL, glTFResourceKey + "[" + index + "][" + i + "]", mesh);
|
|
3440
3452
|
}
|
|
3441
3453
|
} else {
|
|
3442
3454
|
// @ts-ignore
|
|
3443
|
-
_this.resourceManager._onSubAssetSuccess(
|
|
3455
|
+
_this.resourceManager._onSubAssetSuccess(remoteAssetBaseURL, "" + glTFResourceKey + (index === undefined ? "" : "[" + index + "]"), item);
|
|
3444
3456
|
var _this_glTF_scene;
|
|
3445
3457
|
if (type === 2 && ((_this_glTF_scene = _this.glTF.scene) != null ? _this_glTF_scene : 0) === index) {
|
|
3446
3458
|
// @ts-ignore
|
|
3447
|
-
_this.resourceManager._onSubAssetSuccess(
|
|
3459
|
+
_this.resourceManager._onSubAssetSuccess(remoteAssetBaseURL, "defaultSceneRoot", item);
|
|
3448
3460
|
}
|
|
3449
3461
|
}
|
|
3450
3462
|
}).catch(function(e) {
|
|
@@ -4482,16 +4494,16 @@ exports.GLTFBufferParser = /*#__PURE__*/ function(GLTFParser) {
|
|
|
4482
4494
|
_proto._parseSingleBuffer = function _parseSingleBuffer(context, bufferInfo) {
|
|
4483
4495
|
var glTFResource = context.glTFResource, contentRestorer = context.contentRestorer, resourceManager = context.resourceManager;
|
|
4484
4496
|
var url = glTFResource.url;
|
|
4497
|
+
var absoluteUrl = engineCore.Utils.resolveAbsoluteUrl(url, bufferInfo.uri);
|
|
4485
4498
|
// @ts-ignore
|
|
4486
|
-
var remoteUrl = resourceManager._getRemoteUrl(
|
|
4499
|
+
var remoteUrl = resourceManager._getRemoteUrl(absoluteUrl);
|
|
4487
4500
|
var restoreBufferRequests = contentRestorer.bufferRequests;
|
|
4488
4501
|
var requestConfig = {
|
|
4489
4502
|
type: "arraybuffer"
|
|
4490
4503
|
};
|
|
4491
|
-
|
|
4492
|
-
restoreBufferRequests.push(new BufferRequestInfo(absoluteUrl, requestConfig));
|
|
4504
|
+
restoreBufferRequests.push(new BufferRequestInfo(remoteUrl, requestConfig));
|
|
4493
4505
|
var promise = resourceManager// @ts-ignore
|
|
4494
|
-
._requestByRemoteUrl(
|
|
4506
|
+
._requestByRemoteUrl(remoteUrl, requestConfig).onProgress(undefined, context._onTaskDetail);
|
|
4495
4507
|
context._addTaskCompletePromise(promise);
|
|
4496
4508
|
return promise;
|
|
4497
4509
|
};
|
|
@@ -5709,12 +5721,14 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5709
5721
|
}
|
|
5710
5722
|
var _proto = KTXLoader.prototype;
|
|
5711
5723
|
_proto.load = function load(item, resourceManager) {
|
|
5724
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
5725
|
+
var remoteUrl = resourceManager._getRemoteUrl(item.url);
|
|
5712
5726
|
var requestConfig = _extends({}, item, {
|
|
5713
5727
|
type: "arraybuffer"
|
|
5714
5728
|
});
|
|
5715
5729
|
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
5716
5730
|
resourceManager// @ts-ignore
|
|
5717
|
-
.
|
|
5731
|
+
._requestByRemoteUrl(remoteUrl, requestConfig).then(function(bin) {
|
|
5718
5732
|
var parsedData = parseSingleKTX(bin);
|
|
5719
5733
|
var width = parsedData.width, height = parsedData.height, mipmaps = parsedData.mipmaps, engineFormat = parsedData.engineFormat;
|
|
5720
5734
|
var mipmap = mipmaps.length > 1;
|
|
@@ -5723,7 +5737,7 @@ var KTXLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5723
5737
|
var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
|
|
5724
5738
|
texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
|
|
5725
5739
|
}
|
|
5726
|
-
resourceManager.addContentRestorer(new KTXContentRestorer(texture,
|
|
5740
|
+
resourceManager.addContentRestorer(new KTXContentRestorer(texture, remoteUrl, requestConfig));
|
|
5727
5741
|
resolve(texture);
|
|
5728
5742
|
}).catch(function(e) {
|
|
5729
5743
|
reject(e);
|
|
@@ -5739,9 +5753,9 @@ KTXLoader = __decorate([
|
|
|
5739
5753
|
], KTXLoader);
|
|
5740
5754
|
var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
5741
5755
|
_inherits(KTXContentRestorer, ContentRestorer);
|
|
5742
|
-
function KTXContentRestorer(resource,
|
|
5756
|
+
function KTXContentRestorer(resource, remoteUrl, requestConfig) {
|
|
5743
5757
|
var _this;
|
|
5744
|
-
_this = ContentRestorer.call(this, resource) || this, _this.
|
|
5758
|
+
_this = ContentRestorer.call(this, resource) || this, _this.remoteUrl = remoteUrl, _this.requestConfig = requestConfig;
|
|
5745
5759
|
return _this;
|
|
5746
5760
|
}
|
|
5747
5761
|
var _proto = KTXContentRestorer.prototype;
|
|
@@ -5751,7 +5765,7 @@ var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
|
5751
5765
|
var engine = resource.engine;
|
|
5752
5766
|
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
5753
5767
|
engine.resourceManager// @ts-ignore
|
|
5754
|
-
.
|
|
5768
|
+
._requestByRemoteUrl(_this.remoteUrl, _this.requestConfig).then(function(bin) {
|
|
5755
5769
|
var mipmaps = parseSingleKTX(bin).mipmaps;
|
|
5756
5770
|
for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
|
|
5757
5771
|
var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
|
|
@@ -5766,6 +5780,7 @@ var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
|
5766
5780
|
return KTXContentRestorer;
|
|
5767
5781
|
}(engineCore.ContentRestorer);
|
|
5768
5782
|
|
|
5783
|
+
var materialLoaderTypes = new Set(Object.values(MaterialLoaderType));
|
|
5769
5784
|
var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
5770
5785
|
_inherits(MaterialLoader, Loader);
|
|
5771
5786
|
function MaterialLoader() {
|
|
@@ -5774,23 +5789,32 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5774
5789
|
var _proto = MaterialLoader.prototype;
|
|
5775
5790
|
_proto.load = function load(item, resourceManager) {
|
|
5776
5791
|
var _this = this;
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
var
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
resolve(_this._getMaterialByShader(materialSchema, shader, engine));
|
|
5787
|
-
} else if (shaderRef) {
|
|
5788
|
-
resolve(resourceManager// @ts-ignore
|
|
5789
|
-
.getResourceByRef(shaderRef).then(function(shader) {
|
|
5790
|
-
return _this._getMaterialByShader(materialSchema, shader, engine);
|
|
5791
|
-
}));
|
|
5792
|
+
// @ts-expect-error _request is @internal
|
|
5793
|
+
return resourceManager._request(item.url, _extends({}, item, {
|
|
5794
|
+
type: "json"
|
|
5795
|
+
})).then(function(materialSchema) {
|
|
5796
|
+
var shaderData = materialSchema.shaderData, shaderRef = materialSchema.shaderRef, shaderName = materialSchema.shader;
|
|
5797
|
+
for(var key in shaderData){
|
|
5798
|
+
var type = shaderData[key].type;
|
|
5799
|
+
if (!materialLoaderTypes.has(type)) {
|
|
5800
|
+
throw new Error('MaterialLoader: unsupported shader data type "' + type + '".');
|
|
5792
5801
|
}
|
|
5793
|
-
}
|
|
5802
|
+
}
|
|
5803
|
+
var engine = resourceManager.engine;
|
|
5804
|
+
var shader = engineCore.Shader.find(shaderName);
|
|
5805
|
+
if (shader) {
|
|
5806
|
+
return _this._getMaterialByShader(materialSchema, shader, engine);
|
|
5807
|
+
}
|
|
5808
|
+
if (!shaderRef) {
|
|
5809
|
+
throw new Error('MaterialLoader: shader "' + shaderName + '" not found.');
|
|
5810
|
+
}
|
|
5811
|
+
// @ts-expect-error getResourceByRef is @internal
|
|
5812
|
+
return resourceManager.getResourceByRef(shaderRef).then(function(shader) {
|
|
5813
|
+
if (!_instanceof(shader, engineCore.Shader)) {
|
|
5814
|
+
throw new Error('MaterialLoader: shader reference "' + shaderRef.url + '" did not resolve to a Shader.');
|
|
5815
|
+
}
|
|
5816
|
+
return _this._getMaterialByShader(materialSchema, shader, engine);
|
|
5817
|
+
});
|
|
5794
5818
|
});
|
|
5795
5819
|
};
|
|
5796
5820
|
_proto._getMaterialByShader = function _getMaterialByShader(materialSchema, shader, engine) {
|
|
@@ -5813,8 +5837,11 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5813
5837
|
materialShaderData.setFloat(key, value);
|
|
5814
5838
|
break;
|
|
5815
5839
|
case MaterialLoaderType.Texture:
|
|
5816
|
-
texturePromises.push(// @ts-
|
|
5840
|
+
texturePromises.push(// @ts-expect-error getResourceByRef is @internal
|
|
5817
5841
|
engine.resourceManager.getResourceByRef(value).then(function(texture) {
|
|
5842
|
+
if (!_instanceof(texture, engineCore.Texture)) {
|
|
5843
|
+
throw new Error('MaterialLoader: texture reference "' + value.url + '" did not resolve to a Texture.');
|
|
5844
|
+
}
|
|
5818
5845
|
materialShaderData.setTexture(key, texture);
|
|
5819
5846
|
}));
|
|
5820
5847
|
break;
|
|
@@ -5824,6 +5851,8 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5824
5851
|
case MaterialLoaderType.Integer:
|
|
5825
5852
|
materialShaderData.setInt(key, Number(value));
|
|
5826
5853
|
break;
|
|
5854
|
+
default:
|
|
5855
|
+
throw new Error('MaterialLoader: unsupported shader data type "' + type + '".');
|
|
5827
5856
|
}
|
|
5828
5857
|
};
|
|
5829
5858
|
var name = materialSchema.name, shaderData = materialSchema.shaderData, macros = materialSchema.macros;
|
|
@@ -5842,6 +5871,9 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5842
5871
|
}
|
|
5843
5872
|
return Promise.all(texturePromises).then(function() {
|
|
5844
5873
|
return material;
|
|
5874
|
+
}, function(error) {
|
|
5875
|
+
material.destroy();
|
|
5876
|
+
throw error;
|
|
5845
5877
|
});
|
|
5846
5878
|
};
|
|
5847
5879
|
return MaterialLoader;
|
|
@@ -5862,13 +5894,14 @@ var MeshLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5862
5894
|
var requestConfig = _extends({}, item, {
|
|
5863
5895
|
type: "arraybuffer"
|
|
5864
5896
|
});
|
|
5865
|
-
|
|
5897
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
5898
|
+
var remoteUrl = resourceManager._getRemoteUrl(item.url);
|
|
5866
5899
|
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
5867
5900
|
resourceManager// @ts-ignore
|
|
5868
|
-
.
|
|
5901
|
+
._requestByRemoteUrl(remoteUrl, requestConfig).then(function(data) {
|
|
5869
5902
|
return decode(data, resourceManager.engine);
|
|
5870
5903
|
}).then(function(mesh) {
|
|
5871
|
-
resourceManager.addContentRestorer(new MeshContentRestorer(mesh,
|
|
5904
|
+
resourceManager.addContentRestorer(new MeshContentRestorer(mesh, remoteUrl, requestConfig));
|
|
5872
5905
|
resolve(mesh);
|
|
5873
5906
|
}).catch(reject);
|
|
5874
5907
|
});
|
|
@@ -5882,9 +5915,9 @@ MeshLoader = __decorate([
|
|
|
5882
5915
|
], MeshLoader);
|
|
5883
5916
|
var MeshContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
5884
5917
|
_inherits(MeshContentRestorer, ContentRestorer);
|
|
5885
|
-
function MeshContentRestorer(resource,
|
|
5918
|
+
function MeshContentRestorer(resource, remoteUrl, requestConfig) {
|
|
5886
5919
|
var _this;
|
|
5887
|
-
_this = ContentRestorer.call(this, resource) || this, _this.
|
|
5920
|
+
_this = ContentRestorer.call(this, resource) || this, _this.remoteUrl = remoteUrl, _this.requestConfig = requestConfig;
|
|
5888
5921
|
return _this;
|
|
5889
5922
|
}
|
|
5890
5923
|
var _proto = MeshContentRestorer.prototype;
|
|
@@ -5894,7 +5927,7 @@ var MeshContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
|
5894
5927
|
var engine = resource.engine;
|
|
5895
5928
|
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
5896
5929
|
engine.resourceManager// @ts-ignore
|
|
5897
|
-
.
|
|
5930
|
+
._requestByRemoteUrl(_this.remoteUrl, _this.requestConfig).then(function(data) {
|
|
5898
5931
|
return decode(data, engine, resource);
|
|
5899
5932
|
}).then(function(mesh) {
|
|
5900
5933
|
resolve(mesh);
|
|
@@ -6200,14 +6233,16 @@ var TextureLoader = /*#__PURE__*/ function(Loader) {
|
|
|
6200
6233
|
_proto.load = function load(item, resourceManager) {
|
|
6201
6234
|
var _this = this;
|
|
6202
6235
|
var url = item.url;
|
|
6236
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
6237
|
+
var remoteUrl = resourceManager._getRemoteUrl(url);
|
|
6203
6238
|
var requestConfig = _extends({}, item, {
|
|
6204
6239
|
type: "arraybuffer"
|
|
6205
6240
|
});
|
|
6206
6241
|
return new engineCore.AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
|
|
6207
6242
|
resourceManager// @ts-ignore
|
|
6208
|
-
.
|
|
6243
|
+
._requestByRemoteUrl(remoteUrl, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
|
|
6209
6244
|
_this._decode(buffer, item, resourceManager).then(function(texture) {
|
|
6210
|
-
resourceManager.addContentRestorer(new TextureContentRestorer(texture, url, requestConfig));
|
|
6245
|
+
resourceManager.addContentRestorer(new TextureContentRestorer(texture, url, remoteUrl, requestConfig));
|
|
6211
6246
|
resolve(texture);
|
|
6212
6247
|
}, reject);
|
|
6213
6248
|
}).catch(reject);
|
|
@@ -6244,29 +6279,17 @@ var TextureLoader = /*#__PURE__*/ function(Loader) {
|
|
|
6244
6279
|
};
|
|
6245
6280
|
_proto._decodeImage = function _decodeImage(buffer, item, resourceManager) {
|
|
6246
6281
|
var _this = this;
|
|
6247
|
-
return
|
|
6248
|
-
var
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
var img =
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
var generateMipmap = engineCore.TextureUtils.supportGenerateMipmapsWithCorrection(engine, width, height, format, mipmap, isSRGBColorSpace);
|
|
6259
|
-
var texture = new engineCore.Texture2D(engine, width, height, format, generateMipmap, isSRGBColorSpace);
|
|
6260
|
-
texture.setImageSource(img);
|
|
6261
|
-
generateMipmap && texture.generateMipmaps();
|
|
6262
|
-
_this._applyParams(texture, item);
|
|
6263
|
-
resolve(texture);
|
|
6264
|
-
};
|
|
6265
|
-
img.onerror = function(e) {
|
|
6266
|
-
URL.revokeObjectURL(img.src);
|
|
6267
|
-
reject(e);
|
|
6268
|
-
};
|
|
6269
|
-
img.src = URL.createObjectURL(blob);
|
|
6282
|
+
return decodeImage(buffer, item.url).then(function(img) {
|
|
6283
|
+
var _item_params;
|
|
6284
|
+
var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? engineCore.TextureFormat.R8G8B8A8 : _ref_format, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
|
|
6285
|
+
var engine = resourceManager.engine;
|
|
6286
|
+
var width = img.width, height = img.height;
|
|
6287
|
+
var generateMipmap = engineCore.TextureUtils.supportGenerateMipmapsWithCorrection(engine, width, height, format, mipmap, isSRGBColorSpace);
|
|
6288
|
+
var texture = new engineCore.Texture2D(engine, width, height, format, generateMipmap, isSRGBColorSpace);
|
|
6289
|
+
texture.setImageSource(img);
|
|
6290
|
+
generateMipmap && texture.generateMipmaps();
|
|
6291
|
+
_this._applyParams(texture, item);
|
|
6292
|
+
return texture;
|
|
6270
6293
|
});
|
|
6271
6294
|
};
|
|
6272
6295
|
_proto._applyParams = function _applyParams(texture, item) {
|
|
@@ -6295,16 +6318,16 @@ TextureLoader = __decorate([
|
|
|
6295
6318
|
], TextureLoader);
|
|
6296
6319
|
var TextureContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
6297
6320
|
_inherits(TextureContentRestorer, ContentRestorer);
|
|
6298
|
-
function TextureContentRestorer(resource, url, requestConfig) {
|
|
6321
|
+
function TextureContentRestorer(resource, url, remoteUrl, requestConfig) {
|
|
6299
6322
|
var _this;
|
|
6300
|
-
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
6323
|
+
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.remoteUrl = remoteUrl, _this.requestConfig = requestConfig;
|
|
6301
6324
|
return _this;
|
|
6302
6325
|
}
|
|
6303
6326
|
var _proto = TextureContentRestorer.prototype;
|
|
6304
6327
|
_proto.restoreContent = function restoreContent() {
|
|
6305
6328
|
var _this = this;
|
|
6306
6329
|
return this.resource.engine.resourceManager// @ts-ignore
|
|
6307
|
-
.
|
|
6330
|
+
._requestByRemoteUrl(this.remoteUrl, this.requestConfig).then(function(buffer) {
|
|
6308
6331
|
if (FileHeader.checkMagic(buffer)) {
|
|
6309
6332
|
return decode(buffer, _this.resource.engine, _this.resource);
|
|
6310
6333
|
}
|
|
@@ -6316,27 +6339,35 @@ var TextureContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
|
6316
6339
|
texture.mipmapCount > 1 && texture.generateMipmaps();
|
|
6317
6340
|
return texture;
|
|
6318
6341
|
}
|
|
6319
|
-
return
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
6323
|
-
var img = new Image();
|
|
6324
|
-
img.onload = function() {
|
|
6325
|
-
URL.revokeObjectURL(img.src);
|
|
6326
|
-
texture.setImageSource(img);
|
|
6327
|
-
texture.mipmapCount > 1 && texture.generateMipmaps();
|
|
6328
|
-
resolve(texture);
|
|
6329
|
-
};
|
|
6330
|
-
img.onerror = function(e) {
|
|
6331
|
-
URL.revokeObjectURL(img.src);
|
|
6332
|
-
reject(e);
|
|
6333
|
-
};
|
|
6334
|
-
img.src = URL.createObjectURL(blob);
|
|
6342
|
+
return decodeImage(buffer, _this.url).then(function(img) {
|
|
6343
|
+
texture.setImageSource(img);
|
|
6344
|
+
texture.mipmapCount > 1 && texture.generateMipmaps();
|
|
6345
|
+
return texture;
|
|
6335
6346
|
});
|
|
6336
6347
|
});
|
|
6337
6348
|
};
|
|
6338
6349
|
return TextureContentRestorer;
|
|
6339
6350
|
}(engineCore.ContentRestorer);
|
|
6351
|
+
function decodeImage(buffer, url) {
|
|
6352
|
+
return new engineCore.AssetPromise(function(resolve, reject) {
|
|
6353
|
+
var objectUrl = URL.createObjectURL(new Blob([
|
|
6354
|
+
buffer
|
|
6355
|
+
]));
|
|
6356
|
+
var image = new Image();
|
|
6357
|
+
var releaseObjectUrl = function() {
|
|
6358
|
+
return URL.revokeObjectURL(objectUrl);
|
|
6359
|
+
};
|
|
6360
|
+
image.onload = function() {
|
|
6361
|
+
releaseObjectUrl();
|
|
6362
|
+
resolve(image);
|
|
6363
|
+
};
|
|
6364
|
+
image.onerror = function() {
|
|
6365
|
+
releaseObjectUrl();
|
|
6366
|
+
reject(new Error('TextureLoader: failed to decode texture "' + url + '" (' + buffer.byteLength + " bytes)."));
|
|
6367
|
+
};
|
|
6368
|
+
image.src = objectUrl;
|
|
6369
|
+
});
|
|
6370
|
+
}
|
|
6340
6371
|
|
|
6341
6372
|
var AudioLoader = /*#__PURE__*/ function(Loader) {
|
|
6342
6373
|
_inherits(AudioLoader, Loader);
|
|
@@ -6401,11 +6432,11 @@ var ShaderLoader = /*#__PURE__*/ function(Loader) {
|
|
|
6401
6432
|
type: "text"
|
|
6402
6433
|
})).then(function(code) {
|
|
6403
6434
|
var source = code.trimStart();
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6435
|
+
var shader = source.startsWith("{") ? engineCore.Shader._createFromPrecompiled(JSON.parse(source)) : engineCore.Shader.create(code, undefined, url);
|
|
6436
|
+
if (!shader) {
|
|
6437
|
+
throw new Error('ShaderLoader: failed to create shader "' + url + '".');
|
|
6407
6438
|
}
|
|
6408
|
-
return
|
|
6439
|
+
return shader;
|
|
6409
6440
|
});
|
|
6410
6441
|
};
|
|
6411
6442
|
return ShaderLoader;
|
|
@@ -6453,8 +6484,10 @@ var RenderTargetLoader = /*#__PURE__*/ function(Loader) {
|
|
|
6453
6484
|
var _proto = RenderTargetLoader.prototype;
|
|
6454
6485
|
_proto.load = function load(item, resourceManager) {
|
|
6455
6486
|
var engine = resourceManager.engine;
|
|
6487
|
+
// @ts-expect-error -- internal method is omitted from public declarations
|
|
6488
|
+
var remoteAssetBaseURL = resourceManager._getRemoteUrl(item.url);
|
|
6456
6489
|
return resourceManager// @ts-ignore
|
|
6457
|
-
.
|
|
6490
|
+
._requestByRemoteUrl(remoteAssetBaseURL, _extends({}, item, {
|
|
6458
6491
|
type: "json"
|
|
6459
6492
|
})).then(function(data) {
|
|
6460
6493
|
var width = data.width, height = data.height, colorFormats = data.colorFormats, depthFormat = data.depthFormat, antiAliasing = data.antiAliasing, autoGenerateMipmaps = data.autoGenerateMipmaps;
|
|
@@ -6480,7 +6513,7 @@ var RenderTargetLoader = /*#__PURE__*/ function(Loader) {
|
|
|
6480
6513
|
// Notify pending sub-asset requests for colorTextures
|
|
6481
6514
|
for(var i = 0, n = colorTextures.length; i < n; i++){
|
|
6482
6515
|
// @ts-ignore
|
|
6483
|
-
resourceManager._onSubAssetSuccess(
|
|
6516
|
+
resourceManager._onSubAssetSuccess(remoteAssetBaseURL, "colorTextures[" + i + "]", colorTextures[i]);
|
|
6484
6517
|
}
|
|
6485
6518
|
return rt;
|
|
6486
6519
|
});
|