@galacean/effects-core 2.1.0-beta.0 → 2.1.1

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/index.mjs 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.1.0-beta.0
6
+ * Version: v2.1.1
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -1090,39 +1090,39 @@ function _inherits(subClass, superClass) {
1090
1090
  })(MaskMode || (MaskMode = {}));
1091
1091
  /**
1092
1092
  * 发射器形状
1093
- */ var ShapeType;
1094
- (function(ShapeType) {
1093
+ */ var ParticleEmitterShapeType;
1094
+ (function(ParticleEmitterShapeType) {
1095
1095
  /**
1096
1096
  * 没有类型
1097
- */ ShapeType[ShapeType["NONE"] = 0] = "NONE";
1097
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["NONE"] = 0] = "NONE";
1098
1098
  /**
1099
1099
  * 圆球
1100
- */ ShapeType[ShapeType["SPHERE"] = 1] = "SPHERE";
1100
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["SPHERE"] = 1] = "SPHERE";
1101
1101
  /**
1102
1102
  * 圆锥
1103
- */ ShapeType[ShapeType["CONE"] = 2] = "CONE";
1103
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["CONE"] = 2] = "CONE";
1104
1104
  /**
1105
1105
  * 半球
1106
- */ ShapeType[ShapeType["HEMISPHERE"] = 3] = "HEMISPHERE";
1106
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["HEMISPHERE"] = 3] = "HEMISPHERE";
1107
1107
  /**
1108
1108
  * 圆
1109
- */ ShapeType[ShapeType["CIRCLE"] = 4] = "CIRCLE";
1109
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["CIRCLE"] = 4] = "CIRCLE";
1110
1110
  /**
1111
1111
  * 圆环
1112
- */ ShapeType[ShapeType["DONUT"] = 5] = "DONUT";
1112
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["DONUT"] = 5] = "DONUT";
1113
1113
  /**
1114
1114
  * 矩形
1115
- */ ShapeType[ShapeType["RECTANGLE"] = 6] = "RECTANGLE";
1115
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["RECTANGLE"] = 6] = "RECTANGLE";
1116
1116
  /**
1117
1117
  * 矩形框
1118
- */ ShapeType[ShapeType["RECTANGLE_EDGE"] = 7] = "RECTANGLE_EDGE";
1118
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["RECTANGLE_EDGE"] = 7] = "RECTANGLE_EDGE";
1119
1119
  /**
1120
1120
  * 直线
1121
- */ ShapeType[ShapeType["EDGE"] = 8] = "EDGE";
1121
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["EDGE"] = 8] = "EDGE";
1122
1122
  /**
1123
1123
  * 贴图
1124
- */ ShapeType[ShapeType["TEXTURE"] = 9] = "TEXTURE";
1125
- })(ShapeType || (ShapeType = {}));
1124
+ */ ParticleEmitterShapeType[ParticleEmitterShapeType["TEXTURE"] = 9] = "TEXTURE";
1125
+ })(ParticleEmitterShapeType || (ParticleEmitterShapeType = {}));
1126
1126
  /**
1127
1127
  * 插件类型
1128
1128
  */ var PluginType;
@@ -1618,6 +1618,34 @@ var BuiltinObjectGUID = {
1618
1618
  UnlitShader: "unlit000000000000000000000000000"
1619
1619
  };
1620
1620
 
