@galacean/effects-threejs 2.0.0-alpha.31 → 2.0.0-alpha.33

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 threejs plugin for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.0.0-alpha.31
6
+ * Version: v2.0.0-alpha.33
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -4565,15 +4565,97 @@ function getDirectStore(target) {
4565
4565
  return decoratorInitialStore.get(classKey);
4566
4566
  }
4567
4567
 
4568
+ function _assert_this_initialized(self) {
4569
+ if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
4570
+ return self;
4571
+ }
4572
+
4573
+ var EventEmitter = function EventEmitter() {
4574
+ var _this = this;
4575
+ var _this1 = this;
4576
+ this.listeners = {};
4577
+ /**
4578
+ * 移除事件监听器
4579
+ * @param eventName - 事件名称
4580
+ * @param listener - 事件监听器
4581
+ * @returns
4582
+ */ this.off = function(eventName, listener) {
4583
+ if (!_this.listeners[eventName]) {
4584
+ return;
4585
+ }
4586
+ _this.listeners[eventName] = _this.listeners[eventName].filter(function(param) {
4587
+ var l = param.listener;
4588
+ return l !== listener;
4589
+ });
4590
+ };
4591
+ /**
4592
+ * 监听事件
4593
+ * @param eventName - 事件名称
4594
+ * @param listener - 事件监听器
4595
+ * @param options - 事件监听器选项
4596
+ * @returns
4597
+ */ this.on = function(eventName, listener, options) {
4598
+ _this.listeners[eventName] = _this.listeners[eventName] || [];
4599
+ _this.listeners[eventName].push({
4600
+ listener: listener,
4601
+ options: options
4602
+ });
4603
+ return function() {
4604
+ return _this.off(eventName, listener);
4605
+ };
4606
+ };
4607
+ /**
4608
+ * 一次性监听事件
4609
+ * @param eventName - 事件名称
4610
+ * @param listener - 事件监听器
4611
+ */ this.once = function(eventName, listener) {
4612
+ _this.on(eventName, listener, {
4613
+ once: true
4614
+ });
4615
+ };
4616
+ /**
4617
+ * 触发事件
4618
+ * @param eventName - 事件名称
4619
+ * @param args - 事件参数
4620
+ */ this.emit = function(eventName) {
4621
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
4622
+ args[_key - 1] = arguments[_key];
4623
+ }
4624
+ var _this_listeners_eventName;
4625
+ (_this_listeners_eventName = _this1.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.forEach(function(param) {
4626
+ var listener = param.listener, options = param.options;
4627
+ listener.apply(void 0, [].concat(args));
4628
+ if (options == null ? void 0 : options.once) {
4629
+ _this1.off(eventName, listener);
4630
+ }
4631
+ });
4632
+ };
4633
+ /**
4634
+ * 获取事件名称对应的所有监听器
4635
+ * @param eventName - 事件名称
4636
+ * @returns - 返回事件名称对应的所有监听器
4637
+ */ this.getListeners = function(eventName) {
4638
+ var _this_listeners_eventName;
4639
+ return ((_this_listeners_eventName = _this.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.map(function(param) {
4640
+ var listener = param.listener;
4641
+ return listener;
4642
+ })) || [];
4643
+ };
4644
+ };
4645
+
4568
4646
  /**
4569
4647
  * @since 2.0.0
4570
4648
  * @internal
4571
- */ var EffectsObject = /*#__PURE__*/ function() {
4649
+ */ var EffectsObject = /*#__PURE__*/ function(EventEmitter) {
4650
+ _inherits(EffectsObject, EventEmitter);
4572
4651
  function EffectsObject(engine) {
4573
- this.engine = engine;
4574
- this.guid = generateGUID();
4575
- this.taggedProperties = {};
4576
- this.engine.addInstance(this);
4652
+ var _this;
4653
+ _this = EventEmitter.call(this) || this;
4654
+ _this.engine = engine;
4655
+ _this.guid = generateGUID();
4656
+ _this.taggedProperties = {};
4657
+ _this.engine.addInstance(_assert_this_initialized(_this));
4658
+ return _this;
4577
4659
  }
4578
4660
  var _proto = EffectsObject.prototype;
4579
4661
  _proto.getInstanceId = function getInstanceId() {
@@ -4599,7 +4681,7 @@ function getDirectStore(target) {
4599
4681
  return _instanceof1(obj, EffectsObject) && "guid" in obj;
4600
4682
  };
4601
4683
  return EffectsObject;
4602
- }();
4684
+ }(EventEmitter);
4603
4685
 
4604
4686
  /**
4605
4687
  * @since 2.0.0
@@ -8989,6 +9071,9 @@ var MaterialRenderType;
8989
9071
  * 初始化 GPU 资源
8990
9072
  * @override
8991
9073
  */ _proto.initialize = function initialize() {
9074
+ // OVERRIDE
9075
+ };
9076
+ _proto.createShaderVariant = function createShaderVariant() {
8992
9077
  // OVERRIDE
8993
9078
  };
8994
9079
  _proto.use = function use(render, globalUniforms) {
@@ -12699,6 +12784,7 @@ var GlobalUniforms = function GlobalUniforms() {
12699
12784
  this.floats = {};
12700
12785
  this.ints = {};
12701
12786
  // vector3s: Record<string, vec3> = {};
12787
+ this.vector4s = {};
12702
12788
  this.matrices = {};
12703
12789
  //...
12704
12790
  this.samplers = [] // 存放的sampler名称。
@@ -12935,6 +13021,9 @@ var Renderer = /*#__PURE__*/ function() {
12935
13021
  _proto.setGlobalInt = function setGlobalInt(name, value) {
12936
13022
  // OVERRIDE
12937
13023
  };
13024
+ _proto.setGlobalVector4 = function setGlobalVector4(name, value) {
13025
+ // OVERRIDE
13026
+ };
12938
13027
  _proto.setGlobalMatrix = function setGlobalMatrix(name, value) {
12939
13028
  // OVERRIDE
12940
13029
  };
@@ -13480,11 +13569,6 @@ var SpriteLoader = /*#__PURE__*/ function(AbstractPlugin) {
13480
13569
  return SpriteLoader;
13481
13570
  }(AbstractPlugin);
13482
13571
 
13483
- function _assert_this_initialized(self) {
13484
- if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
13485
- return self;
13486
- }
13487
-
13488
13572
  /**
13489
13573
  * 动画图,负责更新所有的动画节点
13490
13574
  * @since 2.0.0
@@ -15921,6 +16005,17 @@ var Link = /*#__PURE__*/ function() {
15921
16005
  }while (node = node.pre);
15922
16006
  }
15923
16007
  };
16008
+ _proto.getNodeByIndex = function getNodeByIndex(index) {
16009
+ var i = 0, res = this.first;
16010
+ if (!res || index >= this.length || index < 0) {
16011
+ return null;
16012
+ }
16013
+ while(i < index){
16014
+ res = res.next;
16015
+ i++;
16016
+ }
16017
+ return res;
16018
+ };
15924
16019
  return Link;
15925
16020
  }();
15926
16021
 
@@ -16757,10 +16852,8 @@ var ParticleSystem = /*#__PURE__*/ function(Component) {
16757
16852
  content[3].delay -= duration;
16758
16853
  });
16759
16854
  this.renderer.minusTimeForLoop(duration);
16760
- this.onIterate(this);
16761
16855
  } else {
16762
16856
  this.ended = true;
16763
- this.onEnd(this);
16764
16857
  var endBehavior = this.item.endBehavior;
16765
16858
  if (endBehavior === EndBehavior.freeze) {
16766
16859
  this.frozen = true;
@@ -16908,7 +17001,21 @@ var ParticleSystem = /*#__PURE__*/ function(Component) {
16908
17001
  time: startTime
16909
17002
  });
16910
17003
  };
