@galacean/engine 2.0.0-alpha.5 → 2.0.0-alpha.6
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 +524 -525
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/bundled.module.js +525 -526
- package/dist/bundled.module.js.map +1 -1
- package/dist/bundled.module.min.js +1 -1
- package/dist/bundled.module.min.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/module.js +1 -1
- package/package.json +5 -5
package/dist/browser.js
CHANGED
|
@@ -28932,7 +28932,6 @@
|
|
|
28932
28932
|
/** Sprite Atlas. */ AssetType["SpriteAtlas"] = "SpriteAtlas";
|
|
28933
28933
|
/** Ambient light. */ AssetType["Env"] = "Environment";
|
|
28934
28934
|
/** Scene. */ AssetType["Scene"] = "Scene";
|
|
28935
|
-
/** HDR to cube. */ AssetType["HDR"] = "HDR";
|
|
28936
28935
|
/** Font. */ AssetType["Font"] = "Font";
|
|
28937
28936
|
/** Source Font, include ttf, otf and woff. */ AssetType["SourceFont"] = "SourceFont";
|
|
28938
28937
|
/** AudioClip, include ogg, wav and mp3. */ AssetType["Audio"] = "Audio";
|
|
@@ -29346,7 +29345,6 @@
|
|
|
29346
29345
|
this._contentRestorerPool = Object.create(null);
|
|
29347
29346
|
this._subAssetPromiseCallbacks = {};
|
|
29348
29347
|
this./** @internal */ _objectPool = Object.create(null);
|
|
29349
|
-
this./** @internal */ _idResourceMap = Object.create(null);
|
|
29350
29348
|
this./** @internal */ _virtualPathResourceMap = Object.create(null);
|
|
29351
29349
|
}
|
|
29352
29350
|
var _proto = ResourceManager.prototype;
|
|
@@ -29745,30 +29743,29 @@
|
|
|
29745
29743
|
* @internal
|
|
29746
29744
|
* @beta Just for internal editor, not recommended for developers.
|
|
29747
29745
|
*/ _proto.getResourceByRef = function getResourceByRef(ref) {
|
|
29748
|
-
var
|
|
29749
|
-
|
|
29750
|
-
|
|
29751
|
-
|
|
29752
|
-
|
|
29753
|
-
|
|
29754
|
-
|
|
29755
|
-
|
|
29756
|
-
|
|
29757
|
-
|
|
29758
|
-
|
|
29759
|
-
|
|
29760
|
-
|
|
29761
|
-
url += "?q=" + key;
|
|
29762
|
-
}
|
|
29763
|
-
promise = this.load({
|
|
29764
|
-
url: url,
|
|
29765
|
-
type: resourceConfig.type,
|
|
29766
|
-
params: resourceConfig.params
|
|
29767
|
-
});
|
|
29746
|
+
var url = ref.url, key = ref.key, isClone = ref.isClone;
|
|
29747
|
+
if (!url) {
|
|
29748
|
+
Logger.warn("ResourceManager.getResourceByRef: url is empty.");
|
|
29749
|
+
return AssetPromise.resolve(null);
|
|
29750
|
+
}
|
|
29751
|
+
var cached = this._objectPool[url];
|
|
29752
|
+
if (cached) {
|
|
29753
|
+
return AssetPromise.resolve(isClone ? cached.clone() : cached);
|
|
29754
|
+
}
|
|
29755
|
+
var mapped = this._virtualPathResourceMap[url];
|
|
29756
|
+
if (!mapped) {
|
|
29757
|
+
Logger.warn('ResourceManager.getResourceByRef: url "' + url + '" not found in virtualPathResourceMap.');
|
|
29758
|
+
return AssetPromise.resolve(null);
|
|
29768
29759
|
}
|
|
29769
|
-
|
|
29770
|
-
|
|
29760
|
+
var loadUrl = key ? url + "?q=" + key : url;
|
|
29761
|
+
var promise = this.load({
|
|
29762
|
+
url: loadUrl,
|
|
29763
|
+
type: mapped.type,
|
|
29764
|
+
params: mapped.params
|
|
29771
29765
|
});
|
|
29766
|
+
return isClone ? promise.then(function(item) {
|
|
29767
|
+
return item.clone();
|
|
29768
|
+
}) : promise;
|
|
29772
29769
|
};
|
|
29773
29770
|
/**
|
|
29774
29771
|
* @internal
|
|
@@ -29777,7 +29774,6 @@
|
|
|
29777
29774
|
var _this = this;
|
|
29778
29775
|
config.forEach(function(element) {
|
|
29779
29776
|
_this._virtualPathResourceMap[element.virtualPath] = element;
|
|
29780
|
-
_this._idResourceMap[element.id] = element;
|
|
29781
29777
|
if (element.dependentAssetMap) {
|
|
29782
29778
|
_this._virtualPathResourceMap[element.virtualPath].dependentAssetMap = element.dependentAssetMap;
|
|
29783
29779
|
}
|
|
@@ -45757,7 +45753,9 @@
|
|
|
45757
45753
|
decoderMap[type] = target;
|
|
45758
45754
|
};
|
|
45759
45755
|
}
|
|
45760
|
-
|
|
45756
|
+
/**
|
|
45757
|
+
* Binary format: [MAGIC(4B)] [totalLength(4B)] [version(1B)] [typeLen(2B)] [type] [nameLen(2B)] [name] [data...]
|
|
45758
|
+
*/ var FileHeader = /*#__PURE__*/ function() {
|
|
45761
45759
|
function FileHeader() {
|
|
45762
45760
|
this.totalLength = 0;
|
|
45763
45761
|
this.version = 0;
|
|
@@ -45765,14 +45763,23 @@
|
|
|
45765
45763
|
this.name = "";
|
|
45766
45764
|
this.headerLength = 0;
|
|
45767
45765
|
}
|
|
45766
|
+
FileHeader.checkMagic = function checkMagic(arrayBuffer) {
|
|
45767
|
+
if (arrayBuffer.byteLength < 4) return false;
|
|
45768
|
+
var view = new DataView(arrayBuffer);
|
|
45769
|
+
return view.getUint32(0, true) === FileHeader.MAGIC;
|
|
45770
|
+
};
|
|
45768
45771
|
FileHeader.decode = function decode(arrayBuffer) {
|
|
45769
45772
|
var dataView = new DataView(arrayBuffer);
|
|
45770
|
-
|
|
45771
|
-
|
|
45772
|
-
|
|
45773
|
-
var
|
|
45774
|
-
var
|
|
45775
|
-
var
|
|
45773
|
+
if (!FileHeader.checkMagic(arrayBuffer)) {
|
|
45774
|
+
throw new Error("Invalid Galacean binary file: missing GLCN magic header.");
|
|
45775
|
+
}
|
|
45776
|
+
var offset = 4;
|
|
45777
|
+
var totalLen = dataView.getUint32(offset, true);
|
|
45778
|
+
var fileVersion = dataView.getUint8(offset + 4);
|
|
45779
|
+
var typeLen = dataView.getUint16(offset + 5, true);
|
|
45780
|
+
var typeUint8Array = new Uint8Array(arrayBuffer, offset + 7, typeLen);
|
|
45781
|
+
var nameLen = dataView.getUint16(offset + 7 + typeLen, true);
|
|
45782
|
+
var nameUint8Array = new Uint8Array(arrayBuffer, offset + 9 + typeLen, nameLen);
|
|
45776
45783
|
var name = Utils.decodeText(nameUint8Array);
|
|
45777
45784
|
var type = Utils.decodeText(typeUint8Array);
|
|
45778
45785
|
var header = new FileHeader();
|
|
@@ -45780,7 +45787,7 @@
|
|
|
45780
45787
|
header.name = name;
|
|
45781
45788
|
header.type = type;
|
|
45782
45789
|
header.version = fileVersion;
|
|
45783
|
-
header.headerLength = nameUint8Array.byteLength + typeUint8Array.byteLength + 9;
|
|
45790
|
+
header.headerLength = offset + nameUint8Array.byteLength + typeUint8Array.byteLength + 9;
|
|
45784
45791
|
return header;
|
|
45785
45792
|
};
|
|
45786
45793
|
_create_class(FileHeader, [
|
|
@@ -45793,6 +45800,8 @@
|
|
|
45793
45800
|
]);
|
|
45794
45801
|
return FileHeader;
|
|
45795
45802
|
}();
|
|
45803
|
+
FileHeader.MAGIC = 0x4e434c47 // "GLCN" in little-endian
|
|
45804
|
+
;
|
|
45796
45805
|
var InterpolableValueType = /*#__PURE__*/ function(InterpolableValueType) {
|
|
45797
45806
|
InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
|
|
45798
45807
|
InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
|
|
@@ -46193,12 +46202,12 @@
|
|
|
46193
46202
|
this.rootIds.length = 0;
|
|
46194
46203
|
this.strippedIds.length = 0;
|
|
46195
46204
|
};
|
|
46196
|
-
/** @internal */ _proto._addDependentAsset = function _addDependentAsset(
|
|
46205
|
+
/** @internal */ _proto._addDependentAsset = function _addDependentAsset(url, promise) {
|
|
46197
46206
|
var _this = this;
|
|
46198
46207
|
var tasks = this._tasks;
|
|
46199
|
-
if (tasks.has(
|
|
46208
|
+
if (tasks.has(url)) return;
|
|
46200
46209
|
++this._total;
|
|
46201
|
-
tasks.add(
|
|
46210
|
+
tasks.add(url);
|
|
46202
46211
|
promise.finally(function() {
|
|
46203
46212
|
++_this._loaded;
|
|
46204
46213
|
_this._setTaskCompleteProgress(_this._loaded, _this._total);
|
|
@@ -46305,7 +46314,7 @@
|
|
|
46305
46314
|
// reference object
|
|
46306
46315
|
// @ts-ignore
|
|
46307
46316
|
return context.resourceManager.getResourceByRef(value).then(function(resource) {
|
|
46308
|
-
if (context.type === ParserType.Prefab) {
|
|
46317
|
+
if (resource && context.type === ParserType.Prefab) {
|
|
46309
46318
|
// @ts-ignore
|
|
46310
46319
|
context.resource._addDependenceAsset(resource);
|
|
46311
46320
|
}
|
|
@@ -46348,18 +46357,18 @@
|
|
|
46348
46357
|
_proto._getEntityByConfig = function _getEntityByConfig(entityConfig) {
|
|
46349
46358
|
var _this = this;
|
|
46350
46359
|
// @ts-ignore
|
|
46351
|
-
var
|
|
46360
|
+
var assetUrl = entityConfig.assetUrl;
|
|
46352
46361
|
var engine = this._context.engine;
|
|
46353
|
-
if (
|
|
46362
|
+
if (assetUrl) {
|
|
46354
46363
|
return engine.resourceManager // @ts-ignore
|
|
46355
46364
|
.getResourceByRef({
|
|
46356
|
-
|
|
46365
|
+
url: assetUrl,
|
|
46357
46366
|
key: entityConfig.key,
|
|
46358
46367
|
isClone: entityConfig.isClone
|
|
46359
46368
|
}).then(function(entity) {
|
|
46360
46369
|
// @ts-ignore
|
|
46361
|
-
var resource = engine.resourceManager._objectPool[
|
|
46362
|
-
if (_this._context.type === ParserType.Prefab) {
|
|
46370
|
+
var resource = engine.resourceManager._objectPool[assetUrl];
|
|
46371
|
+
if (resource && _this._context.type === ParserType.Prefab) {
|
|
46363
46372
|
// @ts-ignore
|
|
46364
46373
|
_this._context.resource._addDependenceAsset(resource);
|
|
46365
46374
|
}
|
|
@@ -46382,7 +46391,7 @@
|
|
|
46382
46391
|
return value["classType"] !== undefined;
|
|
46383
46392
|
};
|
|
46384
46393
|
ReflectionParser._isAssetRef = function _isAssetRef(value) {
|
|
46385
|
-
return value["
|
|
46394
|
+
return value["url"] !== undefined;
|
|
46386
46395
|
};
|
|
46387
46396
|
ReflectionParser._isEntityRef = function _isEntityRef(value) {
|
|
46388
46397
|
return value["entityId"] !== undefined;
|
|
@@ -46400,7 +46409,7 @@
|
|
|
46400
46409
|
function Texture2DDecoder() {}
|
|
46401
46410
|
Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
|
|
46402
46411
|
return new AssetPromise(function(resolve, reject) {
|
|
46403
|
-
var
|
|
46412
|
+
var url = bufferReader.nextStr();
|
|
46404
46413
|
var mipmap = !!bufferReader.nextUint8();
|
|
46405
46414
|
var filterMode = bufferReader.nextUint8();
|
|
46406
46415
|
var anisoLevel = bufferReader.nextUint8();
|
|
@@ -46429,7 +46438,7 @@
|
|
|
46429
46438
|
}
|
|
46430
46439
|
}
|
|
46431
46440
|
// @ts-ignore
|
|
46432
|
-
engine.resourceManager._objectPool[
|
|
46441
|
+
engine.resourceManager._objectPool[url] = texture2D;
|
|
46433
46442
|
resolve(texture2D);
|
|
46434
46443
|
} else {
|
|
46435
46444
|
var blob = new window.Blob([
|
|
@@ -46723,7 +46732,7 @@
|
|
|
46723
46732
|
_proto._getEntityByConfig = function _getEntityByConfig(entityConfig, engine) {
|
|
46724
46733
|
var _this = this;
|
|
46725
46734
|
var entityPromise;
|
|
46726
|
-
if (entityConfig.
|
|
46735
|
+
if (entityConfig.assetUrl) {
|
|
46727
46736
|
entityPromise = this._parsePrefab(entityConfig, engine);
|
|
46728
46737
|
} else if (entityConfig.strippedId) {
|
|
46729
46738
|
entityPromise = this._parseStrippedEntity(entityConfig);
|
|
@@ -46743,10 +46752,10 @@
|
|
|
46743
46752
|
};
|
|
46744
46753
|
_proto._parsePrefab = function _parsePrefab(entityConfig, engine) {
|
|
46745
46754
|
var _this = this;
|
|
46746
|
-
var
|
|
46755
|
+
var assetUrl = entityConfig.assetUrl;
|
|
46747
46756
|
return engine.resourceManager // @ts-ignore
|
|
46748
46757
|
.getResourceByRef({
|
|
46749
|
-
|
|
46758
|
+
url: assetUrl
|
|
46750
46759
|
}).then(function(prefabResource) {
|
|
46751
46760
|
var entity = _instanceof1(prefabResource, PrefabResource) ? prefabResource.instantiate() : prefabResource.instantiateSceneRoot();
|
|
46752
46761
|
var instanceContext = new ParserContext(engine, ParserType.Prefab, null);
|
|
@@ -46797,7 +46806,7 @@
|
|
|
46797
46806
|
var componentConfigMap = context.componentConfigMap;
|
|
46798
46807
|
for(var i = 0, n = components.length; i < n; i++){
|
|
46799
46808
|
var componentConfig = components[i];
|
|
46800
|
-
var key = !componentConfig.
|
|
46809
|
+
var key = !componentConfig.url ? componentConfig.class : componentConfig.url;
|
|
46801
46810
|
var componentId = componentConfig.id;
|
|
46802
46811
|
var component = entity.addComponent(Loader.getClass(key));
|
|
46803
46812
|
componentMap.set(componentId, component);
|
|
@@ -46844,52 +46853,6 @@
|
|
|
46844
46853
|
_proto._addEntityPlugin = function _addEntityPlugin(entityId, entity) {};
|
|
46845
46854
|
return HierarchyParser;
|
|
46846
46855
|
}();
|
|
46847
|
-
exports.EditorTextureLoader = /*#__PURE__*/ function(Loader) {
|
|
46848
|
-
_inherits(EditorTextureLoader, Loader);
|
|
46849
|
-
function EditorTextureLoader() {
|
|
46850
|
-
return Loader.apply(this, arguments) || this;
|
|
46851
|
-
}
|
|
46852
|
-
var _proto = EditorTextureLoader.prototype;
|
|
46853
|
-
_proto.load = function load(item, resourceManager) {
|
|
46854
|
-
var requestConfig = _extends({}, item, {
|
|
46855
|
-
type: "arraybuffer"
|
|
46856
|
-
});
|
|
46857
|
-
var url = item.url;
|
|
46858
|
-
return new AssetPromise(function(resolve, reject) {
|
|
46859
|
-
resourceManager // @ts-ignore
|
|
46860
|
-
._request(url, requestConfig).then(function(data) {
|
|
46861
|
-
decode(data, resourceManager.engine).then(function(texture) {
|
|
46862
|
-
resourceManager.addContentRestorer(new EditorTexture2DContentRestorer(texture, url, requestConfig));
|
|
46863
|
-
resolve(texture);
|
|
46864
|
-
});
|
|
46865
|
-
}).catch(reject);
|
|
46866
|
-
});
|
|
46867
|
-
};
|
|
46868
|
-
return EditorTextureLoader;
|
|
46869
|
-
}(Loader);
|
|
46870
|
-
exports.EditorTextureLoader = __decorate([
|
|
46871
|
-
resourceLoader("EditorTexture2D", [
|
|
46872
|
-
"prefab"
|
|
46873
|
-
], true)
|
|
46874
|
-
], exports.EditorTextureLoader);
|
|
46875
|
-
var EditorTexture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
46876
|
-
_inherits(EditorTexture2DContentRestorer, ContentRestorer);
|
|
46877
|
-
function EditorTexture2DContentRestorer(resource, url, requestConfig) {
|
|
46878
|
-
var _this;
|
|
46879
|
-
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
46880
|
-
return _this;
|
|
46881
|
-
}
|
|
46882
|
-
var _proto = EditorTexture2DContentRestorer.prototype;
|
|
46883
|
-
_proto.restoreContent = function restoreContent() {
|
|
46884
|
-
var texture = this.resource;
|
|
46885
|
-
var engine = texture.engine;
|
|
46886
|
-
return engine.resourceManager // @ts-ignore
|
|
46887
|
-
._request(this.url, this.requestConfig).then(function(data) {
|
|
46888
|
-
return decode(data, engine, texture);
|
|
46889
|
-
});
|
|
46890
|
-
};
|
|
46891
|
-
return EditorTexture2DContentRestorer;
|
|
46892
|
-
}(ContentRestorer);
|
|
46893
46856
|
var MaterialLoaderType = /*#__PURE__*/ function(MaterialLoaderType) {
|
|
46894
46857
|
MaterialLoaderType["Vector2"] = "Vector2";
|
|
46895
46858
|
MaterialLoaderType["Vector3"] = "Vector3";
|
|
@@ -46928,11 +46891,11 @@
|
|
|
46928
46891
|
var customAmbientLight = ambient.customAmbientLight, ambientLight = ambient.ambientLight;
|
|
46929
46892
|
if (useCustomAmbient && customAmbientLight) {
|
|
46930
46893
|
// @ts-ignore
|
|
46931
|
-
context._addDependentAsset(customAmbientLight.
|
|
46894
|
+
context._addDependentAsset(customAmbientLight.url, resourceManager.getResourceByRef(customAmbientLight));
|
|
46932
46895
|
}
|
|
46933
46896
|
if (ambientLight && (!useCustomAmbient || useSH)) {
|
|
46934
46897
|
// @ts-ignore
|
|
46935
|
-
context._addDependentAsset(ambientLight.
|
|
46898
|
+
context._addDependentAsset(ambientLight.url, resourceManager.getResourceByRef(ambientLight));
|
|
46936
46899
|
}
|
|
46937
46900
|
}
|
|
46938
46901
|
var background = scene.background;
|
|
@@ -46940,14 +46903,14 @@
|
|
|
46940
46903
|
if (backgroundMode === BackgroundMode.Texture) {
|
|
46941
46904
|
var texture = background.texture;
|
|
46942
46905
|
// @ts-ignore
|
|
46943
|
-
texture && context._addDependentAsset(texture.
|
|
46906
|
+
texture && context._addDependentAsset(texture.url, resourceManager.getResourceByRef(texture));
|
|
46944
46907
|
} else if (backgroundMode === BackgroundMode.Sky) {
|
|
46945
46908
|
var skyMesh = background.skyMesh, skyMaterial = background.skyMaterial;
|
|
46946
46909
|
if (skyMesh && skyMaterial) {
|
|
46947
46910
|
// @ts-ignore
|
|
46948
|
-
context._addDependentAsset(skyMesh.
|
|
46911
|
+
context._addDependentAsset(skyMesh.url, resourceManager.getResourceByRef(skyMesh));
|
|
46949
46912
|
// @ts-ignore
|
|
46950
|
-
context._addDependentAsset(skyMaterial.
|
|
46913
|
+
context._addDependentAsset(skyMaterial.url, resourceManager.getResourceByRef(skyMaterial));
|
|
46951
46914
|
}
|
|
46952
46915
|
}
|
|
46953
46916
|
};
|
|
@@ -46963,12 +46926,12 @@
|
|
|
46963
46926
|
var entities = file.entities;
|
|
46964
46927
|
for(var i = 0, n = entities.length; i < n; i++){
|
|
46965
46928
|
var entity = entities[i];
|
|
46966
|
-
if (!!entity.
|
|
46929
|
+
if (!!entity.assetUrl) {
|
|
46967
46930
|
var context = this.context;
|
|
46968
|
-
var
|
|
46931
|
+
var url = entity.assetUrl, key = entity.key;
|
|
46969
46932
|
// @ts-ignore
|
|
46970
|
-
context._addDependentAsset(
|
|
46971
|
-
|
|
46933
|
+
context._addDependentAsset(url, context.resourceManager.getResourceByRef({
|
|
46934
|
+
url: url,
|
|
46972
46935
|
key: key
|
|
46973
46936
|
}));
|
|
46974
46937
|
} else if (entity.strippedId) {
|
|
@@ -46993,7 +46956,7 @@
|
|
|
46993
46956
|
if (ReflectionParser._isAssetRef(value)) {
|
|
46994
46957
|
var context = this.context;
|
|
46995
46958
|
// @ts-ignore
|
|
46996
|
-
context._addDependentAsset(value.
|
|
46959
|
+
context._addDependentAsset(value.url, context.resourceManager.getResourceByRef(value));
|
|
46997
46960
|
} else {
|
|
46998
46961
|
for(var key in value){
|
|
46999
46962
|
this._searchDependentAssets(value[key]);
|
|
@@ -47055,7 +47018,7 @@
|
|
|
47055
47018
|
};
|
|
47056
47019
|
_proto._parseKeyframeValue = function _parseKeyframeValue(keyframe, resourceManager) {
|
|
47057
47020
|
var value = keyframe.value;
|
|
47058
|
-
if ((typeof value === "undefined" ? "undefined" : _type_of1(value)) === "object" && (value == null ? void 0 : value.
|
|
47021
|
+
if ((typeof value === "undefined" ? "undefined" : _type_of1(value)) === "object" && (value == null ? void 0 : value.url)) {
|
|
47059
47022
|
return new Promise(function(resolve) {
|
|
47060
47023
|
resourceManager // @ts-ignore
|
|
47061
47024
|
.getResourceByRef(value).then(function(asset) {
|
|
@@ -47071,7 +47034,7 @@
|
|
|
47071
47034
|
}(Loader);
|
|
47072
47035
|
AnimationClipLoader = __decorate([
|
|
47073
47036
|
resourceLoader(AssetType.AnimationClip, [
|
|
47074
|
-
"
|
|
47037
|
+
"anim"
|
|
47075
47038
|
])
|
|
47076
47039
|
], AnimationClipLoader);
|
|
47077
47040
|
var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
|
|
@@ -47182,8 +47145,8 @@
|
|
|
47182
47145
|
}(Loader);
|
|
47183
47146
|
AnimatorControllerLoader = __decorate([
|
|
47184
47147
|
resourceLoader(AssetType.AnimatorController, [
|
|
47185
|
-
"
|
|
47186
|
-
]
|
|
47148
|
+
"animCtrl"
|
|
47149
|
+
])
|
|
47187
47150
|
], AnimatorControllerLoader);
|
|
47188
47151
|
var base64Regex = /^data:(.+?);base64,/;
|
|
47189
47152
|
var BufferLoader = /*#__PURE__*/ function(Loader) {
|
|
@@ -47210,8 +47173,7 @@
|
|
|
47210
47173
|
}(Loader);
|
|
47211
47174
|
BufferLoader = __decorate([
|
|
47212
47175
|
resourceLoader(AssetType.Buffer, [
|
|
47213
|
-
"bin"
|
|
47214
|
-
"r3bin"
|
|
47176
|
+
"bin"
|
|
47215
47177
|
])
|
|
47216
47178
|
], BufferLoader);
|
|
47217
47179
|
var EnvLoader = /*#__PURE__*/ function(Loader) {
|
|
@@ -50750,340 +50712,6 @@
|
|
|
50750
50712
|
"prefab"
|
|
50751
50713
|
])
|
|
50752
50714
|
], PrefabLoader);
|
|
50753
|
-
var PI = Math.PI;
|
|
50754
|
-
// referenece: https://www.flipcode.com/archives/HDR_Image_Reader.shtml
|
|
50755
|
-
var HDRLoader = /*#__PURE__*/ function(Loader) {
|
|
50756
|
-
_inherits(HDRLoader, Loader);
|
|
50757
|
-
function HDRLoader() {
|
|
50758
|
-
return Loader.apply(this, arguments) || this;
|
|
50759
|
-
}
|
|
50760
|
-
var _proto = HDRLoader.prototype;
|
|
50761
|
-
_proto.load = function load(item, resourceManager) {
|
|
50762
|
-
return new AssetPromise(function(resolve, reject) {
|
|
50763
|
-
var engine = resourceManager.engine;
|
|
50764
|
-
var requestConfig = _extends({}, item, {
|
|
50765
|
-
type: "arraybuffer"
|
|
50766
|
-
});
|
|
50767
|
-
var url = item.url;
|
|
50768
|
-
resourceManager // @ts-ignore
|
|
50769
|
-
._request(url, requestConfig).then(function(buffer) {
|
|
50770
|
-
var texture = HDRLoader._setTextureByBuffer(engine, buffer);
|
|
50771
|
-
engine.resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
|
|
50772
|
-
resolve(texture);
|
|
50773
|
-
}).catch(reject);
|
|
50774
|
-
});
|
|
50775
|
-
};
|
|
50776
|
-
/**
|
|
50777
|
-
* @internal
|
|
50778
|
-
*/ HDRLoader._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
|
|
50779
|
-
var bufferArray = new Uint8Array(buffer);
|
|
50780
|
-
var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
|
|
50781
|
-
var cubeSize = height >> 1;
|
|
50782
|
-
texture || (texture = new TextureCube(engine, cubeSize, undefined, undefined, false));
|
|
50783
|
-
var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
|
|
50784
|
-
var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
|
|
50785
|
-
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
50786
|
-
texture.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
|
|
50787
|
-
}
|
|
50788
|
-
texture.generateMipmaps();
|
|
50789
|
-
return texture;
|
|
50790
|
-
};
|
|
50791
|
-
HDRLoader._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
|
|
50792
|
-
if (!pixels) {
|
|
50793
|
-
throw "ConvertPanoramaToCubemap: input cannot be null";
|
|
50794
|
-
}
|
|
50795
|
-
if (pixels.length != inputWidth * inputHeight * 4) {
|
|
50796
|
-
throw "ConvertPanoramaToCubemap: input size is wrong";
|
|
50797
|
-
}
|
|
50798
|
-
var textureRight = this._createCubemapData(size, this._faceRight, pixels, inputWidth, inputHeight);
|
|
50799
|
-
var textureLeft = this._createCubemapData(size, this._faceLeft, pixels, inputWidth, inputHeight);
|
|
50800
|
-
var textureUp = this._createCubemapData(size, this._faceUp, pixels, inputWidth, inputHeight);
|
|
50801
|
-
var textureDown = this._createCubemapData(size, this._faceBottom, pixels, inputWidth, inputHeight);
|
|
50802
|
-
var textureFront = this._createCubemapData(size, this._faceFront, pixels, inputWidth, inputHeight);
|
|
50803
|
-
var textureBack = this._createCubemapData(size, this._faceBack, pixels, inputWidth, inputHeight);
|
|
50804
|
-
return [
|
|
50805
|
-
textureRight,
|
|
50806
|
-
textureLeft,
|
|
50807
|
-
textureUp,
|
|
50808
|
-
textureDown,
|
|
50809
|
-
textureFront,
|
|
50810
|
-
textureBack
|
|
50811
|
-
];
|
|
50812
|
-
};
|
|
50813
|
-
HDRLoader._createCubemapData = function _createCubemapData(texSize, faceData, pixels, inputWidth, inputHeight) {
|
|
50814
|
-
var textureArray = new Uint8ClampedArray(texSize * texSize * 4);
|
|
50815
|
-
var rotDX1 = this._tempVector3.set(0, 0, 0).add(faceData[1]).subtract(faceData[0]).scale(1 / texSize);
|
|
50816
|
-
var rotDX2 = this._temp2Vector3.set(0, 0, 0).add(faceData[3]).subtract(faceData[2]).scale(1 / texSize);
|
|
50817
|
-
var dy = 1 / texSize;
|
|
50818
|
-
var fy = 0;
|
|
50819
|
-
for(var y = 0; y < texSize; y++){
|
|
50820
|
-
var xv1 = this._temp3Vector3.set(0, 0, 0).add(faceData[0]);
|
|
50821
|
-
var xv2 = this._temp4Vector3.set(0, 0, 0).add(faceData[2]);
|
|
50822
|
-
for(var x = 0; x < texSize; x++){
|
|
50823
|
-
var v = this._temp5Vector3.set(0, 0, 0).add(xv2).subtract(xv1).scale(fy).add(xv1);
|
|
50824
|
-
v.normalize();
|
|
50825
|
-
var color = this._calcProjectionSpherical(v, pixels, inputWidth, inputHeight);
|
|
50826
|
-
this._RGBEToLinear(color);
|
|
50827
|
-
this._linearToRGBM(color, 5);
|
|
50828
|
-
// 4 channels per pixels
|
|
50829
|
-
var index = y * texSize * 4 + x * 4;
|
|
50830
|
-
textureArray[index] = color.r;
|
|
50831
|
-
textureArray[index + 1] = color.g;
|
|
50832
|
-
textureArray[index + 2] = color.b;
|
|
50833
|
-
textureArray[index + 3] = color.a;
|
|
50834
|
-
xv1.add(rotDX1);
|
|
50835
|
-
xv2.add(rotDX2);
|
|
50836
|
-
}
|
|
50837
|
-
fy += dy;
|
|
50838
|
-
}
|
|
50839
|
-
return textureArray;
|
|
50840
|
-
};
|
|
50841
|
-
HDRLoader._calcProjectionSpherical = function _calcProjectionSpherical(vDir, pixels, inputWidth, inputHeight) {
|
|
50842
|
-
var theta = Math.atan2(vDir.z, vDir.x);
|
|
50843
|
-
var phi = Math.acos(vDir.y);
|
|
50844
|
-
while(theta < -PI){
|
|
50845
|
-
theta += 2 * PI;
|
|
50846
|
-
}
|
|
50847
|
-
while(theta > PI){
|
|
50848
|
-
theta -= 2 * PI;
|
|
50849
|
-
}
|
|
50850
|
-
var dx = theta / PI;
|
|
50851
|
-
var dy = phi / PI;
|
|
50852
|
-
// recenter.
|
|
50853
|
-
dx = dx * 0.5 + 0.5;
|
|
50854
|
-
var px = Math.round(dx * inputWidth);
|
|
50855
|
-
if (px < 0) {
|
|
50856
|
-
px = 0;
|
|
50857
|
-
} else if (px >= inputWidth) {
|
|
50858
|
-
px = inputWidth - 1;
|
|
50859
|
-
}
|
|
50860
|
-
var py = Math.round(dy * inputHeight);
|
|
50861
|
-
if (py < 0) {
|
|
50862
|
-
py = 0;
|
|
50863
|
-
} else if (py >= inputHeight) {
|
|
50864
|
-
py = inputHeight - 1;
|
|
50865
|
-
}
|
|
50866
|
-
var inputY = inputHeight - py - 1;
|
|
50867
|
-
var index = inputY * inputWidth * 4 + px * 4;
|
|
50868
|
-
var r = pixels[index];
|
|
50869
|
-
var g = pixels[index + 1];
|
|
50870
|
-
var b = pixels[index + 2];
|
|
50871
|
-
var a = pixels[index + 3];
|
|
50872
|
-
return new Color(r, g, b, a);
|
|
50873
|
-
};
|
|
50874
|
-
HDRLoader._readStringLine = function _readStringLine(uint8array, startIndex) {
|
|
50875
|
-
var line = "";
|
|
50876
|
-
var character = "";
|
|
50877
|
-
for(var i = startIndex; i < uint8array.length - startIndex; i++){
|
|
50878
|
-
character = String.fromCharCode(uint8array[i]);
|
|
50879
|
-
if (character == "\n") {
|
|
50880
|
-
break;
|
|
50881
|
-
}
|
|
50882
|
-
line += character;
|
|
50883
|
-
}
|
|
50884
|
-
return line;
|
|
50885
|
-
};
|
|
50886
|
-
HDRLoader._parseHeader = function _parseHeader(uint8array) {
|
|
50887
|
-
var height = 0;
|
|
50888
|
-
var width = 0;
|
|
50889
|
-
var line = this._readStringLine(uint8array, 0);
|
|
50890
|
-
if (line[0] != "#" || line[1] != "?") {
|
|
50891
|
-
throw "Bad HDR Format.";
|
|
50892
|
-
}
|
|
50893
|
-
var endOfHeader = false;
|
|
50894
|
-
var findFormat = false;
|
|
50895
|
-
var lineIndex = 0;
|
|
50896
|
-
do {
|
|
50897
|
-
lineIndex += line.length + 1;
|
|
50898
|
-
line = this._readStringLine(uint8array, lineIndex);
|
|
50899
|
-
if (line == "FORMAT=32-bit_rle_rgbe") {
|
|
50900
|
-
findFormat = true;
|
|
50901
|
-
} else if (line.length == 0) {
|
|
50902
|
-
endOfHeader = true;
|
|
50903
|
-
}
|
|
50904
|
-
}while (!endOfHeader);
|
|
50905
|
-
if (!findFormat) {
|
|
50906
|
-
throw "HDR Bad header format, unsupported FORMAT";
|
|
50907
|
-
}
|
|
50908
|
-
lineIndex += line.length + 1;
|
|
50909
|
-
line = this._readStringLine(uint8array, lineIndex);
|
|
50910
|
-
var sizeRegexp = /^\-Y (.*) \+X (.*)$/g;
|
|
50911
|
-
var match = sizeRegexp.exec(line);
|
|
50912
|
-
// TODO. Support +Y and -X if needed.
|
|
50913
|
-
if (!match || match.length < 3) {
|
|
50914
|
-
throw "HDR Bad header format, no size";
|
|
50915
|
-
}
|
|
50916
|
-
width = parseInt(match[2]);
|
|
50917
|
-
height = parseInt(match[1]);
|
|
50918
|
-
if (width < 8 || width > 0x7fff) {
|
|
50919
|
-
throw "HDR Bad header format, unsupported size";
|
|
50920
|
-
}
|
|
50921
|
-
lineIndex += line.length + 1;
|
|
50922
|
-
return {
|
|
50923
|
-
height: height,
|
|
50924
|
-
width: width,
|
|
50925
|
-
dataPosition: lineIndex
|
|
50926
|
-
};
|
|
50927
|
-
};
|
|
50928
|
-
HDRLoader._readPixels = function _readPixels(buffer, width, height) {
|
|
50929
|
-
var scanLineWidth = width;
|
|
50930
|
-
var byteLength = buffer.byteLength;
|
|
50931
|
-
var dataRGBA = new Uint8Array(4 * width * height);
|
|
50932
|
-
var offset = 0, pos = 0;
|
|
50933
|
-
var ptrEnd = 4 * scanLineWidth;
|
|
50934
|
-
var scanLineBuffer = new Uint8Array(ptrEnd);
|
|
50935
|
-
var numScanLines = height; // read in each successive scanLine
|
|
50936
|
-
while(numScanLines > 0 && pos < byteLength){
|
|
50937
|
-
var a = buffer[pos++];
|
|
50938
|
-
var b = buffer[pos++];
|
|
50939
|
-
var c = buffer[pos++];
|
|
50940
|
-
var d = buffer[pos++];
|
|
50941
|
-
if (a != 2 || b != 2 || c & 0x80 || width < 8 || width > 32767) {
|
|
50942
|
-
// this file is not run length encoded
|
|
50943
|
-
// read values sequentially
|
|
50944
|
-
return buffer;
|
|
50945
|
-
}
|
|
50946
|
-
if ((c << 8 | d) != scanLineWidth) {
|
|
50947
|
-
// eslint-disable-next-line no-throw-literal
|
|
50948
|
-
throw "HDR Bad header format, wrong scan line width";
|
|
50949
|
-
}
|
|
50950
|
-
// read each of the four channels for the scanline into the buffer
|
|
50951
|
-
// first red, then green, then blue, then exponent
|
|
50952
|
-
var ptr = 0, count = void 0;
|
|
50953
|
-
while(ptr < ptrEnd && pos < byteLength){
|
|
50954
|
-
count = buffer[pos++];
|
|
50955
|
-
var isEncodedRun = count > 128;
|
|
50956
|
-
if (isEncodedRun) count -= 128;
|
|
50957
|
-
if (0 === count || ptr + count > ptrEnd) {
|
|
50958
|
-
throw "HDR Bad Format, bad scanline data (run)";
|
|
50959
|
-
}
|
|
50960
|
-
if (isEncodedRun) {
|
|
50961
|
-
// a (encoded) run of the same value
|
|
50962
|
-
var byteValue = buffer[pos++];
|
|
50963
|
-
for(var i = 0; i < count; i++){
|
|
50964
|
-
scanLineBuffer[ptr++] = byteValue;
|
|
50965
|
-
} //ptr += count;
|
|
50966
|
-
} else {
|
|
50967
|
-
// a literal-run
|
|
50968
|
-
scanLineBuffer.set(buffer.subarray(pos, pos + count), ptr);
|
|
50969
|
-
ptr += count;
|
|
50970
|
-
pos += count;
|
|
50971
|
-
}
|
|
50972
|
-
} // now convert data from buffer into rgba
|
|
50973
|
-
// first red, then green, then blue, then exponent (alpha)
|
|
50974
|
-
var l = scanLineWidth; //scanLine_buffer.byteLength;
|
|
50975
|
-
for(var i1 = 0; i1 < l; i1++){
|
|
50976
|
-
var off = 0;
|
|
50977
|
-
dataRGBA[offset] = scanLineBuffer[i1 + off];
|
|
50978
|
-
off += scanLineWidth;
|
|
50979
|
-
dataRGBA[offset + 1] = scanLineBuffer[i1 + off];
|
|
50980
|
-
off += scanLineWidth;
|
|
50981
|
-
dataRGBA[offset + 2] = scanLineBuffer[i1 + off];
|
|
50982
|
-
off += scanLineWidth;
|
|
50983
|
-
dataRGBA[offset + 3] = scanLineBuffer[i1 + off];
|
|
50984
|
-
offset += 4;
|
|
50985
|
-
}
|
|
50986
|
-
numScanLines--;
|
|
50987
|
-
}
|
|
50988
|
-
return dataRGBA;
|
|
50989
|
-
};
|
|
50990
|
-
HDRLoader._RGBEToLinear = function _RGBEToLinear(color) {
|
|
50991
|
-
var scaleFactor = Math.pow(2, color.a - 128) / 255;
|
|
50992
|
-
color.r *= scaleFactor;
|
|
50993
|
-
color.g *= scaleFactor;
|
|
50994
|
-
color.b *= scaleFactor;
|
|
50995
|
-
color.a = 1;
|
|
50996
|
-
};
|
|
50997
|
-
HDRLoader._linearToRGBM = function _linearToRGBM(color, maxRange) {
|
|
50998
|
-
var maxRGB = Math.max(color.r, Math.max(color.g, color.b));
|
|
50999
|
-
var M = Math.min(maxRGB / maxRange, 1);
|
|
51000
|
-
M = Math.ceil(M * 255);
|
|
51001
|
-
var scaleFactor = 65025 / (M * maxRange); // 255 * (255 / (M * maxRange) )
|
|
51002
|
-
color.r *= scaleFactor;
|
|
51003
|
-
color.g *= scaleFactor;
|
|
51004
|
-
color.b *= scaleFactor;
|
|
51005
|
-
color.a *= M;
|
|
51006
|
-
};
|
|
51007
|
-
return HDRLoader;
|
|
51008
|
-
}(Loader);
|
|
51009
|
-
HDRLoader._rightBottomBack = new Vector3(1.0, -1.0, -1.0);
|
|
51010
|
-
HDRLoader._rightBottomFront = new Vector3(1.0, -1.0, 1.0);
|
|
51011
|
-
HDRLoader._rightUpBack = new Vector3(1.0, 1.0, -1.0);
|
|
51012
|
-
HDRLoader._rightUpFront = new Vector3(1.0, 1.0, 1.0);
|
|
51013
|
-
HDRLoader._leftBottomBack = new Vector3(-1.0, -1.0, -1.0);
|
|
51014
|
-
HDRLoader._leftBottomFront = new Vector3(-1.0, -1.0, 1.0);
|
|
51015
|
-
HDRLoader._leftUpBack = new Vector3(-1.0, 1.0, -1.0);
|
|
51016
|
-
HDRLoader._leftUpFront = new Vector3(-1.0, 1.0, 1.0);
|
|
51017
|
-
HDRLoader._faceRight = [
|
|
51018
|
-
HDRLoader._rightBottomBack,
|
|
51019
|
-
HDRLoader._rightBottomFront,
|
|
51020
|
-
HDRLoader._rightUpBack,
|
|
51021
|
-
HDRLoader._rightUpFront
|
|
51022
|
-
];
|
|
51023
|
-
HDRLoader._faceLeft = [
|
|
51024
|
-
HDRLoader._leftBottomFront,
|
|
51025
|
-
HDRLoader._leftBottomBack,
|
|
51026
|
-
HDRLoader._leftUpFront,
|
|
51027
|
-
HDRLoader._leftUpBack
|
|
51028
|
-
];
|
|
51029
|
-
HDRLoader._faceUp = [
|
|
51030
|
-
HDRLoader._leftBottomFront,
|
|
51031
|
-
HDRLoader._rightBottomFront,
|
|
51032
|
-
HDRLoader._leftBottomBack,
|
|
51033
|
-
HDRLoader._rightBottomBack
|
|
51034
|
-
];
|
|
51035
|
-
HDRLoader._faceBottom = [
|
|
51036
|
-
HDRLoader._leftUpBack,
|
|
51037
|
-
HDRLoader._rightUpBack,
|
|
51038
|
-
HDRLoader._leftUpFront,
|
|
51039
|
-
HDRLoader._rightUpFront
|
|
51040
|
-
];
|
|
51041
|
-
HDRLoader._faceFront = [
|
|
51042
|
-
HDRLoader._leftBottomBack,
|
|
51043
|
-
HDRLoader._rightBottomBack,
|
|
51044
|
-
HDRLoader._leftUpBack,
|
|
51045
|
-
HDRLoader._rightUpBack
|
|
51046
|
-
];
|
|
51047
|
-
HDRLoader._faceBack = [
|
|
51048
|
-
HDRLoader._rightBottomFront,
|
|
51049
|
-
HDRLoader._leftBottomFront,
|
|
51050
|
-
HDRLoader._rightUpFront,
|
|
51051
|
-
HDRLoader._leftUpFront
|
|
51052
|
-
];
|
|
51053
|
-
HDRLoader._tempVector3 = new Vector3();
|
|
51054
|
-
HDRLoader._temp2Vector3 = new Vector3();
|
|
51055
|
-
HDRLoader._temp3Vector3 = new Vector3();
|
|
51056
|
-
HDRLoader._temp4Vector3 = new Vector3();
|
|
51057
|
-
HDRLoader._temp5Vector3 = new Vector3();
|
|
51058
|
-
HDRLoader = __decorate([
|
|
51059
|
-
resourceLoader(AssetType.HDR, [
|
|
51060
|
-
"hdr"
|
|
51061
|
-
])
|
|
51062
|
-
], HDRLoader);
|
|
51063
|
-
/**
|
|
51064
|
-
* @internal
|
|
51065
|
-
*/ var HDRContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
51066
|
-
_inherits(HDRContentRestorer, ContentRestorer);
|
|
51067
|
-
function HDRContentRestorer(resource, url, requestConfig) {
|
|
51068
|
-
var _this;
|
|
51069
|
-
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
51070
|
-
return _this;
|
|
51071
|
-
}
|
|
51072
|
-
var _proto = HDRContentRestorer.prototype;
|
|
51073
|
-
_proto.restoreContent = function restoreContent() {
|
|
51074
|
-
var _this = this;
|
|
51075
|
-
return new AssetPromise(function(resolve, reject) {
|
|
51076
|
-
var resource = _this.resource;
|
|
51077
|
-
var engine = resource.engine;
|
|
51078
|
-
engine.resourceManager // @ts-ignore
|
|
51079
|
-
._request(_this.url, _this.requestConfig).then(function(buffer) {
|
|
51080
|
-
HDRLoader._setTextureByBuffer(engine, buffer, resource);
|
|
51081
|
-
resolve(resource);
|
|
51082
|
-
}).catch(reject);
|
|
51083
|
-
});
|
|
51084
|
-
};
|
|
51085
|
-
return HDRContentRestorer;
|
|
51086
|
-
}(ContentRestorer);
|
|
51087
50715
|
var JSONLoader = /*#__PURE__*/ function(Loader) {
|
|
51088
50716
|
_inherits(JSONLoader, Loader);
|
|
51089
50717
|
function JSONLoader() {
|
|
@@ -51479,7 +51107,7 @@
|
|
|
51479
51107
|
}(Loader);
|
|
51480
51108
|
MaterialLoader = __decorate([
|
|
51481
51109
|
resourceLoader(AssetType.Material, [
|
|
51482
|
-
"
|
|
51110
|
+
"mat"
|
|
51483
51111
|
])
|
|
51484
51112
|
], MaterialLoader);
|
|
51485
51113
|
var MeshLoader = /*#__PURE__*/ function(Loader) {
|
|
@@ -51599,7 +51227,7 @@
|
|
|
51599
51227
|
}(Loader);
|
|
51600
51228
|
ProjectLoader = __decorate([
|
|
51601
51229
|
resourceLoader(AssetType.Project, [
|
|
51602
|
-
"
|
|
51230
|
+
"project"
|
|
51603
51231
|
], false)
|
|
51604
51232
|
], ProjectLoader);
|
|
51605
51233
|
var SourceFontLoader = /*#__PURE__*/ function(Loader) {
|
|
@@ -51815,27 +51443,20 @@
|
|
|
51815
51443
|
"txt"
|
|
51816
51444
|
])
|
|
51817
51445
|
], TextLoader);
|
|
51818
|
-
|
|
51819
|
-
|
|
51820
|
-
|
|
51821
|
-
|
|
51822
|
-
|
|
51823
|
-
var
|
|
51824
|
-
|
|
51825
|
-
|
|
51826
|
-
|
|
51827
|
-
|
|
51828
|
-
|
|
51829
|
-
|
|
51830
|
-
|
|
51831
|
-
|
|
51832
|
-
resource.setImageSource(image);
|
|
51833
|
-
resource.generateMipmaps();
|
|
51834
|
-
return resource;
|
|
51835
|
-
});
|
|
51836
|
-
};
|
|
51837
|
-
return Texture2DContentRestorer;
|
|
51838
|
-
}(ContentRestorer);
|
|
51446
|
+
function loadImageFromBuffer(buffer) {
|
|
51447
|
+
return new AssetPromise(function(resolve, reject) {
|
|
51448
|
+
var blob = new Blob([
|
|
51449
|
+
buffer
|
|
51450
|
+
]);
|
|
51451
|
+
var img = new Image();
|
|
51452
|
+
img.onload = function() {
|
|
51453
|
+
URL.revokeObjectURL(img.src);
|
|
51454
|
+
resolve(img);
|
|
51455
|
+
};
|
|
51456
|
+
img.onerror = reject;
|
|
51457
|
+
img.src = URL.createObjectURL(blob);
|
|
51458
|
+
});
|
|
51459
|
+
}
|
|
51839
51460
|
var Texture2DLoader = /*#__PURE__*/ function(Loader) {
|
|
51840
51461
|
_inherits(Texture2DLoader, Loader);
|
|
51841
51462
|
function Texture2DLoader() {
|
|
@@ -51843,36 +51464,48 @@
|
|
|
51843
51464
|
}
|
|
51844
51465
|
var _proto = Texture2DLoader.prototype;
|
|
51845
51466
|
_proto.load = function load(item, resourceManager) {
|
|
51467
|
+
var _this = this;
|
|
51468
|
+
var url = item.url;
|
|
51469
|
+
var requestConfig = _extends({}, item, {
|
|
51470
|
+
type: "arraybuffer"
|
|
51471
|
+
});
|
|
51846
51472
|
return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
|
|
51847
|
-
var url = item.url;
|
|
51848
|
-
var requestConfig = _extends({}, item, {
|
|
51849
|
-
type: "image"
|
|
51850
|
-
});
|
|
51851
51473
|
resourceManager // @ts-ignore
|
|
51852
|
-
._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(
|
|
51853
|
-
|
|
51854
|
-
|
|
51855
|
-
|
|
51856
|
-
|
|
51857
|
-
|
|
51858
|
-
|
|
51859
|
-
|
|
51860
|
-
|
|
51861
|
-
|
|
51862
|
-
|
|
51863
|
-
|
|
51864
|
-
generateMipmap && texture.generateMipmaps();
|
|
51865
|
-
if (url.indexOf("data:") !== 0) {
|
|
51866
|
-
var index = url.lastIndexOf("/");
|
|
51867
|
-
texture.name = url.substring(index + 1);
|
|
51474
|
+
._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
|
|
51475
|
+
if (FileHeader.checkMagic(buffer)) {
|
|
51476
|
+
decode(buffer, resourceManager.engine).then(function(texture) {
|
|
51477
|
+
resourceManager.addContentRestorer(new Texture2DContentRestorer(texture, url, requestConfig));
|
|
51478
|
+
resolve(texture);
|
|
51479
|
+
}, reject);
|
|
51480
|
+
} else {
|
|
51481
|
+
loadImageFromBuffer(buffer).then(function(img) {
|
|
51482
|
+
var texture = _this._createTexture(img, item, resourceManager);
|
|
51483
|
+
resourceManager.addContentRestorer(new Texture2DContentRestorer(texture, url, requestConfig));
|
|
51484
|
+
resolve(texture);
|
|
51485
|
+
}, reject);
|
|
51868
51486
|
}
|
|
51869
|
-
|
|
51870
|
-
resolve(texture);
|
|
51871
|
-
}).catch(function(e) {
|
|
51872
|
-
reject(e);
|
|
51873
|
-
});
|
|
51487
|
+
}).catch(reject);
|
|
51874
51488
|
});
|
|
51875
51489
|
};
|
|
51490
|
+
_proto._createTexture = function _createTexture(img, item, resourceManager) {
|
|
51491
|
+
var _item_params;
|
|
51492
|
+
var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? TextureFormat.R8G8B8A8 : _ref_format, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
|
|
51493
|
+
var width = img.width, height = img.height;
|
|
51494
|
+
var engine = resourceManager.engine;
|
|
51495
|
+
var generateMipmap = TextureUtils.supportGenerateMipmapsWithCorrection(engine, width, height, format, mipmap, isSRGBColorSpace);
|
|
51496
|
+
var texture = new Texture2D(engine, width, height, format, generateMipmap, isSRGBColorSpace);
|
|
51497
|
+
texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
|
|
51498
|
+
texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
|
|
51499
|
+
texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
|
|
51500
|
+
texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
|
|
51501
|
+
texture.setImageSource(img);
|
|
51502
|
+
generateMipmap && texture.generateMipmaps();
|
|
51503
|
+
var url = item.url;
|
|
51504
|
+
if (url.indexOf("data:") !== 0) {
|
|
51505
|
+
texture.name = url.substring(url.lastIndexOf("/") + 1);
|
|
51506
|
+
}
|
|
51507
|
+
return texture;
|
|
51508
|
+
};
|
|
51876
51509
|
return Texture2DLoader;
|
|
51877
51510
|
}(Loader);
|
|
51878
51511
|
Texture2DLoader = __decorate([
|
|
@@ -51880,38 +51513,317 @@
|
|
|
51880
51513
|
"png",
|
|
51881
51514
|
"jpg",
|
|
51882
51515
|
"webp",
|
|
51883
|
-
"jpeg"
|
|
51516
|
+
"jpeg",
|
|
51517
|
+
"tex"
|
|
51884
51518
|
])
|
|
51885
51519
|
], Texture2DLoader);
|
|
51886
|
-
|
|
51887
|
-
|
|
51888
|
-
|
|
51889
|
-
_inherits(TextureCubeContentRestorer, ContentRestorer);
|
|
51890
|
-
function TextureCubeContentRestorer(resource, urls, requestConfig) {
|
|
51520
|
+
var Texture2DContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
51521
|
+
_inherits(Texture2DContentRestorer, ContentRestorer);
|
|
51522
|
+
function Texture2DContentRestorer(resource, url, requestConfig) {
|
|
51891
51523
|
var _this;
|
|
51892
|
-
_this = ContentRestorer.call(this, resource) || this, _this.
|
|
51524
|
+
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
51893
51525
|
return _this;
|
|
51894
51526
|
}
|
|
51895
|
-
var _proto =
|
|
51527
|
+
var _proto = Texture2DContentRestorer.prototype;
|
|
51896
51528
|
_proto.restoreContent = function restoreContent() {
|
|
51897
|
-
var
|
|
51898
|
-
|
|
51899
|
-
|
|
51900
|
-
|
|
51901
|
-
|
|
51902
|
-
|
|
51903
|
-
|
|
51904
|
-
|
|
51905
|
-
|
|
51906
|
-
|
|
51907
|
-
|
|
51908
|
-
|
|
51909
|
-
|
|
51910
|
-
});
|
|
51529
|
+
var texture = this.resource;
|
|
51530
|
+
var engine = texture.engine;
|
|
51531
|
+
return engine.resourceManager // @ts-ignore
|
|
51532
|
+
._request(this.url, this.requestConfig).then(function(buffer) {
|
|
51533
|
+
if (FileHeader.checkMagic(buffer)) {
|
|
51534
|
+
return decode(buffer, engine, texture);
|
|
51535
|
+
} else {
|
|
51536
|
+
return loadImageFromBuffer(buffer).then(function(img) {
|
|
51537
|
+
texture.setImageSource(img);
|
|
51538
|
+
texture.generateMipmaps();
|
|
51539
|
+
return texture;
|
|
51540
|
+
});
|
|
51541
|
+
}
|
|
51911
51542
|
});
|
|
51912
51543
|
};
|
|
51913
|
-
return
|
|
51544
|
+
return Texture2DContentRestorer;
|
|
51914
51545
|
}(ContentRestorer);
|
|
51546
|
+
/**
|
|
51547
|
+
* @internal
|
|
51548
|
+
* HDR panorama to cubemap decoder.
|
|
51549
|
+
*/ var HDRDecoder = /*#__PURE__*/ function() {
|
|
51550
|
+
function HDRDecoder() {}
|
|
51551
|
+
HDRDecoder.parseHeader = function parseHeader(uint8array) {
|
|
51552
|
+
var line = this._readStringLine(uint8array, 0);
|
|
51553
|
+
if (line[0] !== "#" || line[1] !== "?") {
|
|
51554
|
+
throw "HDRDecoder: invalid file header";
|
|
51555
|
+
}
|
|
51556
|
+
var endOfHeader = false;
|
|
51557
|
+
var findFormat = false;
|
|
51558
|
+
var lineIndex = 0;
|
|
51559
|
+
do {
|
|
51560
|
+
lineIndex += line.length + 1;
|
|
51561
|
+
line = this._readStringLine(uint8array, lineIndex);
|
|
51562
|
+
if (line === "FORMAT=32-bit_rle_rgbe") findFormat = true;
|
|
51563
|
+
else if (line.length === 0) endOfHeader = true;
|
|
51564
|
+
}while (!endOfHeader);
|
|
51565
|
+
if (!findFormat) {
|
|
51566
|
+
throw "HDRDecoder: unsupported format, expected 32-bit_rle_rgbe";
|
|
51567
|
+
}
|
|
51568
|
+
lineIndex += line.length + 1;
|
|
51569
|
+
line = this._readStringLine(uint8array, lineIndex);
|
|
51570
|
+
var match = /^\-Y (.*) \+X (.*)$/g.exec(line);
|
|
51571
|
+
if (!match || match.length < 3) {
|
|
51572
|
+
throw "HDRDecoder: missing image size, only -Y +X layout is supported";
|
|
51573
|
+
}
|
|
51574
|
+
var width = parseInt(match[2]);
|
|
51575
|
+
var height = parseInt(match[1]);
|
|
51576
|
+
if (width < 8 || width > 0x7fff) {
|
|
51577
|
+
throw "HDRDecoder: unsupported image width, must be between 8 and 32767";
|
|
51578
|
+
}
|
|
51579
|
+
return {
|
|
51580
|
+
height: height,
|
|
51581
|
+
width: width,
|
|
51582
|
+
dataPosition: lineIndex + line.length + 1
|
|
51583
|
+
};
|
|
51584
|
+
};
|
|
51585
|
+
HDRDecoder.decodeFaces = function decodeFaces(bufferArray, header, onFace) {
|
|
51586
|
+
var width = header.width, height = header.height, dataPosition = header.dataPosition;
|
|
51587
|
+
var cubeSize = height >> 1;
|
|
51588
|
+
var pixels = HDRDecoder._readPixels(bufferArray.subarray(dataPosition), width, height);
|
|
51589
|
+
var faces = HDRDecoder._faces;
|
|
51590
|
+
var faceBuffer = new Uint16Array(cubeSize * cubeSize * 4);
|
|
51591
|
+
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
51592
|
+
HDRDecoder._createCubemapData(cubeSize, faces[faceIndex], pixels, width, height, faceBuffer);
|
|
51593
|
+
onFace(faceIndex, faceBuffer);
|
|
51594
|
+
}
|
|
51595
|
+
};
|
|
51596
|
+
HDRDecoder._generateFloat2HalfTables = function _generateFloat2HalfTables() {
|
|
51597
|
+
var baseTable = new Uint32Array(512);
|
|
51598
|
+
var shiftTable = new Uint32Array(512);
|
|
51599
|
+
for(var i = 0; i < 256; ++i){
|
|
51600
|
+
var e = i - 127;
|
|
51601
|
+
if (e < -27) {
|
|
51602
|
+
baseTable[i] = 0x0000;
|
|
51603
|
+
baseTable[i | 0x100] = 0x8000;
|
|
51604
|
+
shiftTable[i] = 24;
|
|
51605
|
+
shiftTable[i | 0x100] = 24;
|
|
51606
|
+
} else if (e < -14) {
|
|
51607
|
+
baseTable[i] = 0x0400 >> -e - 14;
|
|
51608
|
+
baseTable[i | 0x100] = 0x0400 >> -e - 14 | 0x8000;
|
|
51609
|
+
shiftTable[i] = -e - 1;
|
|
51610
|
+
shiftTable[i | 0x100] = -e - 1;
|
|
51611
|
+
} else if (e <= 15) {
|
|
51612
|
+
baseTable[i] = e + 15 << 10;
|
|
51613
|
+
baseTable[i | 0x100] = e + 15 << 10 | 0x8000;
|
|
51614
|
+
shiftTable[i] = 13;
|
|
51615
|
+
shiftTable[i | 0x100] = 13;
|
|
51616
|
+
} else if (e < 128) {
|
|
51617
|
+
baseTable[i] = 0x7c00;
|
|
51618
|
+
baseTable[i | 0x100] = 0xfc00;
|
|
51619
|
+
shiftTable[i] = 24;
|
|
51620
|
+
shiftTable[i | 0x100] = 24;
|
|
51621
|
+
} else {
|
|
51622
|
+
baseTable[i] = 0x7c00;
|
|
51623
|
+
baseTable[i | 0x100] = 0xfc00;
|
|
51624
|
+
shiftTable[i] = 13;
|
|
51625
|
+
shiftTable[i | 0x100] = 13;
|
|
51626
|
+
}
|
|
51627
|
+
}
|
|
51628
|
+
return {
|
|
51629
|
+
baseTable: baseTable,
|
|
51630
|
+
shiftTable: shiftTable
|
|
51631
|
+
};
|
|
51632
|
+
};
|
|
51633
|
+
HDRDecoder._createCubemapData = function _createCubemapData(texSize, face, pixels, inputWidth, inputHeight, facePixels) {
|
|
51634
|
+
var invSize = 1 / texSize;
|
|
51635
|
+
var rotDX1X = (face[3] - face[0]) * invSize;
|
|
51636
|
+
var rotDX1Y = (face[4] - face[1]) * invSize;
|
|
51637
|
+
var rotDX1Z = (face[5] - face[2]) * invSize;
|
|
51638
|
+
var rotDX2X = (face[9] - face[6]) * invSize;
|
|
51639
|
+
var rotDX2Y = (face[10] - face[7]) * invSize;
|
|
51640
|
+
var rotDX2Z = (face[11] - face[8]) * invSize;
|
|
51641
|
+
var floatView = HDRDecoder._floatView;
|
|
51642
|
+
var uint32View = HDRDecoder._uint32View;
|
|
51643
|
+
var _HDRDecoder__float2HalfTables = HDRDecoder._float2HalfTables, baseTable = _HDRDecoder__float2HalfTables.baseTable, shiftTable = _HDRDecoder__float2HalfTables.shiftTable;
|
|
51644
|
+
var one = HDRDecoder._one;
|
|
51645
|
+
var fy = 0;
|
|
51646
|
+
for(var y = 0; y < texSize; y++){
|
|
51647
|
+
var xv1X = face[0], xv1Y = face[1], xv1Z = face[2];
|
|
51648
|
+
var xv2X = face[6], xv2Y = face[7], xv2Z = face[8];
|
|
51649
|
+
for(var x = 0; x < texSize; x++){
|
|
51650
|
+
var dirX = xv1X + (xv2X - xv1X) * fy;
|
|
51651
|
+
var dirY = xv1Y + (xv2Y - xv1Y) * fy;
|
|
51652
|
+
var dirZ = xv1Z + (xv2Z - xv1Z) * fy;
|
|
51653
|
+
var invLen = 1 / Math.sqrt(dirX * dirX + dirY * dirY + dirZ * dirZ);
|
|
51654
|
+
dirX *= invLen;
|
|
51655
|
+
dirY *= invLen;
|
|
51656
|
+
dirZ *= invLen;
|
|
51657
|
+
var px = Math.round((Math.atan2(dirZ, dirX) / Math.PI * 0.5 + 0.5) * inputWidth);
|
|
51658
|
+
if (px < 0) px = 0;
|
|
51659
|
+
else if (px >= inputWidth) px = inputWidth - 1;
|
|
51660
|
+
var py = Math.round(Math.acos(dirY) / Math.PI * inputHeight);
|
|
51661
|
+
if (py < 0) py = 0;
|
|
51662
|
+
else if (py >= inputHeight) py = inputHeight - 1;
|
|
51663
|
+
var srcIndex = (inputHeight - py - 1) * inputWidth * 4 + px * 4;
|
|
51664
|
+
var scaleFactor = Math.pow(2, pixels[srcIndex + 3] - 128) / 255;
|
|
51665
|
+
var dstIndex = y * texSize * 4 + x * 4;
|
|
51666
|
+
for(var c = 0; c < 3; c++){
|
|
51667
|
+
floatView[0] = pixels[srcIndex + c] * scaleFactor;
|
|
51668
|
+
var f = uint32View[0];
|
|
51669
|
+
var e = f >> 23 & 0x1ff;
|
|
51670
|
+
facePixels[dstIndex + c] = baseTable[e] + ((f & 0x007fffff) >> shiftTable[e]);
|
|
51671
|
+
}
|
|
51672
|
+
facePixels[dstIndex + 3] = one;
|
|
51673
|
+
xv1X += rotDX1X;
|
|
51674
|
+
xv1Y += rotDX1Y;
|
|
51675
|
+
xv1Z += rotDX1Z;
|
|
51676
|
+
xv2X += rotDX2X;
|
|
51677
|
+
xv2Y += rotDX2Y;
|
|
51678
|
+
xv2Z += rotDX2Z;
|
|
51679
|
+
}
|
|
51680
|
+
fy += invSize;
|
|
51681
|
+
}
|
|
51682
|
+
};
|
|
51683
|
+
HDRDecoder._readStringLine = function _readStringLine(uint8array, startIndex) {
|
|
51684
|
+
var line = "";
|
|
51685
|
+
for(var i = startIndex, n = uint8array.length; i < n; i++){
|
|
51686
|
+
var character = String.fromCharCode(uint8array[i]);
|
|
51687
|
+
if (character === "\n") break;
|
|
51688
|
+
line += character;
|
|
51689
|
+
}
|
|
51690
|
+
return line;
|
|
51691
|
+
};
|
|
51692
|
+
HDRDecoder._readPixels = function _readPixels(buffer, width, height) {
|
|
51693
|
+
var byteLength = buffer.byteLength;
|
|
51694
|
+
var dataRGBA = new Uint8Array(4 * width * height);
|
|
51695
|
+
var offset = 0;
|
|
51696
|
+
var pos = 0;
|
|
51697
|
+
var ptrEnd = 4 * width;
|
|
51698
|
+
var scanLineBuffer = new Uint8Array(ptrEnd);
|
|
51699
|
+
var numScanLines = height;
|
|
51700
|
+
while(numScanLines > 0 && pos < byteLength){
|
|
51701
|
+
var a = buffer[pos++];
|
|
51702
|
+
var b = buffer[pos++];
|
|
51703
|
+
var c = buffer[pos++];
|
|
51704
|
+
var d = buffer[pos++];
|
|
51705
|
+
if (a !== 2 || b !== 2 || c & 0x80 || width < 8 || width > 32767) return buffer;
|
|
51706
|
+
if ((c << 8 | d) !== width) throw "HDRDecoder: wrong scanline width";
|
|
51707
|
+
var ptr = 0;
|
|
51708
|
+
while(ptr < ptrEnd && pos < byteLength){
|
|
51709
|
+
var count = buffer[pos++];
|
|
51710
|
+
var isEncodedRun = count > 128;
|
|
51711
|
+
if (isEncodedRun) count -= 128;
|
|
51712
|
+
if (count === 0 || ptr + count > ptrEnd) throw "HDRDecoder: bad scanline data";
|
|
51713
|
+
if (isEncodedRun) {
|
|
51714
|
+
var byteValue = buffer[pos++];
|
|
51715
|
+
for(var i = 0; i < count; i++)scanLineBuffer[ptr++] = byteValue;
|
|
51716
|
+
} else {
|
|
51717
|
+
scanLineBuffer.set(buffer.subarray(pos, pos + count), ptr);
|
|
51718
|
+
ptr += count;
|
|
51719
|
+
pos += count;
|
|
51720
|
+
}
|
|
51721
|
+
}
|
|
51722
|
+
for(var i1 = 0; i1 < width; i1++, offset += 4){
|
|
51723
|
+
dataRGBA[offset] = scanLineBuffer[i1];
|
|
51724
|
+
dataRGBA[offset + 1] = scanLineBuffer[i1 + width];
|
|
51725
|
+
dataRGBA[offset + 2] = scanLineBuffer[i1 + width * 2];
|
|
51726
|
+
dataRGBA[offset + 3] = scanLineBuffer[i1 + width * 3];
|
|
51727
|
+
}
|
|
51728
|
+
numScanLines--;
|
|
51729
|
+
}
|
|
51730
|
+
return dataRGBA;
|
|
51731
|
+
};
|
|
51732
|
+
return HDRDecoder;
|
|
51733
|
+
}();
|
|
51734
|
+
// Float32 to Float16 lookup tables (http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf)
|
|
51735
|
+
HDRDecoder._float2HalfTables = HDRDecoder._generateFloat2HalfTables();
|
|
51736
|
+
HDRDecoder._floatView = new Float32Array(1);
|
|
51737
|
+
HDRDecoder._uint32View = new Uint32Array(HDRDecoder._floatView.buffer);
|
|
51738
|
+
HDRDecoder._one = 0x3c00 // Half float for 1.0
|
|
51739
|
+
;
|
|
51740
|
+
// prettier-ignore
|
|
51741
|
+
HDRDecoder._faces = [
|
|
51742
|
+
/* +X */ [
|
|
51743
|
+
1,
|
|
51744
|
+
-1,
|
|
51745
|
+
-1,
|
|
51746
|
+
1,
|
|
51747
|
+
-1,
|
|
51748
|
+
1,
|
|
51749
|
+
1,
|
|
51750
|
+
1,
|
|
51751
|
+
-1,
|
|
51752
|
+
1,
|
|
51753
|
+
1,
|
|
51754
|
+
1
|
|
51755
|
+
],
|
|
51756
|
+
/* -X */ [
|
|
51757
|
+
-1,
|
|
51758
|
+
-1,
|
|
51759
|
+
1,
|
|
51760
|
+
-1,
|
|
51761
|
+
-1,
|
|
51762
|
+
-1,
|
|
51763
|
+
-1,
|
|
51764
|
+
1,
|
|
51765
|
+
1,
|
|
51766
|
+
-1,
|
|
51767
|
+
1,
|
|
51768
|
+
-1
|
|
51769
|
+
],
|
|
51770
|
+
/* +Y */ [
|
|
51771
|
+
-1,
|
|
51772
|
+
-1,
|
|
51773
|
+
1,
|
|
51774
|
+
1,
|
|
51775
|
+
-1,
|
|
51776
|
+
1,
|
|
51777
|
+
-1,
|
|
51778
|
+
-1,
|
|
51779
|
+
-1,
|
|
51780
|
+
1,
|
|
51781
|
+
-1,
|
|
51782
|
+
-1
|
|
51783
|
+
],
|
|
51784
|
+
/* -Y */ [
|
|
51785
|
+
-1,
|
|
51786
|
+
1,
|
|
51787
|
+
-1,
|
|
51788
|
+
1,
|
|
51789
|
+
1,
|
|
51790
|
+
-1,
|
|
51791
|
+
-1,
|
|
51792
|
+
1,
|
|
51793
|
+
1,
|
|
51794
|
+
1,
|
|
51795
|
+
1,
|
|
51796
|
+
1
|
|
51797
|
+
],
|
|
51798
|
+
/* +Z */ [
|
|
51799
|
+
-1,
|
|
51800
|
+
-1,
|
|
51801
|
+
-1,
|
|
51802
|
+
1,
|
|
51803
|
+
-1,
|
|
51804
|
+
-1,
|
|
51805
|
+
-1,
|
|
51806
|
+
1,
|
|
51807
|
+
-1,
|
|
51808
|
+
1,
|
|
51809
|
+
1,
|
|
51810
|
+
-1
|
|
51811
|
+
],
|
|
51812
|
+
/* -Z */ [
|
|
51813
|
+
1,
|
|
51814
|
+
-1,
|
|
51815
|
+
1,
|
|
51816
|
+
-1,
|
|
51817
|
+
-1,
|
|
51818
|
+
1,
|
|
51819
|
+
1,
|
|
51820
|
+
1,
|
|
51821
|
+
1,
|
|
51822
|
+
-1,
|
|
51823
|
+
1,
|
|
51824
|
+
1
|
|
51825
|
+
]
|
|
51826
|
+
];
|
|
51915
51827
|
var TextureCubeLoader = /*#__PURE__*/ function(Loader) {
|
|
51916
51828
|
_inherits(TextureCubeLoader, Loader);
|
|
51917
51829
|
function TextureCubeLoader() {
|
|
@@ -51919,6 +51831,44 @@
|
|
|
51919
51831
|
}
|
|
51920
51832
|
var _proto = TextureCubeLoader.prototype;
|
|
51921
51833
|
_proto.load = function load(item, resourceManager) {
|
|
51834
|
+
if (item.urls) {
|
|
51835
|
+
return this._loadCubeFaces(item, resourceManager);
|
|
51836
|
+
} else {
|
|
51837
|
+
return this._loadHDR(item, resourceManager);
|
|
51838
|
+
}
|
|
51839
|
+
};
|
|
51840
|
+
_proto._loadHDR = function _loadHDR(item, resourceManager) {
|
|
51841
|
+
return new AssetPromise(function(resolve, reject) {
|
|
51842
|
+
var engine = resourceManager.engine;
|
|
51843
|
+
var url = item.url;
|
|
51844
|
+
var requestConfig = _extends({}, item, {
|
|
51845
|
+
type: "arraybuffer"
|
|
51846
|
+
});
|
|
51847
|
+
resourceManager // @ts-ignore
|
|
51848
|
+
._request(url, requestConfig).then(function(buffer) {
|
|
51849
|
+
if (!SystemInfo.supportsTextureFormat(engine, TextureFormat.R16G16B16A16)) {
|
|
51850
|
+
reject(new Error("TextureCubeLoader: HDR texture requires half float support."));
|
|
51851
|
+
return;
|
|
51852
|
+
}
|
|
51853
|
+
var _item_params;
|
|
51854
|
+
var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode;
|
|
51855
|
+
var bufferArray = new Uint8Array(buffer);
|
|
51856
|
+
var header = HDRDecoder.parseHeader(bufferArray);
|
|
51857
|
+
var texture = new TextureCube(engine, header.height >> 1, TextureFormat.R16G16B16A16, mipmap, false);
|
|
51858
|
+
HDRDecoder.decodeFaces(bufferArray, header, function(faceIndex, data) {
|
|
51859
|
+
texture.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, data, 0);
|
|
51860
|
+
});
|
|
51861
|
+
texture.generateMipmaps();
|
|
51862
|
+
texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
|
|
51863
|
+
texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
|
|
51864
|
+
texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
|
|
51865
|
+
texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
|
|
51866
|
+
resourceManager.addContentRestorer(new HDRContentRestorer(texture, url, requestConfig));
|
|
51867
|
+
resolve(texture);
|
|
51868
|
+
}).catch(reject);
|
|
51869
|
+
});
|
|
51870
|
+
};
|
|
51871
|
+
_proto._loadCubeFaces = function _loadCubeFaces(item, resourceManager) {
|
|
51922
51872
|
return new AssetPromise(function(resolve, reject) {
|
|
51923
51873
|
var urls = item.urls;
|
|
51924
51874
|
var requestConfig = _extends({}, item, {
|
|
@@ -51932,7 +51882,7 @@
|
|
|
51932
51882
|
var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? TextureFormat.R8G8B8A8 : _ref_format, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
|
|
51933
51883
|
var _images_ = images[0], width = _images_.width, height = _images_.height;
|
|
51934
51884
|
if (width !== height) {
|
|
51935
|
-
|
|
51885
|
+
reject(new Error("The cube texture must have the same width and height"));
|
|
51936
51886
|
return;
|
|
51937
51887
|
}
|
|
51938
51888
|
var engine = resourceManager.engine;
|
|
@@ -51945,21 +51895,70 @@
|
|
|
51945
51895
|
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
51946
51896
|
texture.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
|
|
51947
51897
|
}
|
|
51948
|
-
|
|
51949
|
-
resourceManager.addContentRestorer(new
|
|
51898
|
+
texture.generateMipmaps();
|
|
51899
|
+
resourceManager.addContentRestorer(new CubeFaceContentRestorer(texture, urls, requestConfig));
|
|
51950
51900
|
resolve(texture);
|
|
51951
|
-
}).catch(
|
|
51952
|
-
reject(e);
|
|
51953
|
-
});
|
|
51901
|
+
}).catch(reject);
|
|
51954
51902
|
});
|
|
51955
51903
|
};
|
|
51956
51904
|
return TextureCubeLoader;
|
|
51957
51905
|
}(Loader);
|
|
51958
51906
|
TextureCubeLoader = __decorate([
|
|
51959
51907
|
resourceLoader(AssetType.TextureCube, [
|
|
51960
|
-
""
|
|
51908
|
+
"texCube",
|
|
51909
|
+
"hdr"
|
|
51961
51910
|
])
|
|
51962
51911
|
], TextureCubeLoader);
|
|
51912
|
+
var HDRContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
51913
|
+
_inherits(HDRContentRestorer, ContentRestorer);
|
|
51914
|
+
function HDRContentRestorer(resource, url, requestConfig) {
|
|
51915
|
+
var _this;
|
|
51916
|
+
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
51917
|
+
return _this;
|
|
51918
|
+
}
|
|
51919
|
+
var _proto = HDRContentRestorer.prototype;
|
|
51920
|
+
_proto.restoreContent = function restoreContent() {
|
|
51921
|
+
var _this = this;
|
|
51922
|
+
return new AssetPromise(function(resolve, reject) {
|
|
51923
|
+
var resource = _this.resource;
|
|
51924
|
+
resource.engine.resourceManager // @ts-ignore
|
|
51925
|
+
._request(_this.url, _this.requestConfig).then(function(buffer) {
|
|
51926
|
+
var bufferArray = new Uint8Array(buffer);
|
|
51927
|
+
HDRDecoder.decodeFaces(bufferArray, HDRDecoder.parseHeader(bufferArray), function(faceIndex, data) {
|
|
51928
|
+
resource.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, data, 0);
|
|
51929
|
+
});
|
|
51930
|
+
resource.generateMipmaps();
|
|
51931
|
+
resolve(resource);
|
|
51932
|
+
}).catch(reject);
|
|
51933
|
+
});
|
|
51934
|
+
};
|
|
51935
|
+
return HDRContentRestorer;
|
|
51936
|
+
}(ContentRestorer);
|
|
51937
|
+
var CubeFaceContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
51938
|
+
_inherits(CubeFaceContentRestorer, ContentRestorer);
|
|
51939
|
+
function CubeFaceContentRestorer(resource, urls, requestConfig) {
|
|
51940
|
+
var _this;
|
|
51941
|
+
_this = ContentRestorer.call(this, resource) || this, _this.urls = urls, _this.requestConfig = requestConfig;
|
|
51942
|
+
return _this;
|
|
51943
|
+
}
|
|
51944
|
+
var _proto = CubeFaceContentRestorer.prototype;
|
|
51945
|
+
_proto.restoreContent = function restoreContent() {
|
|
51946
|
+
var _this = this;
|
|
51947
|
+
return new AssetPromise(function(resolve, reject) {
|
|
51948
|
+
Promise.all(_this.urls.map(function(url) {
|
|
51949
|
+
return request(url, _this.requestConfig);
|
|
51950
|
+
})).then(function(images) {
|
|
51951
|
+
var resource = _this.resource;
|
|
51952
|
+
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
51953
|
+
resource.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
|
|
51954
|
+
}
|
|
51955
|
+
resource.generateMipmaps();
|
|
51956
|
+
resolve(resource);
|
|
51957
|
+
}).catch(reject);
|
|
51958
|
+
});
|
|
51959
|
+
};
|
|
51960
|
+
return CubeFaceContentRestorer;
|
|
51961
|
+
}(ContentRestorer);
|
|
51963
51962
|
var AudioLoader = /*#__PURE__*/ function(Loader) {
|
|
51964
51963
|
_inherits(AudioLoader, Loader);
|
|
51965
51964
|
function AudioLoader() {
|
|
@@ -52105,7 +52104,7 @@
|
|
|
52105
52104
|
}(Loader);
|
|
52106
52105
|
PhysicsMaterialLoader = __decorate([
|
|
52107
52106
|
resourceLoader(AssetType.PhysicsMaterial, [
|
|
52108
|
-
"
|
|
52107
|
+
"physMat"
|
|
52109
52108
|
])
|
|
52110
52109
|
], PhysicsMaterialLoader);
|
|
52111
52110
|
var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
@@ -52757,7 +52756,7 @@
|
|
|
52757
52756
|
], EXT_texture_webp);
|
|
52758
52757
|
|
|
52759
52758
|
//@ts-ignore
|
|
52760
|
-
var version = "2.0.0-alpha.
|
|
52759
|
+
var version = "2.0.0-alpha.6";
|
|
52761
52760
|
console.log("Galacean Engine Version: " + version);
|
|
52762
52761
|
for(var key in CoreObjects){
|
|
52763
52762
|
Loader.registerClass(key, CoreObjects[key]);
|