@galacean/effects-core 2.8.0-alpha.3 → 2.8.0-alpha.4

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.8.0-alpha.3
6
+ * Version: v2.8.0-alpha.4
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -2879,7 +2879,6 @@ var plugins = [];
2879
2879
  pluginLoaderMap[name] = pluginClass;
2880
2880
  var pluginInstance = new pluginClass();
2881
2881
  pluginInstance.name = name;
2882
- pluginInstance.initialize();
2883
2882
  plugins.push(pluginInstance);
2884
2883
  plugins.sort(function(a, b) {
2885
2884
  return a.order - b.order;
@@ -2903,29 +2902,29 @@ var PluginSystem = /*#__PURE__*/ function() {
2903
2902
  };
2904
2903
  PluginSystem.initializeComposition = function initializeComposition(composition, scene) {
2905
2904
  plugins.forEach(function(loader) {
2906
- return loader.onCompositionConstructed(composition, scene);
2905
+ return loader.onCompositionCreated(composition, scene);
2907
2906
  });
2908
2907
  };
2909
2908
  PluginSystem.destroyComposition = function destroyComposition(comp) {
2910
2909
  plugins.forEach(function(loader) {
2911
- return loader.onCompositionDestroyed(comp);
2910
+ return loader.onCompositionDestroy(comp);
2912
2911
  });
2913
2912
  };
2914
- PluginSystem.processAssets = function processAssets(scene, options) {
2913
+ PluginSystem.onAssetsLoadStart = function onAssetsLoadStart(scene, options) {
2915
2914
  return _async_to_generator(function() {
2916
2915
  return __generator(this, function(_state) {
2917
2916
  return [
2918
2917
  2,
2919
2918
  Promise.all(plugins.map(function(plugin) {
2920
- return plugin.processAssets(scene, options);
2919
+ return plugin.onAssetsLoadStart(scene, options);
2921
2920
  }))
2922
2921
  ];
2923
2922
  });
2924
2923
  })();
2925
2924
  };
2926
- PluginSystem.loadResources = function loadResources(scene, options, engine) {
2925
+ PluginSystem.onAssetsLoadFinish = function onAssetsLoadFinish(scene, options, engine) {
2927
2926
  plugins.forEach(function(loader) {
2928
- return loader.prepareResource(scene, options, engine);
2927
+ return loader.onAssetsLoadFinish(scene, options, engine);
2929
2928
  });
2930
2929
  };
2931
2930
  return PluginSystem;
@@ -2955,20 +2954,18 @@ function getPluginUsageInfo(name) {
2955
2954
  /**
2956
2955
  * 抽象插件类
2957
2956
  * 注册合成不同生命周期的回调函数
2958
- */ var AbstractPlugin = /*#__PURE__*/ function() {
2959
- function AbstractPlugin() {
2957
+ */ var Plugin = /*#__PURE__*/ function() {
2958
+ function Plugin() {
2960
2959
  this.order = 100;
2961
- this.name = "";
2960
+ this.name = "Plugin";
2962
2961
  }
2963
- var _proto = AbstractPlugin.prototype;
2964
- _proto.initialize = function initialize() {};
2962
+ var _proto = Plugin.prototype;
2965
2963
  /**
2966
- * loadScene 函数调用的时候会触发此函数,
2967
- * 此阶段可以加载插件所需类型资源,并返回原始资源和加载后的资源。
2968
- * @param scene
2969
- * @param options
2970
- * @returns
2971
- */ _proto.processAssets = function processAssets(scene, options) {
2964
+ * 场景加载时触发,用于加载插件所需的自定义资源。
2965
+ * 此阶段适合发起异步资源请求。
2966
+ * @param scene - 场景对象
2967
+ * @param options - 场景加载选项
2968
+ */ _proto.onAssetsLoadStart = function onAssetsLoadStart(scene, options) {
2972
2969
  return _async_to_generator(function() {
2973
2970
  return __generator(this, function(_state) {
2974
2971
  return [
@@ -2978,17 +2975,22 @@ function getPluginUsageInfo(name) {
2978
2975
  })();
2979
2976
  };
2980
2977
  /**
2981
- * loadScene 函数调用的时候会触发此函数,
2982
- * 此阶段时,json 中的图片和二进制已经被加载完成,可以对加载好的资源做进一步处理,
2983
- * 如果 promise reject, loadScene 函数同样会被 reject,表示场景加载失败。
2984
- * 请记住,整个 load 阶段都不要创建 GL 相关的对象,只创建 JS 对象
2985
- * 此阶段晚于 processAssets
2986
- * @param {Scene} scene
2987
- * @param {SceneLoadOptions} options
2988
- */ _proto.prepareResource = function prepareResource(scene, options, engine) {};
2989
- _proto.onCompositionConstructed = function onCompositionConstructed(composition, scene) {};
2990
- _proto.onCompositionDestroyed = function onCompositionDestroyed(composition) {};
2991
- return AbstractPlugin;
2978
+ * 场景资源加载完成后触发。
2979
+ * 此时 JSON 中的图片和二进制已加载完成,可对资源做进一步处理。
2980
+ * @param scene - 场景对象
2981
+ * @param options - 场景加载选项
2982
+ * @param engine - 引擎实例
2983
+ */ _proto.onAssetsLoadFinish = function onAssetsLoadFinish(scene, options, engine) {};
2984
+ /**
2985
+ * 合成创建完成后触发。
2986
+ * @param composition - 合成对象
2987
+ * @param scene - 场景对象
2988
+ */ _proto.onCompositionCreated = function onCompositionCreated(composition, scene) {};
2989
+ /**
2990
+ * 合成销毁时触发。
2991
+ * @param composition - 合成对象
2992
+ */ _proto.onCompositionDestroy = function onCompositionDestroy(composition) {};
2993
+ return Plugin;
2992
2994
  }();
2993
2995
 
2994
2996
  function _set_prototype_of(o, p) {
@@ -10648,6 +10650,9 @@ var DrawObjectPass = /*#__PURE__*/ function(RenderPass) {
10648
10650
  stencilAction: TextureLoadAction.clear
10649
10651
  });
10650
10652
  }
10653
+ this.meshes.sort(function(a, b) {
10654
+ return a.priority - b.priority;
10655
+ });
10651
10656
  renderer.renderMeshes(this.meshes);
10652
10657
  };
10653
10658
  _proto.onCameraCleanup = function onCameraCleanup(renderer) {
@@ -16585,13 +16590,49 @@ CameraController = __decorate([
16585
16590
  effectsClass(DataType.CameraController)
16586
16591
  ], CameraController);
16587
16592
 
16588
- var CameraVFXItemLoader = /*#__PURE__*/ function(AbstractPlugin) {
16589
- _inherits(CameraVFXItemLoader, AbstractPlugin);
16593
+ function _get_prototype_of(o) {
16594
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
16595
+ return o.__proto__ || Object.getPrototypeOf(o);
16596
+ };
16597
+ return _get_prototype_of(o);
16598
+ }
16599
+
16600
+ function _is_native_function(fn) {
16601
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
16602
+ }
16603
+
16604
+ function _wrap_native_super(Class) {
16605
+ var _cache = typeof Map === "function" ? new Map() : undefined;
16606
+ _wrap_native_super = function _wrap_native_super(Class) {
16607
+ if (Class === null || !_is_native_function(Class)) return Class;
16608
+ if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function");
16609
+ if (typeof _cache !== "undefined") {
16610
+ if (_cache.has(Class)) return _cache.get(Class);
16611
+ _cache.set(Class, Wrapper);
16612
+ }
16613
+ function Wrapper() {
16614
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
16615
+ }
16616
+ Wrapper.prototype = Object.create(Class.prototype, {
16617
+ constructor: {
16618
+ value: Wrapper,
16619
+ enumerable: false,
16620
+ writable: true,
16621
+ configurable: true
16622
+ }
16623
+ });
16624
+ return _set_prototype_of(Wrapper, Class);
16625
+ };
16626
+ return _wrap_native_super(Class);
16627
+ }
16628
+
16629
+ var CameraVFXItemLoader = /*#__PURE__*/ function(Plugin) {
16630
+ _inherits(CameraVFXItemLoader, Plugin);
16590
16631
  function CameraVFXItemLoader() {
16591
- return AbstractPlugin.apply(this, arguments);
16632
+ return Plugin.apply(this, arguments);
16592
16633
  }
16593
16634
  return CameraVFXItemLoader;
16594
- }(AbstractPlugin);
16635
+ }(_wrap_native_super(Plugin));
16595
16636
 
16596
16637
  var HitTestType;
16597
16638
  (function(HitTestType) {
@@ -16875,13 +16916,13 @@ function getCoord(event) {
16875
16916
  };
16876
16917
  }
16877
16918
 
16878
- var InteractLoader = /*#__PURE__*/ function(AbstractPlugin) {
16879
- _inherits(InteractLoader, AbstractPlugin);
16919
+ var InteractLoader = /*#__PURE__*/ function(Plugin) {
16920
+ _inherits(InteractLoader, Plugin);
16880
16921
  function InteractLoader() {
16881
- return AbstractPlugin.apply(this, arguments);
16922
+ return Plugin.apply(this, arguments);
16882
16923
  }
16883
16924
  return InteractLoader;
16884
- }(AbstractPlugin);
16925
+ }(_wrap_native_super(Plugin));
16885
16926
 
16886
16927
  var vertex = "\nprecision highp float;\n\nattribute vec2 aPoint;\nuniform vec4 uPos;\nuniform vec2 uSize;\nuniform vec4 uQuat;\nuniform vec4 uColor;\nuniform mat4 effects_ObjectToWorld;\nuniform mat4 effects_MatrixInvV;\nuniform mat4 effects_MatrixVP;\nvarying vec4 vColor;\n\nvec3 rotateByQuat(vec3 a, vec4 quat){\n vec3 qvec = quat.xyz;\n vec3 uv = cross(qvec, a);\n vec3 uuv = cross(qvec, uv) * 2.;\n return a +(uv * 2. * quat.w + uuv);\n}\n\nvoid main() {\n vec4 _pos = uPos;\n vec3 point = rotateByQuat(vec3(aPoint.xy * uSize, 0.),uQuat);\n vec4 pos = vec4(_pos.xyz, 1.0);\n pos = effects_ObjectToWorld * pos;\n pos.xyz += effects_MatrixInvV[0].xyz * point.x+ effects_MatrixInvV[1].xyz * point.y;\n gl_Position = effects_MatrixVP * pos;\n vColor = uColor;\n}\n";
16887
16928
  var fragment = "\nprecision highp float;\n\n#define fragColor gl_FragColor\n\nvarying vec4 vColor;\nvoid main() {\n gl_FragColor = vColor*vColor.a;\n}\n";
@@ -17480,16 +17521,16 @@ function shouldIgnoreBouncing(arg, mul) {
17480
17521
  return MeshCollider;
17481
17522
  }();
17482
17523
 
17483
- var SpriteLoader = /*#__PURE__*/ function(AbstractPlugin) {
17484
- _inherits(SpriteLoader, AbstractPlugin);
17524
+ var SpriteLoader = /*#__PURE__*/ function(Plugin) {
17525
+ _inherits(SpriteLoader, Plugin);
17485
17526
  function SpriteLoader() {
17486
17527
  var _this;
17487
- _this = AbstractPlugin.apply(this, arguments) || this;
17528
+ _this = Plugin.apply(this, arguments) || this;
17488
17529
  _this.name = "sprite";
17489
17530
  return _this;
17490
17531
  }
17491
17532
  return SpriteLoader;
17492
- }(AbstractPlugin);
17533
+ }(_wrap_native_super(Plugin));
17493
17534
 
17494
17535
  /**
17495
17536
  * 动画图可播放节点对象
@@ -19980,7 +20021,7 @@ function calculateDirection(prePoint, point, nextPoint) {
19980
20021
  if (this.time >= 0 && this.time < particleSystem.item.duration && particleSystem.isEnded()) {
19981
20022
  particleSystem.reset();
19982
20023
  }
19983
- particleSystem.update(this.time - particleSystem.time);
20024
+ particleSystem.simulate(this.time - particleSystem.time);
19984
20025
  }
19985
20026
  this.lastTime = this.time;
19986
20027
  };
@@ -21431,126 +21472,133 @@ var ParticleSystem = /*#__PURE__*/ function(Component) {
21431
21472
  this.initEmitterTransform();
21432
21473
  };
21433
21474
  _proto.onUpdate = function onUpdate(dt) {
21434
- this.update(dt);
21475
+ if (!this.frozen) {
21476
+ this.update(dt);
21477
+ }
21478
+ };
21479
+ _proto.simulate = function simulate(time) {
21480
+ this.update(time * 1000);
21481
+ this.frozen = true;
21435
21482
  };
21436
21483
  _proto.update = function update(delta) {
21437
21484
  var _this = this;
21438
- if (this.started && !this.frozen) {
21439
- var now = this.time + delta / 1000;
21440
- var options = this.options;
21441
- var loopStartTime = this.loopStartTime;
21442
- var emission = this.emission;
21443
- this.time = now;
21444
- this.upDirectionWorld = null;
21445
- this.renderer.updateTime(now, delta);
21446
- var link = this.particleLink;
21447
- var emitterLifetime = (now - loopStartTime) / this.item.duration;
21448
- var timePassed = this.timePassed;
21449
- var trailUpdated = false;
21450
- var updateTrail = function() {
21451
- if (_this.trails && !trailUpdated) {
21452
- trailUpdated = true;
21453
- link.forEach(function(param) {
21454
- var time = param[0], pointIndex = param[1], delay = param[2], point = param[3];
21455
- if (time < timePassed) {
21456
- _this.clearPointTrail(pointIndex);
21457
- } else if (timePassed > delay) {
21458
- _this.updatePointTrail(pointIndex, emitterLifetime, point, delay);
21459
- }
21460
- });
21485
+ if (!this.started) {
21486
+ return;
21487
+ }
21488
+ var now = this.time + delta / 1000;
21489
+ var options = this.options;
21490
+ var loopStartTime = this.loopStartTime;
21491
+ var emission = this.emission;
21492
+ this.time = now;
21493
+ this.upDirectionWorld = null;
21494
+ this.renderer.updateTime(now, delta);
21495
+ var link = this.particleLink;
21496
+ var emitterLifetime = (now - loopStartTime) / this.item.duration;
21497
+ var timePassed = this.timePassed;
21498
+ var trailUpdated = false;
21499
+ var updateTrail = function() {
21500
+ if (_this.trails && !trailUpdated) {
21501
+ trailUpdated = true;
21502
+ link.forEach(function(param) {
21503
+ var time = param[0], pointIndex = param[1], delay = param[2], point = param[3];
21504
+ if (time < timePassed) {
21505
+ _this.clearPointTrail(pointIndex);
21506
+ } else if (timePassed > delay) {
21507
+ _this.updatePointTrail(pointIndex, emitterLifetime, point, delay);
21508
+ }
21509
+ });
21510
+ }
21511
+ };
21512
+ if (!this.ended) {
21513
+ var duration = this.item.duration;
21514
+ var lifetime = this.lifetime;
21515
+ if (timePassed < duration) {
21516
+ var interval = 1 / emission.rateOverTime.getValue(lifetime);
21517
+ var pointCount = Math.floor((timePassed - this.lastEmitTime) / interval);
21518
+ var maxEmissionCount = pointCount;
21519
+ var timeDelta = interval / pointCount;
21520
+ var meshTime = now;
21521
+ var maxCount = options.maxCount;
21522
+ this.updateEmitterTransform(timePassed);
21523
+ var shouldSkipGenerate = function() {
21524
+ var first = link.first;
21525
+ return _this.emissionStopped || link.length === maxCount && first && first.content[0] - loopStartTime > timePassed;
21526
+ };
21527
+ for(var i = 0; i < maxEmissionCount && i < maxCount; i++){
21528
+ if (shouldSkipGenerate()) {
21529
+ break;
21530
+ }
21531
+ var p = this.createPoint(lifetime);
21532
+ p.delay += meshTime + i * timeDelta;
21533
+ this.addParticle(p, maxCount);
21534
+ this.lastEmitTime = timePassed;
21461
21535
  }
21462
- };
21463
- if (!this.ended) {
21464
- var duration = this.item.duration;
21465
- var lifetime = this.lifetime;
21466
- if (timePassed < duration) {
21467
- var interval = 1 / emission.rateOverTime.getValue(lifetime);
21468
- var pointCount = Math.floor((timePassed - this.lastEmitTime) / interval);
21469
- var maxEmissionCount = pointCount;
21470
- var timeDelta = interval / pointCount;
21471
- var meshTime = now;
21472
- var maxCount = options.maxCount;
21473
- this.updateEmitterTransform(timePassed);
21474
- var shouldSkipGenerate = function() {
21475
- var first = link.first;
21476
- return _this.emissionStopped || link.length === maxCount && first && first.content[0] - loopStartTime > timePassed;
21477
- };
21478
- for(var i = 0; i < maxEmissionCount && i < maxCount; i++){
21479
- if (shouldSkipGenerate()) {
21480
- break;
21481
- }
21482
- var p = this.createPoint(lifetime);
21483
- p.delay += meshTime + i * timeDelta;
21484
- this.addParticle(p, maxCount);
21485
- this.lastEmitTime = timePassed;
21536
+ var bursts = emission.bursts;
21537
+ for(var j = (bursts == null ? void 0 : bursts.length) - 1, cursor = 0; j >= 0 && cursor < maxCount; j--){
21538
+ if (shouldSkipGenerate()) {
21539
+ break;
21486
21540
  }
21487
- var bursts = emission.bursts;
21488
- for(var j = (bursts == null ? void 0 : bursts.length) - 1, cursor = 0; j >= 0 && cursor < maxCount; j--){
21489
- if (shouldSkipGenerate()) {
21490
- break;
21541
+ var burst = bursts[j];
21542
+ var opts = !burst.disabled && burst.getGeneratorOptions(timePassed, lifetime);
21543
+ if (opts) {
21544
+ var originVec = [
21545
+ 0,
21546
+ 0,
21547
+ 0
21548
+ ];
21549
+ var offsets = emission.burstOffsets[j];
21550
+ var burstOffset = offsets && offsets[opts.cycleIndex] || originVec;
21551
+ if (burst.once) {
21552
+ this.removeBurst(j);
21491
21553
  }
21492
- var burst = bursts[j];
21493
- var opts = !burst.disabled && burst.getGeneratorOptions(timePassed, lifetime);
21494
- if (opts) {
21495
- var originVec = [
21496
- 0,
21497
- 0,
21498
- 0
21499
- ];
21500
- var offsets = emission.burstOffsets[j];
21501
- var burstOffset = offsets && offsets[opts.cycleIndex] || originVec;
21502
- if (burst.once) {
21503
- this.removeBurst(j);
21504
- }
21505
- for(var i1 = 0; i1 < opts.count && cursor < maxCount; i1++){
21506
- var _p_transform;
21507
- if (shouldSkipGenerate()) {
21508
- break;
21509
- }
21510
- var p1 = this.initPoint(this.shape.generate({
21511
- total: opts.total,
21512
- index: opts.index,
21513
- burstIndex: i1,
21514
- burstCount: opts.count
21515
- }));
21516
- p1.delay += meshTime;
21517
- cursor++;
21518
- (_p_transform = p1.transform).translate.apply(_p_transform, [].concat(burstOffset));
21519
- this.addParticle(p1, maxCount);
21554
+ for(var i1 = 0; i1 < opts.count && cursor < maxCount; i1++){
21555
+ var _p_transform;
21556
+ if (shouldSkipGenerate()) {
21557
+ break;
21520
21558
  }
21559
+ var p1 = this.initPoint(this.shape.generate({
21560
+ total: opts.total,
21561
+ index: opts.index,
21562
+ burstIndex: i1,
21563
+ burstCount: opts.count
21564
+ }));
21565
+ p1.delay += meshTime;
21566
+ cursor++;
21567
+ (_p_transform = p1.transform).translate.apply(_p_transform, [].concat(burstOffset));
21568
+ this.addParticle(p1, maxCount);
21521
21569
  }
21522
21570
  }
21523
- } else if (this.item.endBehavior === EndBehavior.restart) {
21524
- updateTrail();
21525
- this.loopStartTime = now - duration;
21526
- this.lastEmitTime -= duration;
21527
- this.time -= duration;
21528
- emission.bursts.forEach(function(b) {
21529
- return b.reset();
21530
- });
21531
- this.particleLink.forEach(function(content) {
21532
- content[0] -= duration;
21533
- content[2] -= duration;
21534
- content[3].delay -= duration;
21535
- });
21536
- this.renderer.minusTimeForLoop(duration);
21537
- } else {
21538
- this.ended = true;
21539
- var endBehavior = this.item.endBehavior;
21540
- if (endBehavior === EndBehavior.freeze) {
21541
- this.frozen = true;
21542
- }
21543
21571
  }
21544
- } else if (this.item.endBehavior !== EndBehavior.restart) {
21545
- if (EndBehavior.destroy === this.item.endBehavior) {
21546
- var node = link.last;
21547
- if (node && node.content[0] < this.time) {
21548
- this.destroyed = true;
21549
- }
21572
+ } else if (this.item.endBehavior === EndBehavior.restart) {
21573
+ updateTrail();
21574
+ this.loopStartTime = now - duration;
21575
+ this.lastEmitTime -= duration;
21576
+ this.time -= duration;
21577
+ emission.bursts.forEach(function(b) {
21578
+ return b.reset();
21579
+ });
21580
+ this.particleLink.forEach(function(content) {
21581
+ content[0] -= duration;
21582
+ content[2] -= duration;
21583
+ content[3].delay -= duration;
21584
+ });
21585
+ this.renderer.minusTimeForLoop(duration);
21586
+ } else {
21587
+ this.ended = true;
21588
+ var endBehavior = this.item.endBehavior;
21589
+ if (endBehavior === EndBehavior.freeze) {
21590
+ this.frozen = true;
21591
+ }
21592
+ }
21593
+ } else if (this.item.endBehavior !== EndBehavior.restart) {
21594
+ if (EndBehavior.destroy === this.item.endBehavior) {
21595
+ var node = link.last;
21596
+ if (node && node.content[0] < this.time) {
21597
+ this.destroyed = true;
21550
21598
  }
21551
21599
  }
21552
- updateTrail();
21553
21600
  }
21601
+ updateTrail();
21554
21602
  };
21555
21603
  _proto.drawStencilMask = function drawStencilMask(renderer) {
21556
21604
  if (!this.isActiveAndEnabled) {
@@ -25590,7 +25638,6 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25590
25638
  _this = MaskableGraphic.call(this, engine) || this;
25591
25639
  _this.time = 0;
25592
25640
  _this.duration = 1;
25593
- _this.loop = true;
25594
25641
  /**
25595
25642
  * @internal
25596
25643
  */ _this.splits = singleSplits;
@@ -25605,11 +25652,15 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25605
25652
  var _this = this;
25606
25653
  var time = this.time;
25607
25654
  var duration = this.duration;
25608
- if (time > duration && this.loop) {
25655
+ var textureAnimation = this.textureSheetAnimation;
25656
+ var _textureAnimation_loop;
25657
+ // TODO: Update textureAnimation spec.
25658
+ // @ts-expect-error
25659
+ var loop = (_textureAnimation_loop = textureAnimation == null ? void 0 : textureAnimation.loop) != null ? _textureAnimation_loop : true;
25660
+ if (time > duration && loop) {
25609
25661
  time = time % duration;
25610
25662
  }
25611
25663
  var life = Math.min(Math.max(time / duration, 0.0), 1.0);
25612
- var ta = this.textureSheetAnimation;
25613
25664
  var video = this.renderer.texture.source.video;
25614
25665
  if (video) {
25615
25666
  if (time === 0) {
@@ -25621,9 +25672,9 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25621
25672
  }
25622
25673
  this.renderer.texture.uploadCurrentVideoFrame();
25623
25674
  }
25624
- if (ta) {
25675
+ if (textureAnimation) {
25625
25676
  var _this_material_getVector4;
25626
- var total = ta.total || ta.row * ta.col;
25677
+ var total = textureAnimation.total || textureAnimation.row * textureAnimation.col;
25627
25678
  var texRectX = 0;
25628
25679
  var texRectY = 0;
25629
25680
  var texRectW = 1;
@@ -25644,20 +25695,20 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25644
25695
  }
25645
25696
  var dx, dy;
25646
25697
  if (flip) {
25647
- dx = 1 / ta.row * texRectW;
25648
- dy = 1 / ta.col * texRectH;
25698
+ dx = 1 / textureAnimation.row * texRectW;
25699
+ dy = 1 / textureAnimation.col * texRectH;
25649
25700
  } else {
25650
- dx = 1 / ta.col * texRectW;
25651
- dy = 1 / ta.row * texRectH;
25701
+ dx = 1 / textureAnimation.col * texRectW;
25702
+ dy = 1 / textureAnimation.row * texRectH;
25652
25703
  }
25653
25704
  var texOffset;
25654
- if (ta.animate) {
25705
+ if (textureAnimation.animate) {
25655
25706
  var frameIndex = Math.round(life * (total - 1));
25656
- var yIndex = Math.floor(frameIndex / ta.col);
25657
- var xIndex = frameIndex - yIndex * ta.col;
25707
+ var yIndex = Math.floor(frameIndex / textureAnimation.col);
25708
+ var xIndex = frameIndex - yIndex * textureAnimation.col;
25658
25709
  texOffset = flip ? [
25659
25710
  dx * yIndex,
25660
- dy * (ta.col - xIndex)
25711
+ dy * (textureAnimation.col - xIndex)
25661
25712
  ] : [
25662
25713
  dx * xIndex,
25663
25714
  dy * (1 + yIndex)
@@ -25845,8 +25896,6 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25845
25896
  var _data_duration;
25846
25897
  //@ts-expect-error
25847
25898
  this.duration = (_data_duration = data.duration) != null ? _data_duration : this.item.duration;
25848
- var _data_loop;
25849
- this.loop = (_data_loop = data.loop) != null ? _data_loop : true;
25850
25899
  };
25851
25900
  return SpriteComponent;
25852
25901
  }(MaskableGraphic);
@@ -25854,21 +25903,21 @@ SpriteComponent = __decorate([
25854
25903
  effectsClass(DataType.SpriteComponent)
25855
25904
  ], SpriteComponent);
25856
25905
 
25857
- var ParticleLoader = /*#__PURE__*/ function(AbstractPlugin) {
25858
- _inherits(ParticleLoader, AbstractPlugin);
25906
+ var ParticleLoader = /*#__PURE__*/ function(Plugin) {
25907
+ _inherits(ParticleLoader, Plugin);
25859
25908
  function ParticleLoader() {
25860
- return AbstractPlugin.apply(this, arguments);
25909
+ return Plugin.apply(this, arguments);
25861
25910
  }
25862
25911
  return ParticleLoader;
25863
- }(AbstractPlugin);
25912
+ }(_wrap_native_super(Plugin));
25864
25913
 
25865
- var CalculateLoader = /*#__PURE__*/ function(AbstractPlugin) {
25866
- _inherits(CalculateLoader, AbstractPlugin);
25914
+ var CalculateLoader = /*#__PURE__*/ function(Plugin) {
25915
+ _inherits(CalculateLoader, Plugin);
25867
25916
  function CalculateLoader() {
25868
- return AbstractPlugin.apply(this, arguments);
25917
+ return Plugin.apply(this, arguments);
25869
25918
  }
25870
25919
  return CalculateLoader;
25871
- }(AbstractPlugin);
25920
+ }(_wrap_native_super(Plugin));
25872
25921
 
25873
25922
  // Based on:
25874
25923
  /**
@@ -28970,6 +29019,12 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
28970
29019
  /**
28971
29020
  * 每一行文本的最大宽度
28972
29021
  */ _this.maxLineWidth = 0;
29022
+ /**
29023
+ * 初始文本宽度,用于计算缩放比例
29024
+ */ _this.baseTextWidth = 0;
29025
+ /**
29026
+ * 初始 `transform.size.x`,用于按比例更新显示宽度
29027
+ */ _this.baseScaleX = 1;
28973
29028
  _this.name = "MText" + seed$1++;
28974
29029
  // 初始化canvas资源
28975
29030
  _this.canvas = canvasPool.getCanvas();
@@ -28995,10 +29050,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
28995
29050
  text: "默认文本",
28996
29051
  fontFamily: "AlibabaSans-BoldItalic",
28997
29052
  fontSize: 40,
29053
+ // 统一使用 0-1 颜色值
28998
29054
  textColor: [
28999
- 255,
29000
- 255,
29001
- 255,
29055
+ 1,
29056
+ 1,
29057
+ 1,
29002
29058
  1
29003
29059
  ],
29004
29060
  fontWeight: TextWeight.normal,
@@ -29035,6 +29091,10 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29035
29091
  // TextComponentBase
29036
29092
  this.updateWithOptions(options);
29037
29093
  this.renderText(options);
29094
+ // 记录初始的 textWidth 和 x 缩放,用于后续按比例更新显示宽度
29095
+ // 添加兜底值 1 防止除 0
29096
+ this.baseTextWidth = options.textWidth || this.textLayout.width || 1;
29097
+ this.baseScaleX = this.item.transform.size.x;
29038
29098
  // 恢复默认颜色
29039
29099
  this.material.setColor("_Color", new Color(1, 1, 1, 1));
29040
29100
  };
@@ -29233,9 +29293,9 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29233
29293
  if (style.isOutlined) {
29234
29294
  _this.setupOutline();
29235
29295
  }
29236
- // 文本颜色 - 直接使用 vec4 原值,不乘以 255
29296
+ // textColor 统一是 0-1,写入 canvas 时乘 255
29237
29297
  var _style_textColor = style.textColor, r = _style_textColor[0], g = _style_textColor[1], b = _style_textColor[2], a = _style_textColor[3];
29238
- context.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + a + ")";
29298
+ context.fillStyle = "rgba(" + r * 255 + ", " + g * 255 + ", " + b * 255 + ", " + a + ")";
29239
29299
  var charsInfo = [];
29240
29300
  var x = 0;
29241
29301
  var y = layout.getOffsetY(style, _this.lineCount, lineHeight, fontSize);
@@ -29297,6 +29357,46 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29297
29357
  layout.autoWidth = normalizedValue;
29298
29358
  this.isDirty = true;
29299
29359
  };
29360
+ /**
29361
+ * 设置文本框宽度
29362
+ * 手动设置宽度时会自动关闭 `autoWidth`
29363
+ * 同时会按比例更新 `transform.size.x`,让 UI 框宽度也跟着变化
29364
+ * @param value - 文本框宽度
29365
+ */ _proto.setTextWidth = function setTextWidth(value) {
29366
+ var width = Math.max(0, Number(value) || 0);
29367
+ var layout = this.textLayout;
29368
+ // 宽度没变且已是非 autoWidth 模式,直接返回
29369
+ if (layout.width === width && layout.autoWidth === false) {
29370
+ return;
29371
+ }
29372
+ // 手动设置宽度时关闭 autoWidth
29373
+ layout.autoWidth = false;
29374
+ layout.width = width;
29375
+ // 按当前 overflow 模式重新计算行数和 maxLineWidth
29376
+ this.lineCount = this.getLineCount(this.text || "");
29377
+ this.isDirty = true;
29378
+ // 同步更新外层显示宽度(按比例缩放 transform)
29379
+ // 这样 UI 框的视觉宽度也会跟着文本宽度变化
29380
+ if (this.baseTextWidth > 0) {
29381
+ var scale = width / this.baseTextWidth;
29382
+ this.item.transform.size.x = this.baseScaleX * scale;
29383
+ }
29384
+ };
29385
+ /**
29386
+ * 设置文本框高度
29387
+ * @param value - 文本框高度
29388
+ */ _proto.setTextHeight = function setTextHeight(value) {
29389
+ var height = Math.max(0, Number(value) || 0);
29390
+ if (height === 0) {
29391
+ return;
29392
+ }
29393
+ var layout = this.textLayout;
29394
+ if (layout.height === height) {
29395
+ return;
29396
+ }
29397
+ layout.height = height;
29398
+ this.isDirty = true;
29399
+ };
29300
29400
  _proto.setFontSize = function setFontSize(value) {
29301
29401
  if (this.textStyle.fontSize === value) {
29302
29402
  return;
@@ -29364,13 +29464,13 @@ applyMixins(TextComponent, [
29364
29464
  ]);
29365
29465
 
29366
29466
  // TODO: 注册必须用
29367
- var TextLoader = /*#__PURE__*/ function(AbstractPlugin) {
29368
- _inherits(TextLoader, AbstractPlugin);
29467
+ var TextLoader = /*#__PURE__*/ function(Plugin) {
29468
+ _inherits(TextLoader, Plugin);
29369
29469
  function TextLoader() {
29370
- return AbstractPlugin.apply(this, arguments);
29470
+ return Plugin.apply(this, arguments);
29371
29471
  }
29372
29472
  return TextLoader;
29373
- }(AbstractPlugin);
29473
+ }(_wrap_native_super(Plugin));
29374
29474
 
29375
29475
  var Asset = /*#__PURE__*/ function(EffectsObject) {
29376
29476
  _inherits(Asset, EffectsObject);
@@ -30427,6 +30527,10 @@ function version35Migration(json) {
30427
30527
  if (component.dataType === DataType.TextComponent || component.dataType === DataType.RichTextComponent && component.options) {
30428
30528
  ensureTextVerticalAlign(component.options);
30429
30529
  }
30530
+ // 处理文本颜色从 0-255 到 0-1 的转换
30531
+ if (component.dataType === DataType.TextComponent) {
30532
+ convertTextColorTo01(component.options);
30533
+ }
30430
30534
  }
30431
30535
  }
30432
30536
  //@ts-expect-error
@@ -30446,6 +30550,22 @@ function version35Migration(json) {
30446
30550
  options.TextVerticalAlign = options.textBaseline;
30447
30551
  }
30448
30552
  }
30553
+ /**
30554
+ * 将文本颜色从 0-255 转换到 0-1
30555
+ */ function convertTextColorTo01(options) {
30556
+ if (!options || !options.textColor) {
30557
+ return;
30558
+ }
30559
+ var textColor = options.textColor;
30560
+ var _textColor_;
30561
+ // 将 RGB 从 0-255 转换到 0-1(alpha 通道已经是 0-1,不需要转换)
30562
+ options.textColor = [
30563
+ textColor[0] / 255.0,
30564
+ textColor[1] / 255.0,
30565
+ textColor[2] / 255.0,
30566
+ (_textColor_ = textColor[3]) != null ? _textColor_ : 1
30567
+ ];
30568
+ }
30449
30569
  /**
30450
30570
  * 根据形状获取形状几何体数据
30451
30571
  * @param shape - 形状
@@ -31368,7 +31488,7 @@ function getStandardSpriteContent(sprite, transform) {
31368
31488
  return ret;
31369
31489
  }
31370
31490
 
31371
- var version$1 = "2.8.0-alpha.3";
31491
+ var version$1 = "2.8.0-alpha.4";
31372
31492
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31373
31493
  var standardVersion = /^(\d+)\.(\d+)$/;
31374
31494
  var reverseParticle = false;
@@ -32008,8 +32128,8 @@ var seed = 1;
32008
32128
  };
32009
32129
  return [
32010
32130
  4,
32011
- hookTimeInfo("plugin:processAssets", function() {
32012
- return _this.processPluginAssets(scene);
32131
+ hookTimeInfo("plugin:onAssetsLoadStart", function() {
32132
+ return _this.onPluginSceneLoadStart(scene);
32013
32133
  })
32014
32134
  ];
32015
32135
  case 6:
@@ -32297,7 +32417,7 @@ var seed = 1;
32297
32417
  });
32298
32418
  })();
32299
32419
  };
32300
- _proto.processPluginAssets = function processPluginAssets(scene) {
32420
+ _proto.onPluginSceneLoadStart = function onPluginSceneLoadStart(scene) {
32301
32421
  var _this = this;
32302
32422
  return _async_to_generator(function() {
32303
32423
  return __generator(this, function(_state) {
@@ -32305,7 +32425,7 @@ var seed = 1;
32305
32425
  case 0:
32306
32426
  return [
32307
32427
  4,
32308
- PluginSystem.processAssets(scene, _this.options)
32428
+ PluginSystem.onAssetsLoadStart(scene, _this.options)
32309
32429
  ];
32310
32430
  case 1:
32311
32431
  _state.sent();
@@ -35006,8 +35126,8 @@ var SceneLoader = /*#__PURE__*/ function() {
35006
35126
  case 1:
35007
35127
  loadedScene = _state.sent();
35008
35128
  engine.clearResources();
35009
- // 触发插件系统 pluginSystem 的回调 prepareResource
35010
- PluginSystem.loadResources(loadedScene, assetManager.options, engine);
35129
+ // 触发插件系统 pluginSystem 的回调 onAssetsLoadFinish
35130
+ PluginSystem.onAssetsLoadFinish(loadedScene, assetManager.options, engine);
35011
35131
  engine.assetService.prepareAssets(loadedScene, loadedScene.assets);
35012
35132
  engine.assetService.updateTextVariables(loadedScene, options.variables);
35013
35133
  engine.assetService.initializeTexture(loadedScene);
@@ -35069,8 +35189,8 @@ registerPlugin("sprite", SpriteLoader);
35069
35189
  registerPlugin("particle", ParticleLoader);
35070
35190
  registerPlugin("cal", CalculateLoader);
35071
35191
  registerPlugin("interact", InteractLoader);
35072
- var version = "2.8.0-alpha.3";
35192
+ var version = "2.8.0-alpha.4";
35073
35193
  logger.info("Core version: " + version + ".");
35074
35194
 
35075
- export { AbstractPlugin, ActivationMixerPlayable, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AndNode, AndNodeData, Animatable, AnimationClip, AnimationClipNode, AnimationClipNodeData, AnimationGraphAsset, Animator, ApplyAdditiveNode, ApplyAdditiveNodeData, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, BlendNode, BlendNodeData, BoolValueNode, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPlayable, ColorPropertyMixerPlayable, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, ComponentTimePlayable, ComponentTimePlayableAsset, ComponentTimeTrack, Composition, CompositionComponent, CompressTextureCapabilityType, ConstBoolNode, ConstBoolNodeData, ConstFloatNode, ConstFloatNodeData, ConstraintTarget, ControlParameterBoolNode, ControlParameterBoolNodeData, ControlParameterFloatNode, ControlParameterFloatNodeData, ControlParameterTriggerNode, ControlParameterTriggerNodeData, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, DrawObjectPass, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectComponentTimeTrack, EffectsObject, EffectsPackage, Ellipse, Engine, EqualNodeData, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatComparisonNode, FloatComparisonNodeData, FloatPropertyMixerPlayable, FloatPropertyPlayableAsset, FloatPropertyTrack, FloatValueNode, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphInstance, GraphNode, GraphNodeData, GraphicsPath, GreaterNodeData, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, InvalidIndex, Item, LayerBlendNode, LayerBlendNodeData, LessNodeData, LineSegments, LinearValue, MaskMode, MaskProcessor, MaskableGraphic, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, NodeTransform, NotNode, NotNodeData, ObjectBindingTrack, OrNode, OrNodeData, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleMixerPlayable, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PlayState, Playable, PlayableAsset, PlayableOutput, PluginSystem, PointerEventData, PointerEventType, PolyStar, Polygon, Pose, PoseNode, PositionConstraint, PostProcessVolume, PropertyClipPlayable, PropertyTrack, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RaycastResult, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTargetPool, 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, SceneLoader, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SourceType, SpriteColorMixerPlayable, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteComponentTimeTrack, SpriteLoader, StarType, StateMachineNode, StateMachineNodeData, StateNode, StateNodeData, StaticValue, SubCompositionClipPlayable, SubCompositionMixerPlayable, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelineInstance, TrackAsset, TrackMixerPlayable, TrackType, Transform, TransformMixerPlayable, TransformPlayable, TransformPlayableAsset, TransformTrack, TransitionNode, TransitionNodeData, TransitionState, VFXItem, ValueGetter, ValueNode, Vector2Curve, Vector2PropertyMixerPlayable, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector3Curve, Vector3PropertyMixerPlayable, Vector3PropertyTrack, Vector3ropertyPlayableAsset, Vector4Curve, Vector4PropertyMixerPlayable, Vector4PropertyPlayableAsset, Vector4PropertyTrack, WeightedMode, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, buildLine, calculateTranslation, canUseBOM, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getClass, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKeyFrameMetaByRawValue, getMergedStore, getNodeDataClass, getParticleMeshShader, getPixelRatio, getPluginUsageInfo, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isPlainObject, isPowerOfTwo, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, modifyMaxKeyframeShader, nearestPowerOfTwo, nodeDataClass, noop, normalizeColor, numberToFix, oldBezierKeyFramesToNew, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setRayFromCamera, setSideMode, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
35195
+ export { ActivationMixerPlayable, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AndNode, AndNodeData, Animatable, AnimationClip, AnimationClipNode, AnimationClipNodeData, AnimationGraphAsset, Animator, ApplyAdditiveNode, ApplyAdditiveNodeData, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, BlendNode, BlendNodeData, BoolValueNode, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPlayable, ColorPropertyMixerPlayable, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, ComponentTimePlayable, ComponentTimePlayableAsset, ComponentTimeTrack, Composition, CompositionComponent, CompressTextureCapabilityType, ConstBoolNode, ConstBoolNodeData, ConstFloatNode, ConstFloatNodeData, ConstraintTarget, ControlParameterBoolNode, ControlParameterBoolNodeData, ControlParameterFloatNode, ControlParameterFloatNodeData, ControlParameterTriggerNode, ControlParameterTriggerNodeData, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, DrawObjectPass, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectComponentTimeTrack, EffectsObject, EffectsPackage, Ellipse, Engine, EqualNodeData, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatComparisonNode, FloatComparisonNodeData, FloatPropertyMixerPlayable, FloatPropertyPlayableAsset, FloatPropertyTrack, FloatValueNode, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphInstance, GraphNode, GraphNodeData, GraphicsPath, GreaterNodeData, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, InvalidIndex, Item, LayerBlendNode, LayerBlendNodeData, LessNodeData, LineSegments, LinearValue, MaskMode, MaskProcessor, MaskableGraphic, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, NodeTransform, NotNode, NotNodeData, ObjectBindingTrack, OrNode, OrNodeData, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleMixerPlayable, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PlayState, Playable, PlayableAsset, PlayableOutput, Plugin, PluginSystem, PointerEventData, PointerEventType, PolyStar, Polygon, Pose, PoseNode, PositionConstraint, PostProcessVolume, PropertyClipPlayable, PropertyTrack, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RaycastResult, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTargetPool, 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, SceneLoader, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SourceType, SpriteColorMixerPlayable, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteComponentTimeTrack, SpriteLoader, StarType, StateMachineNode, StateMachineNodeData, StateNode, StateNodeData, StaticValue, SubCompositionClipPlayable, SubCompositionMixerPlayable, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelineInstance, TrackAsset, TrackMixerPlayable, TrackType, Transform, TransformMixerPlayable, TransformPlayable, TransformPlayableAsset, TransformTrack, TransitionNode, TransitionNodeData, TransitionState, VFXItem, ValueGetter, ValueNode, Vector2Curve, Vector2PropertyMixerPlayable, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector3Curve, Vector3PropertyMixerPlayable, Vector3PropertyTrack, Vector3ropertyPlayableAsset, Vector4Curve, Vector4PropertyMixerPlayable, Vector4PropertyPlayableAsset, Vector4PropertyTrack, WeightedMode, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, buildLine, calculateTranslation, canUseBOM, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getClass, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKeyFrameMetaByRawValue, getMergedStore, getNodeDataClass, getParticleMeshShader, getPixelRatio, getPluginUsageInfo, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isPlainObject, isPowerOfTwo, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, modifyMaxKeyframeShader, nearestPowerOfTwo, nodeDataClass, noop, normalizeColor, numberToFix, oldBezierKeyFramesToNew, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setRayFromCamera, setSideMode, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
35076
35196
  //# sourceMappingURL=index.mjs.map