@galacean/engine-core 1.3.26 → 1.3.28

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
@@ -4073,6 +4073,28 @@ __decorate([
4073
4073
  */ Shader.find = function find(name) {
4074
4074
  return Shader._shaderMap[name];
4075
4075
  };
4076
+ /**
4077
+ * @internal
4078
+ */ Shader._clear = function _clear(engine) {
4079
+ var shaderMap = Shader._shaderMap;
4080
+ for(var key in shaderMap){
4081
+ var shader = shaderMap[key];
4082
+ var subShaders = shader._subShaders;
4083
+ for(var i = 0, n = subShaders.length; i < n; i++){
4084
+ var passes = subShaders[i].passes;
4085
+ for(var j = 0, m = passes.length; j < m; j++){
4086
+ var pass = passes[j];
4087
+ var passShaderProgramPools = pass._shaderProgramPools;
4088
+ for(var k = passShaderProgramPools.length - 1; k >= 0; k--){
4089
+ var shaderProgramPool = passShaderProgramPools[k];
4090
+ if (shaderProgramPool.engine !== engine) continue;
4091
+ shaderProgramPool._destroy();
4092
+ passShaderProgramPools.splice(k, 1);
4093
+ }
4094
+ }
4095
+ }
4096
+ }
4097
+ };
4076
4098
  Shader._applyConstRenderStates = function _applyConstRenderStates(renderState, key, value) {
4077
4099
  switch(key){
4078
4100
  case exports.RenderStateDataKey.BlendStateEnabled0:
@@ -8316,6 +8338,7 @@ var /**
8316
8338
  program.uploadUnGroupTextures();
8317
8339
  (pass._renderState || blitMaterial.renderState)._applyStates(engine, false, pass._renderStateDataMap, blitMaterial.shaderData);
8318
8340
  rhi.drawPrimitive(blitMesh._primitive, blitMesh.subMesh, program);
8341
+ rendererShaderData.setTexture(PipelineUtils._blitTextureProperty, null);
8319
8342
  };
8320
8343
  return PipelineUtils;
8321
8344
  }();
@@ -8663,6 +8686,7 @@ exports.Camera = (_Camera = /*#__PURE__*/ function(Component1) {
8663
8686
  }
8664
8687
  this._renderPipeline.render(context, cubeFace, mipLevel, ignoreClearFlags);
8665
8688
  engine._renderCount++;
8689
+ context.camera = null;
8666
8690
  };
8667
8691
  _proto.setReplacementShader = function setReplacementShader(shader, replacementTag, failureStrategy) {
8668
8692
  if (failureStrategy === void 0) failureStrategy = exports.ReplacementFailureStrategy.KeepOriginalShader;
@@ -9412,10 +9436,8 @@ var ContextRendererUpdateFlag;
9412
9436
  _proto._drawMask = function _drawMask(context, pipelineStageTagValue, master) {
9413
9437
  var incrementMaskQueue = MaskManager.getMaskIncrementRenderQueue();
9414
9438
  incrementMaskQueue.renderQueueType = this.renderQueueType;
9415
- incrementMaskQueue.clear();
9416
9439
  var decrementMaskQueue = MaskManager.getMaskDecrementRenderQueue();
9417
9440
  decrementMaskQueue.renderQueueType = this.renderQueueType;
9418
- decrementMaskQueue.clear();
9419
9441
  var camera = context.camera;
9420
9442
  var engine = camera.engine;
9421
9443
  camera.scene._maskManager.buildMaskRenderElement(master, incrementMaskQueue, decrementMaskQueue);
@@ -9423,9 +9445,11 @@ var ContextRendererUpdateFlag;
9423
9445
  incrementMaskQueue._batch(engine._batcherManager);
9424
9446
  primitiveChunkManagerMask.uploadBuffer();
9425
9447
  incrementMaskQueue.render(context, pipelineStageTagValue, 1);
9448
+ incrementMaskQueue.clear();
9426
9449
  decrementMaskQueue._batch(engine._batcherManager);
9427
9450
  primitiveChunkManagerMask.uploadBuffer();
9428
9451
  decrementMaskQueue.render(context, pipelineStageTagValue, 2);
9452
+ decrementMaskQueue.clear();
9429
9453
  };
9430
9454
  RenderQueue.compareForOpaque = function compareForOpaque(a, b) {
9431
9455
  return a.priority - b.priority || a.distanceForSort - b.distanceForSort;
@@ -18766,6 +18790,7 @@ __decorate([
18766
18790
  * @internal
18767
18791
  */ var BasicResources = /*#__PURE__*/ function() {
18768
18792
  function BasicResources(engine) {
18793
+ this.engine = engine;
18769
18794
  // prettier-ignore
18770
18795
  var vertices = new Float32Array([
18771
18796
  -1,
@@ -18825,6 +18850,11 @@ __decorate([
18825
18850
  }
18826
18851
  }
18827
18852
  var _proto = BasicResources.prototype;
18853
+ /**
18854
+ * @internal
18855
+ */ _proto._getBlinnPhongMaterial = function _getBlinnPhongMaterial() {
18856
+ return this._blinnPhongMaterial || (this._blinnPhongMaterial = new BlinnPhongMaterial(this.engine));
18857
+ };
18828
18858
  _proto._createBlitMesh = function _createBlitMesh(engine, vertices) {
18829
18859
  var mesh = new ModelMesh(engine);
18830
18860
  mesh._addReferCount(1);
@@ -19580,12 +19610,24 @@ var AssetPromise = /*#__PURE__*/ function() {
19580
19610
  this._onCancelHandler && this._onCancelHandler();
19581
19611
  return this;
19582
19612
  };
19583
- /**
19584
- * Return a new resource Promise through the provided asset promise collection.
19585
- * The resolved of the new AssetPromise will be triggered when all the Promises in the provided set are completed.
19586
- * @param - Promise Collection
19587
- * @returns AssetPromise
19588
- */ AssetPromise.all = function all(promises) {
19613
+ AssetPromise.resolve = function resolve(value) {
19614
+ if (value === undefined) {
19615
+ return new AssetPromise(function(resolve) {
19616
+ return resolve();
19617
+ });
19618
+ } else if (_instanceof(value, AssetPromise) || _instanceof(value, Promise)) {
19619
+ return new AssetPromise(function(resolve, reject) {
19620
+ value.then(function(resolved) {
19621
+ return resolve(resolved);
19622
+ }, reject);
19623
+ });
19624
+ } else {
19625
+ return new AssetPromise(function(resolve) {
19626
+ return resolve(value);
19627
+ });
19628
+ }
19629
+ };
19630
+ AssetPromise.all = function all(values) {
19589
19631
  return new AssetPromise(function(resolve, reject, setTaskCompleteProgress) {
19590
19632
  var onComplete = function onComplete(index, resultValue) {
19591
19633
  completed++;
@@ -19596,7 +19638,7 @@ var AssetPromise = /*#__PURE__*/ function() {
19596
19638
  }
19597
19639
  };
19598
19640
  var onProgress = function onProgress(promise, index) {
19599
- if (_instanceof(promise, Promise) || _instanceof(promise, AssetPromise)) {
19641
+ if (_instanceof(promise, AssetPromise) || _instanceof(promise, Promise)) {
19600
19642
  promise.then(function(value) {
19601
19643
  onComplete(index, value);
19602
19644
  }, reject);
@@ -19606,14 +19648,14 @@ var AssetPromise = /*#__PURE__*/ function() {
19606
19648
  });
19607
19649
  }
19608
19650
  };
19609
- var count = promises.length;
19651
+ var count = Array.from(values).length;
19610
19652
  var results = new Array(count);
19611
19653
  var completed = 0;
19612
19654
  if (count === 0) {
19613
19655
  return resolve(results);
19614
19656
  }
19615
19657
  for(var i = 0; i < count; i++){
19616
- onProgress(promises[i], i);
19658
+ onProgress(values[i], i);
19617
19659
  }
19618
19660
  });
19619
19661
  };
@@ -20195,12 +20237,12 @@ var MultiExecutor = /*#__PURE__*/ function() {
20195
20237
  var obj = this._objectPool[refId];
20196
20238
  var promise;
20197
20239
  if (obj) {
20198
- promise = Promise.resolve(obj);
20240
+ promise = AssetPromise.resolve(obj);
20199
20241
  } else {
20200
20242
  var resourceConfig = this._editorResourceConfig[refId];
20201
20243
  if (!resourceConfig) {
20202
- Logger.warn("refId:" + refId + " is not find in this._editorResourceConfig.");
20203
- return Promise.resolve(null);
20244
+ Logger.warn("refId:" + refId + " is not find in this._idResourceMap.");
20245
+ return AssetPromise.resolve(null);
20204
20246
  }
20205
20247
  var url = resourceConfig.virtualPath;
20206
20248
  if (key) {
@@ -21156,16 +21198,24 @@ var Collision = function Collision() {
21156
21198
  }
21157
21199
  return shape.collider.entity.layer & layerMask && shape.isSceneQuery;
21158
21200
  };
21201
+ var outIDX;
21202
+ var outDistance;
21203
+ var outPosition;
21204
+ var outNormal;
21159
21205
  if (hitResult != undefined) {
21160
21206
  var result = this._nativePhysicsScene.raycast(ray, distance, onRaycast, function(idx, distance, position, normal) {
21161
- var hitShape = _this._scene.engine._physicalObjectsMap[idx];
21162
- hitResult.entity = hitShape._collider.entity;
21163
- hitResult.shape = hitShape;
21164
- hitResult.distance = distance;
21165
- hitResult.normal.copyFrom(normal);
21166
- hitResult.point.copyFrom(position);
21207
+ outIDX = idx;
21208
+ outDistance = distance;
21209
+ outPosition = position;
21210
+ outNormal = normal;
21167
21211
  });
21168
21212
  if (result) {
21213
+ var hitShape = this._scene.engine._physicalObjectsMap[outIDX];
21214
+ hitResult.entity = hitShape._collider.entity;
21215
+ hitResult.shape = hitShape;
21216
+ hitResult.distance = outDistance;
21217
+ hitResult.point.copyFrom(outPosition);
21218
+ hitResult.normal.copyFrom(outNormal);
21169
21219
  return true;
21170
21220
  } else {
21171
21221
  hitResult.entity = null;
@@ -23889,21 +23939,15 @@ ShaderPool.init();
23889
23939
  var _this_xrManager;
23890
23940
  this._sceneManager._destroyAllScene();
23891
23941
  this._resourceManager._destroy();
23892
- this._textDefaultFont = null;
23893
- this._fontMap = null;
23894
23942
  this.inputManager._destroy();
23895
23943
  this._batcherManager.destroy();
23896
23944
  (_this_xrManager = this.xrManager) == null ? void 0 : _this_xrManager._destroy();
23897
23945
  this.dispatch("shutdown", this);
23898
23946
  // Cancel animation
23899
23947
  this.pause();
23948
+ Shader._clear(this);
23900
23949
  this._hardwareRenderer.destroy();
23901
23950
  this.removeAllEventListeners();
23902
- this._animate = null;
23903
- this._sceneManager = null;
23904
- this._resourceManager = null;
23905
- this._canvas = null;
23906
- this._time = null;
23907
23951
  this._waitingDestroy = false;
23908
23952
  this._destroyed = true;
23909
23953
  };
@@ -24071,6 +24115,7 @@ ShaderPool.init();
24071
24115
  this._hardwareRenderer.resetState();
24072
24116
  this._lastRenderState = new RenderState();
24073
24117
  // Clear shader pools
24118
+ Shader._clear(this);
24074
24119
  this._shaderProgramPools.length = 0;
24075
24120
  var resourceManager = this.resourceManager;
24076
24121
  // Restore graphic resources
@@ -27190,11 +27235,13 @@ AnimationCurveOwner.registerAssembler(SkinnedMeshRenderer, "blendShapeWeights",
27190
27235
  * @param time - The time to sample an animation
27191
27236
  */ _proto._sampleAnimation = function _sampleAnimation(entity, time) {
27192
27237
  var _this = this, curveBindings = _this._curveBindings;
27238
+ var components = AnimationCurveOwner._components;
27193
27239
  for(var i = curveBindings.length - 1; i >= 0; i--){
27194
27240
  var curve = curveBindings[i];
27195
27241
  var targetEntity = entity.findByPath(curve.relativePath);
27196
27242
  if (targetEntity) {
27197
- var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, AnimationCurveOwner._components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
27243
+ var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
27244
+ components.length = 0;
27198
27245
  if (!component) {
27199
27246
  continue;
27200
27247
  }
@@ -28809,13 +28856,15 @@ exports.AnimatorLayerBlendingMode = void 0;
28809
28856
  var curveLayerOwner = animatorStateData.curveLayerOwner;
28810
28857
  var _animatorState_clip = animatorState.clip, curves = _animatorState_clip._curveBindings;
28811
28858
  var layerCurveOwnerPool = animatorLayerData.curveOwnerPool;
28859
+ var components = AnimationCurveOwner._components;
28812
28860
  for(var i = curves.length - 1; i >= 0; i--){
28813
28861
  var curve = curves[i];
28814
28862
  var relativePath = curve.relativePath;
28815
28863
  var targetEntity = curve.relativePath === "" ? entity : entity.findByPath(curve.relativePath);
28816
28864
  if (targetEntity) {
28817
28865
  var _curveOwnerPool, _instanceId, _propertyOwners, _property, _layerCurveOwnerPool, _instanceId1, _layerPropertyOwners, _property1;
28818
- var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, AnimationCurveOwner._components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
28866
+ var component = curve.typeIndex > 0 ? targetEntity.getComponents(curve.type, components)[curve.typeIndex] : targetEntity.getComponent(curve.type);
28867
+ components.length = 0;
28819
28868
  if (!component) {
28820
28869
  continue;
28821
28870
  }