@galacean/engine-loader 2.0.0-alpha.43 → 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 +39 -21
- package/dist/main.js.map +1 -1
- package/dist/module.js +40 -22
- package/dist/module.js.map +1 -1
- package/package.json +4 -4
package/dist/main.js
CHANGED
|
@@ -5780,6 +5780,7 @@ var KTXContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
|
5780
5780
|
return KTXContentRestorer;
|
|
5781
5781
|
}(engineCore.ContentRestorer);
|
|
5782
5782
|
|
|
5783
|
+
var materialLoaderTypes = new Set(Object.values(MaterialLoaderType));
|
|
5783
5784
|
var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
5784
5785
|
_inherits(MaterialLoader, Loader);
|
|
5785
5786
|
function MaterialLoader() {
|
|
@@ -5788,23 +5789,32 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5788
5789
|
var _proto = MaterialLoader.prototype;
|
|
5789
5790
|
_proto.load = function load(item, resourceManager) {
|
|
5790
5791
|
var _this = this;
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
|
|
5796
|
-
|
|
5797
|
-
var
|
|
5798
|
-
|
|
5799
|
-
|
|
5800
|
-
resolve(_this._getMaterialByShader(materialSchema, shader, engine));
|
|
5801
|
-
} else if (shaderRef) {
|
|
5802
|
-
resolve(resourceManager// @ts-ignore
|
|
5803
|
-
.getResourceByRef(shaderRef).then(function(shader) {
|
|
5804
|
-
return _this._getMaterialByShader(materialSchema, shader, engine);
|
|
5805
|
-
}));
|
|
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 + '".');
|
|
5806
5801
|
}
|
|
5807
|
-
}
|
|
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
|
+
});
|
|
5808
5818
|
});
|
|
5809
5819
|
};
|
|
5810
5820
|
_proto._getMaterialByShader = function _getMaterialByShader(materialSchema, shader, engine) {
|
|
@@ -5827,8 +5837,11 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5827
5837
|
materialShaderData.setFloat(key, value);
|
|
5828
5838
|
break;
|
|
5829
5839
|
case MaterialLoaderType.Texture:
|
|
5830
|
-
texturePromises.push(// @ts-
|
|
5840
|
+
texturePromises.push(// @ts-expect-error getResourceByRef is @internal
|
|
5831
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
|
+
}
|
|
5832
5845
|
materialShaderData.setTexture(key, texture);
|
|
5833
5846
|
}));
|
|
5834
5847
|
break;
|
|
@@ -5838,6 +5851,8 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5838
5851
|
case MaterialLoaderType.Integer:
|
|
5839
5852
|
materialShaderData.setInt(key, Number(value));
|
|
5840
5853
|
break;
|
|
5854
|
+
default:
|
|
5855
|
+
throw new Error('MaterialLoader: unsupported shader data type "' + type + '".');
|
|
5841
5856
|
}
|
|
5842
5857
|
};
|
|
5843
5858
|
var name = materialSchema.name, shaderData = materialSchema.shaderData, macros = materialSchema.macros;
|
|
@@ -5856,6 +5871,9 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
5856
5871
|
}
|
|
5857
5872
|
return Promise.all(texturePromises).then(function() {
|
|
5858
5873
|
return material;
|
|
5874
|
+
}, function(error) {
|
|
5875
|
+
material.destroy();
|
|
5876
|
+
throw error;
|
|
5859
5877
|
});
|
|
5860
5878
|
};
|
|
5861
5879
|
return MaterialLoader;
|
|
@@ -6414,11 +6432,11 @@ var ShaderLoader = /*#__PURE__*/ function(Loader) {
|
|
|
6414
6432
|
type: "text"
|
|
6415
6433
|
})).then(function(code) {
|
|
6416
6434
|
var source = code.trimStart();
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
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 + '".');
|
|
6420
6438
|
}
|
|
6421
|
-
return
|
|
6439
|
+
return shader;
|
|
6422
6440
|
});
|
|
6423
6441
|
};
|
|
6424
6442
|
return ShaderLoader;
|