@galacean/engine-core 1.4.12 → 1.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -5809,6 +5809,7 @@ exports.Camera = /*#__PURE__*/ function(Component) {
5809
5809
  }
5810
5810
  this._renderPipeline.render(context, cubeFace, mipLevel, ignoreClearFlags);
5811
5811
  engine._renderCount++;
5812
+ context.camera = null;
5812
5813
  };
5813
5814
  _proto.setReplacementShader = function setReplacementShader(shader, replacementTag, failureStrategy) {
5814
5815
  if (failureStrategy === void 0) failureStrategy = ReplacementFailureStrategy.KeepOriginalShader;
@@ -8419,6 +8420,28 @@ ShaderPass._shaderPassCounter = 0;
8419
8420
  */ Shader.find = function find(name) {
8420
8421
  return Shader._shaderMap[name];
8421
8422
  };
8423
+ /**
8424
+ * @internal
8425
+ */ Shader._clear = function _clear(engine) {
8426
+ var shaderMap = Shader._shaderMap;
8427
+ for(var key in shaderMap){
8428
+ var shader = shaderMap[key];
8429
+ var subShaders = shader._subShaders;
8430
+ for(var i = 0, n = subShaders.length; i < n; i++){
8431
+ var passes = subShaders[i].passes;
8432
+ for(var j = 0, m = passes.length; j < m; j++){
8433
+ var pass = passes[j];
8434
+ var passShaderProgramPools = pass._shaderProgramPools;
8435
+ for(var k = passShaderProgramPools.length - 1; k >= 0; k--){
8436
+ var shaderProgramPool = passShaderProgramPools[k];
8437
+ if (shaderProgramPool.engine !== engine) continue;
8438
+ shaderProgramPool._destroy();
8439
+ passShaderProgramPools.splice(k, 1);
8440
+ }
8441
+ }
8442
+ }
8443
+ }
8444
+ };
8422
8445
  Shader._applyConstRenderStates = function _applyConstRenderStates(renderState, key, value) {
8423
8446
  switch(key){
8424
8447
  case RenderStateElementKey.BlendStateEnabled0:
@@ -8869,6 +8892,7 @@ BatchUtils._disableBatchTag = ShaderTagKey.getByName("spriteDisableBatching");
8869
8892
  program.uploadUnGroupTextures();
8870
8893
  (pass._renderState || blitMaterial.renderState)._applyStates(engine, false, pass._renderStateDataMap, blitMaterial.shaderData);
8871
8894
  rhi.drawPrimitive(blitMesh._primitive, blitMesh.subMesh, program);
8895
+ rendererShaderData.setTexture(Blitter._blitTextureProperty, null);
8872
8896
  };
8873
8897
  return Blitter;
8874
8898
  }();
@@ -10878,7 +10902,6 @@ __decorate([
10878
10902
  * @internal
10879
10903
  */ _proto._cloneTo = function _cloneTo(target, srcRoot, targetRoot) {
10880
10904
  Renderer.prototype._cloneTo.call(this, target, srcRoot, targetRoot);
10881
- target._assembler.resetData(target);
10882
10905
  target.sprite = this._sprite;
10883
10906
  target.drawMode = this._drawMode;
10884
10907
  };
@@ -11232,7 +11255,7 @@ __decorate([
11232
11255
  ignoreClone
11233
11256
  ], SpriteRenderer.prototype, "_drawMode", void 0);
11234
11257
  __decorate([
11235
- assignmentClone
11258
+ ignoreClone
11236
11259
  ], SpriteRenderer.prototype, "_assembler", void 0);
11237
11260
  __decorate([
11238
11261
  assignmentClone
@@ -17651,7 +17674,7 @@ var ComponentCloner = /*#__PURE__*/ function() {
17651
17674
  if (oldParent != null) {
17652
17675
  Entity._removeFromChildren(oldParent._children, this);
17653
17676
  this._parent = null;
17654
- this._dispatchModify(EntityModifyFlags.Child, oldParent);
17677
+ oldParent._dispatchModify(EntityModifyFlags.Child, oldParent);
17655
17678
  }
17656
17679
  };
17657
17680
  /**
@@ -17705,6 +17728,7 @@ var ComponentCloner = /*#__PURE__*/ function() {
17705
17728
  this._removeFromParent();
17706
17729
  this._parent = parent;
17707
17730
  if (parent) {
17731
+ this._isRoot = false;
17708
17732
  parent._addToChildrenList(siblingIndex, this);
17709
17733
  var oldScene = this._scene;
17710
17734
  var parentScene = parent._scene;
@@ -17816,7 +17840,6 @@ var ComponentCloner = /*#__PURE__*/ function() {
17816
17840
  }
17817
17841
  }
17818
17842
  }
17819
- this._dispatchModify(EntityModifyFlags.Child, this);
17820
17843
  };
17821
17844
  /**
17822
17845
  * @deprecated
@@ -18001,7 +18024,13 @@ var ComponentCloner = /*#__PURE__*/ function() {
18001
18024
  if (this._siblingIndex === -1) {
18002
18025
  throw "The entity " + this.name + " is not in the hierarchy";
18003
18026
  }
18004
- this._setSiblingIndex(this._isRoot ? this._scene._rootEntities : this._parent._children, value);
18027
+ if (this._isRoot) {
18028
+ this._setSiblingIndex(this._scene._rootEntities, value);
18029
+ } else {
18030
+ var parent = this._parent;
18031
+ this._setSiblingIndex(parent._children, value);
18032
+ parent._dispatchModify(EntityModifyFlags.Child, parent);
18033
+ }
18005
18034
  }
18006
18035
  }
18007
18036
  ]);
@@ -18481,6 +18510,11 @@ __decorate([
18481
18510
  var _proto = BasicResources.prototype;
18482
18511
  /**
18483
18512
  * @internal
18513
+ */ _proto._getBlinnPhongMaterial = function _getBlinnPhongMaterial() {
18514
+ return this._blinnPhongMaterial || (this._blinnPhongMaterial = new BlinnPhongMaterial(this.engine));
18515
+ };
18516
+ /**
18517
+ * @internal
18484
18518
  */ _proto._initialize = function _initialize() {
18485
18519
  var _this = this;
18486
18520
  return new Promise(function(resolve, reject) {
@@ -19793,7 +19827,6 @@ var MultiExecutor = /*#__PURE__*/ function() {
19793
19827
  };
19794
19828
  _proto._loadSingleItem = function _loadSingleItem(itemOrURL) {
19795
19829
  var _this = this;
19796
- var _this__virtualPathResourceMap_assetBaseURL;
19797
19830
  var item = this._assignDefaultOptions(typeof itemOrURL === "string" ? {
19798
19831
  url: itemOrURL
19799
19832
  } : itemOrURL);
@@ -19803,9 +19836,10 @@ var MultiExecutor = /*#__PURE__*/ function() {
19803
19836
  // Parse url
19804
19837
  var _this__parseURL = this._parseURL(url), assetBaseURL = _this__parseURL.assetBaseURL, queryPath = _this__parseURL.queryPath;
19805
19838
  var paths = queryPath ? this._parseQueryPath(queryPath) : [];
19806
- var _this__virtualPathResourceMap_assetBaseURL_path;
19807
19839
  // Get remote asset base url
19808
- var remoteAssetBaseURL = (_this__virtualPathResourceMap_assetBaseURL_path = (_this__virtualPathResourceMap_assetBaseURL = this._virtualPathResourceMap[assetBaseURL]) == null ? void 0 : _this__virtualPathResourceMap_assetBaseURL.path) != null ? _this__virtualPathResourceMap_assetBaseURL_path : assetBaseURL;
19840
+ var remoteConfig = this._virtualPathResourceMap[assetBaseURL];
19841
+ var _remoteConfig_path;
19842
+ var remoteAssetBaseURL = (_remoteConfig_path = remoteConfig == null ? void 0 : remoteConfig.path) != null ? _remoteConfig_path : assetBaseURL;
19809
19843
  // Check cache
19810
19844
  var cacheObject = this._assetUrlPool[remoteAssetBaseURL];
19811
19845
  if (cacheObject) {
@@ -19839,15 +19873,20 @@ var MultiExecutor = /*#__PURE__*/ function() {
19839
19873
  if (!loader) {
19840
19874
  throw "loader not found: " + item.type;
19841
19875
  }
19876
+ var subpackageName = remoteConfig == null ? void 0 : remoteConfig.subpackageName;
19842
19877
  // Check sub asset
19843
19878
  if (queryPath) {
19844
19879
  // Check whether load main asset
19845
- var mainPromise = loadingPromises[remoteAssetBaseURL] || this._loadMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL);
19880
+ var mainPromise = loadingPromises[remoteAssetBaseURL] || this._loadSubpackageAndMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL, subpackageName);
19846
19881
  mainPromise.catch(function(e) {
19847
19882
  _this._onSubAssetFail(remoteAssetBaseURL, queryPath, e);
19848
19883
  });
19849
19884
  return this._createSubAssetPromiseCallback(remoteAssetBaseURL, remoteAssetURL, queryPath);
19850
19885
  }
19886
+ return this._loadSubpackageAndMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL, subpackageName);
19887
+ };
19888
+ // For adapter mini-game platform
19889
+ _proto._loadSubpackageAndMainAsset = function _loadSubpackageAndMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL, subpackageName) {
19851
19890
  return this._loadMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL);
19852
19891
  };
19853
19892
  _proto._loadMainAsset = function _loadMainAsset(loader, item, remoteAssetBaseURL, assetBaseURL) {
@@ -20981,16 +21020,24 @@ exports.Collider = __decorate([
20981
21020
  }
20982
21021
  return shape.collider.entity.layer & layerMask && shape.isSceneQuery;
20983
21022
  };
21023
+ var outIDX;
21024
+ var outDistance;
21025
+ var outPosition;
21026
+ var outNormal;
20984
21027
  if (hitResult != undefined) {
20985
21028
  var result = this._nativePhysicsScene.raycast(ray, distance, onRaycast, function(idx, distance, position, normal) {
20986
- var hitShape = Engine._physicalObjectsMap[idx];
20987
- hitResult.entity = hitShape._collider.entity;
20988
- hitResult.shape = hitShape;
20989
- hitResult.distance = distance;
20990
- hitResult.normal.copyFrom(normal);
20991
- hitResult.point.copyFrom(position);
21029
+ outIDX = idx;
21030
+ outDistance = distance;
21031
+ outPosition = position;
21032
+ outNormal = normal;
20992
21033
  });
20993
21034
  if (result) {
21035
+ var hitShape = Engine._physicalObjectsMap[outIDX];
21036
+ hitResult.entity = hitShape._collider.entity;
21037
+ hitResult.shape = hitShape;
21038
+ hitResult.distance = outDistance;
21039
+ hitResult.point.copyFrom(outPosition);
21040
+ hitResult.normal.copyFrom(outNormal);
20994
21041
  return true;
20995
21042
  } else {
20996
21043
  hitResult.entity = null;
@@ -23304,7 +23351,7 @@ PointerEventEmitter._tempRay = new engineMath.Ray();
23304
23351
  }
23305
23352
  pointer = pointerPool[j];
23306
23353
  if (!pointer) {
23307
- pointer = new Pointer(j);
23354
+ pointer = pointerPool[j] = new Pointer(j);
23308
23355
  engine._physicsInitialized && pointer._addEmitters(PhysicsPointerEventEmitter, eventPool);
23309
23356
  PointerManager._pointerEventEmitters.forEach(function(emitter) {
23310
23357
  pointer._addEmitters(emitter, eventPool);
@@ -24339,7 +24386,7 @@ var PostProcessUberPass = /*#__PURE__*/ function(PostProcessPass) {
24339
24386
  var thresholdKnee = thresholdLinear * 0.5; // Hardcoded soft knee
24340
24387
  var bloomParams = bloomShaderData.getVector4(BloomEffect._bloomParams);
24341
24388
  var scatterLerp = engineMath.MathUtil.lerp(0.05, 0.95, scatter.value);
24342
- bloomParams.x = threshold.value;
24389
+ bloomParams.x = thresholdLinear;
24343
24390
  bloomParams.y = thresholdKnee;
24344
24391
  bloomParams.z = scatterLerp;
24345
24392
  var bloomIntensityParams = uberShaderData.getVector4(BloomEffect._bloomIntensityParams);
@@ -24672,15 +24719,16 @@ var UIUtils = /*#__PURE__*/ function() {
24672
24719
  engineMath.Matrix.multiply(virtualCamera.projectionMatrix, virtualCamera.viewMatrix, virtualCamera.viewProjectionMatrix);
24673
24720
  renderContext.applyVirtualCamera(virtualCamera, false);
24674
24721
  renderContext.rendererUpdateFlag |= ContextRendererUpdateFlag.ProjectionMatrix;
24675
- uiRenderQueue.clear();
24676
24722
  uiCanvas._prepareRender(renderContext);
24677
24723
  uiRenderQueue.pushRenderElement(uiCanvas._renderElement);
24678
24724
  uiRenderQueue.batch(batcherManager);
24679
24725
  batcherManager.uploadBuffer();
24680
24726
  uiRenderQueue.render(renderContext, "Forward");
24727
+ uiRenderQueue.clear();
24681
24728
  engine._renderCount++;
24682
24729
  }
24683
24730
  }
24731
+ renderContext.camera = null;
24684
24732
  };
24685
24733
  return UIUtils;
24686
24734
  }();
@@ -24961,21 +25009,15 @@ ShaderPool.init();
24961
25009
  var _this_xrManager;
24962
25010
  this._sceneManager._destroyAllScene();
24963
25011
  this._resourceManager._destroy();
24964
- this._textDefaultFont = null;
24965
- this._fontMap = null;
24966
25012
  this.inputManager._destroy();
24967
25013
  this._batcherManager.destroy();
24968
25014
  (_this_xrManager = this.xrManager) == null ? void 0 : _this_xrManager._destroy();
24969
25015
  this.dispatch("shutdown", this);
24970
25016
  // Cancel animation
24971
25017
  this.pause();
25018
+ Shader._clear(this);
24972
25019
  this._hardwareRenderer.destroy();
24973
25020
  this.removeAllEventListeners();
24974
- this._animate = null;
24975
- this._sceneManager = null;
24976
- this._resourceManager = null;
24977
- this._canvas = null;
24978
- this._time = null;
24979
25021
  this._waitingDestroy = false;
24980
25022
  this._destroyed = true;
24981
25023
  };
@@ -25099,6 +25141,7 @@ ShaderPool.init();
25099
25141
  this._hardwareRenderer.resetState();
25100
25142
  this._lastRenderState = new RenderState();
25101
25143
  // Clear shader pools
25144
+ Shader._clear(this);
25102
25145
  this._shaderProgramPools.length = 0;
25103
25146
  var resourceManager = this.resourceManager;
25104
25147
  // Restore graphic resources
@@ -25797,24 +25840,23 @@ Sky._projectionMatrix = new engineMath.Matrix(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, Sky.
25797
25840
  };
25798
25841
  _proto.drawMask = function drawMask(context, pipelineStageTagValue, maskLayer) {
25799
25842
  var incrementMaskQueue = MaskManager.getMaskIncrementRenderQueue();
25800
- incrementMaskQueue.clear();
25801
25843
  var decrementMaskQueue = MaskManager.getMaskDecrementRenderQueue();
25802
- decrementMaskQueue.clear();
25803
25844
  this._buildMaskRenderElement(maskLayer, incrementMaskQueue, decrementMaskQueue);
25804
25845
  var batcherManager = context.camera.engine._batcherManager;
25805
25846
  incrementMaskQueue.batch(batcherManager);
25806
25847
  batcherManager.uploadBuffer();
25807
25848
  incrementMaskQueue.render(context, pipelineStageTagValue, RenderQueueMaskType.Increment);
25849
+ incrementMaskQueue.clear();
25808
25850
  decrementMaskQueue.batch(batcherManager);
25809
25851
  batcherManager.uploadBuffer();
25810
25852
  decrementMaskQueue.render(context, pipelineStageTagValue, RenderQueueMaskType.Decrement);
25853
+ decrementMaskQueue.clear();
25811
25854
  };
25812
25855
  _proto.clearMask = function clearMask(context, pipelineStageTagValue) {
25813
25856
  var preMaskLayer = this._preMaskLayer;
25814
25857
  if (preMaskLayer !== SpriteMaskLayer.Nothing) {
25815
25858
  if (this.hasStencilWritten) {
25816
25859
  var decrementMaskQueue = MaskManager.getMaskDecrementRenderQueue();
25817
- decrementMaskQueue.clear();
25818
25860
  var masks = this._allSpriteMasks;
25819
25861
  for(var i = 0, n = masks.length; i < n; i++){
25820
25862
  var mask = masks.get(i);
@@ -25824,6 +25866,7 @@ Sky._projectionMatrix = new engineMath.Matrix(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, Sky.
25824
25866
  decrementMaskQueue.batch(batcherManager);
25825
25867
  batcherManager.uploadBuffer();
25826
25868
  decrementMaskQueue.render(context, pipelineStageTagValue, RenderQueueMaskType.Decrement);
25869
+ decrementMaskQueue.clear();
25827
25870
  } else {
25828
25871
  var engine = context.camera.engine;
25829
25872
  engine._hardwareRenderer.clearRenderTarget(engine, CameraClearFlags.Stencil, null);
@@ -28059,11 +28102,13 @@ AnimationCurveOwner.registerAssembler(SkinnedMeshRenderer, "blendShapeWeights",
28059
28102
  * @param time - The time to sample an animation
28060
28103
  */ _proto._sampleAnimation = function _sampleAnimation(entity, time) {
28061
28104
  var _this = this, curveBindings = _this._curveBindings;
28105
+ var components = AnimationCurveOwner._components;
28062
28106
  for(var i = curveBindings.length - 1; i >= 0; i--){
28063
28107
  var curve = curveBindings[i];
28064
28108
  var targetEntity = entity.findByPath(curve.relativePath);
28065
28109
  if (targetEntity) {
28066
- var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, AnimationCurveOwner._components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
28110
+ var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
28111
+ components.length = 0;
28067
28112
  if (!component) {
28068
28113
  continue;
28069
28114
  }
@@ -29696,13 +29741,15 @@ function _type_of(obj) {
29696
29741
  var curveLayerOwner = animatorStateData.curveLayerOwner;
29697
29742
  var _animatorState_clip = animatorState.clip, curves = _animatorState_clip._curveBindings;
29698
29743
  var layerCurveOwnerPool = animatorLayerData.curveOwnerPool;
29744
+ var components = AnimationCurveOwner._components;
29699
29745
  for(var i = curves.length - 1; i >= 0; i--){
29700
29746
  var curve = curves[i];
29701
29747
  var relativePath = curve.relativePath;
29702
29748
  var targetEntity = curve.relativePath === "" ? entity : entity.findByPath(curve.relativePath);
29703
29749
  if (targetEntity) {
29704
29750
  var _curveOwnerPool, _instanceId, _propertyOwners, _property, _layerCurveOwnerPool, _instanceId1, _layerPropertyOwners, _property1;
29705
- var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, AnimationCurveOwner._components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
29751
+ var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
29752
+ components.length = 0;
29706
29753
  if (!component) {
29707
29754
  continue;
29708
29755
  }