@galacean/effects-core 2.4.0-beta.1 → 2.4.0-beta.3

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.
@@ -88,5 +88,6 @@ export declare class BaseRenderComponent extends RendererComponent implements Ma
88
88
  };
89
89
  protected createGeometry(): Geometry;
90
90
  private configureMaterial;
91
+ private draw;
91
92
  fromData(data: unknown): void;
92
93
  }
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.4.0-beta.1
6
+ * Version: v2.4.0-beta.3
7
7
  */
8
8
 
9
9
  'use strict';
@@ -6108,8 +6108,7 @@ function setSideMode(material, side) {
6108
6108
  material.cullFace = side === SideMode.BACK ? glContext.BACK : glContext.FRONT;
6109
6109
  }
6110
6110
  }
6111
- function setMaskMode(material, maskMode, colorMask) {
6112
- if (colorMask === void 0) colorMask = false;
6111
+ function setMaskMode(material, maskMode) {
6113
6112
  switch(maskMode){
6114
6113
  case undefined:
6115
6114
  material.stencilTest = false;
@@ -6124,13 +6123,6 @@ function setMaskMode(material, maskMode, colorMask) {
6124
6123
  glContext.REPLACE,
6125
6124
  glContext.REPLACE
6126
6125
  ];
6127
- // 关闭/开启蒙版元素的颜色写入
6128
- material.colorMask = [
6129
- colorMask,
6130
- colorMask,
6131
- colorMask,
6132
- colorMask
6133
- ];
6134
6126
  break;
6135
6127
  case exports.MaskMode.OBSCURED:
6136
6128
  material.stencilTest = true;
@@ -7602,13 +7594,6 @@ exports.MaterialRenderType = void 0;
7602
7594
  set: /**
7603
7595
  * 设置 Material 的通过 alpha 值决定临时覆盖值计算的开关
7604
7596
  * @param value - 是否开启 alpha 抖动
7605
- */ function set(value) {}
7606
- },
7607
- {
7608
- key: "colorMask",
7609
- set: /**
7610
- * 设置 Material 颜色缓冲区的写入开关
7611
- * @param value
7612
7597
  */ function set(value) {}
7613
7598
  },
7614
7599
  {
@@ -7667,10 +7652,15 @@ var MaskProcessor = /*#__PURE__*/ function() {
7667
7652
  } else if (mode === ObscuredMode.OBSCURED || mode === ObscuredMode.REVERSE_OBSCURED) {
7668
7653
  maskMode = mode === ObscuredMode.OBSCURED ? exports.MaskMode.OBSCURED : exports.MaskMode.REVERSE_OBSCURED;
7669
7654
  this.maskRef = ref.maskManager.getRefValue();
7655
+ this.maskable = ref;
7670
7656
  }
7671
7657
  }
7672
7658
  return maskMode;
7673
7659
  };
7660
+ _proto.drawStencilMask = function drawStencilMask(renderer) {
7661
+ var _this_maskable;
7662
+ (_this_maskable = this.maskable) == null ? void 0 : _this_maskable.drawStencilMask(renderer);
7663
+ };
7674
7664
  return MaskProcessor;
7675
7665
  }();
7676
7666
 
@@ -12577,17 +12567,16 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12577
12567
  if (!this.getVisible()) {
12578
12568
  return;
12579
12569
  }
12580
- if (renderer.renderingData.currentFrame.globalUniforms) {
12581
- renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
12582
- }
12583
- for(var i = 0; i < this.materials.length; i++){
12584
- var material = this.materials[i];
12585
- material.setVector2("_Size", this.transform.size);
12586
- if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
12587
- material.setVector3("_Scale", this.transform.scale);
12588
- }
12589
- renderer.drawGeometry(this.geometry, material, i);
12590
- }
12570
+ this.maskManager.drawStencilMask(renderer);
12571
+ this.draw(renderer);
12572
+ };
12573
+ /**
12574
+ * @internal
12575
+ */ _proto.drawStencilMask = function drawStencilMask(renderer) {
12576
+ var previousColorMask = this.material.colorMask;
12577
+ this.material.colorMask = false;
12578
+ this.draw(renderer);
12579
+ this.material.colorMask = previousColorMask;
12591
12580
  };
12592
12581
  _proto.onStart = function onStart() {
12593
12582
  this.item.getHitTestParams = this.getHitTestParams;
@@ -12705,7 +12694,7 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12705
12694
  ] : undefined;
12706
12695
  setBlendMode(material, blendMode);
12707
12696
  // 兼容旧数据中模板需要渲染的情况
12708
- setMaskMode(material, maskMode, !!this.renderer.shape);
12697
+ setMaskMode(material, maskMode);
12709
12698
  setSideMode(material, side);
