@galacean/engine-core 1.1.0-beta.13 → 1.1.0-beta.15

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.
@@ -566,6 +566,9 @@ function _instanceof(left, right) {
566
566
  if (sourceProperty._cloneTo) {
567
567
  sourceProperty._cloneTo(targetOProperty);
568
568
  }
569
+ if (sourceProperty.copyFrom) {
570
+ targetOProperty.copyFrom(sourceProperty);
571
+ }
569
572
  break;
570
573
  }
571
574
  } else {
@@ -4208,7 +4211,11 @@ var ComponentCloner = /*#__PURE__*/ function() {
4208
4211
  }
4209
4212
  cloneEntity.layer = srcEntity.layer;
4210
4213
  cloneEntity._isActive = srcEntity._isActive;
4211
- cloneEntity.transform.localMatrix = srcEntity.transform.localMatrix;
4214
+ var cloneTransform = cloneEntity.transform;
4215
+ var srcTransform = srcEntity.transform;
4216
+ cloneTransform.position = srcTransform.position;
4217
+ cloneTransform.rotation = srcTransform.rotation;
4218
+ cloneTransform.scale = srcTransform.scale;
4212
4219
  var children = srcEntity._children;
4213
4220
  for(var i = 0, n = srcEntity._children.length; i < n; i++){
4214
4221
  cloneEntity.addChild(this._createCloneEntity(children[i]));
@@ -7611,13 +7618,12 @@ var SimpleSpriteAssembler = (_SimpleSpriteAssembler = /*#__PURE__*/ function() {
7611
7618
  function SimpleSpriteAssembler1() {}
7612
7619
  SimpleSpriteAssembler1.resetData = function resetData(renderer) {
7613
7620
  var verticesData = renderer._verticesData;
7614
- var vertexCount = verticesData.vertexCount = 4;
7615
7621
  var positions = verticesData.positions, uvs = verticesData.uvs;
7616
- if (positions.length < vertexCount) {
7617
- for(var i = positions.length; i < vertexCount; i++){
7618
- positions.push(new miniprogram.Vector3());
7619
- uvs.push(new miniprogram.Vector2());
7620
- }
7622
+ verticesData.vertexCount = positions.length = uvs.length = 4;
7623
+ for(var i = 0; i < 4; i++){
7624
+ var _positions, _i, _uvs, _i1;
7625
+ (_positions = positions)[_i = i] || (_positions[_i] = new miniprogram.Vector3());
7626
+ (_uvs = uvs)[_i1 = i] || (_uvs[_i1] = new miniprogram.Vector2());
7621
7627
  }
7622
7628
  verticesData.triangles = SimpleSpriteAssembler._rectangleTriangles;
7623
7629
  };
@@ -11778,8 +11784,8 @@ var PrimitiveType;
11778
11784
  function SkinnedMeshRenderer(entity) {
11779
11785
  var _this;
11780
11786
  _this = MeshRenderer1.call(this, entity) || this;
11781
- _this._jointDataCreateCache = new miniprogram.Vector2(-1, -1);
11782
11787
  _this._localBounds = new miniprogram.BoundingBox();
11788
+ _this._jointDataCreateCache = new miniprogram.Vector2(-1, -1);
11783
11789
  _this._skin = null;
11784
11790
  var rhi = _this.entity.engine._hardwareRenderer;
11785
11791
  var maxVertexUniformVectors = rhi.renderStates.getParameter(rhi.gl.MAX_VERTEX_UNIFORM_VECTORS);
@@ -12083,6 +12089,9 @@ var PrimitiveType;
12083
12089
  (function() {
12084
12090
  SkinnedMeshRenderer._jointMatrixProperty = ShaderProperty.getByName("renderer_JointMatrix");
12085
12091
  })();
12092
+ __decorate([
12093
+ deepClone
12094
+ ], SkinnedMeshRenderer.prototype, "_localBounds", void 0);
12086
12095
  __decorate([
12087
12096
  ignoreClone
12088
12097
  ], SkinnedMeshRenderer.prototype, "_jointDataCreateCache", void 0);
@@ -12095,9 +12104,6 @@ __decorate([
12095
12104
  __decorate([
12096
12105
  ignoreClone
12097
12106
  ], SkinnedMeshRenderer.prototype, "_rootBone", void 0);
12098
- __decorate([
12099
- ignoreClone
12100
- ], SkinnedMeshRenderer.prototype, "_localBounds", void 0);
12101
12107
  __decorate([
12102
12108
  ignoreClone
12103
12109
  ], SkinnedMeshRenderer.prototype, "_jointMatrices", void 0);
@@ -13135,7 +13141,7 @@ var /** @internal */ PromiseState;
13135
13141
  var objects = Utils.objectValues(this._referResourcePool);
13136
13142
  for(var i = 0, len = objects.length; i < len; i++){
13137
13143
  if (!objects[i].isGCIgnored || forceDestroy) {
13138
- objects[i].destroy();
13144
+ objects[i].destroy(forceDestroy);
13139
13145
  }
13140
13146
  }
13141
13147
  };
@@ -13225,12 +13231,12 @@ var /** @internal */ PromiseState;
13225
13231
  */ ResourceManager._addLoader = function _addLoader(type, loader, extNames) {
13226
13232
  this._loaders[type] = loader;
13227
13233
  for(var i = 0, len = extNames.length; i < len; i++){
13228
- this._extTypeMapping[extNames[i]] = type;
13234
+ this._extTypeMapping[extNames[i].toLowerCase()] = type;
13229
13235
  }
13230
13236
  };
13231
13237
  ResourceManager._getTypeByUrl = function _getTypeByUrl(url) {
13232
13238
  var path = url.split("?")[0];
13233
- return this._extTypeMapping[path.substring(path.lastIndexOf(".") + 1)];
13239
+ return this._extTypeMapping[path.substring(path.lastIndexOf(".") + 1).toLowerCase()];
13234
13240
  };
13235
13241
  return ResourceManager;
13236
13242
  }();
@@ -16822,9 +16828,6 @@ ShaderPool.init();
16822
16828
  _proto._destroy = function _destroy() {
16823
16829
  this._sceneManager._destroyAllScene();
16824
16830
  this._resourceManager._destroy();
16825
- this._whiteTexture2D.destroy(true);
16826
- this._magentaTexture2D.destroy(true);
16827
- this._magentaTextureCube.destroy(true);
16828
16831
  this._textDefaultFont = null;
16829
16832
  this._fontMap = null;
16830
16833
  this.inputManager._destroy();
@@ -22897,17 +22900,17 @@ var SlicedSpriteAssembler = (_SlicedSpriteAssembler = /*#__PURE__*/ function() {
22897
22900
  SlicedSpriteAssembler1.resetData = function resetData(renderer) {
22898
22901
  var verticesData = renderer._verticesData;
22899
22902
  var positions = verticesData.positions, uvs = verticesData.uvs;
22900
- if (positions.length < 16) {
22901
- for(var i = positions.length; i < 16; i++){
22902
- positions.push(new miniprogram.Vector3());
22903
- uvs.push(new miniprogram.Vector2());
22904
- }
22903
+ verticesData.vertexCount = positions.length = uvs.length = 16;
22904
+ for(var i = 0; i < 16; i++){
22905
+ var _positions, _i, _uvs, _i1;
22906
+ (_positions = positions)[_i = i] || (_positions[_i] = new miniprogram.Vector3());
22907
+ (_uvs = uvs)[_i1 = i] || (_uvs[_i1] = new miniprogram.Vector2());
22905
22908
  }
22906
- verticesData.triangles = [];
22909
+ verticesData.triangles = SlicedSpriteAssembler._rectangleTriangles;
22907
22910
  };
22908
22911
  SlicedSpriteAssembler1.updatePositions = function updatePositions(renderer) {
22909
22912
  var width = renderer.width, height = renderer.height, sprite = renderer.sprite;
22910
- var _renderer__verticesData = renderer._verticesData, positions = _renderer__verticesData.positions, uvs = _renderer__verticesData.uvs, triangles = _renderer__verticesData.triangles;
22913
+ var _renderer__verticesData = renderer._verticesData, positions = _renderer__verticesData.positions, uvs = _renderer__verticesData.uvs;
22911
22914
  var border = sprite.border;
22912
22915
  var spriteUVs = sprite._getUVs();
22913
22916
  // Update local positions.
@@ -22990,34 +22993,16 @@ var SlicedSpriteAssembler = (_SlicedSpriteAssembler = /*#__PURE__*/ function() {
22990
22993
  // 0 - 4 - 8 - 12
22991
22994
  // ------------------------
22992
22995
  // Assemble position and uv.
22993
- var vertexCount = 0;
22994
- var realICount = 0;
22995
22996
  for(var i = 0; i < 4; i++){
22996
22997
  var rowValue = row[i];
22997
22998
  var rowU = spriteUVs[i].x;
22998
22999
  for(var j = 0; j < 4; j++){
22999
23000
  var columnValue = column[j];
23000
- positions[vertexCount].set(wE[0] * rowValue + wE[4] * columnValue + wE[12], wE[1] * rowValue + wE[5] * columnValue + wE[13], wE[2] * rowValue + wE[6] * columnValue + wE[14]);
23001
- uvs[vertexCount].set(rowU, spriteUVs[j].y);
23002
- ++vertexCount;
23003
- }
23004
- ++realICount;
23005
- }
23006
- var realJCount = vertexCount / realICount;
23007
- var indexOffset = 0;
23008
- for(var i1 = 0; i1 < realICount - 1; ++i1){
23009
- for(var j1 = 0; j1 < realJCount - 1; ++j1){
23010
- var start = i1 * realJCount + j1;
23011
- triangles[indexOffset++] = start;
23012
- triangles[indexOffset++] = start + 1;
23013
- triangles[indexOffset++] = start + realJCount;
23014
- triangles[indexOffset++] = start + 1;
23015
- triangles[indexOffset++] = start + realJCount + 1;
23016
- triangles[indexOffset++] = start + realJCount;
23017
- }
23018
- }
23019
- renderer._verticesData.vertexCount = realICount * realJCount;
23020
- triangles.length = (realICount - 1) * (realJCount - 1) * 6;
23001
+ var idx = i * 4 + j;
23002
+ positions[idx].set(wE[0] * rowValue + wE[4] * columnValue + wE[12], wE[1] * rowValue + wE[5] * columnValue + wE[13], wE[2] * rowValue + wE[6] * columnValue + wE[14]);
23003
+ uvs[idx].set(rowU, spriteUVs[j].y);
23004
+ }
23005
+ }
23021
23006
  var _renderer__bounds = renderer._bounds, min = _renderer__bounds.min, max = _renderer__bounds.max;
23022
23007
  min.set(row[0], column[0], 0);
23023
23008
  max.set(row[3], column[3], 0);
@@ -23025,6 +23010,63 @@ var SlicedSpriteAssembler = (_SlicedSpriteAssembler = /*#__PURE__*/ function() {
23025
23010
  };
23026
23011
  SlicedSpriteAssembler1.updateUVs = function updateUVs(renderer) {};
23027
23012
  return SlicedSpriteAssembler1;
23013
+ }(), function() {
23014
+ _SlicedSpriteAssembler._rectangleTriangles = [
23015
+ 0,
23016
+ 1,
23017
+ 4,
23018
+ 1,
23019
+ 5,
23020
+ 4,
23021
+ 1,
23022
+ 2,
23023
+ 5,
23024
+ 2,
23025
+ 6,
23026
+ 5,
23027
+ 2,
23028
+ 3,
23029
+ 6,
23030
+ 3,
23031
+ 7,
23032
+ 6,
23033
+ 4,
23034
+ 5,
23035
+ 8,
23036
+ 5,
23037
+ 9,
23038
+ 8,
23039
+ 5,
23040
+ 6,
23041
+ 9,
23042
+ 6,
23043
+ 10,
23044
+ 9,
23045
+ 6,
23046
+ 7,
23047
+ 10,
23048
+ 7,
23049
+ 11,
23050
+ 10,
23051
+ 8,
23052
+ 9,
23053
+ 12,
23054
+ 9,
23055
+ 13,
23056
+ 12,
23057
+ 9,
23058
+ 10,
23059
+ 13,
23060
+ 10,
23061
+ 14,
23062
+ 13,
23063
+ 10,
23064
+ 11,
23065
+ 14,
23066
+ 11,
23067
+ 15,
23068
+ 14
23069
+ ];
23028
23070
  }(), function() {
23029
23071
  _SlicedSpriteAssembler._worldMatrix = new miniprogram.Matrix();
23030
23072
  }(), _SlicedSpriteAssembler);
@@ -23036,8 +23078,7 @@ var _TiledSpriteAssembler;
23036
23078
  var TiledSpriteAssembler = (_TiledSpriteAssembler = /*#__PURE__*/ function() {
23037
23079
  function TiledSpriteAssembler1() {}
23038
23080
  TiledSpriteAssembler1.resetData = function resetData(renderer) {
23039
- var _renderer__verticesData;
23040
- (_renderer__verticesData = renderer._verticesData).triangles || (_renderer__verticesData.triangles = []);
23081
+ renderer._verticesData.triangles = [];
23041
23082
  };
23042
23083
  TiledSpriteAssembler1.updatePositions = function updatePositions(renderer) {
23043
23084
  var width = renderer.width, height = renderer.height, sprite = renderer.sprite, tileMode = renderer.tileMode, threshold = renderer.tiledAdaptiveThreshold;
@@ -24453,7 +24494,7 @@ var DirtyFlag;
24453
24494
  this.component = target.getComponent(type);
24454
24495
  this.cureType = cureType;
24455
24496
  var isBlendShape = _instanceof(this.component, SkinnedMeshRenderer);
24456
- // @todo: Temp solution with blendShape
24497
+ // @todo: Temp solution with blendShape bug when multi SkinnedMeshRenderer in a entity. we need to run setTargetValue to solve it.
24457
24498
  this._isCopyMode = cureType._isCopyMode && !isBlendShape;
24458
24499
  var assemblerType = AnimationCurveOwner.getAssemblerType(type, property);
24459
24500
  this._assembler = new assemblerType();
@@ -24531,7 +24572,8 @@ var DirtyFlag;
24531
24572
  cureType._lerpValue(targetValue, value, weight, targetValue);
24532
24573
  } else {
24533
24574
  var originValue1 = this._assembler.getTargetValue();
24534
- var lerpValue = cureType._lerpValue(originValue1, value, weight);
24575
+ // @todo: Temp solution in PR: https://github.com/galacean/engine/pull/1840
24576
+ var lerpValue = cureType._lerpValue(originValue1, value, weight, originValue1);
24535
24577
  this._assembler.setTargetValue(lerpValue);
24536
24578
  }
24537
24579
  }
@@ -24541,7 +24583,8 @@ var DirtyFlag;
24541
24583
  if (this._isCopyMode) {
24542
24584
  return this.cureType._lerpValue(srcValue, destValue, crossWeight, this.baseEvaluateData.value);
24543
24585
  } else {
24544
- this.baseEvaluateData.value = this.cureType._lerpValue(srcValue, destValue, crossWeight);
24586
+ // @todo: Temp solution in PR: https://github.com/galacean/engine/pull/1840
24587
+ this.baseEvaluateData.value = this.cureType._lerpValue(srcValue, destValue, crossWeight, this.baseEvaluateData.value);
24545
24588
  return this.baseEvaluateData.value;
24546
24589
  }
24547
24590
  };
@@ -27399,6 +27442,7 @@ exports.ParticleStopMode = void 0;
27399
27442
  context.camera._renderPipeline.pushRenderData(context, renderData);
27400
27443
  };
27401
27444
  _proto._onDestroy = function _onDestroy() {
27445
+ Renderer1.prototype._onDestroy.call(this);
27402
27446
  this.generator._destroy();
27403
27447
  };
27404
27448
  _create_class(ParticleRenderer, [
@@ -27998,8 +28042,8 @@ __decorate([
27998
28042
  /** The rate of particle emission. */ _this.rateOverTime = new ParticleCompositeCurve(10);
27999
28043
  /** The rate at which the emitter spawns new particles over distance. */ _this.rateOverDistance = new ParticleCompositeCurve(0);
28000
28044
  /** @internal */ _this._shapeRand = new miniprogram.Rand(0, ParticleRandomSubSeeds.Shape);
28045
+ /** @internal */ _this._frameRateTime = 0;
28001
28046
  _this._bursts = [];
28002
- _this._frameRateTime = 0;
28003
28047
  _this._currentBurstIndex = 0;
28004
28048
  _this._burstRand = new miniprogram.Rand(0, ParticleRandomSubSeeds.Burst);
28005
28049
  return _this;
@@ -28048,7 +28092,8 @@ __decorate([
28048
28092
  };
28049
28093
  /**
28050
28094
  * @internal
28051
- */ _proto._resetBurst = function _resetBurst() {
28095
+ */ _proto._reset = function _reset() {
28096
+ this._frameRateTime = 0;
28052
28097
  this._currentBurstIndex = 0;
28053
28098
  };
28054
28099
  _proto._emitByRateOverTime = function _emitByRateOverTime(playTime) {
@@ -29006,7 +29051,7 @@ __decorate([
29006
29051
  this._firstActiveElement = firstFreeElement;
29007
29052
  this._firstNewElement = firstFreeElement;
29008
29053
  this._playTime = 0;
29009
- this.emission._resetBurst();
29054
+ this.emission._reset();
29010
29055
  }
29011
29056
  }
29012
29057
  };
@@ -29041,19 +29086,23 @@ __decorate([
29041
29086
  /**
29042
29087
  * @internal
29043
29088
  */ _proto._update = function _update(elapsedTime) {
29089
+ var _this = this, main = _this.main, emission = _this.emission;
29090
+ var duration = main.duration;
29044
29091
  var lastPlayTime = this._playTime;
29045
29092
  this._playTime += elapsedTime;
29046
29093
  this._retireActiveParticles();
29047
29094
  this._freeRetiredParticles();
29048
- if (this.emission.enabled && this._isPlaying) {
29049
- this.emission._emit(lastPlayTime, this._playTime);
29050
- if (!this.main.isLoop && this._playTime > this.main.duration) {
29095
+ if (emission.enabled && this._isPlaying) {
29096
+ emission._emit(lastPlayTime, this._playTime);
29097
+ if (!main.isLoop && this._playTime > duration) {
29051
29098
  this._isPlaying = false;
29052
29099
  }
29053
29100
  }
29054
29101
  // Reset play time when is not playing and no active particles to avoid potential precision problems in GPU
29055
29102
  if (!this.isAlive) {
29056
- this._playTime = 0;
29103
+ var discardTime = Math.min(emission._frameRateTime, Math.floor(this._playTime / duration) * duration);
29104
+ this._playTime -= discardTime;
29105
+ emission._frameRateTime -= discardTime;
29057
29106
  }
29058
29107
  // Add new particles to vertex buffer when has wait process retired element or new particle
29059
29108
  //
package/dist/module.js CHANGED
@@ -561,6 +561,9 @@ function _instanceof(left, right) {
561
561
  if (sourceProperty._cloneTo) {
562
562
  sourceProperty._cloneTo(targetOProperty);
563
563
  }
564
+ if (sourceProperty.copyFrom) {
565
+ targetOProperty.copyFrom(sourceProperty);
566
+ }
564
567
  break;
565
568
  }
566
569
  } else {
@@ -4203,7 +4206,11 @@ var ComponentCloner = /*#__PURE__*/ function() {
4203
4206
  }
4204
4207
  cloneEntity.layer = srcEntity.layer;
4205
4208
  cloneEntity._isActive = srcEntity._isActive;
4206
- cloneEntity.transform.localMatrix = srcEntity.transform.localMatrix;
4209
+ var cloneTransform = cloneEntity.transform;
4210
+ var srcTransform = srcEntity.transform;
4211
+ cloneTransform.position = srcTransform.position;
4212
+ cloneTransform.rotation = srcTransform.rotation;
4213
+ cloneTransform.scale = srcTransform.scale;
4207
4214
  var children = srcEntity._children;
4208
4215
  for(var i = 0, n = srcEntity._children.length; i < n; i++){
4209
4216
  cloneEntity.addChild(this._createCloneEntity(children[i]));
@@ -7606,13 +7613,12 @@ var SimpleSpriteAssembler = (_SimpleSpriteAssembler = /*#__PURE__*/ function() {
7606
7613
  function SimpleSpriteAssembler1() {}
7607
7614
  SimpleSpriteAssembler1.resetData = function resetData(renderer) {
7608
7615
  var verticesData = renderer._verticesData;
7609
- var vertexCount = verticesData.vertexCount = 4;
7610
7616
  var positions = verticesData.positions, uvs = verticesData.uvs;
7611
- if (positions.length < vertexCount) {
7612
- for(var i = positions.length; i < vertexCount; i++){
7613
- positions.push(new Vector3());
7614
- uvs.push(new Vector2());
7615
- }
7617
+ verticesData.vertexCount = positions.length = uvs.length = 4;
7618
+ for(var i = 0; i < 4; i++){
7619
+ var _positions, _i, _uvs, _i1;
7620
+ (_positions = positions)[_i = i] || (_positions[_i] = new Vector3());
7621
+ (_uvs = uvs)[_i1 = i] || (_uvs[_i1] = new Vector2());
7616
7622
  }
7617
7623
  verticesData.triangles = SimpleSpriteAssembler._rectangleTriangles;
7618
7624
  };
@@ -11773,8 +11779,8 @@ var PrimitiveType;
11773
11779
  function SkinnedMeshRenderer(entity) {
11774
11780
  var _this;
11775
11781
  _this = MeshRenderer1.call(this, entity) || this;
11776
- _this._jointDataCreateCache = new Vector2(-1, -1);
11777
11782
  _this._localBounds = new BoundingBox();
11783
+ _this._jointDataCreateCache = new Vector2(-1, -1);
11778
11784
  _this._skin = null;
11779
11785
  var rhi = _this.entity.engine._hardwareRenderer;
11780
11786
  var maxVertexUniformVectors = rhi.renderStates.getParameter(rhi.gl.MAX_VERTEX_UNIFORM_VECTORS);
@@ -12078,6 +12084,9 @@ var PrimitiveType;
12078
12084
  (function() {
12079
12085
  SkinnedMeshRenderer._jointMatrixProperty = ShaderProperty.getByName("renderer_JointMatrix");
12080
12086
  })();
12087
+ __decorate([
12088
+ deepClone
12089
+ ], SkinnedMeshRenderer.prototype, "_localBounds", void 0);
12081
12090
  __decorate([
12082
12091
  ignoreClone
12083
12092
  ], SkinnedMeshRenderer.prototype, "_jointDataCreateCache", void 0);
@@ -12090,9 +12099,6 @@ __decorate([
12090
12099
  __decorate([
12091
12100
  ignoreClone
12092
12101
  ], SkinnedMeshRenderer.prototype, "_rootBone", void 0);
12093
- __decorate([
12094
- ignoreClone
12095
- ], SkinnedMeshRenderer.prototype, "_localBounds", void 0);
12096
12102
  __decorate([
12097
12103
  ignoreClone
12098
12104
  ], SkinnedMeshRenderer.prototype, "_jointMatrices", void 0);
@@ -13130,7 +13136,7 @@ var /** @internal */ PromiseState;
13130
13136
  var objects = Utils.objectValues(this._referResourcePool);
13131
13137
  for(var i = 0, len = objects.length; i < len; i++){
13132
13138
  if (!objects[i].isGCIgnored || forceDestroy) {
13133
- objects[i].destroy();
13139
+ objects[i].destroy(forceDestroy);
13134
13140
  }
13135
13141
  }
13136
13142
  };
@@ -13220,12 +13226,12 @@ var /** @internal */ PromiseState;
13220
13226
  */ ResourceManager._addLoader = function _addLoader(type, loader, extNames) {
13221
13227
  this._loaders[type] = loader;
13222
13228
  for(var i = 0, len = extNames.length; i < len; i++){
13223
- this._extTypeMapping[extNames[i]] = type;
13229
+ this._extTypeMapping[extNames[i].toLowerCase()] = type;
13224
13230
  }
13225
13231
  };
13226
13232
  ResourceManager._getTypeByUrl = function _getTypeByUrl(url) {
13227
13233
  var path = url.split("?")[0];
13228
- return this._extTypeMapping[path.substring(path.lastIndexOf(".") + 1)];
13234
+ return this._extTypeMapping[path.substring(path.lastIndexOf(".") + 1).toLowerCase()];
13229
13235
  };
13230
13236
  return ResourceManager;
13231
13237
  }();
@@ -16817,9 +16823,6 @@ ShaderPool.init();
16817
16823
  _proto._destroy = function _destroy() {
16818
16824
  this._sceneManager._destroyAllScene();
16819
16825
  this._resourceManager._destroy();
16820
- this._whiteTexture2D.destroy(true);
16821
- this._magentaTexture2D.destroy(true);
16822
- this._magentaTextureCube.destroy(true);
16823
16826
  this._textDefaultFont = null;
16824
16827
  this._fontMap = null;
16825
16828
  this.inputManager._destroy();
@@ -22892,17 +22895,17 @@ var SlicedSpriteAssembler = (_SlicedSpriteAssembler = /*#__PURE__*/ function() {
22892
22895
  SlicedSpriteAssembler1.resetData = function resetData(renderer) {
22893
22896
  var verticesData = renderer._verticesData;
22894
22897
  var positions = verticesData.positions, uvs = verticesData.uvs;
22895
- if (positions.length < 16) {
22896
- for(var i = positions.length; i < 16; i++){
22897
- positions.push(new Vector3());
22898
- uvs.push(new Vector2());
22899
- }
22898
+ verticesData.vertexCount = positions.length = uvs.length = 16;
22899
+ for(var i = 0; i < 16; i++){
22900
+ var _positions, _i, _uvs, _i1;
22901
+ (_positions = positions)[_i = i] || (_positions[_i] = new Vector3());
22902
+ (_uvs = uvs)[_i1 = i] || (_uvs[_i1] = new Vector2());
22900
22903
  }
22901
- verticesData.triangles = [];
22904
+ verticesData.triangles = SlicedSpriteAssembler._rectangleTriangles;
22902
22905
  };
22903
22906
  SlicedSpriteAssembler1.updatePositions = function updatePositions(renderer) {
22904
22907
  var width = renderer.width, height = renderer.height, sprite = renderer.sprite;
22905
- var _renderer__verticesData = renderer._verticesData, positions = _renderer__verticesData.positions, uvs = _renderer__verticesData.uvs, triangles = _renderer__verticesData.triangles;
22908
+ var _renderer__verticesData = renderer._verticesData, positions = _renderer__verticesData.positions, uvs = _renderer__verticesData.uvs;
22906
22909
  var border = sprite.border;
22907
22910
  var spriteUVs = sprite._getUVs();
22908
22911
  // Update local positions.
@@ -22985,34 +22988,16 @@ var SlicedSpriteAssembler = (_SlicedSpriteAssembler = /*#__PURE__*/ function() {
22985
22988
  // 0 - 4 - 8 - 12
22986
22989
  // ------------------------
22987
22990
  // Assemble position and uv.
22988
- var vertexCount = 0;
22989
- var realICount = 0;
22990
22991
  for(var i = 0; i < 4; i++){
22991
22992
  var rowValue = row[i];
22992
22993
  var rowU = spriteUVs[i].x;
22993
22994
  for(var j = 0; j < 4; j++){
22994
22995
  var columnValue = column[j];
22995
- positions[vertexCount].set(wE[0] * rowValue + wE[4] * columnValue + wE[12], wE[1] * rowValue + wE[5] * columnValue + wE[13], wE[2] * rowValue + wE[6] * columnValue + wE[14]);
22996
- uvs[vertexCount].set(rowU, spriteUVs[j].y);
22997
- ++vertexCount;
22998
- }
22999
- ++realICount;
23000
- }
23001
- var realJCount = vertexCount / realICount;
23002
- var indexOffset = 0;
23003
- for(var i1 = 0; i1 < realICount - 1; ++i1){
23004
- for(var j1 = 0; j1 < realJCount - 1; ++j1){
23005
- var start = i1 * realJCount + j1;
23006
- triangles[indexOffset++] = start;
23007
- triangles[indexOffset++] = start + 1;
23008
- triangles[indexOffset++] = start + realJCount;
23009
- triangles[indexOffset++] = start + 1;
23010
- triangles[indexOffset++] = start + realJCount + 1;
23011
- triangles[indexOffset++] = start + realJCount;
23012
- }
23013
- }
23014
- renderer._verticesData.vertexCount = realICount * realJCount;
23015
- triangles.length = (realICount - 1) * (realJCount - 1) * 6;
22996
+ var idx = i * 4 + j;
22997
+ positions[idx].set(wE[0] * rowValue + wE[4] * columnValue + wE[12], wE[1] * rowValue + wE[5] * columnValue + wE[13], wE[2] * rowValue + wE[6] * columnValue + wE[14]);
22998
+ uvs[idx].set(rowU, spriteUVs[j].y);
22999
+ }
23000
+ }
23016
23001
  var _renderer__bounds = renderer._bounds, min = _renderer__bounds.min, max = _renderer__bounds.max;
23017
23002
  min.set(row[0], column[0], 0);
23018
23003
  max.set(row[3], column[3], 0);
@@ -23020,6 +23005,63 @@ var SlicedSpriteAssembler = (_SlicedSpriteAssembler = /*#__PURE__*/ function() {
23020
23005
  };
23021
23006
  SlicedSpriteAssembler1.updateUVs = function updateUVs(renderer) {};
23022
23007
  return SlicedSpriteAssembler1;
23008
+ }(), function() {
23009
+ _SlicedSpriteAssembler._rectangleTriangles = [
23010
+ 0,
23011
+ 1,
23012
+ 4,
23013
+ 1,
23014
+ 5,
23015
+ 4,
23016
+ 1,
23017
+ 2,
23018
+ 5,
23019
+ 2,
23020
+ 6,
23021
+ 5,
23022
+ 2,
23023
+ 3,
23024
+ 6,
23025
+ 3,
23026
+ 7,
23027
+ 6,
23028
+ 4,
23029
+ 5,
23030
+ 8,
23031
+ 5,
23032
+ 9,
23033
+ 8,
23034
+ 5,
23035
+ 6,
23036
+ 9,
23037
+ 6,
23038
+ 10,
23039
+ 9,
23040
+ 6,
23041
+ 7,
23042
+ 10,
23043
+ 7,
23044
+ 11,
23045
+ 10,
23046
+ 8,
23047
+ 9,
23048
+ 12,
23049
+ 9,
23050
+ 13,
23051
+ 12,
23052
+ 9,
23053
+ 10,
23054
+ 13,
23055
+ 10,
23056
+ 14,
23057
+ 13,
23058
+ 10,
23059
+ 11,
23060
+ 14,
23061
+ 11,
23062
+ 15,
23063
+ 14
23064
+ ];
23023
23065
  }(), function() {
23024
23066
  _SlicedSpriteAssembler._worldMatrix = new Matrix();
23025
23067
  }(), _SlicedSpriteAssembler);
@@ -23031,8 +23073,7 @@ var _TiledSpriteAssembler;
23031
23073
  var TiledSpriteAssembler = (_TiledSpriteAssembler = /*#__PURE__*/ function() {
23032
23074
  function TiledSpriteAssembler1() {}
23033
23075
  TiledSpriteAssembler1.resetData = function resetData(renderer) {
23034
- var _renderer__verticesData;
23035
- (_renderer__verticesData = renderer._verticesData).triangles || (_renderer__verticesData.triangles = []);
23076
+ renderer._verticesData.triangles = [];
23036
23077
  };
23037
23078
  TiledSpriteAssembler1.updatePositions = function updatePositions(renderer) {
23038
23079
  var width = renderer.width, height = renderer.height, sprite = renderer.sprite, tileMode = renderer.tileMode, threshold = renderer.tiledAdaptiveThreshold;
@@ -24448,7 +24489,7 @@ var DirtyFlag;
24448
24489
  this.component = target.getComponent(type);
24449
24490
  this.cureType = cureType;
24450
24491
  var isBlendShape = _instanceof(this.component, SkinnedMeshRenderer);
24451
- // @todo: Temp solution with blendShape
24492
+ // @todo: Temp solution with blendShape bug when multi SkinnedMeshRenderer in a entity. we need to run setTargetValue to solve it.
24452
24493
  this._isCopyMode = cureType._isCopyMode && !isBlendShape;
24453
24494
  var assemblerType = AnimationCurveOwner.getAssemblerType(type, property);
24454
24495
  this._assembler = new assemblerType();
@@ -24526,7 +24567,8 @@ var DirtyFlag;
24526
24567
  cureType._lerpValue(targetValue, value, weight, targetValue);
24527
24568
  } else {
24528
24569
  var originValue1 = this._assembler.getTargetValue();
24529
- var lerpValue = cureType._lerpValue(originValue1, value, weight);
24570
+ // @todo: Temp solution in PR: https://github.com/galacean/engine/pull/1840
24571
+ var lerpValue = cureType._lerpValue(originValue1, value, weight, originValue1);
24530
24572
  this._assembler.setTargetValue(lerpValue);
24531
24573
  }
24532
24574
  }
@@ -24536,7 +24578,8 @@ var DirtyFlag;
24536
24578
  if (this._isCopyMode) {
24537
24579
  return this.cureType._lerpValue(srcValue, destValue, crossWeight, this.baseEvaluateData.value);
24538
24580
  } else {
24539
- this.baseEvaluateData.value = this.cureType._lerpValue(srcValue, destValue, crossWeight);
24581
+ // @todo: Temp solution in PR: https://github.com/galacean/engine/pull/1840
24582
+ this.baseEvaluateData.value = this.cureType._lerpValue(srcValue, destValue, crossWeight, this.baseEvaluateData.value);
24540
24583
  return this.baseEvaluateData.value;
24541
24584
  }
24542
24585
  };
@@ -27394,6 +27437,7 @@ var ParticleStopMode;
27394
27437
  context.camera._renderPipeline.pushRenderData(context, renderData);
27395
27438
  };
27396
27439
  _proto._onDestroy = function _onDestroy() {
27440
+ Renderer1.prototype._onDestroy.call(this);
27397
27441
  this.generator._destroy();
27398
27442
  };
27399
27443
  _create_class(ParticleRenderer, [
@@ -27993,8 +28037,8 @@ __decorate([
27993
28037
  /** The rate of particle emission. */ _this.rateOverTime = new ParticleCompositeCurve(10);
27994
28038
  /** The rate at which the emitter spawns new particles over distance. */ _this.rateOverDistance = new ParticleCompositeCurve(0);
27995
28039
  /** @internal */ _this._shapeRand = new Rand(0, ParticleRandomSubSeeds.Shape);
28040
+ /** @internal */ _this._frameRateTime = 0;
27996
28041
  _this._bursts = [];
27997
- _this._frameRateTime = 0;
27998
28042
  _this._currentBurstIndex = 0;
27999
28043
  _this._burstRand = new Rand(0, ParticleRandomSubSeeds.Burst);
28000
28044
  return _this;
@@ -28043,7 +28087,8 @@ __decorate([
28043
28087
  };
28044
28088
  /**
28045
28089
  * @internal
28046
- */ _proto._resetBurst = function _resetBurst() {
28090
+ */ _proto._reset = function _reset() {
28091
+ this._frameRateTime = 0;
28047
28092
  this._currentBurstIndex = 0;
28048
28093
  };
28049
28094
  _proto._emitByRateOverTime = function _emitByRateOverTime(playTime) {
@@ -29001,7 +29046,7 @@ __decorate([
29001
29046
  this._firstActiveElement = firstFreeElement;
29002
29047
  this._firstNewElement = firstFreeElement;
29003
29048
  this._playTime = 0;
29004
- this.emission._resetBurst();
29049
+ this.emission._reset();
29005
29050
  }
29006
29051
  }
29007
29052
  };
@@ -29036,19 +29081,23 @@ __decorate([
29036
29081
  /**
29037
29082
  * @internal
29038
29083
  */ _proto._update = function _update(elapsedTime) {
29084
+ var _this = this, main = _this.main, emission = _this.emission;
29085
+ var duration = main.duration;
29039
29086
  var lastPlayTime = this._playTime;
29040
29087
  this._playTime += elapsedTime;
29041
29088
  this._retireActiveParticles();
29042
29089
  this._freeRetiredParticles();
29043
- if (this.emission.enabled && this._isPlaying) {
29044
- this.emission._emit(lastPlayTime, this._playTime);
29045
- if (!this.main.isLoop && this._playTime > this.main.duration) {
29090
+ if (emission.enabled && this._isPlaying) {
29091
+ emission._emit(lastPlayTime, this._playTime);
29092
+ if (!main.isLoop && this._playTime > duration) {
29046
29093
  this._isPlaying = false;
29047
29094
  }
29048
29095
  }
29049
29096
  // Reset play time when is not playing and no active particles to avoid potential precision problems in GPU
29050
29097
  if (!this.isAlive) {
29051
- this._playTime = 0;
29098
+ var discardTime = Math.min(emission._frameRateTime, Math.floor(this._playTime / duration) * duration);
29099
+ this._playTime -= discardTime;
29100
+ emission._frameRateTime -= discardTime;
29052
29101
  }
29053
29102
  // Add new particles to vertex buffer when has wait process retired element or new particle
29054
29103
  //