1621
+ /**
1622
+ * 矢量图形类型
1623
+ */ var ShapePrimitiveType;
1624
+ (function(ShapePrimitiveType) {
1625
+ /**
1626
+ * 自定义图形
1627
+ */ ShapePrimitiveType[ShapePrimitiveType["Custom"] = 0] = "Custom";
1628
+ /**
1629
+ * 矩形
1630
+ */ ShapePrimitiveType[ShapePrimitiveType["Rectangle"] = 1] = "Rectangle";
1631
+ /**
1632
+ * 椭圆
1633
+ */ ShapePrimitiveType[ShapePrimitiveType["Ellipse"] = 2] = "Ellipse";
1634
+ /**
1635
+ * 多边形
1636
+ */ ShapePrimitiveType[ShapePrimitiveType["Polygon"] = 3] = "Polygon";
1637
+ /**
1638
+ * 星形
1639
+ */ ShapePrimitiveType[ShapePrimitiveType["Star"] = 4] = "Star";
1640
+ })(ShapePrimitiveType || (ShapePrimitiveType = {}));
1641
+
1642
+ // 本期无该功能 待补充
1643
+ var ShapeConnectType;
1644
+ (function(ShapeConnectType) {})(ShapeConnectType || (ShapeConnectType = {}));
1645
+ // @待补充
1646
+ var ShapePointType;
1647
+ (function(ShapePointType) {})(ShapePointType || (ShapePointType = {}));
1648
+
1621
1649
  /**
1622
1650
  * 动态换图类型
1623
1651
  * @since 1.1.0
@@ -1648,6 +1676,7 @@ var DataType;
1648
1676
  DataType["PostProcessVolume"] = "PostProcessVolume";
1649
1677
  DataType["Geometry"] = "Geometry";
1650
1678
  DataType["Texture"] = "Texture";
1679
+ DataType["Image"] = "Image";
1651
1680
  DataType["AnimationClip"] = "AnimationClip";
1652
1681
  DataType["TextComponent"] = "TextComponent";
1653
1682
  DataType["BinaryAsset"] = "BinaryAsset";
@@ -1679,6 +1708,8 @@ var DataType;
1679
1708
  DataType["VideoComponent"] = "VideoComponent";
1680
1709
  DataType["AudioComponent"] = "AudioComponent";
1681
1710
  DataType["RichTextComponent"] = "RichTextComponent";
1711
+ DataType["OrientationComponent"] = "OrientationComponent";
1712
+ DataType["ShapeComponent"] = "ShapeComponent";
1682
1713
  // Non-EffectObject
1683
1714
  DataType["TimelineClip"] = "TimelineClip";
1684
1715
  })(DataType || (DataType = {}));
@@ -1773,7 +1804,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
1773
1804
  get BlendingMode () { return BlendingMode; },
1774
1805
  get SideMode () { return SideMode; },
1775
1806
  get MaskMode () { return MaskMode; },
1776
- get ShapeType () { return ShapeType; },
1807
+ get ParticleEmitterShapeType () { return ParticleEmitterShapeType; },
1777
1808
  get PluginType () { return PluginType; },
1778
1809
  get InteractType () { return InteractType; },
1779
1810
  get InteractBehavior () { return InteractBehavior; },
@@ -1812,6 +1843,9 @@ var index$1 = /*#__PURE__*/Object.freeze({
1812
1843
  get TextWeight () { return TextWeight; },
1813
1844
  get FontStyle () { return FontStyle; },
1814
1845
  BuiltinObjectGUID: BuiltinObjectGUID,
1846
+ get ShapePrimitiveType () { return ShapePrimitiveType; },
1847
+ get ShapeConnectType () { return ShapeConnectType; },
1848
+ get ShapePointType () { return ShapePointType; },
1815
1849
  get BackgroundType () { return BackgroundType; },
1816
1850
  get MultimediaType () { return MultimediaType; },
1817
1851
  get DataType () { return DataType; },
@@ -2132,6 +2166,14 @@ __decorate([
2132
2166
  Component.prototype.setVFXItem.call(this, item);
2133
2167
  this.item.rendererComponents.push(this);
2134
2168
  };
2169
+ _proto.onEnable = function onEnable() {
2170
+ var _this_item_composition;
2171
+ (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.renderFrame.addMeshToDefaultRenderPass(this);
2172
+ };
2173
+ _proto.onDisable = function onDisable() {
2174
+ var _this_item_composition;
2175
+ (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.renderFrame.removeMeshFromDefaultRenderPass(this);
2176
+ };
2135
2177
  _proto.fromData = function fromData(data) {
2136
2178
  Component.prototype.fromData.call(this, data);
2137
2179
  };
@@ -10652,16 +10694,16 @@ var seed$5 = 1;
10652
10694
  depthAction: TextureLoadAction.clear
10653
10695
  };
10654
10696
  }
10655
- // 创建 drawObjectPass
10697
+ this.drawObjectPass = new RenderPass(renderer, {
10698
+ name: RENDER_PASS_NAME_PREFIX,
10699
+ priority: RenderPassPriorityNormal,
10700
+ meshOrder: OrderType.ascending,
10701
+ depthStencilAttachment: depthStencilAttachment,
10702
+ attachments: attachments,
10703
+ clearAction: drawObjectPassClearAction
10704
+ });
10656
10705
  var renderPasses = [
10657
- new RenderPass(renderer, {
10658
- name: RENDER_PASS_NAME_PREFIX,
10659
- priority: RenderPassPriorityNormal,
10660
- meshOrder: OrderType.ascending,
10661
- depthStencilAttachment: depthStencilAttachment,
10662
- attachments: attachments,
10663
- clearAction: drawObjectPassClearAction
10664
- })
10706
+ this.drawObjectPass
10665
10707
  ];
10666
10708
  this.setRenderPasses(renderPasses);
10667
10709
  if (postProcessingEnabled) {
@@ -10783,216 +10825,15 @@ var seed$5 = 1;
10783
10825
  * 根据 Mesh 优先级添加到 RenderPass
10784
10826
  * @param mesh - 要添加的 Mesh 对象
10785
10827
  */ _proto.addMeshToDefaultRenderPass = function addMeshToDefaultRenderPass(mesh) {
10786
- if (!mesh) {
10787
- return;
10788
- }
10789
- this.renderPasses[0].addMesh(mesh);
10790
- // const renderPasses = this.renderPasses;
10791
- // const infoMap = this.renderPassInfoMap;
10792
- // const { priority } = mesh;
10793
- // for (let i = 1; i < renderPasses.length; i++) {
10794
- // const renderPass = renderPasses[i - 1];
10795
- // const info = infoMap.get(renderPasses[i])!;
10796
- // if (info && info.listStart > priority && (priority > infoMap.get(renderPass)!.listEnd || i === 1)) {
10797
- // return this.addToRenderPass(renderPass, mesh);
10798
- // }
10799
- // }
10800
- // // TODO: diff逻辑待优化,有时会添加进找不到的元素
10801
- // let last = renderPasses[renderPasses.length - 1];
10802
- // // TODO: 是否添加mesh到pass的判断方式需要优化,先通过长度判断是否有postprocess
10803
- // for (const pass of renderPasses) {
10804
- // if (!(pass instanceof HQGaussianDownSamplePass
10805
- // || pass instanceof BloomThresholdPass
10806
- // || pass instanceof ToneMappingPass
10807
- // || pass instanceof HQGaussianUpSamplePass
10808
- // || pass.name === 'mars-final-copy')) {
10809
- // last = pass;
10810
- // }
10811
- // }
10812
- // // if (priority > infoMap.get(last)!.listStart || renderPasses.length === 1) {
10813
- // // return this.addToRenderPass(last, mesh);
10814
- // // }
10815
- // return this.addToRenderPass(last, mesh);
10816
- // if (false) {
10817
- // throw Error('render pass not found');
10818
- // }
10828
+ this.drawObjectPass.addMesh(mesh);
10819
10829
  };
10820
10830
  /**
10821
10831
  * 把 Mesh 从 RenderPass 中移除,
10822
10832
  * 如果 renderPass 中没有 mesh,此 renderPass 会被删除
10823
10833
  * @param mesh - 要删除的 Mesh 对象
10824
10834
  */ _proto.removeMeshFromDefaultRenderPass = function removeMeshFromDefaultRenderPass(mesh) {
10825
- // const renderPasses = this.renderPasses;
10826
- // const infoMap = this.renderPassInfoMap;
10827
- // for (let i = renderPasses.length - 1; i >= 0; i--) {
10828
- // const renderPass = renderPasses[i];
10829
- // const info = infoMap.get(renderPass)!;
10830
- // // 只有渲染场景物体的pass才有 info
10831
- // if (!info) {
10832
- // continue;
10833
- // }
10834
- // if (info.listStart <= mesh.priority && info.listEnd >= mesh.priority) {
10835
- // const idx = renderPass.meshes.indexOf(mesh);
10836
- // if (idx === -1) {
10837
- // return;
10838
- // }
10839
- // // TODO hack: 现在的除了rp1和finalcopy pass,所有renderpass的meshes是一个copy加上一个filter mesh,这里的判断当filter mesh被删除后当前pass需不需要删除,
10840
- // // 判断需要更鲁棒。
10841
- // const shouldRestoreRenderPass = idx === 1 && renderPass.meshes[0].name === MARS_COPY_MESH_NAME;
10842
- // renderPass.removeMesh(mesh);
10843
- // if (shouldRestoreRenderPass) {
10844
- // const nextRenderPass = renderPasses[i + 1];
10845
- // const meshes = renderPass.meshes;
10846
- // if (!info.intermedia) {
10847
- // info.preRenderPass?.resetColorAttachments([]);
10848
- // //this.renderer.extension.resetColorAttachments?.(info.preRenderPass, []);
10849
- // }
10850
- // for (let j = 1; j < meshes.length; j++) {
10851
- // info.preRenderPass?.addMesh(meshes[j]);
10852
- // }
10853
- // const cp = renderPass.attachments[0]?.texture;
10854
- // const keepColor = cp === this.resource.color_a || cp === this.resource.color_b;
10855
- // renderPass.dispose({
10856
- // meshes: DestroyOptions.keep,
10857
- // colorAttachment: keepColor ? RenderPassDestroyAttachmentType.keep : RenderPassDestroyAttachmentType.destroy,
10858
- // depthStencilAttachment: RenderPassDestroyAttachmentType.keep,
10859
- // });
10860
- // removeItem(renderPasses, renderPass);
10861
- // this.removeRenderPass(renderPass);
10862
- // infoMap.delete(renderPass);
10863
- // if (nextRenderPass) {
10864
- // this.updateRenderInfo(nextRenderPass);
10865
- // }
10866
- // if (info.preRenderPass) {
10867
- // this.updateRenderInfo(info.preRenderPass);
10868
- // }
10869
- // if (info.prePasses) {
10870
- // info.prePasses.forEach(rp => {
10871
- // this.removeRenderPass(rp.pass);
10872
- // if (rp?.destroyOptions !== false) {
10873
- // rp.pass.attachments.forEach(c => {
10874
- // if (c.texture !== this.resource.color_b || c.texture !== this.resource.color_a) {
10875
- // c.texture.dispose();
10876
- // }
10877
- // });
10878
- // const options: RenderPassDestroyOptions = {
10879
- // ...(rp?.destroyOptions ? rp.destroyOptions as RenderPassDestroyOptions : {}),
10880
- // depthStencilAttachment: RenderPassDestroyAttachmentType.keep,
10881
- // };
10882
- // rp.pass.dispose(options);
10883
- // }
10884
- // });
10885
- // }
10886
- // this.resetRenderPassDefaultAttachment(renderPasses, Math.max(i - 1, 0));
10887
- // if (renderPasses.length === 1) {
10888
- // renderPasses[0].resetColorAttachments([]);
10889
- // //this.renderer.extension.resetColorAttachments?.(renderPasses[0], []);
10890
- // this.removeRenderPass(this.resource.finalCopyRP);
10891
- // }
10892
- // }
10893
- // return this.resetClearActions();
10894
- // }
10895
- // }
10835
+ this.drawObjectPass.removeMesh(mesh);
10896
10836
  };
10897
- // /**
10898
- // * 将 Mesh 所有在 RenderPass 进行切分
10899
- // * @param mesh - 目标 Mesh 对象
10900
- // * @param options - 切分选项,包含 RenderPass 相关的 Attachment 等数据
10901
- // */
10902
- // splitDefaultRenderPassByMesh (mesh: Mesh, options: RenderPassSplitOptions): RenderPass {
10903
- // const index = this.findMeshRenderPassIndex(mesh);
10904
- // const renderPass = this.renderPasses[index];
10905
- // if (false) {
10906
- // if (!renderPass) {
10907
- // throw Error('RenderPassNotFound');
10908
- // }
10909
- // }
10910
- // this.createResource();
10911
- // const meshIndex = renderPass.meshes.indexOf(mesh);
10912
- // const ms0 = renderPass.meshes.slice(0, meshIndex);
10913
- // const ms1 = renderPass.meshes.slice(meshIndex);
10914
- // const infoMap = this.renderPassInfoMap;
10915
- // // TODO 为什么要加这个判断?
10916
- // // if (renderPass.attachments[0] && this.renderPasses[index + 1] !== this.resource.finalCopyRP) {
10917
- // // throw Error('not implement');
10918
- // // } else {
10919
- // if (!options.attachments?.length) {
10920
- // throw Error('should include at least one color attachment');
10921
- // }
10922
- // const defRPS = this.renderPasses;
10923
- // const defIndex = defRPS.indexOf(renderPass);
10924
- // const lastDefRP = defRPS[defIndex - 1];
10925
- // removeItem(defRPS, renderPass);
10926
- // const lastInfo = infoMap.get(renderPass);
10927
- // infoMap.delete(renderPass);
10928
- // const filter = GPUCapability.getInstance().level === 2 ? glContext.LINEAR : glContext.NEAREST;
10929
- // const rp0 = new RenderPass({
10930
- // name: RENDER_PASS_NAME_PREFIX + defIndex,
10931
- // priority: renderPass.priority,
10932
- // attachments: [{
10933
- // texture: {
10934
- // sourceType: TextureSourceType.framebuffer,
10935
- // format: glContext.RGBA,
10936
- // name: 'frame_a',
10937
- // minFilter: filter,
10938
- // magFilter: filter,
10939
- // },
10940
- // }],
10941
- // clearAction: renderPass.clearAction || { colorAction: TextureLoadAction.clear },
10942
- // storeAction: renderPass.storeAction,
10943
- // depthStencilAttachment: this.resource.depthStencil,
10944
- // meshes: ms0,
10945
- // meshOrder: OrderType.ascending,
10946
- // });
10947
- // ms1.unshift(this.createCopyMesh());
10948
- // const renderPasses = this.renderPasses;
10949
- // renderPasses[index] = rp0;
10950
- // const prePasses: RenderPass[] = [];
10951
- // const restMeshes = ms1.slice();
10952
- // if (options.prePasses) {
10953
- // options.prePasses.forEach((pass, i) => {
10954
- // pass.priority = renderPass.priority + 1 + i;
10955
- // pass.setMeshes(ms1);
10956
- // prePasses.push(pass);
10957
- // });
10958
- // renderPasses.splice(index + 1, 0, ...prePasses);
10959
- // restMeshes.splice(0, 2);
10960
- // }
10961
- // const copyRP = this.resource.finalCopyRP;
10962
- // if (!renderPasses.includes(copyRP)) {
10963
- // renderPasses.push(copyRP);
10964
- // }
10965
- // // let sourcePass = (prePasses.length && !options.useLastDefaultPassColor) ? prePasses[prePasses.length - 1] : rp0;
10966
- // const finalFilterPass = prePasses[prePasses.length - 1];
10967
- // finalFilterPass.initialize(this.renderer);
10968
- // // 不切RT,接着上一个pass的渲染结果渲染
10969
- // const rp1 = new RenderPass({
10970
- // name: RENDER_PASS_NAME_PREFIX + (defIndex + 1),
10971
- // priority: renderPass.priority + 1 + (options.prePasses?.length || 0),
10972
- // meshes: restMeshes,
10973
- // meshOrder: OrderType.ascending,
10974
- // depthStencilAttachment: this.resource.depthStencil,
10975
- // storeAction: options.storeAction,
10976
- // clearAction: {
10977
- // depthAction: TextureLoadAction.whatever,
10978
- // stencilAction: TextureLoadAction.whatever,
10979
- // colorAction: TextureLoadAction.whatever,
10980
- // },
10981
- // });
10982
- // renderPasses.splice(index + 1 + (options.prePasses?.length || 0), 0, rp1);
10983
- // this.setRenderPasses(renderPasses);
10984
- // this.updateRenderInfo(finalFilterPass);
10985
- // this.updateRenderInfo(rp0);
10986
- // this.updateRenderInfo(rp1);
10987
- // // 目的是删除滤镜元素后,把之前滤镜用到的prePass给删除,逻辑有些复杂,考虑优化
10988
- // infoMap.get(rp0)!.prePasses = lastInfo!.prePasses;
10989
- // prePasses.pop();
10990
- // infoMap.get(finalFilterPass)!.prePasses = prePasses.map((pass, i) => {
10991
- // return { pass, destroyOptions: false };
10992
- // });
10993
- // this.resetClearActions();
10994
- // return finalFilterPass;
10995
- // }
10996
10837
  /**
10997
10838
  * 销毁 RenderFrame
10998
10839
  * @param options - 可以有选择销毁一些对象
@@ -11112,45 +10953,6 @@ var seed$5 = 1;
11112
10953
  this.clearAction.colorAction = TextureLoadAction.whatever;
11113
10954
  }
11114
10955
  };
11115
- // protected updateRenderInfo (renderPass: RenderPass): RenderPassInfo {
11116
- // const map = this.renderPassInfoMap;
11117
- // const passes = this.renderPasses;
11118
- // let info: RenderPassInfo;
11119
- // if (!map.has(renderPass)) {
11120
- // info = {
11121
- // intermedia: false,
11122
- // renderPass: renderPass,
11123
- // listStart: 0,
11124
- // listEnd: 0,
11125
- // };
11126
- // map.set(renderPass, info);
11127
- // } else {
11128
- // info = map.get(renderPass)!;
11129
- // }
11130
- // info.intermedia = renderPass.attachments.length > 0;
11131
- // const meshes = renderPass.meshes;
11132
- // if (meshes[0]) {
11133
- // info.listStart = (meshes[0].name === MARS_COPY_MESH_NAME ? meshes[1] : meshes[0]).priority;
11134
- // info.listEnd = meshes[meshes.length - 1].priority;
11135
- // } else {
11136
- // info.listStart = 0;
11137
- // info.listEnd = 0;
11138
- // }
11139
- // const index = passes.indexOf(renderPass);
11140
- // const depthStencilActon = index === 0 ? TextureLoadAction.clear : TextureLoadAction.whatever;
11141
- // if (index === 0) {
11142
- // renderPass.clearAction.colorAction = TextureLoadAction.clear;
11143
- // }
11144
- // renderPass.clearAction.depthAction = depthStencilActon;
11145
- // renderPass.clearAction.stencilAction = depthStencilActon;
11146
- // if (index > -1) {
11147
- // renderPass.semantics.setSemantic('EDITOR_TRANSFORM', () => this.editorTransform);
11148
- // } else {
11149
- // renderPass.semantics.setSemantic('EDITOR_TRANSFORM', undefined);
11150
- // }
11151
- // info.preRenderPass = passes[index - 1];
11152
- // return info;
11153
- // }
11154
10956
  /**
11155
10957
  * 设置 RenderPass 数组,直接修改内部的 RenderPass 数组
11156
10958
  * @param passes - RenderPass 数组
@@ -11351,7 +11153,7 @@ var FinalCopyRP = /*#__PURE__*/ function(RenderPass) {
11351
11153
  var GlobalUniforms = function GlobalUniforms() {
11352
11154
  this.floats = {};
11353
11155
  this.ints = {};
11354
- // vector3s: Record<string, vec3> = {};
11156
+ this.vector3s = {};
11355
11157
  this.vector4s = {};
11356
11158
  this.matrices = {};
11357
11159
  //...
@@ -11592,6 +11394,9 @@ var Renderer = /*#__PURE__*/ function() {
11592
11394
  _proto.setGlobalVector4 = function setGlobalVector4(name, value) {
11593
11395
  // OVERRIDE
11594
11396
  };
11397
+ _proto.setGlobalVector3 = function setGlobalVector3(name, value) {
11398
+ // OVERRIDE
11399
+ };
11595
11400
  _proto.setGlobalMatrix = function setGlobalMatrix(name, value) {
11596
11401
  // OVERRIDE
11597
11402
  };
@@ -13257,10 +13062,10 @@ var Vector4Curve = /*#__PURE__*/ function(ValueGetter) {
13257
13062
  }
13258
13063
  var _proto = Vector4Curve.prototype;
13259
13064
  _proto.onCreate = function onCreate(arg) {
13260
- this.xCurve = createValueGetter(arg.x);
13261
- this.yCurve = createValueGetter(arg.y);
13262
- this.zCurve = createValueGetter(arg.z);
13263
- this.wCurve = createValueGetter(arg.w);
13065
+ this.xCurve = createValueGetter(arg[0]);
13066
+ this.yCurve = createValueGetter(arg[1]);
13067
+ this.zCurve = createValueGetter(arg[2]);
13068
+ this.wCurve = createValueGetter(arg[3]);
13264
13069
  };
13265
13070
  _proto.getValue = function getValue(t) {
13266
13071
  var x = this.xCurve.getValue(t);
@@ -13280,8 +13085,8 @@ var SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0 = "PRE_MAIN_COLOR_0";
13280
13085
  var SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0 = "PRE_MAIN_COLOR_SIZE_0";
13281
13086
  var PLAYER_OPTIONS_ENV_EDITOR = "editor";
13282
13087
  var HELP_LINK = {
13283
- "Item duration can't be less than 0": "https://galacean.antgroup.com/effects/user/gasrv4ka5sacrwpg#AOnQS",
13284
- "ValueType: 21/22 is not supported": "https://galacean.antgroup.com/effects/user/gasrv4ka5sacrwpg#smO1b"
13088
+ "Item duration can't be less than 0": "https://www.galacean.com/effects/user/gasrv4ka5sacrwpg#AOnQS",
13089
+ "ValueType: 21/22 is not supported": "https://www.galacean.com/effects/user/gasrv4ka5sacrwpg#smO1b"
13285
13090
  };
13286
13091
 
13287
13092
  var _obj$3;
@@ -13360,10 +13165,10 @@ var ColorCurve = /*#__PURE__*/ function(ValueGetter) {
13360
13165
  }
13361
13166
  var _proto = ColorCurve.prototype;
13362
13167
  _proto.onCreate = function onCreate(arg) {
13363
- this.rCurve = createValueGetter(arg.r);
13364
- this.gCurve = createValueGetter(arg.g);
13365
- this.bCurve = createValueGetter(arg.b);
13366
- this.aCurve = createValueGetter(arg.a);
13168
+ this.rCurve = createValueGetter(arg[0]);
13169
+ this.gCurve = createValueGetter(arg[1]);
13170
+ this.bCurve = createValueGetter(arg[2]);
13171
+ this.aCurve = createValueGetter(arg[3]);
13367
13172
  };
13368
13173
  _proto.getValue = function getValue(t) {
13369
13174
  var r = this.rCurve.getValue(t);
@@ -15402,7 +15207,7 @@ var PolyStar = /*#__PURE__*/ function(ShapePrimitive) {
15402
15207
 
15403
15208
  // const tempPoints = [new Point(), new Point(), new Point(), new Point()];
15404
15209
  /**
15405
- * The `Rectangle` object is an area defined by its position, as indicated by its top-left corner
15210
+ * The `Rectangle` object is an area defined by its position, as indicated by its upper-left corner
15406
15211
  * point (`x`, `y`) and by its `width` and its `height`.
15407
15212
  */ var Rectangle$1 = /*#__PURE__*/ function(ShapePrimitive) {
15408
15213
  _inherits(Rectangle, ShapePrimitive);
@@ -15810,8 +15615,8 @@ var ShapePath = /*#__PURE__*/ function() {
15810
15615
  };
15811
15616
  /**
15812
15617
  * Draws a rectangle shape. This method adds a new rectangle path to the current drawing.
15813
- * @param x - The x-coordinate of the top-left corner of the rectangle.
15814
- * @param y - The y-coordinate of the top-left corner of the rectangle.
15618
+ * @param x - The x-coordinate of the upper-left corner of the rectangle.
15619
+ * @param y - The y-coordinate of the upper-left corner of the rectangle.
15815
15620
  * @param w - The width of the rectangle.
15816
15621
  * @param h - The height of the rectangle.
15817
15622
  * @param transform - An optional `Matrix` object to apply a transformation to the rectangle.
@@ -15956,8 +15761,8 @@ var GraphicsPath = /*#__PURE__*/ function() {
15956
15761
  };
15957
15762
  /**
15958
15763
  * Draws a rectangle shape. This method adds a new rectangle path to the current drawing.
15959
- * @param x - The x-coordinate of the top-left corner of the rectangle.
15960
- * @param y - The y-coordinate of the top-left corner of the rectangle.
15764
+ * @param x - The x-coordinate of the upper-left corner of the rectangle.
15765
+ * @param y - The y-coordinate of the upper-left corner of the rectangle.
15961
15766
  * @param w - The width of the rectangle.
15962
15767
  * @param h - The height of the rectangle.
15963
15768
  * @param transform - An optional `Matrix` object to apply a transformation to the rectangle.
@@ -16027,7 +15832,7 @@ var ShapeComponent = /*#__PURE__*/ function(MeshComponent) {
16027
15832
  _this.curveValues = [];
16028
15833
  _this.animated = true;
16029
15834
  _this.vert = "\nprecision highp float;\n\nattribute vec3 aPos;//x y\n\nuniform mat4 effects_MatrixVP;\nuniform mat4 effects_MatrixInvV;\nuniform mat4 effects_ObjectToWorld;\n\nvoid main() {\n vec4 pos = vec4(aPos.xyz, 1.0);\n gl_Position = effects_MatrixVP * effects_ObjectToWorld * pos;\n}\n";
16030
- _this.frag = "\nprecision highp float;\n\nuniform vec4 _Color;\n\nvoid main() {\n vec4 color = _Color;\n gl_FragColor = color;\n}\n";
15835
+ _this.frag = "\nprecision highp float;\n\nuniform vec4 _Color;\n\nvoid main() {\n vec4 color = _Color;\n color.rgb *= color.a;\n gl_FragColor = color;\n}\n";
16031
15836
  if (!_this.geometry) {
16032
15837
  _this.geometry = Geometry.create(engine, {
16033
15838
  attributes: {
@@ -16136,7 +15941,7 @@ var ShapeComponent = /*#__PURE__*/ function(MeshComponent) {
16136
15941
  this.path.clear();
16137
15942
  var shapeData = data;
16138
15943
  switch(shapeData.type){
16139
- case 0:
15944
+ case ShapePrimitiveType.Custom:
16140
15945
  {
16141
15946
  var customData = shapeData;
16142
15947
  var points = customData.points;
@@ -16173,28 +15978,28 @@ var ShapeComponent = /*#__PURE__*/ function(MeshComponent) {
16173
15978
  }
16174
15979
  break;
16175
15980
  }
16176
- case 2:
15981
+ case ShapePrimitiveType.Ellipse:
16177
15982
  {
16178
15983
  var ellipseData = shapeData;
16179
15984
  this.path.ellipse(0, 0, ellipseData.xRadius, ellipseData.yRadius);
16180
15985
  this.setFillColor(ellipseData.fill);
16181
15986
  break;
16182
15987
  }
16183
- case 1:
15988
+ case ShapePrimitiveType.Rectangle:
16184
15989
  {
16185
15990
  var rectangleData = shapeData;
16186
- this.path.rect(-rectangleData.width / 2, rectangleData.height / 2, rectangleData.width, rectangleData.height);
15991
+ this.path.rect(-rectangleData.width / 2, -rectangleData.height / 2, rectangleData.width, rectangleData.height);
16187
15992
  this.setFillColor(rectangleData.fill);
16188
15993
  break;
16189
15994
  }
16190
- case 4:
15995
+ case ShapePrimitiveType.Star:
16191
15996
  {
16192
15997
  var starData = shapeData;
16193
15998
  this.path.polyStar(starData.pointCount, starData.outerRadius, starData.innerRadius, starData.outerRoundness, starData.innerRoundness, StarType.Star);
16194
15999
  this.setFillColor(starData.fill);
16195
16000
  break;
16196
16001
  }
16197
- case 3:
16002
+ case ShapePrimitiveType.Polygon:
16198
16003
  {
16199
16004
  var polygonData = shapeData;
16200
16005
  this.path.polyStar(polygonData.pointCount, polygonData.radius, polygonData.radius, polygonData.roundness, polygonData.roundness, StarType.Polygon);
@@ -16226,28 +16031,6 @@ var ShapeComponent = /*#__PURE__*/ function(MeshComponent) {
16226
16031
  ShapeComponent = __decorate([
16227
16032
  effectsClass("ShapeComponent")
16228
16033
  ], ShapeComponent);
16229
- var ShapePrimitiveType;
16230
- (function(ShapePrimitiveType) {
16231
- /**
16232
- * 自定义图形
16233
- */ ShapePrimitiveType[ShapePrimitiveType["Custom"] = 0] = "Custom";
16234
- /**
16235
- * 矩形
16236
- */ ShapePrimitiveType[ShapePrimitiveType["Rectangle"] = 1] = "Rectangle";
16237
- /**
16238
- * 椭圆
16239
- */ ShapePrimitiveType[ShapePrimitiveType["Ellipse"] = 2] = "Ellipse";
16240
- /**
16241
- * 多边形
16242
- */ ShapePrimitiveType[ShapePrimitiveType["Polygon"] = 3] = "Polygon";
16243
- /**
16244
- * 星形
16245
- */ ShapePrimitiveType[ShapePrimitiveType["Star"] = 4] = "Star";
16246
- })(ShapePrimitiveType || (ShapePrimitiveType = {}));
16247
- var ShapeConnectType;
16248
- (function(ShapeConnectType) {})(ShapeConnectType || (ShapeConnectType = {}));
16249
- var ShapePointType;
16250
- (function(ShapePointType) {})(ShapePointType || (ShapePointType = {}));
16251
16034
 
16252
16035
  var Fake3DComponent = /*#__PURE__*/ function(Component) {
16253
16036
  _inherits(Fake3DComponent, Component);
@@ -16808,18 +16591,18 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16808
16591
  this.item.getHitTestParams = this.getHitTestParams;
16809
16592
  };
16810
16593
  _proto.onDisable = function onDisable() {
16594
+ RendererComponent.prototype.onDisable.call(this);
16811
16595
  if (this.item && this.item.composition) {
16812
- var _this_previewContent;
16813
16596
  if (this.duringPlay && !this.item.transform.getValid()) {
16814
16597
  this.item.composition.removeInteractiveItem(this.item, this.item.props.content.options.type);
16815
16598
  this.duringPlay = false;
16816
16599
  }
16817
16600
  this.clickable = false;
16818
- (_this_previewContent = this.previewContent) == null ? void 0 : _this_previewContent.mesh.dispose();
16819
16601
  this.endDragTarget();
16820
16602
  }
16821
16603
  };
16822
16604
  _proto.onEnable = function onEnable() {
16605
+ RendererComponent.prototype.onEnable.call(this);
16823
16606
  var type = this.interactData.options.type;
16824
16607
  if (type === InteractType.CLICK) {
16825
16608
  this.clickable = true;
@@ -16851,10 +16634,14 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16851
16634
  };
16852
16635
  _proto.render = function render(renderer) {
16853
16636
  if (this.previewContent) {
16637
+ this.previewContent.mesh.worldMatrix = this.transform.getWorldMatrix();
16854
16638
  this.previewContent.mesh.render(renderer);
16855
16639
  }
16856
16640
  };
16857
- _proto.onDestroy = function onDestroy() {};
16641
+ _proto.onDestroy = function onDestroy() {
16642
+ var _this_previewContent;
16643
+ (_this_previewContent = this.previewContent) == null ? void 0 : _this_previewContent.mesh.dispose();
16644
+ };
16858
16645
  _proto.endDragTarget = function endDragTarget() {
16859
16646
  // OVERRIDE
16860
16647
  };
@@ -17212,7 +16999,7 @@ var SpriteLoader = /*#__PURE__*/ function(AbstractPlugin) {
17212
16999
  // 更新节点时间
17213
17000
  for(var _iterator3 = _create_for_of_iterator_helper_loose(this.playables), _step3; !(_step3 = _iterator3()).done;){
17214
17001
  var playable = _step3.value;
17215
- this.updatePlayableTime(playable, dt);
17002
+ this.updatePlayableTime(playable, dt / 1000);
17216
17003
  }
17217
17004
  };
17218
17005
  _proto.connect = function connect(source, sourceOutputPort, destination, destinationInputPort) {
@@ -18433,7 +18220,7 @@ var VFXItem = /*#__PURE__*/ function(EffectsObject) {
18433
18220
  options: {}
18434
18221
  };
18435
18222
  }
18436
- if (duration <= 0) {
18223
+ if (duration < 0) {
18437
18224
  throw new Error("Item duration can't be less than 0, see " + HELP_LINK["Item duration can't be less than 0"] + ".");
18438
18225
  }
18439
18226
  this.rendererComponents.length = 0;
@@ -18794,6 +18581,16 @@ var SpriteComponent = /*#__PURE__*/ function(BaseRenderComponent) {
18794
18581
  }
18795
18582
  var life = Math.min(Math.max(time / duration, 0.0), 1.0);
18796
18583
  var ta = this.textureSheetAnimation;
18584
+ var video = this.renderer.texture.source.video;
18585
+ if (video) {
18586
+ if (time === 0) {
18587
+ video.pause();
18588
+ } else {
18589
+ video.play().catch(function(e) {
18590
+ _this.engine.renderErrors.add(e);
18591
+ });
18592
+ }
18593
+ }
18797
18594
  if (ta) {
18798
18595
  var _this_material_getVector4;
18799
18596
  var total = ta.total || ta.row * ta.col;
@@ -18848,21 +18645,20 @@ var SpriteComponent = /*#__PURE__*/ function(BaseRenderComponent) {
18848
18645
  dy
18849
18646
  ]);
18850
18647
  }
18851
- var video = this.renderer.texture.source.video;
18852
- if (video) {
18853
- if (time === 0 || time === this.item.duration) {
18854
- video.pause();
18855
- } else {
18856
- video.play().catch(function(e) {
18857
- _this.engine.renderErrors.add(e);
18858
- });
18859
- }
18860
- }
18861
18648
  };
18862
18649
  _proto.onDestroy = function onDestroy() {
18650
+ var textures = this.getTextures();
18863
18651
  if (this.item && this.item.composition) {
18864
- this.item.composition.destroyTextures(this.getTextures());
18652
+ this.item.composition.destroyTextures(textures);
18865
18653
  }
18654
+ textures.forEach(function(texture) {
18655
+ var source = texture.source;
18656
+ if (source.sourceType === TextureSourceType.video && (source == null ? void 0 : source.video)) {
18657
+ source.video.pause();
18658
+ source.video.src = "";
18659
+ source.video.load();
18660
+ }
18661
+ });
18866
18662
  };
18867
18663
  _proto.createGeometry = function createGeometry(mode) {
18868
18664
  var maxVertex = 12 * this.splits.length;
@@ -19301,7 +19097,7 @@ var ShapeNone = /*#__PURE__*/ function() {
19301
19097
  return ShapeNone;
19302
19098
  }();
19303
19099
  var _obj$2;
19304
- var map = (_obj$2 = {}, _obj$2[ShapeType.NONE] = ShapeNone, _obj$2[ShapeType.CONE] = Cone, _obj$2[ShapeType.SPHERE] = Sphere, _obj$2[ShapeType.HEMISPHERE] = Hemisphere, _obj$2[ShapeType.CIRCLE] = Circle, _obj$2[ShapeType.DONUT] = Donut, _obj$2[ShapeType.RECTANGLE] = Rectangle, _obj$2[ShapeType.EDGE] = Edge, _obj$2[ShapeType.RECTANGLE_EDGE] = RectangleEdge, _obj$2[ShapeType.TEXTURE] = TextureShape, _obj$2);
19100
+ var map = (_obj$2 = {}, _obj$2[ParticleEmitterShapeType.NONE] = ShapeNone, _obj$2[ParticleEmitterShapeType.CONE] = Cone, _obj$2[ParticleEmitterShapeType.SPHERE] = Sphere, _obj$2[ParticleEmitterShapeType.HEMISPHERE] = Hemisphere, _obj$2[ParticleEmitterShapeType.CIRCLE] = Circle, _obj$2[ParticleEmitterShapeType.DONUT] = Donut, _obj$2[ParticleEmitterShapeType.RECTANGLE] = Rectangle, _obj$2[ParticleEmitterShapeType.EDGE] = Edge, _obj$2[ParticleEmitterShapeType.RECTANGLE_EDGE] = RectangleEdge, _obj$2[ParticleEmitterShapeType.TEXTURE] = TextureShape, _obj$2);
19305
19101
  function createShape(shapeOptions) {
19306
19102
  if (!shapeOptions) {
19307
19103
  return new ShapeNone();
@@ -19318,7 +19114,7 @@ function createShape(shapeOptions) {
19318
19114
  throw new Error("Invalid shape: " + type + ".");
19319
19115
  }
19320
19116
  var ctrl = new Ctrl(options);
19321
- if (type !== ShapeType.NONE) {
19117
+ if (type !== ParticleEmitterShapeType.NONE) {
19322
19118
  var alignSpeedDirection = shapeOptions.alignSpeedDirection, _shapeOptions_upDirection = shapeOptions.upDirection, upDirection = _shapeOptions_upDirection === void 0 ? [
19323
19119
  0,
19324
19120
  0,
@@ -24248,9 +24044,9 @@ var SerializationHelper = /*#__PURE__*/ function() {
24248
24044
  var sceneBinding = _step.value;
24249
24045
  sceneBinding.key.boundObject = sceneBinding.value;
24250
24046
  }
24251
- // 未了通过帧对比,需要保证和原有的 update 时机一致。
24047
+ // 为了通过帧对比,需要保证和原有的 update 时机一致。
24252
24048
  // 因此这边更新一次对象绑定,后续 timeline playable 中 sort tracks 的排序才能和原先的版本对上。
24253
- // 如果不需要严格保证和之前的 updata 时机一致,这边的更新和 timeline playable 中的 sortTracks 都能去掉。
24049
+ // 如果不需要严格保证和之前的 updata 时机一致,这边的更新和 timeline asset 中的 sortTracks 都能去掉。
24254
24050
  for(var _iterator1 = _create_for_of_iterator_helper_loose(this.timelineAsset.tracks), _step1; !(_step1 = _iterator1()).done;){
24255
24051
  var masterTrack = _step1.value;
24256
24052
  this.updateTrackAnimatedObject(masterTrack);
@@ -24354,6 +24150,51 @@ var Vector4PropertyMixerPlayable = /*#__PURE__*/ function(Playable) {
24354
24150
  return Vector4PropertyMixerPlayable;
24355
24151
  }(Playable);
24356
24152
 
24153
+ var ColorPropertyMixerPlayable = /*#__PURE__*/ function(Playable) {
24154
+ _inherits(ColorPropertyMixerPlayable, Playable);
24155
+ function ColorPropertyMixerPlayable() {
24156
+ var _this;
24157
+ _this = Playable.apply(this, arguments) || this;
24158
+ _this.propertyName = "";
24159
+ return _this;
24160
+ }
24161
+ var _proto = ColorPropertyMixerPlayable.prototype;
24162
+ _proto.processFrame = function processFrame(context) {
24163
+ var boundObject = context.output.getUserData();
24164
+ if (!boundObject) {
24165
+ return;
24166
+ }
24167
+ var hasInput = false;
24168
+ var value = boundObject[this.propertyName];
24169
+ if (!_instanceof1(value, Color)) {
24170
+ return;
24171
+ }
24172
+ value.setZero();
24173
+ // evaluate the curve
24174
+ for(var i = 0; i < this.getInputCount(); i++){
24175
+ var weight = this.getInputWeight(i);
24176
+ if (weight > 0) {
24177
+ var propertyClipPlayable = this.getInput(i);
24178
+ if (!_instanceof1(propertyClipPlayable, PropertyClipPlayable)) {
24179
+ console.error("ColorPropertyMixerPlayable received incompatible input");
24180
+ continue;
24181
+ }
24182
+ var curveValue = propertyClipPlayable.value;
24183
+ value.r += curveValue.r * weight;
24184
+ value.g += curveValue.g * weight;
24185
+ value.b += curveValue.b * weight;
24186
+ value.a += curveValue.a * weight;
24187
+ hasInput = true;
24188
+ }
24189
+ }
24190
+ // set value
24191
+ if (hasInput) {
24192
+ boundObject[this.propertyName] = value;
24193
+ }
24194
+ };
24195
+ return ColorPropertyMixerPlayable;
24196
+ }(Playable);
24197
+
24357
24198
  var PropertyTrack = /*#__PURE__*/ function(TrackAsset) {
24358
24199
  _inherits(PropertyTrack, TrackAsset);
24359
24200
  function PropertyTrack() {
@@ -24513,7 +24354,7 @@ var ColorPropertyTrack = /*#__PURE__*/ function(PropertyTrack) {
24513
24354
  }
24514
24355
  var _proto = ColorPropertyTrack.prototype;
24515
24356
  _proto.createTrackMixer = function createTrackMixer(graph) {
24516
- var mixer = new FloatPropertyMixerPlayable(graph);
24357
+ var mixer = new ColorPropertyMixerPlayable(graph);
24517
24358
  var propertyNames = this.propertyNames;
24518
24359
  if (propertyNames.length > 0) {
24519
24360
  var propertyName = propertyNames[propertyNames.length - 1];
@@ -24527,6 +24368,27 @@ ColorPropertyTrack = __decorate([
24527
24368
  effectsClass(DataType.ColorPropertyTrack)
24528
24369
  ], ColorPropertyTrack);
24529
24370
 
24371
+ var ColorPropertyPlayableAsset = /*#__PURE__*/ function(PlayableAsset) {
24372
+ _inherits(ColorPropertyPlayableAsset, PlayableAsset);
24373
+ function ColorPropertyPlayableAsset() {
24374
+ return PlayableAsset.apply(this, arguments);
24375
+ }
24376
+ var _proto = ColorPropertyPlayableAsset.prototype;
24377
+ _proto.createPlayable = function createPlayable(graph) {
24378
+ var clipPlayable = new PropertyClipPlayable(graph);
24379
+ clipPlayable.curve = createValueGetter(this.curveData);
24380
+ clipPlayable.value = clipPlayable.curve.getValue(0);
24381
+ return clipPlayable;
24382
+ };
24383
+ return ColorPropertyPlayableAsset;
24384
+ }(PlayableAsset);
24385
+ __decorate([
24386
+ serialize()
24387
+ ], ColorPropertyPlayableAsset.prototype, "curveData", void 0);
24388
+ ColorPropertyPlayableAsset = __decorate([
24389
+ effectsClass(DataType.ColorPropertyPlayableAsset)
24390
+ ], ColorPropertyPlayableAsset);
24391
+
24530
24392
  var FloatPropertyPlayableAsset = /*#__PURE__*/ function(PlayableAsset) {
24531
24393
  _inherits(FloatPropertyPlayableAsset, PlayableAsset);
24532
24394
  function FloatPropertyPlayableAsset() {
@@ -24586,6 +24448,7 @@ var TimelineAsset = /*#__PURE__*/ function(PlayableAsset) {
24586
24448
  var _this;
24587
24449
  _this = PlayableAsset.apply(this, arguments) || this;
24588
24450
  _this.tracks = [];
24451
+ _this.cacheFlattenedTracks = null;
24589
24452
  return _this;
24590
24453
  }
24591
24454
  var _proto = TimelineAsset.prototype;
@@ -24598,16 +24461,62 @@ var TimelineAsset = /*#__PURE__*/ function(PlayableAsset) {
24598
24461
  track.create(this);
24599
24462
  }
24600
24463
  }
24601
- timelinePlayable.compileTracks(graph, this.tracks);
24464
+ this.sortTracks(this.tracks);
24465
+ timelinePlayable.compileTracks(graph, this.flattenedTracks);
24602
24466
  return timelinePlayable;
24603
24467
  };
24604
24468
  _proto.createTrack = function createTrack(classConstructor, parent, name) {
24605
24469
  var newTrack = new classConstructor(this.engine);
24606
24470
  newTrack.name = name ? name : classConstructor.name;
24607
24471
  parent.addChild(newTrack);
24472
+ this.invalidate();
24608
24473
  return newTrack;
24609
24474
  };
24475
+ /**
24476
+ * Invalidates the asset, called when tracks data changed
24477
+ */ _proto.invalidate = function invalidate() {
24478
+ this.cacheFlattenedTracks = null;
24479
+ };
24480
+ _proto.addSubTracksRecursive = function addSubTracksRecursive(track, allTracks) {
24481
+ for(var _iterator = _create_for_of_iterator_helper_loose(track.getChildTracks()), _step; !(_step = _iterator()).done;){
24482
+ var subTrack = _step.value;
24483
+ allTracks.push(subTrack);
24484
+ }
24485
+ for(var _iterator1 = _create_for_of_iterator_helper_loose(track.getChildTracks()), _step1; !(_step1 = _iterator1()).done;){
24486
+ var subTrack1 = _step1.value;
24487
+ this.addSubTracksRecursive(subTrack1, allTracks);
24488
+ }
24489
+ };
24490
+ _proto.sortTracks = function sortTracks(tracks) {
24491
+ var sortedTracks = [];
24492
+ for(var i = 0; i < tracks.length; i++){
24493
+ sortedTracks.push(new TrackSortWrapper(tracks[i], i));
24494
+ }
24495
+ sortedTracks.sort(compareTracks);
24496
+ tracks.length = 0;
24497
+ for(var _iterator = _create_for_of_iterator_helper_loose(sortedTracks), _step; !(_step = _iterator()).done;){
24498
+ var trackWrapper = _step.value;
24499
+ tracks.push(trackWrapper.track);
24500
+ }
24501
+ };
24610
24502
  _proto.fromData = function fromData(data) {};
24503
+ _create_class(TimelineAsset, [
24504
+ {
24505
+ key: "flattenedTracks",
24506
+ get: function get() {
24507
+ if (!this.cacheFlattenedTracks) {
24508
+ this.cacheFlattenedTracks = [];
24509
+ // flatten track tree
24510
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.tracks), _step; !(_step = _iterator()).done;){
24511
+ var masterTrack = _step.value;
24512
+ this.cacheFlattenedTracks.push(masterTrack);
24513
+ this.addSubTracksRecursive(masterTrack, this.cacheFlattenedTracks);
24514
+ }
24515
+ }
24516
+ return this.cacheFlattenedTracks;
24517
+ }
24518
+ }
24519
+ ]);
24611
24520
  return TimelineAsset;
24612
24521
  }(PlayableAsset);
24613
24522
  __decorate([
@@ -24640,18 +24549,11 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24640
24549
  }
24641
24550
  };
24642
24551
  _proto.compileTracks = function compileTracks(graph, tracks) {
24643
- this.sortTracks(tracks);
24644
- var outputTrack = [];
24645
- // flatten track tree
24646
- for(var _iterator = _create_for_of_iterator_helper_loose(tracks), _step; !(_step = _iterator()).done;){
24647
- var masterTrack = _step.value;
24648
- outputTrack.push(masterTrack);
24649
- this.addSubTracksRecursive(masterTrack, outputTrack);
24650
- }
24552
+ var outputTrack = tracks;
24651
24553
  // map for searching track instance with track asset guid
24652
24554
  var trackInstanceMap = {};
24653
- for(var _iterator1 = _create_for_of_iterator_helper_loose(outputTrack), _step1; !(_step1 = _iterator1()).done;){
24654
- var track = _step1.value;
24555
+ for(var _iterator = _create_for_of_iterator_helper_loose(outputTrack), _step; !(_step = _iterator()).done;){
24556
+ var track = _step.value;
24655
24557
  // create track mixer and track output
24656
24558
  var trackMixPlayable = track.createPlayableGraph(graph, this.clips);
24657
24559
  this.addInput(trackMixPlayable, 0);
@@ -24667,11 +24569,11 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24667
24569
  }
24668
24570
  }
24669
24571
  // build trackInstance tree
24670
- for(var _iterator2 = _create_for_of_iterator_helper_loose(outputTrack), _step2; !(_step2 = _iterator2()).done;){
24671
- var track1 = _step2.value;
24572
+ for(var _iterator1 = _create_for_of_iterator_helper_loose(outputTrack), _step1; !(_step1 = _iterator1()).done;){
24573
+ var track1 = _step1.value;
24672
24574
  var trackInstance1 = trackInstanceMap[track1.getInstanceId()];
24673
- for(var _iterator3 = _create_for_of_iterator_helper_loose(track1.getChildTracks()), _step3; !(_step3 = _iterator3()).done;){
24674
- var child = _step3.value;
24575
+ for(var _iterator2 = _create_for_of_iterator_helper_loose(track1.getChildTracks()), _step2; !(_step2 = _iterator2()).done;){
24576
+ var child = _step2.value;
24675
24577
  var childTrackInstance = trackInstanceMap[child.getInstanceId()];
24676
24578
  trackInstance1.addChild(childTrackInstance);
24677
24579
  }
@@ -24688,28 +24590,6 @@ var TimelinePlayable = /*#__PURE__*/ function(Playable) {
24688
24590
  this.updateTrackAnimatedObject(trackInstance.children);
24689
24591
  }
24690
24592
  };
24691
- _proto.sortTracks = function sortTracks(tracks) {
24692
- var sortedTracks = [];
24693
- for(var i = 0; i < tracks.length; i++){
24694
- sortedTracks.push(new TrackSortWrapper(tracks[i], i));
24695
- }
24696
- sortedTracks.sort(compareTracks);
24697
- tracks.length = 0;
24698
- for(var _iterator = _create_for_of_iterator_helper_loose(sortedTracks), _step; !(_step = _iterator()).done;){
24699
- var trackWrapper = _step.value;
24700
- tracks.push(trackWrapper.track);
24701
- }
24702
- };
24703
- _proto.addSubTracksRecursive = function addSubTracksRecursive(track, allTracks) {
24704
- for(var _iterator = _create_for_of_iterator_helper_loose(track.getChildTracks()), _step; !(_step = _iterator()).done;){
24705
- var subTrack = _step.value;
24706
- allTracks.push(subTrack);
24707
- }
24708
- for(var _iterator1 = _create_for_of_iterator_helper_loose(track.getChildTracks()), _step1; !(_step1 = _iterator1()).done;){
24709
- var subTrack1 = _step1.value;
24710
- this.addSubTracksRecursive(subTrack1, allTracks);
24711
- }
24712
- };
24713
24593
  return TimelinePlayable;
24714
24594
  }(Playable);
24715
24595
  var TrackSortWrapper = function TrackSortWrapper(track, originalIndex) {
@@ -24731,6 +24611,27 @@ function compareTracks(a, b) {
24731
24611
  }
24732
24612
  }
24733
24613
 
24614
+ var Vector4PropertyPlayableAsset = /*#__PURE__*/ function(PlayableAsset) {
24615
+ _inherits(Vector4PropertyPlayableAsset, PlayableAsset);
24616
+ function Vector4PropertyPlayableAsset() {
24617
+ return PlayableAsset.apply(this, arguments);
24618
+ }
24619
+ var _proto = Vector4PropertyPlayableAsset.prototype;
24620
+ _proto.createPlayable = function createPlayable(graph) {
24621
+ var clipPlayable = new PropertyClipPlayable(graph);
24622
+ clipPlayable.curve = createValueGetter(this.curveData);
24623
+ clipPlayable.value = clipPlayable.curve.getValue(0);
24624
+ return clipPlayable;
24625
+ };
24626
+ return Vector4PropertyPlayableAsset;
24627
+ }(PlayableAsset);
24628
+ __decorate([
24629
+ serialize()
24630
+ ], Vector4PropertyPlayableAsset.prototype, "curveData", void 0);
24631
+ Vector4PropertyPlayableAsset = __decorate([
24632
+ effectsClass("Vector4PropertyPlayableAsset")
24633
+ ], Vector4PropertyPlayableAsset);
24634
+
24734
24635
  var ObjectBindingTrack = /*#__PURE__*/ function(TrackAsset1) {
24735
24636
  _inherits(ObjectBindingTrack, TrackAsset1);
24736
24637
  function ObjectBindingTrack() {
@@ -24768,7 +24669,7 @@ var TextLayout = /*#__PURE__*/ function() {
24768
24669
  function TextLayout(options) {
24769
24670
  this.width = 0;
24770
24671
  this.height = 0;
24771
- var _options_textHeight = options.textHeight, textHeight = _options_textHeight === void 0 ? 100 : _options_textHeight, _options_textWidth = options.textWidth, textWidth = _options_textWidth === void 0 ? 100 : _options_textWidth, _options_textOverflow = options.textOverflow, textOverflow = _options_textOverflow === void 0 ? TextOverflow.display : _options_textOverflow, _options_textBaseline = options.textBaseline, textBaseline = _options_textBaseline === void 0 ? TextBaseline.top : _options_textBaseline, _options_textAlign = options.textAlign, textAlign = _options_textAlign === void 0 ? TextAlignment.left : _options_textAlign, text = options.text, _options_letterSpace = options.letterSpace, letterSpace = _options_letterSpace === void 0 ? 0 : _options_letterSpace, _options_autoWidth = options.autoWidth, autoWidth = _options_autoWidth === void 0 ? false : _options_autoWidth, fontSize = options.fontSize, _options_lineHeight = options.lineHeight, lineHeight = _options_lineHeight === void 0 ? fontSize : _options_lineHeight;
24672
+ var _options_textHeight = options.textHeight, textHeight = _options_textHeight === void 0 ? 100 : _options_textHeight, _options_textWidth = options.textWidth, textWidth = _options_textWidth === void 0 ? 100 : _options_textWidth, _options_textOverflow = options.textOverflow, textOverflow = _options_textOverflow === void 0 ? TextOverflow.display : _options_textOverflow, _options_textBaseline = options.textBaseline, textBaseline = _options_textBaseline === void 0 ? TextBaseline.top : _options_textBaseline, _options_textAlign = options.textAlign, textAlign = _options_textAlign === void 0 ? TextAlignment.left : _options_textAlign, _options_text = options.text, text = _options_text === void 0 ? " " : _options_text, _options_letterSpace = options.letterSpace, letterSpace = _options_letterSpace === void 0 ? 0 : _options_letterSpace, _options_autoWidth = options.autoWidth, autoWidth = _options_autoWidth === void 0 ? false : _options_autoWidth, fontSize = options.fontSize, _options_lineHeight = options.lineHeight, lineHeight = _options_lineHeight === void 0 ? fontSize : _options_lineHeight;
24772
24673
  var tempWidth = fontSize + letterSpace;
24773
24674
  this.autoWidth = autoWidth;
24774
24675
  this.maxTextWidth = text.length * tempWidth;
@@ -26663,13 +26564,13 @@ function getStandardParticleContent(particle) {
26663
26564
  var options = particle.options;
26664
26565
  var transform = particle.transform;
26665
26566
  var shape = {
26666
- type: ShapeType.NONE
26567
+ type: ParticleEmitterShapeType.NONE
26667
26568
  };
26668
26569
  if (particle.shape) {
26669
26570
  var _particle_shape_shape;
26670
26571
  var shapeType = (_particle_shape_shape = particle.shape.shape) == null ? void 0 : _particle_shape_shape.replace(/([A-Z])/g, "_$1").toUpperCase().replace(/^_/, "");
26671
26572
  shape = _extends({}, particle.shape, {
26672
- type: ShapeType[shapeType]
26573
+ type: ParticleEmitterShapeType[shapeType]
26673
26574
  });
26674
26575
  if (particle.shape.upDirection) {
26675
26576
  var _particle_shape_upDirection = particle.shape.upDirection, x = _particle_shape_upDirection[0], y = _particle_shape_upDirection[1], z = _particle_shape_upDirection[2];
@@ -28533,7 +28434,8 @@ var listOrder = 0;
28533
28434
  var itemProps = sourceItemData;
28534
28435
  if (passRenderLevel(sourceItemData.renderLevel, this.renderLevel)) {
28535
28436
  itemProps.listIndex = listOrder++;
28536
- if (itemProps.type === ItemType.sprite || itemProps.type === ItemType.particle || itemProps.type === ItemType.spine) {
28437
+ if (itemProps.type === ItemType.sprite || itemProps.type === ItemType.particle || itemProps.type === ItemType.spine || //@ts-expect-error
28438
+ itemProps.type === ItemType.shape) {
28537
28439
  for(var _iterator2 = _create_for_of_iterator_helper_loose(itemProps.components), _step2; !(_step2 = _iterator2()).done;){
28538
28440
  var componentPath = _step2.value;
28539
28441
  var componentData = componentMap[componentPath.id];
@@ -28569,10 +28471,10 @@ var listOrder = 0;
28569
28471
  if (Number.isInteger(shape)) {
28570
28472
  var _this_jsonScene;
28571
28473
  shapeData = (_this_jsonScene = this.jsonScene) == null ? void 0 : _this_jsonScene.shapes[shape];
28572
- } else {
28474
+ } else if (shape) {
28573
28475
  shapeData = shape;
28574
28476
  }
28575
- if (shapeData !== undefined) {
28477
+ if (shapeData !== undefined && !("aPoint" in shapeData && "index" in shapeData)) {
28576
28478
  // @ts-expect-error 类型转换问题
28577
28479
  renderContent.renderer.shape = getGeometryByShape(shapeData, split);
28578
28480
  }
@@ -28941,16 +28843,15 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
28941
28843
  if (pause) {
28942
28844
  this.resume();
28943
28845
  }
28944
- if (!this.rootComposition.isStartCalled) {
28945
- this.rootComposition.onStart();
28946
- this.rootComposition.isStartCalled = true;
28947
- }
28948
28846
  this.setSpeed(1);
28949
28847
  this.forwardTime(time + this.startTime);
28950
28848
  this.setSpeed(speed);
28951
28849
  if (pause) {
28952
28850
  this.pause();
28953
28851
  }
28852
+ this.emit("goto", {
28853
+ time: time
28854
+ });
28954
28855
  };
28955
28856
  _proto.addItem = function addItem(item) {
28956
28857
  this.items.push(item);
@@ -28982,30 +28883,16 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
28982
28883
  _proto.prepareRender = function prepareRender() {
28983
28884
  var _this = this;
28984
28885
  var frame = this.renderFrame;
28985
- frame._renderPasses[0].meshes.length = 0;
28986
28886
  this.postLoaders.length = 0;
28987
28887
  this.pluginSystem.plugins.forEach(function(loader) {
28988
28888
  if (loader.prepareRenderFrame(_this, frame)) {
28989
28889
  _this.postLoaders.push(loader);
28990
28890
  }
28991
28891
  });
28992
- this.gatherRendererComponent(this.rootItem, frame);
28993
28892
  this.postLoaders.forEach(function(loader) {
28994
28893
  return loader.postProcessFrame(_this, frame);
28995
28894
  });
28996
28895
  };
28997
- _proto.gatherRendererComponent = function gatherRendererComponent(vfxItem, renderFrame) {
28998
- for(var _iterator = _create_for_of_iterator_helper_loose(vfxItem.rendererComponents), _step; !(_step = _iterator()).done;){
28999
- var rendererComponent = _step.value;
29000
- if (rendererComponent.isActiveAndEnabled) {
29001
- renderFrame.addMeshToDefaultRenderPass(rendererComponent);
29002
- }
29003
- }
29004
- for(var _iterator1 = _create_for_of_iterator_helper_loose(vfxItem.children), _step1; !(_step1 = _iterator1()).done;){
29005
- var item = _step1.value;
29006
- this.gatherRendererComponent(item, renderFrame);
29007
- }
29008
- };
29009
28896
  /**
29010
28897
  * 合成更新,针对所有 item 的更新
29011
28898
  * @param deltaTime - 更新的时间步长
@@ -29128,7 +29015,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
29128
29015
  * 更新主合成组件
29129
29016
  */ _proto.updateRootComposition = function updateRootComposition(deltaTime) {
29130
29017
  if (this.rootComposition.isActiveAndEnabled) {
29131
- var localTime = this.time + deltaTime - this.rootItem.start;
29018
+ var localTime = parseFloat((this.time + deltaTime - this.rootItem.start).toFixed(3));
29132
29019
  var isEnded = false;
29133
29020
  var duration = this.rootItem.duration;
29134
29021
  var endBehavior = this.rootItem.endBehavior;
@@ -31490,8 +31377,8 @@ registerPlugin("sprite", SpriteLoader, VFXItem, true);
31490
31377
  registerPlugin("particle", ParticleLoader, VFXItem, true);
31491
31378
  registerPlugin("cal", CalculateLoader, VFXItem, true);
31492
31379
  registerPlugin("interact", InteractLoader, VFXItem, true);
31493
- var version = "2.1.0-beta.0";
31380
+ var version = "2.1.1";
31494
31381
  logger.info("Core version: " + version + ".");
31495
31382
 
31496
- export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyTrack, Component, Composition, CompositionComponent, CompositionSourceManager, DEFAULT_FONTS, DEFAULT_FPS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapeConnectType, ShapePointType, ShapePrimitiveType, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector4Curve, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
31383
+ export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, CompositionSourceManager, DEFAULT_FONTS, DEFAULT_FPS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
31497
31384
  //# sourceMappingURL=index.mjs.map