16911
- _proto.getPointPosition = function getPointPosition(point) {
17004
+ /**
17005
+ * 通过索引获取指定index粒子当前时刻的位置
17006
+ * @params index - 粒子索引
17007
+ */ _proto.getPointPositionByIndex = function getPointPositionByIndex(index) {
17008
+ var point = this.particleLink.getNodeByIndex(index);
17009
+ if (!point) {
17010
+ console.error("Get point error.");
17011
+ return null;
17012
+ } else {
17013
+ return this.getPointPosition(point.content[3]);
17014
+ }
17015
+ };
17016
+ /**
17017
+ * 通过粒子参数获取当前时刻粒子的位置
17018
+ */ _proto.getPointPosition = function getPointPosition(point) {
16912
17019
  var transform = point.transform, vel = point.vel, lifetime = point.lifetime, delay = point.delay, _point_gravity = point.gravity, gravity = _point_gravity === void 0 ? [] : _point_gravity;
16913
17020
  var forceTarget = this.options.forceTarget;
16914
17021
  var time = this.lastUpdate - delay;
@@ -16930,8 +17037,6 @@ var ParticleSystem = /*#__PURE__*/ function(Component) {
16930
17037
  }
16931
17038
  return ret;
16932
17039
  };
16933
- _proto.onEnd = function onEnd(particle) {};
16934
- _proto.onIterate = function onIterate(particle) {};
16935
17040
  _proto.initPoint = function initPoint(data) {
16936
17041
  var options = this.options;
16937
17042
  var lifetime = this.lifetime;
@@ -17890,31 +17995,6 @@ var ParticleMesh = /*#__PURE__*/ function() {
17890
17995
  data[i + 3]
17891
17996
  ];
17892
17997
  };
17893
- /**
17894
- * 待废弃
17895
- * @deprecated - 使用 `particle-system.getPointPosition` 替代
17896
- */ _proto.getPointPosition = function getPointPosition(index) {
17897
- var geo = this.geometry;
17898
- var posIndex = index * 48;
17899
- var posData = geo.getAttributeData("aPos");
17900
- var offsetData = geo.getAttributeData("aOffset");
17901
- var time = this.time - offsetData[index * 16 + 2];
17902
- var pointDur = offsetData[index * 16 + 3];
17903
- var mtl = this.mesh.material;
17904
- var acc = mtl.getVector4("uAcceleration").toVector3();
17905
- var pos = Vector3.fromArray(posData, posIndex);
17906
- var vel = Vector3.fromArray(posData, posIndex + 3);
17907
- var ret = calculateTranslation(new Vector3(), this, acc, time, pointDur, pos, vel);
17908
- if (this.forceTarget) {
17909
- var target = mtl.getVector3("uFinalTarget");
17910
- var life = this.forceTarget.curve.getValue(time / pointDur);
17911
- var dl = 1 - life;
17912
- ret.x = ret.x * dl + target.x * life;
17913
- ret.y = ret.y * dl + target.y * life;
17914
- ret.z = ret.z * dl + target.z * life;
17915
- }
17916
- return ret;
17917
- };
17918
17998
  _proto.clearPoints = function clearPoints() {
17919
17999
  this.resetGeometryData(this.geometry);
17920
18000
  this.particleCount = 0;
@@ -19305,10 +19385,6 @@ function compareTracks(a, b) {
19305
19385
  };
19306
19386
  _proto.update = function update(dt) {
19307
19387
  var time = this.time;
19308
- // 主合成 rootItem 没有绑定轨道,增加结束行为判断。
19309
- if (this.item.isEnded(this.time) && !this.item.parent) {
19310
- this.item.ended = true;
19311
- }
19312
19388
  this.timelinePlayable.setTime(time);
19313
19389
  this.graph.evaluate(dt);
19314
19390
  };
@@ -19441,6 +19517,8 @@ function compareTracks(a, b) {
19441
19517
  hitPositions: hitPositions,
19442
19518
  behavior: hitParams.behavior
19443
19519
  };
19520
+ // 触发单个元素的点击事件
19521
+ item.emit("click", region);
19444
19522
  regions.push(region);
19445
19523
  if (stop(region)) {
19446
19524
  return {
@@ -20676,8 +20754,6 @@ var VFXItem = /*#__PURE__*/ function(EffectsObject) {
20676
20754
  this.parentId = parentId;
20677
20755
  this.duration = duration;
20678
20756
  this.endBehavior = endBehavior;
20679
- //@ts-expect-error
20680
- this.oldId = data.oldId;
20681
20757
  if (!data.content) {
20682
20758
  data.content = {
20683
20759
  options: {}
@@ -24686,89 +24762,93 @@ var listOrder = 0;
24686
24762
  * 合成抽象类:核心对象,通常一个场景只包含一个合成,可能会有多个合成。
24687
24763
  * 合成中包含了相关的 Item 元素,支持对 Item 元素的创建、更新和销毁。
24688
24764
  * 也负责 Item 相关的动画播放控制,和持有渲染帧数据。
24689
- */ var Composition = /*#__PURE__*/ function() {
24765
+ */ var Composition = /*#__PURE__*/ function(EventEmitter) {
24766
+ _inherits(Composition, EventEmitter);
24690
24767
  function Composition(props, scene) {
24691
- var _this = this;
24768
+ var _this;
24769
+ _this = EventEmitter.call(this) || this;
24692
24770
  /**
24693
24771
  * 动画播放速度
24694
- */ this.speed = 1;
24772
+ */ _this.speed = 1;
24695
24773
  /**
24696
24774
  * 用于保存与当前合成相关的插件数据
24697
- */ this.loaderData = {};
24775
+ */ _this.loaderData = {};
24698
24776
  /**
24699
24777
  * 预合成数组
24700
- */ this.refContent = [];
24778
+ */ _this.refContent = [];
24701
24779
  /**
24702
24780
  * 预合成的合成属性,在 content 中会被其元素属性覆盖
24703
- */ this.refCompositionProps = new Map();
24781
+ */ _this.refCompositionProps = new Map();
24704
24782
  // TODO: 待优化
24705
- this.assigned = false;
24783
+ _this.assigned = false;
24706
24784
  /**
24707
24785
  * 销毁状态位
24708
- */ this.destroyed = false;
24709
- this.postLoaders = [];
24786
+ */ _this.destroyed = false;
24787
+ _this.postLoaders = [];
24710
24788
  /**
24711
24789
  * 合成暂停/播放 标识
24712
- */ this.paused = false;
24713
- this.lastVideoUpdateTime = 0;
24714
- var _props_reusable = props.reusable, reusable = _props_reusable === void 0 ? false : _props_reusable, _props_speed = props.speed, speed = _props_speed === void 0 ? 1 : _props_speed, _props_baseRenderOrder = props.baseRenderOrder, baseRenderOrder = _props_baseRenderOrder === void 0 ? 0 : _props_baseRenderOrder, renderer = props.renderer, onPlayerPause = props.onPlayerPause, onMessageItem = props.onMessageItem, onEnd = props.onEnd, event = props.event, width = props.width, height = props.height;
24715
- this.compositionSourceManager = new CompositionSourceManager(scene, renderer.engine);
24790
+ */ _this.paused = false;
24791
+ _this.lastVideoUpdateTime = 0;
24792
+ var _props_reusable = props.reusable, reusable = _props_reusable === void 0 ? false : _props_reusable, _props_speed = props.speed, speed = _props_speed === void 0 ? 1 : _props_speed, _props_baseRenderOrder = props.baseRenderOrder, baseRenderOrder = _props_baseRenderOrder === void 0 ? 0 : _props_baseRenderOrder, renderer = props.renderer, event = props.event, width = props.width, height = props.height, handleItemMessage = props.handleItemMessage;
24793
+ _this.compositionSourceManager = new CompositionSourceManager(scene, renderer.engine);
24716
24794
  scene.jsonScene.imgUsage = undefined;
24717
24795
  if (reusable) {
24718
- this.keepResource = true;
24796
+ _this.keepResource = true;
24719
24797
  scene.textures = undefined;
24720
24798
  scene.consumed = true;
24721
24799
  }
24722
- var _this_compositionSourceManager = this.compositionSourceManager, sourceContent = _this_compositionSourceManager.sourceContent, pluginSystem = _this_compositionSourceManager.pluginSystem, imgUsage = _this_compositionSourceManager.imgUsage, totalTime = _this_compositionSourceManager.totalTime, refCompositionProps = _this_compositionSourceManager.refCompositionProps;
24800
+ var _this_compositionSourceManager = _this.compositionSourceManager, sourceContent = _this_compositionSourceManager.sourceContent, pluginSystem = _this_compositionSourceManager.pluginSystem, imgUsage = _this_compositionSourceManager.imgUsage, totalTime = _this_compositionSourceManager.totalTime, refCompositionProps = _this_compositionSourceManager.refCompositionProps;
24723
24801
  assertExist(sourceContent);
24724
- this.renderer = renderer;
24725
- this.refCompositionProps = refCompositionProps;
24726
- this.rootItem = new VFXItem(this.getEngine(), sourceContent);
24727
- this.rootItem.name = "rootItem";
24728
- this.rootItem.composition = this;
24729
- this.rootComposition = this.rootItem.addComponent(CompositionComponent);
24730
- this.rootComposition.data = sourceContent;
24802
+ _this.renderer = renderer;
24803
+ _this.refCompositionProps = refCompositionProps;
24804
+ _this.rootItem = new VFXItem(_this.getEngine(), sourceContent);
24805
+ _this.rootItem.name = "rootItem";
24806
+ _this.rootItem.composition = _assert_this_initialized(_this);
24807
+ _this.rootComposition = _this.rootItem.addComponent(CompositionComponent);
24808
+ _this.rootComposition.startTime = sourceContent.startTime;
24809
+ _this.rootComposition.data = sourceContent;
24731
24810
  var imageUsage = !reusable && imgUsage;
24732
- this.width = width;
24733
- this.height = height;
24734
- this.renderOrder = baseRenderOrder;
24735
- this.id = sourceContent.id;
24736
- this.renderer = renderer;
24737
- this.texInfo = imageUsage != null ? imageUsage : {};
24738
- this.event = event;
24811
+ _this.width = width;
24812
+ _this.height = height;
24813
+ _this.renderOrder = baseRenderOrder;
24814
+ _this.id = sourceContent.id;
24815
+ _this.renderer = renderer;
24816
+ _this.texInfo = imageUsage != null ? imageUsage : {};
24817
+ _this.event = event;
24739
24818
  var _scene_startTime, _scene_timeInfos_asyncCompile;
24740
- this.statistic = {
24819
+ _this.statistic = {
24741
24820
  loadTime: totalTime != null ? totalTime : 0,
24742
24821
  loadStart: (_scene_startTime = scene.startTime) != null ? _scene_startTime : 0,
24743
24822
  firstFrameTime: 0,
24744
24823
  precompileTime: (_scene_timeInfos_asyncCompile = scene.timeInfos["asyncCompile"]) != null ? _scene_timeInfos_asyncCompile : scene.timeInfos["syncCompile"]
24745
24824
  };
24746
- this.reusable = reusable;
24747
- this.speed = speed;
24748
- this.autoRefTex = !this.keepResource && imageUsage && this.rootItem.endBehavior !== EndBehavior.restart;
24749
- this.name = sourceContent.name;
24750
- this.pluginSystem = pluginSystem;
24751
- this.pluginSystem.initializeComposition(this, scene);
24752
- this.camera = new Camera(this.name, _extends({}, sourceContent == null ? void 0 : sourceContent.camera, {
24825
+ _this.reusable = reusable;
24826
+ _this.speed = speed;
24827
+ _this.autoRefTex = !_this.keepResource && imageUsage && _this.rootItem.endBehavior !== EndBehavior.restart;
24828
+ _this.name = sourceContent.name;
24829
+ _this.pluginSystem = pluginSystem;
24830
+ _this.pluginSystem.initializeComposition(_assert_this_initialized(_this), scene);
24831
+ _this.camera = new Camera(_this.name, _extends({}, sourceContent == null ? void 0 : sourceContent.camera, {
24753
24832
  aspect: width / height
24754
24833
  }));
24755
- this.url = scene.url;
24756
- this.assigned = true;
24757
- this.globalTime = 0;
24758
- this.interactive = true;
24759
- this.onPlayerPause = onPlayerPause;
24760
- this.onMessageItem = onMessageItem;
24761
- this.onEnd = onEnd;
24762
- this.createRenderFrame();
24763
- this.rendererOptions = null;
24764
- this.rootComposition.createContent();
24765
- this.buildItemTree(this.rootItem);
24766
- this.rootItem.onEnd = function() {
24834
+ _this.url = scene.url;
24835
+ _this.assigned = true;
24836
+ _this.globalTime = 0;
24837
+ _this.interactive = true;
24838
+ _this.handleItemMessage = handleItemMessage;
24839
+ _this.createRenderFrame();
24840
+ _this.rendererOptions = null;
24841
+ _this.rootComposition.createContent();
24842
+ _this.buildItemTree(_this.rootItem);
24843
+ _this.rootItem.onEnd = function() {
24767
24844
  window.setTimeout(function() {
24768
- _this.onEnd == null ? void 0 : _this.onEnd.call(_this, _this);
24845
+ _this.emit("end", {
24846
+ composition: _assert_this_initialized(_this)
24847
+ });
24769
24848
  }, 0);
24770
24849
  };
24771
- this.pluginSystem.resetComposition(this, this.renderFrame);
24850
+ _this.pluginSystem.resetComposition(_assert_this_initialized(_this), _this.renderFrame);
24851
+ return _this;
24772
24852
  }
24773
24853
  var _proto = Composition.prototype;
24774
24854
  /**
@@ -24819,7 +24899,7 @@ var listOrder = 0;
24819
24899
  if (this.rootItem.ended && this.reusable) {
24820
24900
  this.restart();
24821
24901
  }
24822
- if (!this.rootComposition.started) {
24902
+ if (this.rootComposition.started) {
24823
24903
  this.gotoAndPlay(this.time - this.startTime);
24824
24904
  } else {
24825
24905
  this.gotoAndPlay(0);
@@ -24842,18 +24922,14 @@ var listOrder = 0;
24842
24922
  * 跳转合成到指定时间播放
24843
24923
  * @param time - 相对 startTime 的时间
24844
24924
  */ _proto.gotoAndPlay = function gotoAndPlay(time) {
24925
+ this.setTime(time);
24845
24926
  this.resume();
24846
- if (!this.rootComposition.started) {
24847
- this.rootComposition.start();
24848
- this.rootComposition.started = true;
24849
- }
24850
- this.forwardTime(time + this.startTime);
24851
24927
  };
24852
24928
  /**
24853
24929
  * 跳转合成到指定时间并暂停
24854
24930
  * @param time - 相对 startTime 的时间
24855
24931
  */ _proto.gotoAndStop = function gotoAndStop(time) {
24856
- this.gotoAndPlay(time);
24932
+ this.setTime(time);
24857
24933
  this.pause();
24858
24934
  };
24859
24935
  /**
@@ -24880,7 +24956,7 @@ var listOrder = 0;
24880
24956
  this.rootComposition.start();
24881
24957
  this.rootComposition.started = true;
24882
24958
  }
24883
- this.forwardTime(time + this.startTime, true);
24959
+ this.forwardTime(time + this.startTime);
24884
24960
  if (pause) {
24885
24961
  this.pause();
24886
24962
  }
@@ -24893,17 +24969,16 @@ var listOrder = 0;
24893
24969
  * 前进合成到指定时间
24894
24970
  * @param time - 相对0时刻的时间
24895
24971
  * @param skipRender - 是否跳过渲染
24896
- */ _proto.forwardTime = function forwardTime(time, skipRender) {
24897
- if (skipRender === void 0) skipRender = false;
24972
+ */ _proto.forwardTime = function forwardTime(time) {
24898
24973
  var deltaTime = time * 1000 - this.rootComposition.time * 1000;
24899
24974
  var reverse = deltaTime < 0;
24900
24975
  var step = 15;
24901
24976
  var t = Math.abs(deltaTime);
24902
24977
  var ss = reverse ? -step : step;
24903
24978
  for(t; t > step; t -= step){
24904
- this.update(ss, skipRender);
24979
+ this.update(ss);
24905
24980
  }
24906
- this.update(reverse ? -t : t, skipRender);
24981
+ this.update(reverse ? -t : t);
24907
24982
  };
24908
24983
  /**
24909
24984
  * 重置状态函数
@@ -24941,74 +25016,68 @@ var listOrder = 0;
24941
25016
  }
24942
25017
  };
24943
25018
  /**
24944
- * 是否合成需要重新播放
24945
- * @returns 重新播放合成标志位
24946
- */ _proto.shouldRestart = function shouldRestart() {
24947
- var _this_rootItem = this.rootItem, ended = _this_rootItem.ended, endBehavior = _this_rootItem.endBehavior;
24948
- return ended && endBehavior === EndBehavior.restart;
24949
- };
24950
- /**
24951
- * 是否合成需要销毁
24952
- * @returns 销毁合成标志位
24953
- */ _proto.shouldDispose = function shouldDispose() {
24954
- if (this.reusable) {
24955
- return false;
24956
- }
24957
- var _this_rootItem = this.rootItem, ended = _this_rootItem.ended, endBehavior = _this_rootItem.endBehavior;
24958
- // TODO: 合成结束行为
24959
- return ended && (!endBehavior || endBehavior === END_BEHAVIOR_PAUSE_AND_DESTROY);
24960
- };
24961
- /**
24962
25019
  * 合成更新,针对所有 item 的更新
24963
25020
  * @param deltaTime - 更新的时间步长
24964
25021
  * @param skipRender - 是否需要渲染
24965
- */ _proto.update = function update(deltaTime, skipRender) {
24966
- if (skipRender === void 0) skipRender = false;
25022
+ */ _proto.update = function update(deltaTime) {
24967
25023
  if (!this.assigned || this.paused) {
24968
25024
  return;
24969
25025
  }
24970
- if (this.shouldRestart()) {
24971
- this.restart();
24972
- // restart then tick to avoid flicker
24973
- }
24974
25026
  var time = this.getUpdateTime(deltaTime * this.speed);
24975
25027
  this.globalTime += time;
24976
- if (this.rootComposition.isActiveAndEnabled) {
24977
- var localTime = this.toLocalTime(this.globalTime / 1000);
24978
- this.rootComposition.time = localTime;
24979
- }
25028
+ this.updateRootComposition();
24980
25029
  this.updateVideo();
24981
25030
  // 更新 model-tree-plugin
24982
25031
  this.updatePluginLoaders(deltaTime);
25032
+ // scene VFXItem components lifetime function.
24983
25033
  this.callStart(this.rootItem);
24984
25034
  this.callUpdate(this.rootItem, time);
24985
25035
  this.callLateUpdate(this.rootItem, time);
24986
- // this.extraCamera?.getComponent(TimelineComponent)?.update(deltaTime);
24987
25036
  this.updateCamera();
25037
+ this.prepareRender();
24988
25038
  if (this.shouldDispose()) {
24989
- this.onEnd == null ? void 0 : this.onEnd.call(this, this);
24990
25039
  this.dispose();
24991
- } else {
24992
- if (!skipRender) {
24993
- this.prepareRender();
24994
- }
24995
25040
  }
24996
25041
  };
24997
25042
  _proto.toLocalTime = function toLocalTime(time) {
24998
25043
  var localTime = time - this.rootItem.start;
24999
25044
  var duration = this.rootItem.duration;
25000
25045
  if (localTime - duration > 0.001) {
25001
- if (this.rootItem.endBehavior === EndBehavior.restart) {
25002
- localTime = localTime % duration;
25003
- } else if (this.rootItem.endBehavior === EndBehavior.freeze) {
25004
- localTime = Math.min(duration, localTime);
25046
+ if (!this.rootItem.ended) {
25047
+ this.rootItem.ended = true;
25048
+ this.emit("end", {
25049
+ composition: this
25050
+ });
25051
+ }
25052
+ switch(this.rootItem.endBehavior){
25053
+ case EndBehavior.restart:
25054
+ {
25055
+ localTime = localTime % duration;
25056
+ this.restart();
25057
+ break;
25058
+ }
25059
+ case EndBehavior.freeze:
25060
+ {
25061
+ localTime = Math.min(duration, localTime);
25062
+ break;
25063
+ }
25064
+ case EndBehavior.forward:
25065
+ {
25066
+ break;
25067
+ }
25068
+ case EndBehavior.destroy:
25069
+ {
25070
+ break;
25071
+ }
25005
25072
  }
25006
25073
  }
25007
25074
  return localTime;
25008
25075
  };
25076
+ _proto.shouldDispose = function shouldDispose() {
25077
+ return this.rootItem.ended && this.rootItem.endBehavior === EndBehavior.destroy && !this.reusable;
25078
+ };
25009
25079
  _proto.getUpdateTime = function getUpdateTime(t) {
25010
25080
  var startTimeInMs = this.startTime * 1000;
25011
- // const content = this.rootItem;
25012
25081
  var now = this.rootComposition.time * 1000;
25013
25082
  if (t < 0 && now + t < startTimeInMs) {
25014
25083
  return startTimeInMs - now;
@@ -25156,6 +25225,14 @@ var listOrder = 0;
25156
25225
  });
25157
25226
  };
25158
25227
  /**
25228
+ * 更新主合成组件
25229
+ */ _proto.updateRootComposition = function updateRootComposition() {
25230
+ if (this.rootComposition.isActiveAndEnabled) {
25231
+ var localTime = this.toLocalTime(this.globalTime / 1000);
25232
+ this.rootComposition.time = localTime;
25233
+ }
25234
+ };
25235
+ /**
25159
25236
  * 通过名称获取元素
25160
25237
  * @param name - 元素名称
25161
25238
  * @returns 元素对象
@@ -25204,12 +25281,17 @@ var listOrder = 0;
25204
25281
  * @param type - 交互类型
25205
25282
  */ _proto.addInteractiveItem = function addInteractiveItem(item, type) {
25206
25283
  if (type === InteractType.MESSAGE) {
25207
- this.onMessageItem == null ? void 0 : this.onMessageItem.call(this, {
25284
+ this.handleItemMessage({
25208
25285
  name: item.name,
25209
25286
  phrase: MESSAGE_ITEM_PHRASE_BEGIN,
25210
25287
  id: item.id,
25211
25288
  compositionId: this.id
25212
25289
  });
25290
+ item.emit("message", {
25291
+ name: item.name,
25292
+ phrase: MESSAGE_ITEM_PHRASE_BEGIN,
25293
+ id: item.id
25294
+ });
25213
25295
  return item.id;
25214
25296
  }
25215
25297
  };
@@ -25218,14 +25300,19 @@ var listOrder = 0;
25218
25300
  * @param item - 交互元素
25219
25301
  * @param type - 交互类型
25220
25302
  */ _proto.removeInteractiveItem = function removeInteractiveItem(item, type) {
25221
- // MESSAGE ITEM的结束行为
25303
+ // MESSAGE ITEM 的结束行为
25222
25304
  if (type === InteractType.MESSAGE) {
25223
- this.onMessageItem == null ? void 0 : this.onMessageItem.call(this, {
25305
+ this.handleItemMessage({
25224
25306
  name: item.name,
25225
25307
  phrase: MESSAGE_ITEM_PHRASE_END,
25226
25308
  id: item.id,
25227
25309
  compositionId: this.id
25228
25310
  });
25311
+ item.emit("message", {
25312
+ name: item.name,
25313
+ phrase: MESSAGE_ITEM_PHRASE_END,
25314
+ id: item.id
25315
+ });
25229
25316
  }
25230
25317
  };
25231
25318
  /**
@@ -25319,9 +25406,10 @@ var listOrder = 0;
25319
25406
  (_this_rendererOptions = this.rendererOptions) == null ? void 0 : _this_rendererOptions.emptyTexture.dispose();
25320
25407
  (_this_pluginSystem = this.pluginSystem) == null ? void 0 : _this_pluginSystem.destroyComposition(this);
25321
25408
  this.update = function() {
25322
- logger.error("Update disposed composition: " + _this.name + ".");
25409
+ {
25410
+ logger.error("Update disposed composition: " + _this.name + ".");
25411
+ }
25323
25412
  };
25324
- this.onPlayerPause = noop;
25325
25413
  this.dispose = noop;
25326
25414
  if (textures && this.keepResource) {
25327
25415
  textures.forEach(function(tex) {
@@ -25519,7 +25607,7 @@ var listOrder = 0;
25519
25607
  }
25520
25608
  ]);
25521
25609
  return Composition;
25522
- }();
25610
+ }(EventEmitter);
25523
25611
 
25524
25612
  var SIZEOF_SHORT = 2;
25525
25613
  var SIZEOF_INT = 4;
@@ -27483,7 +27571,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem, true);
27483
27571
  registerPlugin("particle", ParticleLoader, VFXItem, true);
27484
27572
  registerPlugin("cal", CalculateLoader, VFXItem, true);
27485
27573
  registerPlugin("interact", InteractLoader, VFXItem, true);
27486
- var version$1 = "2.0.0-alpha.31";
27574
+ var version$1 = "2.0.0-alpha.33";
27487
27575
  logger.info("Core version: " + version$1 + ".");
27488
27576
 
27489
27577
  var _obj;
@@ -27557,6 +27645,13 @@ var _obj3;
27557
27645
  */ _this.uniforms = {};
27558
27646
  var shader = props == null ? void 0 : props.shader;
27559
27647
  var level = engine.gpuCapability.level;
27648
+ _this.shader = new Shader(engine);
27649
+ _this.shader.shaderData = _extends({}, shader, {
27650
+ id: generateGUID(),
27651
+ dataType: DataType.Shader,
27652
+ vertex: (shader == null ? void 0 : shader.vertex) || "",
27653
+ fragment: (shader == null ? void 0 : shader.fragment) || ""
27654
+ });
27560
27655
  for(var i = 0; i < maxSpriteMeshItemCount; i++){
27561
27656
  _this.uniforms["uSampler" + i] = new THREE.Uniform(null);
27562
27657
  }
@@ -28737,6 +28832,8 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
28737
28832
  var _this;
28738
28833
  _this = Renderer.call(this) || this;
28739
28834
  _this.engine = new ThreeEngine(gl);
28835
+ _this.engine.renderer = _assert_this_initialized(_this);
28836
+ _this.env = "";
28740
28837
  _this.renderingData = {
28741
28838
  //@ts-expect-error
28742
28839
  currentFrame: {}
@@ -28764,8 +28861,8 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
28764
28861
  var _this;
28765
28862
  _this = _THREE_Group.call(this) || this;
28766
28863
  _this.compositions = [];
28767
- _this.baseCompositionIndex = 0;
28768
28864
  _this.env = "";
28865
+ _this.baseCompositionIndex = 0;
28769
28866
  var width = options.width, height = options.height, camera = options.camera;
28770
28867
  _this.renderer = new ThreeRenderer(context);
28771
28868
  _this.width = width;
@@ -28834,6 +28931,19 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
28834
28931
  });
28835
28932
  })();
28836
28933
  };
28934
+ _proto.pause = function pause() {
28935
+ this.dispatchEvent({
28936
+ type: "pause"
28937
+ });
28938
+ this.compositions.forEach(function(composition) {
28939
+ composition.pause();
28940
+ });
28941
+ };
28942
+ _proto.resume = function resume() {
28943
+ this.compositions.forEach(function(composition) {
28944
+ composition.resume();
28945
+ });
28946
+ };
28837
28947
  _proto.createComposition = function createComposition(url, options) {
28838
28948
  if (options === void 0) options = {};
28839
28949
  var _this = this;
@@ -28890,8 +29000,20 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
28890
29000
  composition = new ThreeComposition(_extends({}, opts, {
28891
29001
  width: _this.width,
28892
29002
  height: _this.height,
28893
- renderer: _this.renderer
29003
+ renderer: _this.renderer,
29004
+ handleItemMessage: function(message) {
29005
+ _this.dispatchEvent({
29006
+ type: "message",
29007
+ message: message
29008
+ });
29009
+ }
28894
29010
  }), scene);
29011
+ composition.on("end", function() {
29012
+ _this.dispatchEvent({
29013
+ type: "end",
29014
+ composition: composition
29015
+ });
29016
+ });
28895
29017
  _this.renderer.engine.setOptions({
28896
29018
  threeCamera: _this.camera,
28897
29019
  threeGroup: _this,
@@ -29116,8 +29238,8 @@ setMaxSpriteMeshItemCount(8);
29116
29238
  */ Mesh.create = function(engine, props) {
29117
29239
  return new ThreeMesh(engine, props);
29118
29240
  };
29119
- var version = "2.0.0-alpha.31";
29241
+ var version = "2.0.0-alpha.33";
29120
29242
  logger.info("THREEJS plugin version: " + version + ".");
29121
29243
 
29122
- export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, AssetLoader, AssetManager, BYTES_TYPE_MAP, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, Component, Composition, CompositionComponent, CompositionSourceManager, DEFAULT_FONTS, 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, EventSystem, FilterMode, Float16ArrayWrapper, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, ItemBehaviour, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, PostProcessVolume, 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, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderType, ShaderVariant, SpriteColorPlayable, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, createCopyShader, createGLContext, createKeyFrameMeta, createShaderWithMacros, createShape, createValueGetter, decimalEqual, defaultGlobalVolume, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, 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, isSceneJSON, isSceneURL, isSceneWithOptions, 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, pluginLoaderMap, pointOnLine, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize, version, vertexFormatType2GLType };
29244
+ export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, AssetLoader, AssetManager, BYTES_TYPE_MAP, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, Component, Composition, CompositionComponent, CompositionSourceManager, DEFAULT_FONTS, 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, FilterMode, Float16ArrayWrapper, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, ItemBehaviour, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, PostProcessVolume, 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, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderType, ShaderVariant, SpriteColorPlayable, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, createCopyShader, createGLContext, createKeyFrameMeta, createShaderWithMacros, createShape, createValueGetter, decimalEqual, defaultGlobalVolume, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, 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, isSceneJSON, isSceneURL, isSceneWithOptions, 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, pluginLoaderMap, pointOnLine, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize, version, vertexFormatType2GLType };
29123
29245
  //# sourceMappingURL=index.mjs.map