12710
12699
  material.shader.shaderData.properties = '_MainTex("_MainTex",2D) = "white" {}';
12711
12700
  material.setColor("_Color", new Color(0, 0, 0, 1));
@@ -12725,6 +12714,19 @@ function getBezier2DValue(out, t, p0, p1, cpx0, cpy0, cpx1, cpy1) {
12725
12714
  }
12726
12715
  return material;
12727
12716
  };
12717
+ _proto.draw = function draw(renderer) {
12718
+ if (renderer.renderingData.currentFrame.globalUniforms) {
12719
+ renderer.setGlobalMatrix("effects_ObjectToWorld", this.transform.getWorldMatrix());
12720
+ }
12721
+ for(var i = 0; i < this.materials.length; i++){
12722
+ var material = this.materials[i];
12723
+ material.setVector2("_Size", this.transform.size);
12724
+ if (this.renderer.renderMode === RenderMode.BILLBOARD || this.renderer.renderMode === RenderMode.VERTICAL_BILLBOARD || this.renderer.renderMode === RenderMode.HORIZONTAL_BILLBOARD) {
12725
+ material.setVector3("_Scale", this.transform.scale);
12726
+ }
12727
+ renderer.drawGeometry(this.geometry, material, i);
12728
+ }
12729
+ };
12728
12730
  _proto.fromData = function fromData(data) {
12729
12731
  RendererComponent.prototype.fromData.call(this, data);
12730
12732
  var _data_renderer;
@@ -15365,6 +15367,7 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
15365
15367
  };
15366
15368
  _this.duringPlay = false;
15367
15369
  /** 是否响应点击和拖拽交互事件 */ _this._interactive = true;
15370
+ _this.lastTime = -1;
15368
15371
  _this.getHitTestParams = function(force) {
15369
15372
  if (!_this.clickable) {
15370
15373
  return;
@@ -15455,11 +15458,21 @@ exports.InteractComponent = /*#__PURE__*/ function(RendererComponent) {
15455
15458
  var _this_previewContent;
15456
15459
  this.duringPlay = true;
15457
15460
  // trigger messageBegin when item enter
15458
- if (this.item.time > 0 && this.item.time - dt / 1000 <= 0) {
15459
- var _this_item_composition;
15460
- var options = this.item.props.content.options;
15461
- (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
15461
+ if (this.lastTime <= this.item.time) {
15462
+ if (this.item.time >= 0 && this.lastTime < 0) {
15463
+ var _this_item_composition;
15464
+ var options = this.item.props.content.options;
15465
+ (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
15466
+ }
15467
+ } else {
15468
+ // loop trigger
15469
+ if (this.item.time >= 0) {
15470
+ var _this_item_composition1;
15471
+ var options1 = this.item.props.content.options;
15472
+ (_this_item_composition1 = this.item.composition) == null ? void 0 : _this_item_composition1.addInteractiveItem(this.item, options1.type);
15473
+ }
15462
15474
  }
15475
+ this.lastTime = this.item.time;
15463
15476
  (_this_previewContent = this.previewContent) == null ? void 0 : _this_previewContent.updateMesh();
15464
15477
  if (!this.dragEvent || !this.bouncingArg) {
15465
15478
  return;
@@ -18591,6 +18604,7 @@ function modifyMaxKeyframeShader(shader, maxVertex, maxFrag) {
18591
18604
  this.particleMesh.mesh.material.setVector4("uParams", uParams.set(time, this.item.duration, 0, 0));
18592
18605
  };
18593
18606
  _proto.render = function render(renderer) {
18607
+ this.maskManager.drawStencilMask(renderer);
18594
18608
  for(var _iterator = _create_for_of_iterator_helper_loose(this.meshes), _step; !(_step = _iterator()).done;){
18595
18609
  var mesh = _step.value;
18596
18610
  mesh.render(renderer);
@@ -19540,6 +19554,7 @@ exports.ParticleSystem = /*#__PURE__*/ function(Component) {
19540
19554
  }
19541
19555
  this.renderer = new ParticleSystemRenderer(this.engine, particleMeshProps, trailMeshProps);
19542
19556
  this.renderer.item = this.item;
19557
+ this.renderer.maskManager = this.maskManager;
19543
19558
  this.meshes = this.renderer.meshes;
19544
19559
  var interaction = props.interaction;
19545
19560
  if (interaction) {
@@ -31623,7 +31638,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
31623
31638
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
31624
31639
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
31625
31640
  registerPlugin("interact", InteractLoader, exports.VFXItem);
31626
- var version = "2.4.0-beta.1";
31641
+ var version = "2.4.0-beta.3";
31627
31642
  logger.info("Core version: " + version + ".");
31628
31643
 
31629
31644
  exports.AbstractPlugin = AbstractPlugin;