@galacean/engine 1.1.0-beta.19 → 1.1.0-beta.20
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 +193 -95
- package/dist/browser.min.js +1 -1
- package/dist/main.js +1 -1
- package/dist/miniprogram.js +1 -1
- package/dist/module.js +1 -1
- package/package.json +5 -5
package/dist/browser.js
CHANGED
|
@@ -10679,8 +10679,12 @@
|
|
|
10679
10679
|
break;
|
|
10680
10680
|
case gl.BOOL_VEC3:
|
|
10681
10681
|
case gl.INT_VEC3:
|
|
10682
|
-
|
|
10683
|
-
|
|
10682
|
+
if (isArray) {
|
|
10683
|
+
shaderUniform.applyFunc = shaderUniform.upload3iv;
|
|
10684
|
+
} else {
|
|
10685
|
+
shaderUniform.applyFunc = shaderUniform.upload3i;
|
|
10686
|
+
shaderUniform.cacheValue = new Vector3(0, 0, 0);
|
|
10687
|
+
}
|
|
10684
10688
|
break;
|
|
10685
10689
|
case gl.BOOL_VEC4:
|
|
10686
10690
|
case gl.INT_VEC4:
|
|
@@ -12678,6 +12682,9 @@
|
|
|
12678
12682
|
case SpriteModifyFlags.pivot:
|
|
12679
12683
|
this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;
|
|
12680
12684
|
break;
|
|
12685
|
+
case SpriteModifyFlags.destroy:
|
|
12686
|
+
this.sprite = null;
|
|
12687
|
+
break;
|
|
12681
12688
|
}
|
|
12682
12689
|
};
|
|
12683
12690
|
_create_class$3(SpriteMask, [
|
|
@@ -13860,6 +13867,10 @@
|
|
|
13860
13867
|
Logger.error("mesh is null.");
|
|
13861
13868
|
return;
|
|
13862
13869
|
}
|
|
13870
|
+
if (this._mesh.destroyed) {
|
|
13871
|
+
Logger.error("mesh is destroyed.");
|
|
13872
|
+
return;
|
|
13873
|
+
}
|
|
13863
13874
|
Renderer1.prototype._prepareRender.call(this, context);
|
|
13864
13875
|
};
|
|
13865
13876
|
/**
|
|
@@ -17504,6 +17515,7 @@
|
|
|
17504
17515
|
var AssetPromise = function AssetPromise(executor) {
|
|
17505
17516
|
var _this = this;
|
|
17506
17517
|
this._state = "pending";
|
|
17518
|
+
this._progress = 0;
|
|
17507
17519
|
this._onProgressCallback = [];
|
|
17508
17520
|
this._promise = new Promise(function(resolve, reject) {
|
|
17509
17521
|
_this._reject = reject;
|
|
@@ -17528,6 +17540,7 @@
|
|
|
17528
17540
|
};
|
|
17529
17541
|
var setProgress = function setProgress(progress) {
|
|
17530
17542
|
if (_this._state === "pending") {
|
|
17543
|
+
_this._progress = progress;
|
|
17531
17544
|
_this._onProgressCallback.forEach(function(callback) {
|
|
17532
17545
|
return callback(progress);
|
|
17533
17546
|
});
|
|
@@ -17542,7 +17555,12 @@
|
|
|
17542
17555
|
* @param callback
|
|
17543
17556
|
* @returns AssetPromise
|
|
17544
17557
|
*/ _proto.onProgress = function onProgress(callback) {
|
|
17545
|
-
this.
|
|
17558
|
+
if (this._progress) {
|
|
17559
|
+
callback(this._progress);
|
|
17560
|
+
}
|
|
17561
|
+
if (this._state === "pending") {
|
|
17562
|
+
this._onProgressCallback.push(callback);
|
|
17563
|
+
}
|
|
17546
17564
|
return this;
|
|
17547
17565
|
};
|
|
17548
17566
|
_proto.then = function then(onfulfilled, onrejected) {
|
|
@@ -17851,7 +17869,8 @@
|
|
|
17851
17869
|
// Check cache
|
|
17852
17870
|
var cacheObject = this._assetUrlPool[assetBaseURL];
|
|
17853
17871
|
if (cacheObject) {
|
|
17854
|
-
return new AssetPromise(function(resolve) {
|
|
17872
|
+
return new AssetPromise(function(resolve, _, setProgress) {
|
|
17873
|
+
setProgress(1);
|
|
17855
17874
|
resolve(_this._getResolveResource(cacheObject, paths));
|
|
17856
17875
|
});
|
|
17857
17876
|
}
|
|
@@ -17868,8 +17887,10 @@
|
|
|
17868
17887
|
var loadingPromises = this._loadingPromises;
|
|
17869
17888
|
var loadingPromise = loadingPromises[assetURL];
|
|
17870
17889
|
if (loadingPromise) {
|
|
17871
|
-
return new AssetPromise(function(resolve, reject) {
|
|
17872
|
-
loadingPromise.
|
|
17890
|
+
return new AssetPromise(function(resolve, reject, setProgress) {
|
|
17891
|
+
loadingPromise.onProgress(function(v) {
|
|
17892
|
+
setProgress(v);
|
|
17893
|
+
}).then(function(resource) {
|
|
17873
17894
|
resolve(resource);
|
|
17874
17895
|
}).catch(function(error) {
|
|
17875
17896
|
reject(error);
|
|
@@ -23972,12 +23993,20 @@
|
|
|
23972
23993
|
Logger.warn("The material of sky is not defined.");
|
|
23973
23994
|
return;
|
|
23974
23995
|
}
|
|
23996
|
+
if (material.destroyed) {
|
|
23997
|
+
Logger.warn("The material of sky is destroyed.");
|
|
23998
|
+
return;
|
|
23999
|
+
}
|
|
23975
24000
|
if (!mesh) {
|
|
23976
24001
|
Logger.warn("The mesh of sky is not defined.");
|
|
23977
24002
|
return;
|
|
23978
24003
|
}
|
|
23979
|
-
|
|
23980
|
-
|
|
24004
|
+
if (mesh.destroyed) {
|
|
24005
|
+
Logger.warn("The mesh of sky is destroyed.");
|
|
24006
|
+
return;
|
|
24007
|
+
}
|
|
24008
|
+
var _context_camera = context.camera, engine = _context_camera.engine, scene = _context_camera.scene, aspectRatio = _context_camera.aspectRatio, fieldOfView = _context_camera.fieldOfView, viewMatrix = _context_camera.viewMatrix, cameraShaderData = _context_camera.shaderData;
|
|
24009
|
+
var sceneData = scene.shaderData;
|
|
23981
24010
|
var viewProjMatrix = Sky._viewProjMatrix, projectionMatrix = Sky._projectionMatrix;
|
|
23982
24011
|
var rhi = engine._hardwareRenderer;
|
|
23983
24012
|
var materialShaderData = material.shaderData, shader = material.shader, renderState = material.renderState;
|
|
@@ -29148,7 +29177,7 @@
|
|
|
29148
29177
|
/**
|
|
29149
29178
|
* @internal
|
|
29150
29179
|
*/ var AnimationCurveOwner = /*#__PURE__*/ function() {
|
|
29151
|
-
function AnimationCurveOwner(target, type, property, cureType) {
|
|
29180
|
+
function AnimationCurveOwner(target, type, component, property, cureType) {
|
|
29152
29181
|
this.baseEvaluateData = {
|
|
29153
29182
|
curKeyframeIndex: 0,
|
|
29154
29183
|
value: null
|
|
@@ -29159,9 +29188,8 @@
|
|
|
29159
29188
|
};
|
|
29160
29189
|
this.updateMark = 0;
|
|
29161
29190
|
this.target = target;
|
|
29162
|
-
this.type = type;
|
|
29163
29191
|
this.property = property;
|
|
29164
|
-
this.component =
|
|
29192
|
+
this.component = component;
|
|
29165
29193
|
this.cureType = cureType;
|
|
29166
29194
|
this._isBlendShape = _instanceof1$2(this.component, SkinnedMeshRenderer);
|
|
29167
29195
|
var assemblerType = AnimationCurveOwner.getAssemblerType(type, property);
|
|
@@ -29387,9 +29415,9 @@
|
|
|
29387
29415
|
var _proto = AnimationClipCurveBinding.prototype;
|
|
29388
29416
|
/**
|
|
29389
29417
|
* @internal
|
|
29390
|
-
*/ _proto._createCurveOwner = function _createCurveOwner(entity) {
|
|
29418
|
+
*/ _proto._createCurveOwner = function _createCurveOwner(entity, component) {
|
|
29391
29419
|
var curveType = this.curve.constructor;
|
|
29392
|
-
var owner = new AnimationCurveOwner(entity, this.type, this.property, curveType);
|
|
29420
|
+
var owner = new AnimationCurveOwner(entity, this.type, component, this.property, curveType);
|
|
29393
29421
|
curveType._initializeOwner(owner);
|
|
29394
29422
|
owner.saveDefaultValue();
|
|
29395
29423
|
return owner;
|
|
@@ -29407,10 +29435,10 @@
|
|
|
29407
29435
|
};
|
|
29408
29436
|
/**
|
|
29409
29437
|
* @internal
|
|
29410
|
-
*/ _proto._getTempCurveOwner = function _getTempCurveOwner(entity) {
|
|
29438
|
+
*/ _proto._getTempCurveOwner = function _getTempCurveOwner(entity, component) {
|
|
29411
29439
|
var instanceId = entity.instanceId;
|
|
29412
29440
|
if (!this._tempCurveOwner[instanceId]) {
|
|
29413
|
-
this._tempCurveOwner[instanceId] = this._createCurveOwner(entity);
|
|
29441
|
+
this._tempCurveOwner[instanceId] = this._createCurveOwner(entity, component);
|
|
29414
29442
|
}
|
|
29415
29443
|
return this._tempCurveOwner[instanceId];
|
|
29416
29444
|
};
|
|
@@ -29495,9 +29523,15 @@
|
|
|
29495
29523
|
var curveData = curveBindings[i];
|
|
29496
29524
|
var targetEntity = entity.findByPath(curveData.relativePath);
|
|
29497
29525
|
if (targetEntity) {
|
|
29498
|
-
var
|
|
29499
|
-
|
|
29500
|
-
|
|
29526
|
+
var component = targetEntity.getComponent(curveData.type);
|
|
29527
|
+
if (!component) {
|
|
29528
|
+
continue;
|
|
29529
|
+
}
|
|
29530
|
+
var curveOwner = curveData._getTempCurveOwner(targetEntity, component);
|
|
29531
|
+
if (curveOwner && curveData.curve.keys.length) {
|
|
29532
|
+
var value = curveOwner.evaluateValue(curveData.curve, time, false);
|
|
29533
|
+
curveOwner.applyValue(value, 1, false);
|
|
29534
|
+
}
|
|
29501
29535
|
}
|
|
29502
29536
|
}
|
|
29503
29537
|
};
|
|
@@ -30890,11 +30924,15 @@
|
|
|
30890
30924
|
var targetEntity = curve.relativePath === "" ? entity : entity.findByPath(curve.relativePath);
|
|
30891
30925
|
if (targetEntity) {
|
|
30892
30926
|
var _curveOwnerPool, _instanceId, _propertyOwners, _property, _layerCurveOwnerPool, _instanceId1, _layerPropertyOwners, _property1;
|
|
30927
|
+
var component = targetEntity.getComponent(curve.type);
|
|
30928
|
+
if (!component) {
|
|
30929
|
+
continue;
|
|
30930
|
+
}
|
|
30893
30931
|
var property = curve.property;
|
|
30894
30932
|
var instanceId = targetEntity.instanceId;
|
|
30895
30933
|
// Get owner
|
|
30896
30934
|
var propertyOwners = (_curveOwnerPool = curveOwnerPool)[_instanceId = instanceId] || (_curveOwnerPool[_instanceId] = Object.create(null));
|
|
30897
|
-
var owner = (_propertyOwners = propertyOwners)[_property = property] || (_propertyOwners[_property] = curve._createCurveOwner(targetEntity));
|
|
30935
|
+
var owner = (_propertyOwners = propertyOwners)[_property = property] || (_propertyOwners[_property] = curve._createCurveOwner(targetEntity, component));
|
|
30898
30936
|
// Get layer owner
|
|
30899
30937
|
var layerPropertyOwners = (_layerCurveOwnerPool = layerCurveOwnerPool)[_instanceId1 = instanceId] || (_layerCurveOwnerPool[_instanceId1] = Object.create(null));
|
|
30900
30938
|
var layerOwner = (_layerPropertyOwners = layerPropertyOwners)[_property1 = property] || (_layerPropertyOwners[_property1] = curve._createCurveLayerOwner(owner));
|
|
@@ -32057,16 +32095,7 @@
|
|
|
32057
32095
|
};
|
|
32058
32096
|
_proto._render = function _render(context) {
|
|
32059
32097
|
var generator = this.generator;
|
|
32060
|
-
|
|
32061
|
-
if (generator._firstActiveElement < generator._firstFreeElement) {
|
|
32062
|
-
primitive.instanceCount = generator._firstFreeElement - generator._firstActiveElement;
|
|
32063
|
-
} else {
|
|
32064
|
-
var instanceCount = generator._currentParticleCount - generator._firstActiveElement;
|
|
32065
|
-
if (generator._firstFreeElement > 0) {
|
|
32066
|
-
instanceCount += generator._firstFreeElement;
|
|
32067
|
-
}
|
|
32068
|
-
primitive.instanceCount = instanceCount;
|
|
32069
|
-
}
|
|
32098
|
+
generator._primitive.instanceCount = generator._getAliveParticleCount();
|
|
32070
32099
|
var material = this.getMaterial();
|
|
32071
32100
|
if (!material) {
|
|
32072
32101
|
return;
|
|
@@ -32839,13 +32868,13 @@
|
|
|
32839
32868
|
/** Override the default playback speed of the Particle Generator. */ this.simulationSpeed = 1.0;
|
|
32840
32869
|
/** Control how the Particle Generator applies its Transform component to the particles it emits. */ this.scalingMode = exports.ParticleScaleMode.Local;
|
|
32841
32870
|
/** If set to true, the Particle Generator automatically begins to play on startup. */ this.playOnEnabled = true;
|
|
32842
|
-
this.
|
|
32843
|
-
this._gravity = new Vector3();
|
|
32871
|
+
/** @internal */ this._maxParticleBuffer = 1000;
|
|
32844
32872
|
/** @internal */ this._startSpeedRand = new Rand(0, ParticleRandomSubSeeds.StartSpeed);
|
|
32845
32873
|
/** @internal */ this._startLifeTimeRand = new Rand(0, ParticleRandomSubSeeds.StartLifetime);
|
|
32846
32874
|
/** @internal */ this._startColorRand = new Rand(0, ParticleRandomSubSeeds.StartColor);
|
|
32847
32875
|
/** @internal */ this._startSizeRand = new Rand(0, ParticleRandomSubSeeds.StartSize);
|
|
32848
32876
|
/** @internal */ this._startRotationRand = new Rand(0, ParticleRandomSubSeeds.StartRotation);
|
|
32877
|
+
this._gravity = new Vector3();
|
|
32849
32878
|
this._generator = generator;
|
|
32850
32879
|
};
|
|
32851
32880
|
var _proto = MainModule.prototype;
|
|
@@ -32923,16 +32952,10 @@
|
|
|
32923
32952
|
get: /**
|
|
32924
32953
|
* Max particles count.
|
|
32925
32954
|
*/ function get() {
|
|
32926
|
-
return this.
|
|
32955
|
+
return this._maxParticleBuffer - 1;
|
|
32927
32956
|
},
|
|
32928
32957
|
set: function set(value) {
|
|
32929
|
-
|
|
32930
|
-
this._maxParticles = value;
|
|
32931
|
-
var generator = this._generator;
|
|
32932
|
-
if (value < generator._currentParticleCount) {
|
|
32933
|
-
generator._resizeInstanceBuffer(value);
|
|
32934
|
-
}
|
|
32935
|
-
}
|
|
32958
|
+
this._maxParticleBuffer = value + 1;
|
|
32936
32959
|
}
|
|
32937
32960
|
},
|
|
32938
32961
|
{
|
|
@@ -33014,13 +33037,7 @@
|
|
|
33014
33037
|
], MainModule.prototype, "gravityModifier", void 0);
|
|
33015
33038
|
__decorate$1([
|
|
33016
33039
|
ignoreClone
|
|
33017
|
-
], MainModule.prototype, "
|
|
33018
|
-
__decorate$1([
|
|
33019
|
-
ignoreClone
|
|
33020
|
-
], MainModule.prototype, "_generator", void 0);
|
|
33021
|
-
__decorate$1([
|
|
33022
|
-
ignoreClone
|
|
33023
|
-
], MainModule.prototype, "_gravity", void 0);
|
|
33040
|
+
], MainModule.prototype, "_maxParticleBuffer", void 0);
|
|
33024
33041
|
__decorate$1([
|
|
33025
33042
|
ignoreClone
|
|
33026
33043
|
], MainModule.prototype, "_startSpeedRand", void 0);
|
|
@@ -33036,6 +33053,12 @@
|
|
|
33036
33053
|
__decorate$1([
|
|
33037
33054
|
ignoreClone
|
|
33038
33055
|
], MainModule.prototype, "_startRotationRand", void 0);
|
|
33056
|
+
__decorate$1([
|
|
33057
|
+
ignoreClone
|
|
33058
|
+
], MainModule.prototype, "_generator", void 0);
|
|
33059
|
+
__decorate$1([
|
|
33060
|
+
ignoreClone
|
|
33061
|
+
], MainModule.prototype, "_gravity", void 0);
|
|
33039
33062
|
/**
|
|
33040
33063
|
* Rotate particles throughout their lifetime.
|
|
33041
33064
|
*/ var RotationOverLifetimeModule = /*#__PURE__*/ function(ParticleGeneratorModule1) {
|
|
@@ -33627,7 +33650,7 @@
|
|
|
33627
33650
|
subPrimitive.start = 0;
|
|
33628
33651
|
this._primitive = new Primitive(renderer.engine);
|
|
33629
33652
|
this._reorganizeGeometryBuffers();
|
|
33630
|
-
this._resizeInstanceBuffer(ParticleGenerator._particleIncreaseCount);
|
|
33653
|
+
this._resizeInstanceBuffer(true, ParticleGenerator._particleIncreaseCount);
|
|
33631
33654
|
this.emission.enabled = true;
|
|
33632
33655
|
}
|
|
33633
33656
|
var _proto = ParticleGenerator.prototype;
|
|
@@ -33684,9 +33707,13 @@
|
|
|
33684
33707
|
/**
|
|
33685
33708
|
* @internal
|
|
33686
33709
|
*/ _proto._emit = function _emit(time, count) {
|
|
33687
|
-
var position = ParticleGenerator._tempVector30;
|
|
33688
|
-
var direction = ParticleGenerator._tempVector31;
|
|
33689
33710
|
if (this.emission.enabled) {
|
|
33711
|
+
// Wait the existing particles to be retired
|
|
33712
|
+
if (this.main._maxParticleBuffer < this._currentParticleCount) {
|
|
33713
|
+
return;
|
|
33714
|
+
}
|
|
33715
|
+
var position = ParticleGenerator._tempVector30;
|
|
33716
|
+
var direction = ParticleGenerator._tempVector31;
|
|
33690
33717
|
var transform = this._renderer.entity.transform;
|
|
33691
33718
|
var shape = this.emission.shape;
|
|
33692
33719
|
for(var i = 0; i < count; i++){
|
|
@@ -33713,6 +33740,13 @@
|
|
|
33713
33740
|
this._retireActiveParticles();
|
|
33714
33741
|
this._freeRetiredParticles();
|
|
33715
33742
|
if (emission.enabled && this._isPlaying) {
|
|
33743
|
+
// If maxParticles is changed dynamically, currentParticleCount may be greater than maxParticles
|
|
33744
|
+
if (this._currentParticleCount > main._maxParticleBuffer) {
|
|
33745
|
+
var notRetireParticleCount = this._getNotRetiredParticleCount();
|
|
33746
|
+
if (notRetireParticleCount < main._maxParticleBuffer) {
|
|
33747
|
+
this._resizeInstanceBuffer(false);
|
|
33748
|
+
}
|
|
33749
|
+
}
|
|
33716
33750
|
emission._emit(lastPlayTime, this._playTime);
|
|
33717
33751
|
if (!main.isLoop && this._playTime > duration) {
|
|
33718
33752
|
this._isPlaying = false;
|
|
@@ -33784,12 +33818,12 @@
|
|
|
33784
33818
|
};
|
|
33785
33819
|
/**
|
|
33786
33820
|
* @internal
|
|
33787
|
-
*/ _proto._resizeInstanceBuffer = function _resizeInstanceBuffer(increaseCount) {
|
|
33821
|
+
*/ _proto._resizeInstanceBuffer = function _resizeInstanceBuffer(isIncrease, increaseCount) {
|
|
33788
33822
|
var _this__instanceVertexBufferBinding;
|
|
33789
33823
|
(_this__instanceVertexBufferBinding = this._instanceVertexBufferBinding) == null ? void 0 : _this__instanceVertexBufferBinding.buffer.destroy();
|
|
33790
33824
|
var particleUtils = this._renderer.engine._particleBufferUtils;
|
|
33791
33825
|
var stride = particleUtils.instanceVertexStride;
|
|
33792
|
-
var newParticleCount = this._currentParticleCount + increaseCount;
|
|
33826
|
+
var newParticleCount = isIncrease ? this._currentParticleCount + increaseCount : this.main._maxParticleBuffer;
|
|
33793
33827
|
var newByteLength = stride * newParticleCount;
|
|
33794
33828
|
var engine = this._renderer.engine;
|
|
33795
33829
|
var vertexInstanceBuffer = new Buffer(engine, exports.BufferBindFlag.VertexBuffer, newByteLength, exports.BufferUsage.Dynamic, false);
|
|
@@ -33800,10 +33834,37 @@
|
|
|
33800
33834
|
var lastInstanceVertices = this._instanceVertices;
|
|
33801
33835
|
if (lastInstanceVertices) {
|
|
33802
33836
|
var floatStride = particleUtils.instanceVertexFloatStride;
|
|
33803
|
-
var
|
|
33804
|
-
|
|
33805
|
-
|
|
33806
|
-
|
|
33837
|
+
var firstFreeElement = this._firstFreeElement;
|
|
33838
|
+
var firstRetiredElement = this._firstRetiredElement;
|
|
33839
|
+
if (isIncrease) {
|
|
33840
|
+
var freeOffset = this._firstFreeElement * floatStride;
|
|
33841
|
+
instanceVertices.set(new Float32Array(lastInstanceVertices.buffer, 0, freeOffset));
|
|
33842
|
+
var freeEndOffset = (this._firstFreeElement + increaseCount) * floatStride;
|
|
33843
|
+
instanceVertices.set(new Float32Array(lastInstanceVertices.buffer, freeOffset * 4), freeEndOffset);
|
|
33844
|
+
// Maintain expanded pointers
|
|
33845
|
+
this._firstNewElement > firstFreeElement && (this._firstNewElement += increaseCount);
|
|
33846
|
+
this._firstActiveElement > firstFreeElement && (this._firstActiveElement += increaseCount);
|
|
33847
|
+
firstRetiredElement > firstFreeElement && (this._firstRetiredElement += increaseCount);
|
|
33848
|
+
} else {
|
|
33849
|
+
var migrateCount, bufferOffset;
|
|
33850
|
+
if (firstRetiredElement <= firstFreeElement) {
|
|
33851
|
+
migrateCount = firstFreeElement - firstRetiredElement;
|
|
33852
|
+
bufferOffset = 0;
|
|
33853
|
+
// Maintain expanded pointers
|
|
33854
|
+
this._firstFreeElement -= firstRetiredElement;
|
|
33855
|
+
this._firstNewElement -= firstRetiredElement;
|
|
33856
|
+
this._firstActiveElement -= firstRetiredElement;
|
|
33857
|
+
this._firstRetiredElement = 0;
|
|
33858
|
+
} else {
|
|
33859
|
+
migrateCount = this._currentParticleCount - firstRetiredElement;
|
|
33860
|
+
bufferOffset = firstFreeElement;
|
|
33861
|
+
// Maintain expanded pointers
|
|
33862
|
+
this._firstNewElement > firstFreeElement && (this._firstNewElement -= firstFreeElement);
|
|
33863
|
+
this._firstActiveElement > firstFreeElement && (this._firstActiveElement -= firstFreeElement);
|
|
33864
|
+
firstRetiredElement > firstFreeElement && (this._firstRetiredElement -= firstFreeElement);
|
|
33865
|
+
}
|
|
33866
|
+
instanceVertices.set(new Float32Array(lastInstanceVertices.buffer, firstRetiredElement * floatStride * 4, migrateCount * floatStride), bufferOffset * floatStride);
|
|
33867
|
+
}
|
|
33807
33868
|
this._instanceBufferResized = true;
|
|
33808
33869
|
}
|
|
33809
33870
|
// Instance buffer always at last
|
|
@@ -33812,8 +33873,60 @@
|
|
|
33812
33873
|
this._instanceVertexBufferBinding = vertexBufferBinding;
|
|
33813
33874
|
this._currentParticleCount = newParticleCount;
|
|
33814
33875
|
};
|
|
33876
|
+
/**
|
|
33877
|
+
* @internal
|
|
33878
|
+
*/ _proto._updateShaderData = function _updateShaderData(shaderData) {
|
|
33879
|
+
this.main._updateShaderData(shaderData);
|
|
33880
|
+
this.velocityOverLifetime._updateShaderData(shaderData);
|
|
33881
|
+
this.textureSheetAnimation._updateShaderData(shaderData);
|
|
33882
|
+
this.sizeOverLifetime._updateShaderData(shaderData);
|
|
33883
|
+
this.rotationOverLifetime._updateShaderData(shaderData);
|
|
33884
|
+
this.colorOverLifetime._updateShaderData(shaderData);
|
|
33885
|
+
};
|
|
33886
|
+
/**
|
|
33887
|
+
* @internal
|
|
33888
|
+
*/ _proto._resetGlobalRandSeed = function _resetGlobalRandSeed(seed) {
|
|
33889
|
+
this._randomSeed = seed;
|
|
33890
|
+
this.main._resetRandomSeed(seed);
|
|
33891
|
+
this.emission._resetRandomSeed(seed);
|
|
33892
|
+
this.textureSheetAnimation._resetRandomSeed(seed);
|
|
33893
|
+
this.velocityOverLifetime._resetRandomSeed(seed);
|
|
33894
|
+
this.rotationOverLifetime._resetRandomSeed(seed);
|
|
33895
|
+
this.colorOverLifetime._resetRandomSeed(seed);
|
|
33896
|
+
};
|
|
33897
|
+
/**
|
|
33898
|
+
* @internal
|
|
33899
|
+
*/ _proto._getAliveParticleCount = function _getAliveParticleCount() {
|
|
33900
|
+
if (this._firstActiveElement <= this._firstFreeElement) {
|
|
33901
|
+
return this._firstFreeElement - this._firstActiveElement;
|
|
33902
|
+
} else {
|
|
33903
|
+
var instanceCount = this._currentParticleCount - this._firstActiveElement;
|
|
33904
|
+
if (this._firstFreeElement > 0) {
|
|
33905
|
+
instanceCount += this._firstFreeElement;
|
|
33906
|
+
}
|
|
33907
|
+
return instanceCount;
|
|
33908
|
+
}
|
|
33909
|
+
};
|
|
33910
|
+
/**
|
|
33911
|
+
* @internal
|
|
33912
|
+
*/ _proto._getNotRetiredParticleCount = function _getNotRetiredParticleCount() {
|
|
33913
|
+
if (this._firstRetiredElement <= this._firstFreeElement) {
|
|
33914
|
+
return this._firstFreeElement - this._firstRetiredElement;
|
|
33915
|
+
} else {
|
|
33916
|
+
var instanceCount = this._currentParticleCount - this._firstRetiredElement;
|
|
33917
|
+
if (this._firstFreeElement > 0) {
|
|
33918
|
+
instanceCount += this._firstFreeElement;
|
|
33919
|
+
}
|
|
33920
|
+
return instanceCount;
|
|
33921
|
+
}
|
|
33922
|
+
};
|
|
33923
|
+
/**
|
|
33924
|
+
* @internal
|
|
33925
|
+
*/ _proto._destroy = function _destroy() {
|
|
33926
|
+
this._instanceVertexBufferBinding.buffer.destroy();
|
|
33927
|
+
this._primitive.destroy();
|
|
33928
|
+
};
|
|
33815
33929
|
_proto._addNewParticle = function _addNewParticle(position, direction, transform, time) {
|
|
33816
|
-
var particleUtils = this._renderer.engine._particleBufferUtils;
|
|
33817
33930
|
var firstFreeElement = this._firstFreeElement;
|
|
33818
33931
|
var nextFreeElement = firstFreeElement + 1;
|
|
33819
33932
|
if (nextFreeElement >= this._currentParticleCount) {
|
|
@@ -33822,23 +33935,20 @@
|
|
|
33822
33935
|
var main = this.main;
|
|
33823
33936
|
// Check if can be expanded
|
|
33824
33937
|
if (nextFreeElement === this._firstRetiredElement) {
|
|
33825
|
-
var increaseCount = Math.min(ParticleGenerator._particleIncreaseCount, main.
|
|
33938
|
+
var increaseCount = Math.min(ParticleGenerator._particleIncreaseCount, main._maxParticleBuffer - this._currentParticleCount);
|
|
33826
33939
|
if (increaseCount === 0) {
|
|
33827
33940
|
return;
|
|
33828
33941
|
}
|
|
33829
|
-
this._resizeInstanceBuffer(increaseCount);
|
|
33942
|
+
this._resizeInstanceBuffer(true, increaseCount);
|
|
33830
33943
|
// Recalculate nextFreeElement after resize
|
|
33831
33944
|
nextFreeElement = firstFreeElement + 1;
|
|
33832
|
-
// Maintain expanded pointers
|
|
33833
|
-
this._firstNewElement > firstFreeElement && (this._firstNewElement += increaseCount);
|
|
33834
|
-
this._firstActiveElement > firstFreeElement && (this._firstActiveElement += increaseCount);
|
|
33835
|
-
this._firstRetiredElement > firstFreeElement && (this._firstRetiredElement += increaseCount);
|
|
33836
33945
|
}
|
|
33837
33946
|
var pos, rot;
|
|
33838
33947
|
if (main.simulationSpace === exports.ParticleSimulationSpace.World) {
|
|
33839
33948
|
pos = transform.worldPosition;
|
|
33840
33949
|
rot = transform.worldRotationQuaternion;
|
|
33841
33950
|
}
|
|
33951
|
+
var particleUtils = this._renderer.engine._particleBufferUtils;
|
|
33842
33952
|
var startSpeed = main.startSpeed.evaluate(undefined, main._startSpeedRand.random());
|
|
33843
33953
|
var instanceVertices = this._instanceVertices;
|
|
33844
33954
|
var offset = firstFreeElement * particleUtils.instanceVertexFloatStride;
|
|
@@ -33942,7 +34052,7 @@
|
|
|
33942
34052
|
var particleUtils = engine._particleBufferUtils;
|
|
33943
34053
|
var frameCount = engine.time.frameCount;
|
|
33944
34054
|
var instanceVertices = this._instanceVertices;
|
|
33945
|
-
while(this._firstActiveElement
|
|
34055
|
+
while(this._firstActiveElement !== this._firstNewElement){
|
|
33946
34056
|
var activeParticleOffset = this._firstActiveElement * particleUtils.instanceVertexFloatStride;
|
|
33947
34057
|
var activeParticleTimeOffset = activeParticleOffset + particleUtils.timeOffset;
|
|
33948
34058
|
var particleAge = this._playTime - instanceVertices[activeParticleTimeOffset];
|
|
@@ -33959,37 +34069,10 @@
|
|
|
33959
34069
|
this._waitProcessRetiredElementCount++;
|
|
33960
34070
|
}
|
|
33961
34071
|
};
|
|
33962
|
-
/**
|
|
33963
|
-
* @internal
|
|
33964
|
-
*/ _proto._updateShaderData = function _updateShaderData(shaderData) {
|
|
33965
|
-
this.main._updateShaderData(shaderData);
|
|
33966
|
-
this.velocityOverLifetime._updateShaderData(shaderData);
|
|
33967
|
-
this.textureSheetAnimation._updateShaderData(shaderData);
|
|
33968
|
-
this.sizeOverLifetime._updateShaderData(shaderData);
|
|
33969
|
-
this.rotationOverLifetime._updateShaderData(shaderData);
|
|
33970
|
-
this.colorOverLifetime._updateShaderData(shaderData);
|
|
33971
|
-
};
|
|
33972
|
-
/**
|
|
33973
|
-
* @internal
|
|
33974
|
-
*/ _proto._resetGlobalRandSeed = function _resetGlobalRandSeed(seed) {
|
|
33975
|
-
this._randomSeed = seed;
|
|
33976
|
-
this.main._resetRandomSeed(seed);
|
|
33977
|
-
this.emission._resetRandomSeed(seed);
|
|
33978
|
-
this.textureSheetAnimation._resetRandomSeed(seed);
|
|
33979
|
-
this.velocityOverLifetime._resetRandomSeed(seed);
|
|
33980
|
-
this.rotationOverLifetime._resetRandomSeed(seed);
|
|
33981
|
-
this.colorOverLifetime._resetRandomSeed(seed);
|
|
33982
|
-
};
|
|
33983
|
-
/**
|
|
33984
|
-
* @internal
|
|
33985
|
-
*/ _proto._destroy = function _destroy() {
|
|
33986
|
-
this._instanceVertexBufferBinding.buffer.destroy();
|
|
33987
|
-
this._primitive.destroy();
|
|
33988
|
-
};
|
|
33989
34072
|
_proto._freeRetiredParticles = function _freeRetiredParticles() {
|
|
33990
34073
|
var particleUtils = this._renderer.engine._particleBufferUtils;
|
|
33991
34074
|
var frameCount = this._renderer.engine.time.frameCount;
|
|
33992
|
-
while(this._firstRetiredElement
|
|
34075
|
+
while(this._firstRetiredElement !== this._firstActiveElement){
|
|
33993
34076
|
var offset = this._firstRetiredElement * particleUtils.instanceVertexFloatStride + particleUtils.startLifeTimeOffset;
|
|
33994
34077
|
var age = frameCount - this._instanceVertices[offset];
|
|
33995
34078
|
// WebGL don't support map buffer range, so off this optimization
|
|
@@ -39941,6 +40024,7 @@
|
|
|
39941
40024
|
var faceCount = ktx2File.getFaces();
|
|
39942
40025
|
var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
|
|
39943
40026
|
var faces = new Array(faceCount);
|
|
40027
|
+
var isBC = format === 2 || format === 3 || format === 7;
|
|
39944
40028
|
for(var face = 0; face < faceCount; face++){
|
|
39945
40029
|
var mipmaps = new Array(levelCount);
|
|
39946
40030
|
for(var mip = 0; mip < levelCount; mip++){
|
|
@@ -39948,8 +40032,15 @@
|
|
|
39948
40032
|
var mipWidth = void 0, mipHeight = void 0;
|
|
39949
40033
|
for(var layer = 0; layer < layerCount; layer++){
|
|
39950
40034
|
var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
|
|
39951
|
-
|
|
39952
|
-
|
|
40035
|
+
// see: https://github.com/KhronosGroup/KTX-Software/issues/254
|
|
40036
|
+
if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
|
|
40037
|
+
width = mipWidth = levelInfo.width;
|
|
40038
|
+
height = mipHeight = levelInfo.height;
|
|
40039
|
+
console.warn("KTX2 transcode to BC will resize to width: " + width + ", height: " + height + ". You'd better use an image whose size if multiple of 4.");
|
|
40040
|
+
} else {
|
|
40041
|
+
mipWidth = levelInfo.origWidth;
|
|
40042
|
+
mipHeight = levelInfo.origHeight;
|
|
40043
|
+
}
|
|
39953
40044
|
var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
|
|
39954
40045
|
var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
|
|
39955
40046
|
if (!status) {
|
|
@@ -42416,6 +42507,12 @@
|
|
|
42416
42507
|
materialShaderData.setTexture(key, texture);
|
|
42417
42508
|
}));
|
|
42418
42509
|
break;
|
|
42510
|
+
case "Boolean":
|
|
42511
|
+
materialShaderData.setInt(key, value ? 1 : 0);
|
|
42512
|
+
break;
|
|
42513
|
+
case "Integer":
|
|
42514
|
+
materialShaderData.setInt(key, Number(value));
|
|
42515
|
+
break;
|
|
42419
42516
|
}
|
|
42420
42517
|
};
|
|
42421
42518
|
var engine = resourceManager.engine;
|
|
@@ -42548,9 +42645,10 @@
|
|
|
42548
42645
|
var _loop = function _loop(i) {
|
|
42549
42646
|
var atlasItem = atlasItems[i];
|
|
42550
42647
|
if (atlasItem.img) {
|
|
42648
|
+
var _atlasItem_type;
|
|
42551
42649
|
chainPromises.push(resourceManager.load({
|
|
42552
42650
|
url: Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
|
|
42553
|
-
type: exports.AssetType.Texture2D,
|
|
42651
|
+
type: (_atlasItem_type = atlasItem.type) != null ? _atlasItem_type : exports.AssetType.Texture2D,
|
|
42554
42652
|
params: {
|
|
42555
42653
|
format: format,
|
|
42556
42654
|
mipmap: mipmap
|
|
@@ -43407,7 +43505,7 @@
|
|
|
43407
43505
|
], GALACEAN_animation_event);
|
|
43408
43506
|
|
|
43409
43507
|
//@ts-ignore
|
|
43410
|
-
var version = "1.1.0-beta.
|
|
43508
|
+
var version = "1.1.0-beta.20";
|
|
43411
43509
|
console.log("Galacean engine version: " + version);
|
|
43412
43510
|
for(var key in CoreObjects){
|
|
43413
43511
|
Loader.registerClass(key, CoreObjects[key]);
|