@galacean/effects-threejs 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 threejs plugin 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
  import * as THREE from 'three';
@@ -2881,7 +2881,6 @@ var plugins = [];
2881
2881
  pluginLoaderMap[name] = pluginClass;
2882
2882
  var pluginInstance = new pluginClass();
2883
2883
  pluginInstance.name = name;
2884
- pluginInstance.initialize();
2885
2884
  plugins.push(pluginInstance);
2886
2885
  plugins.sort(function(a, b) {
2887
2886
  return a.order - b.order;
@@ -2905,29 +2904,29 @@ var PluginSystem = /*#__PURE__*/ function() {
2905
2904
  };
2906
2905
  PluginSystem.initializeComposition = function initializeComposition(composition, scene) {
2907
2906
  plugins.forEach(function(loader) {
2908
- return loader.onCompositionConstructed(composition, scene);
2907
+ return loader.onCompositionCreated(composition, scene);
2909
2908
  });
2910
2909
  };
2911
2910
  PluginSystem.destroyComposition = function destroyComposition(comp) {
2912
2911
  plugins.forEach(function(loader) {
2913
- return loader.onCompositionDestroyed(comp);
2912
+ return loader.onCompositionDestroy(comp);
2914
2913
  });
2915
2914
  };
2916
- PluginSystem.processAssets = function processAssets(scene, options) {
2915
+ PluginSystem.onAssetsLoadStart = function onAssetsLoadStart(scene, options) {
2917
2916
  return _async_to_generator(function() {
2918
2917
  return __generator(this, function(_state) {
2919
2918
  return [
2920
2919
  2,
2921
2920
  Promise.all(plugins.map(function(plugin) {
2922
- return plugin.processAssets(scene, options);
2921
+ return plugin.onAssetsLoadStart(scene, options);
2923
2922
  }))
2924
2923
  ];
2925
2924
  });
2926
2925
  })();
2927
2926
  };
2928
- PluginSystem.loadResources = function loadResources(scene, options, engine) {
2927
+ PluginSystem.onAssetsLoadFinish = function onAssetsLoadFinish(scene, options, engine) {
2929
2928
  plugins.forEach(function(loader) {
2930
- return loader.prepareResource(scene, options, engine);
2929
+ return loader.onAssetsLoadFinish(scene, options, engine);
2931
2930
  });
2932
2931
  };
2933
2932
  return PluginSystem;
@@ -2957,20 +2956,18 @@ function getPluginUsageInfo(name) {
2957
2956
  /**
2958
2957
  * 抽象插件类
2959
2958
  * 注册合成不同生命周期的回调函数
2960
- */ var AbstractPlugin = /*#__PURE__*/ function() {
2961
- function AbstractPlugin() {
2959
+ */ var Plugin = /*#__PURE__*/ function() {
2960
+ function Plugin() {
2962
2961
  this.order = 100;
2963
- this.name = "";
2962
+ this.name = "Plugin";
2964
2963
  }
2965
- var _proto = AbstractPlugin.prototype;
2966
- _proto.initialize = function initialize() {};
2964
+ var _proto = Plugin.prototype;
2967
2965
  /**
2968
- * loadScene 函数调用的时候会触发此函数,
2969
- * 此阶段可以加载插件所需类型资源,并返回原始资源和加载后的资源。
2970
- * @param scene
2971
- * @param options
2972
- * @returns
2973
- */ _proto.processAssets = function processAssets(scene, options) {
2966
+ * 场景加载时触发,用于加载插件所需的自定义资源。
2967
+ * 此阶段适合发起异步资源请求。
2968
+ * @param scene - 场景对象
2969
+ * @param options - 场景加载选项
2970
+ */ _proto.onAssetsLoadStart = function onAssetsLoadStart(scene, options) {
2974
2971
  return _async_to_generator(function() {
2975
2972
  return __generator(this, function(_state) {
2976
2973
  return [
@@ -2980,17 +2977,22 @@ function getPluginUsageInfo(name) {
2980
2977
  })();
2981
2978
  };
2982
2979
  /**
2983
- * loadScene 函数调用的时候会触发此函数,
2984
- * 此阶段时,json 中的图片和二进制已经被加载完成,可以对加载好的资源做进一步处理,
2985
- * 如果 promise reject, loadScene 函数同样会被 reject,表示场景加载失败。
2986
- * 请记住,整个 load 阶段都不要创建 GL 相关的对象,只创建 JS 对象
2987
- * 此阶段晚于 processAssets
2988
- * @param {Scene} scene
2989
- * @param {SceneLoadOptions} options
2990
- */ _proto.prepareResource = function prepareResource(scene, options, engine) {};
2991
- _proto.onCompositionConstructed = function onCompositionConstructed(composition, scene) {};
2992
- _proto.onCompositionDestroyed = function onCompositionDestroyed(composition) {};
2993
- return AbstractPlugin;
2980
+ * 场景资源加载完成后触发。
2981
+ * 此时 JSON 中的图片和二进制已加载完成,可对资源做进一步处理。
2982
+ * @param scene - 场景对象
2983
+ * @param options - 场景加载选项
2984
+ * @param engine - 引擎实例
2985
+ */ _proto.onAssetsLoadFinish = function onAssetsLoadFinish(scene, options, engine) {};
2986
+ /**
2987
+ * 合成创建完成后触发。
2988
+ * @param composition - 合成对象
2989
+ * @param scene - 场景对象
2990
+ */ _proto.onCompositionCreated = function onCompositionCreated(composition, scene) {};
2991
+ /**
2992
+ * 合成销毁时触发。
2993
+ * @param composition - 合成对象
2994
+ */ _proto.onCompositionDestroy = function onCompositionDestroy(composition) {};
2995
+ return Plugin;
2994
2996
  }();
2995
2997
 
2996
2998
  function _set_prototype_of(o, p) {
@@ -10650,6 +10652,9 @@ var DrawObjectPass = /*#__PURE__*/ function(RenderPass) {
10650
10652
  stencilAction: TextureLoadAction.clear
10651
10653
  });
10652
10654
  }
10655
+ this.meshes.sort(function(a, b) {
10656
+ return a.priority - b.priority;
10657
+ });
10653
10658
  renderer.renderMeshes(this.meshes);
10654
10659
  };
10655
10660
  _proto.onCameraCleanup = function onCameraCleanup(renderer) {
@@ -16587,13 +16592,49 @@ CameraController = __decorate([
16587
16592
  effectsClass(DataType.CameraController)
16588
16593
  ], CameraController);
16589
16594
 
16590
- var CameraVFXItemLoader = /*#__PURE__*/ function(AbstractPlugin) {
16591
- _inherits(CameraVFXItemLoader, AbstractPlugin);
16595
+ function _get_prototype_of(o) {
16596
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
16597
+ return o.__proto__ || Object.getPrototypeOf(o);
16598
+ };
16599
+ return _get_prototype_of(o);
16600
+ }
16601
+
16602
+ function _is_native_function(fn) {
16603
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
16604
+ }
16605
+
16606
+ function _wrap_native_super(Class) {
16607
+ var _cache = typeof Map === "function" ? new Map() : undefined;
16608
+ _wrap_native_super = function _wrap_native_super(Class) {
16609
+ if (Class === null || !_is_native_function(Class)) return Class;
16610
+ if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function");
16611
+ if (typeof _cache !== "undefined") {
16612
+ if (_cache.has(Class)) return _cache.get(Class);
16613
+ _cache.set(Class, Wrapper);
16614
+ }
16615
+ function Wrapper() {
16616
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
16617
+ }
16618
+ Wrapper.prototype = Object.create(Class.prototype, {
16619
+ constructor: {
16620
+ value: Wrapper,
16621
+ enumerable: false,
16622
+ writable: true,
16623
+ configurable: true
16624
+ }
16625
+ });
16626
+ return _set_prototype_of(Wrapper, Class);
16627
+ };
16628
+ return _wrap_native_super(Class);
16629
+ }
16630
+
16631
+ var CameraVFXItemLoader = /*#__PURE__*/ function(Plugin) {
16632
+ _inherits(CameraVFXItemLoader, Plugin);
16592
16633
  function CameraVFXItemLoader() {
16593
- return AbstractPlugin.apply(this, arguments);
16634
+ return Plugin.apply(this, arguments);
16594
16635
  }
16595
16636
  return CameraVFXItemLoader;
16596
- }(AbstractPlugin);
16637
+ }(_wrap_native_super(Plugin));
16597
16638
 
16598
16639
  var HitTestType;
16599
16640
  (function(HitTestType) {
@@ -16877,13 +16918,13 @@ function getCoord(event) {
16877
16918
  };
16878
16919
  }
16879
16920
 
16880
- var InteractLoader = /*#__PURE__*/ function(AbstractPlugin) {
16881
- _inherits(InteractLoader, AbstractPlugin);
16921
+ var InteractLoader = /*#__PURE__*/ function(Plugin) {
16922
+ _inherits(InteractLoader, Plugin);
16882
16923
  function InteractLoader() {
16883
- return AbstractPlugin.apply(this, arguments);
16924
+ return Plugin.apply(this, arguments);
16884
16925
  }
16885
16926
  return InteractLoader;
16886
- }(AbstractPlugin);
16927
+ }(_wrap_native_super(Plugin));
16887
16928
 
16888
16929
  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";
16889
16930
  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";
@@ -17482,16 +17523,16 @@ function shouldIgnoreBouncing(arg, mul) {
17482
17523
  return MeshCollider;
17483
17524
  }();
17484
17525
 
17485
- var SpriteLoader = /*#__PURE__*/ function(AbstractPlugin) {
17486
- _inherits(SpriteLoader, AbstractPlugin);
17526
+ var SpriteLoader = /*#__PURE__*/ function(Plugin) {
17527
+ _inherits(SpriteLoader, Plugin);
17487
17528
  function SpriteLoader() {
17488
17529
  var _this;
17489
- _this = AbstractPlugin.apply(this, arguments) || this;
17530
+ _this = Plugin.apply(this, arguments) || this;
17490
17531
  _this.name = "sprite";
17491
17532
  return _this;
17492
17533
  }
17493
17534
  return SpriteLoader;
17494
- }(AbstractPlugin);
17535
+ }(_wrap_native_super(Plugin));
17495
17536
 
17496
17537
  /**
17497
17538
  * 动画图可播放节点对象
@@ -19982,7 +20023,7 @@ function calculateDirection(prePoint, point, nextPoint) {
19982
20023
  if (this.time >= 0 && this.time < particleSystem.item.duration && particleSystem.isEnded()) {
19983
20024
  particleSystem.reset();
19984
20025
  }
19985
- particleSystem.update(this.time - particleSystem.time);
20026
+ particleSystem.simulate(this.time - particleSystem.time);
19986
20027
  }
19987
20028
  this.lastTime = this.time;
19988
20029
  };
@@ -21433,126 +21474,133 @@ var ParticleSystem = /*#__PURE__*/ function(Component) {
21433
21474
  this.initEmitterTransform();
21434
21475
  };
21435
21476
  _proto.onUpdate = function onUpdate(dt) {
21436
- this.update(dt);
21477
+ if (!this.frozen) {
21478
+ this.update(dt);
21479
+ }
21480
+ };
21481
+ _proto.simulate = function simulate(time) {
21482
+ this.update(time * 1000);
21483
+ this.frozen = true;
21437
21484
  };
21438
21485
  _proto.update = function update(delta) {
21439
21486
  var _this = this;
21440
- if (this.started && !this.frozen) {
21441
- var now = this.time + delta / 1000;
21442
- var options = this.options;
21443
- var loopStartTime = this.loopStartTime;
21444
- var emission = this.emission;
21445
- this.time = now;
21446
- this.upDirectionWorld = null;
21447
- this.renderer.updateTime(now, delta);
21448
- var link = this.particleLink;
21449
- var emitterLifetime = (now - loopStartTime) / this.item.duration;
21450
- var timePassed = this.timePassed;
21451
- var trailUpdated = false;
21452
- var updateTrail = function() {
21453
- if (_this.trails && !trailUpdated) {
21454
- trailUpdated = true;
21455
- link.forEach(function(param) {
21456
- var time = param[0], pointIndex = param[1], delay = param[2], point = param[3];
21457
- if (time < timePassed) {
21458
- _this.clearPointTrail(pointIndex);
21459
- } else if (timePassed > delay) {
21460
- _this.updatePointTrail(pointIndex, emitterLifetime, point, delay);
21461
- }
21462
- });
21487
+ if (!this.started) {
21488
+ return;
21489
+ }
21490
+ var now = this.time + delta / 1000;
21491
+ var options = this.options;
21492
+ var loopStartTime = this.loopStartTime;
21493
+ var emission = this.emission;
21494
+ this.time = now;
21495
+ this.upDirectionWorld = null;
21496
+ this.renderer.updateTime(now, delta);
21497
+ var link = this.particleLink;
21498
+ var emitterLifetime = (now - loopStartTime) / this.item.duration;
21499
+ var timePassed = this.timePassed;
21500
+ var trailUpdated = false;
21501
+ var updateTrail = function() {
21502
+ if (_this.trails && !trailUpdated) {
21503
+ trailUpdated = true;
21504
+ link.forEach(function(param) {
21505
+ var time = param[0], pointIndex = param[1], delay = param[2], point = param[3];
21506
+ if (time < timePassed) {
21507
+ _this.clearPointTrail(pointIndex);
21508
+ } else if (timePassed > delay) {
21509
+ _this.updatePointTrail(pointIndex, emitterLifetime, point, delay);
21510
+ }
21511
+ });
21512
+ }
21513
+ };
21514
+ if (!this.ended) {
21515
+ var duration = this.item.duration;
21516
+ var lifetime = this.lifetime;
21517
+ if (timePassed < duration) {
21518
+ var interval = 1 / emission.rateOverTime.getValue(lifetime);
21519
+ var pointCount = Math.floor((timePassed - this.lastEmitTime) / interval);
21520
+ var maxEmissionCount = pointCount;
21521
+ var timeDelta = interval / pointCount;
21522
+ var meshTime = now;
21523
+ var maxCount = options.maxCount;
21524
+ this.updateEmitterTransform(timePassed);
21525
+ var shouldSkipGenerate = function() {
21526
+ var first = link.first;
21527
+ return _this.emissionStopped || link.length === maxCount && first && first.content[0] - loopStartTime > timePassed;
21528
+ };
21529
+ for(var i = 0; i < maxEmissionCount && i < maxCount; i++){
21530
+ if (shouldSkipGenerate()) {
21531
+ break;
21532
+ }
21533
+ var p = this.createPoint(lifetime);
21534
+ p.delay += meshTime + i * timeDelta;
21535
+ this.addParticle(p, maxCount);
21536
+ this.lastEmitTime = timePassed;
21463
21537
  }
21464
- };
21465
- if (!this.ended) {
21466
- var duration = this.item.duration;
21467
- var lifetime = this.lifetime;
21468
- if (timePassed < duration) {
21469
- var interval = 1 / emission.rateOverTime.getValue(lifetime);
21470
- var pointCount = Math.floor((timePassed - this.lastEmitTime) / interval);
21471
- var maxEmissionCount = pointCount;
21472
- var timeDelta = interval / pointCount;
21473
- var meshTime = now;
21474
- var maxCount = options.maxCount;
21475
- this.updateEmitterTransform(timePassed);
21476
- var shouldSkipGenerate = function() {
21477
- var first = link.first;
21478
- return _this.emissionStopped || link.length === maxCount && first && first.content[0] - loopStartTime > timePassed;
21479
- };
21480
- for(var i = 0; i < maxEmissionCount && i < maxCount; i++){
21481
- if (shouldSkipGenerate()) {
21482
- break;
21483
- }
21484
- var p = this.createPoint(lifetime);
21485
- p.delay += meshTime + i * timeDelta;
21486
- this.addParticle(p, maxCount);
21487
- this.lastEmitTime = timePassed;
21538
+ var bursts = emission.bursts;
21539
+ for(var j = (bursts == null ? void 0 : bursts.length) - 1, cursor = 0; j >= 0 && cursor < maxCount; j--){
21540
+ if (shouldSkipGenerate()) {
21541
+ break;
21488
21542
  }
21489
- var bursts = emission.bursts;
21490
- for(var j = (bursts == null ? void 0 : bursts.length) - 1, cursor = 0; j >= 0 && cursor < maxCount; j--){
21491
- if (shouldSkipGenerate()) {
21492
- break;
21543
+ var burst = bursts[j];
21544
+ var opts = !burst.disabled && burst.getGeneratorOptions(timePassed, lifetime);
21545
+ if (opts) {
21546
+ var originVec = [
21547
+ 0,
21548
+ 0,
21549
+ 0
21550
+ ];
21551
+ var offsets = emission.burstOffsets[j];
21552
+ var burstOffset = offsets && offsets[opts.cycleIndex] || originVec;
21553
+ if (burst.once) {
21554
+ this.removeBurst(j);
21493
21555
  }
21494
- var burst = bursts[j];
21495
- var opts = !burst.disabled && burst.getGeneratorOptions(timePassed, lifetime);
21496
- if (opts) {
21497
- var originVec = [
21498
- 0,
21499
- 0,
21500
- 0
21501
- ];
21502
- var offsets = emission.burstOffsets[j];
21503
- var burstOffset = offsets && offsets[opts.cycleIndex] || originVec;
21504
- if (burst.once) {
21505
- this.removeBurst(j);
21506
- }
21507
- for(var i1 = 0; i1 < opts.count && cursor < maxCount; i1++){
21508
- var _p_transform;
21509
- if (shouldSkipGenerate()) {
21510
- break;
21511
- }
21512
- var p1 = this.initPoint(this.shape.generate({
21513
- total: opts.total,
21514
- index: opts.index,
21515
- burstIndex: i1,
21516
- burstCount: opts.count
21517
- }));
21518
- p1.delay += meshTime;
21519
- cursor++;
21520
- (_p_transform = p1.transform).translate.apply(_p_transform, [].concat(burstOffset));
21521
- this.addParticle(p1, maxCount);
21556
+ for(var i1 = 0; i1 < opts.count && cursor < maxCount; i1++){
21557
+ var _p_transform;
21558
+ if (shouldSkipGenerate()) {
21559
+ break;
21522
21560
  }
21561
+ var p1 = this.initPoint(this.shape.generate({
21562
+ total: opts.total,
21563
+ index: opts.index,
21564
+ burstIndex: i1,
21565
+ burstCount: opts.count
21566
+ }));
21567
+ p1.delay += meshTime;
21568
+ cursor++;
21569
+ (_p_transform = p1.transform).translate.apply(_p_transform, [].concat(burstOffset));
21570
+ this.addParticle(p1, maxCount);
21523
21571
  }
21524
21572
  }
21525
- } else if (this.item.endBehavior === EndBehavior.restart) {
21526
- updateTrail();
21527
- this.loopStartTime = now - duration;
21528
- this.lastEmitTime -= duration;
21529
- this.time -= duration;
21530
- emission.bursts.forEach(function(b) {
21531
- return b.reset();
21532
- });
21533
- this.particleLink.forEach(function(content) {
21534
- content[0] -= duration;
21535
- content[2] -= duration;
21536
- content[3].delay -= duration;
21537
- });
21538
- this.renderer.minusTimeForLoop(duration);
21539
- } else {
21540
- this.ended = true;
21541
- var endBehavior = this.item.endBehavior;
21542
- if (endBehavior === EndBehavior.freeze) {
21543
- this.frozen = true;
21544
- }
21545
21573
  }
21546
- } else if (this.item.endBehavior !== EndBehavior.restart) {
21547
- if (EndBehavior.destroy === this.item.endBehavior) {
21548
- var node = link.last;
21549
- if (node && node.content[0] < this.time) {
21550
- this.destroyed = true;
21551
- }
21574
+ } else if (this.item.endBehavior === EndBehavior.restart) {
21575
+ updateTrail();
21576
+ this.loopStartTime = now - duration;
21577
+ this.lastEmitTime -= duration;
21578
+ this.time -= duration;
21579
+ emission.bursts.forEach(function(b) {
21580
+ return b.reset();
21581
+ });
21582
+ this.particleLink.forEach(function(content) {
21583
+ content[0] -= duration;
21584
+ content[2] -= duration;
21585
+ content[3].delay -= duration;
21586
+ });
21587
+ this.renderer.minusTimeForLoop(duration);
21588
+ } else {
21589
+ this.ended = true;
21590
+ var endBehavior = this.item.endBehavior;
21591
+ if (endBehavior === EndBehavior.freeze) {
21592
+ this.frozen = true;
21593
+ }
21594
+ }
21595
+ } else if (this.item.endBehavior !== EndBehavior.restart) {
21596
+ if (EndBehavior.destroy === this.item.endBehavior) {
21597
+ var node = link.last;
21598
+ if (node && node.content[0] < this.time) {
21599
+ this.destroyed = true;
21552
21600
  }
21553
21601
  }
21554
- updateTrail();
21555
21602
  }
21603
+ updateTrail();
21556
21604
  };
21557
21605
  _proto.drawStencilMask = function drawStencilMask(renderer) {
21558
21606
  if (!this.isActiveAndEnabled) {
@@ -25592,7 +25640,6 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25592
25640
  _this = MaskableGraphic.call(this, engine) || this;
25593
25641
  _this.time = 0;
25594
25642
  _this.duration = 1;
25595
- _this.loop = true;
25596
25643
  /**
25597
25644
  * @internal
25598
25645
  */ _this.splits = singleSplits;
@@ -25607,11 +25654,15 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25607
25654
  var _this = this;
25608
25655
  var time = this.time;
25609
25656
  var duration = this.duration;
25610
- if (time > duration && this.loop) {
25657
+ var textureAnimation = this.textureSheetAnimation;
25658
+ var _textureAnimation_loop;
25659
+ // TODO: Update textureAnimation spec.
25660
+ // @ts-expect-error
25661
+ var loop = (_textureAnimation_loop = textureAnimation == null ? void 0 : textureAnimation.loop) != null ? _textureAnimation_loop : true;
25662
+ if (time > duration && loop) {
25611
25663
  time = time % duration;
25612
25664
  }
25613
25665
  var life = Math.min(Math.max(time / duration, 0.0), 1.0);
25614
- var ta = this.textureSheetAnimation;
25615
25666
  var video = this.renderer.texture.source.video;
25616
25667
  if (video) {
25617
25668
  if (time === 0) {
@@ -25623,9 +25674,9 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25623
25674
  }
25624
25675
  this.renderer.texture.uploadCurrentVideoFrame();
25625
25676
  }
25626
- if (ta) {
25677
+ if (textureAnimation) {
25627
25678
  var _this_material_getVector4;
25628
- var total = ta.total || ta.row * ta.col;
25679
+ var total = textureAnimation.total || textureAnimation.row * textureAnimation.col;
25629
25680
  var texRectX = 0;
25630
25681
  var texRectY = 0;
25631
25682
  var texRectW = 1;
@@ -25646,20 +25697,20 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25646
25697
  }
25647
25698
  var dx, dy;
25648
25699
  if (flip) {
25649
- dx = 1 / ta.row * texRectW;
25650
- dy = 1 / ta.col * texRectH;
25700
+ dx = 1 / textureAnimation.row * texRectW;
25701
+ dy = 1 / textureAnimation.col * texRectH;
25651
25702
  } else {
25652
- dx = 1 / ta.col * texRectW;
25653
- dy = 1 / ta.row * texRectH;
25703
+ dx = 1 / textureAnimation.col * texRectW;
25704
+ dy = 1 / textureAnimation.row * texRectH;
25654
25705
  }
25655
25706
  var texOffset;
25656
- if (ta.animate) {
25707
+ if (textureAnimation.animate) {
25657
25708
  var frameIndex = Math.round(life * (total - 1));
25658
- var yIndex = Math.floor(frameIndex / ta.col);
25659
- var xIndex = frameIndex - yIndex * ta.col;
25709
+ var yIndex = Math.floor(frameIndex / textureAnimation.col);
25710
+ var xIndex = frameIndex - yIndex * textureAnimation.col;
25660
25711
  texOffset = flip ? [
25661
25712
  dx * yIndex,
25662
- dy * (ta.col - xIndex)
25713
+ dy * (textureAnimation.col - xIndex)
25663
25714
  ] : [
25664
25715
  dx * xIndex,
25665
25716
  dy * (1 + yIndex)
@@ -25847,8 +25898,6 @@ var SpriteComponent = /*#__PURE__*/ function(MaskableGraphic) {
25847
25898
  var _data_duration;
25848
25899
  //@ts-expect-error
25849
25900
  this.duration = (_data_duration = data.duration) != null ? _data_duration : this.item.duration;
25850
- var _data_loop;
25851
- this.loop = (_data_loop = data.loop) != null ? _data_loop : true;
25852
25901
  };
25853
25902
  return SpriteComponent;
25854
25903
  }(MaskableGraphic);
@@ -25856,21 +25905,21 @@ SpriteComponent = __decorate([
25856
25905
  effectsClass(DataType.SpriteComponent)
25857
25906
  ], SpriteComponent);
25858
25907
 
25859
- var ParticleLoader = /*#__PURE__*/ function(AbstractPlugin) {
25860
- _inherits(ParticleLoader, AbstractPlugin);
25908
+ var ParticleLoader = /*#__PURE__*/ function(Plugin) {
25909
+ _inherits(ParticleLoader, Plugin);
25861
25910
  function ParticleLoader() {
25862
- return AbstractPlugin.apply(this, arguments);
25911
+ return Plugin.apply(this, arguments);
25863
25912
  }
25864
25913
  return ParticleLoader;
25865
- }(AbstractPlugin);
25914
+ }(_wrap_native_super(Plugin));
25866
25915
 
25867
- var CalculateLoader = /*#__PURE__*/ function(AbstractPlugin) {
25868
- _inherits(CalculateLoader, AbstractPlugin);
25916
+ var CalculateLoader = /*#__PURE__*/ function(Plugin) {
25917
+ _inherits(CalculateLoader, Plugin);
25869
25918
  function CalculateLoader() {
25870
- return AbstractPlugin.apply(this, arguments);
25919
+ return Plugin.apply(this, arguments);
25871
25920
  }
25872
25921
  return CalculateLoader;
25873
- }(AbstractPlugin);
25922
+ }(_wrap_native_super(Plugin));
25874
25923
 
25875
25924
  // Based on:
25876
25925
  /**
@@ -28972,6 +29021,12 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
28972
29021
  /**
28973
29022
  * 每一行文本的最大宽度
28974
29023
  */ _this.maxLineWidth = 0;
29024
+ /**
29025
+ * 初始文本宽度,用于计算缩放比例
29026
+ */ _this.baseTextWidth = 0;
29027
+ /**
29028
+ * 初始 `transform.size.x`,用于按比例更新显示宽度
29029
+ */ _this.baseScaleX = 1;
28975
29030
  _this.name = "MText" + seed$2++;
28976
29031
  // 初始化canvas资源
28977
29032
  _this.canvas = canvasPool.getCanvas();
@@ -28997,10 +29052,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
28997
29052
  text: "默认文本",
28998
29053
  fontFamily: "AlibabaSans-BoldItalic",
28999
29054
  fontSize: 40,
29055
+ // 统一使用 0-1 颜色值
29000
29056
  textColor: [
29001
- 255,
29002
- 255,
29003
- 255,
29057
+ 1,
29058
+ 1,
29059
+ 1,
29004
29060
  1
29005
29061
  ],
29006
29062
  fontWeight: TextWeight.normal,
@@ -29037,6 +29093,10 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29037
29093
  // TextComponentBase
29038
29094
  this.updateWithOptions(options);
29039
29095
  this.renderText(options);
29096
+ // 记录初始的 textWidth 和 x 缩放,用于后续按比例更新显示宽度
29097
+ // 添加兜底值 1 防止除 0
29098
+ this.baseTextWidth = options.textWidth || this.textLayout.width || 1;
29099
+ this.baseScaleX = this.item.transform.size.x;
29040
29100
  // 恢复默认颜色
29041
29101
  this.material.setColor("_Color", new Color(1, 1, 1, 1));
29042
29102
  };
@@ -29235,9 +29295,9 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29235
29295
  if (style.isOutlined) {
29236
29296
  _this.setupOutline();
29237
29297
  }
29238
- // 文本颜色 - 直接使用 vec4 原值,不乘以 255
29298
+ // textColor 统一是 0-1,写入 canvas 时乘 255
29239
29299
  var _style_textColor = style.textColor, r = _style_textColor[0], g = _style_textColor[1], b = _style_textColor[2], a = _style_textColor[3];
29240
- context.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + a + ")";
29300
+ context.fillStyle = "rgba(" + r * 255 + ", " + g * 255 + ", " + b * 255 + ", " + a + ")";
29241
29301
  var charsInfo = [];
29242
29302
  var x = 0;
29243
29303
  var y = layout.getOffsetY(style, _this.lineCount, lineHeight, fontSize);
@@ -29299,6 +29359,46 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29299
29359
  layout.autoWidth = normalizedValue;
29300
29360
  this.isDirty = true;
29301
29361
  };
29362
+ /**
29363
+ * 设置文本框宽度
29364
+ * 手动设置宽度时会自动关闭 `autoWidth`
29365
+ * 同时会按比例更新 `transform.size.x`,让 UI 框宽度也跟着变化
29366
+ * @param value - 文本框宽度
29367
+ */ _proto.setTextWidth = function setTextWidth(value) {
29368
+ var width = Math.max(0, Number(value) || 0);
29369
+ var layout = this.textLayout;
29370
+ // 宽度没变且已是非 autoWidth 模式,直接返回
29371
+ if (layout.width === width && layout.autoWidth === false) {
29372
+ return;
29373
+ }
29374
+ // 手动设置宽度时关闭 autoWidth
29375
+ layout.autoWidth = false;
29376
+ layout.width = width;
29377
+ // 按当前 overflow 模式重新计算行数和 maxLineWidth
29378
+ this.lineCount = this.getLineCount(this.text || "");
29379
+ this.isDirty = true;
29380
+ // 同步更新外层显示宽度(按比例缩放 transform)
29381
+ // 这样 UI 框的视觉宽度也会跟着文本宽度变化
29382
+ if (this.baseTextWidth > 0) {
29383
+ var scale = width / this.baseTextWidth;
29384
+ this.item.transform.size.x = this.baseScaleX * scale;
29385
+ }
29386
+ };
29387
+ /**
29388
+ * 设置文本框高度
29389
+ * @param value - 文本框高度
29390
+ */ _proto.setTextHeight = function setTextHeight(value) {
29391
+ var height = Math.max(0, Number(value) || 0);
29392
+ if (height === 0) {
29393
+ return;
29394
+ }
29395
+ var layout = this.textLayout;
29396
+ if (layout.height === height) {
29397
+ return;
29398
+ }
29399
+ layout.height = height;
29400
+ this.isDirty = true;
29401
+ };
29302
29402
  _proto.setFontSize = function setFontSize(value) {
29303
29403
  if (this.textStyle.fontSize === value) {
29304
29404
  return;
@@ -29366,13 +29466,13 @@ applyMixins(TextComponent, [
29366
29466
  ]);
29367
29467
 
29368
29468
  // TODO: 注册必须用
29369
- var TextLoader = /*#__PURE__*/ function(AbstractPlugin) {
29370
- _inherits(TextLoader, AbstractPlugin);
29469
+ var TextLoader = /*#__PURE__*/ function(Plugin) {
29470
+ _inherits(TextLoader, Plugin);
29371
29471
  function TextLoader() {
29372
- return AbstractPlugin.apply(this, arguments);
29472
+ return Plugin.apply(this, arguments);
29373
29473
  }
29374
29474
  return TextLoader;
29375
- }(AbstractPlugin);
29475
+ }(_wrap_native_super(Plugin));
29376
29476
 
29377
29477
  var Asset = /*#__PURE__*/ function(EffectsObject) {
29378
29478
  _inherits(Asset, EffectsObject);
@@ -30429,6 +30529,10 @@ function version35Migration(json) {
30429
30529
  if (component.dataType === DataType.TextComponent || component.dataType === DataType.RichTextComponent && component.options) {
30430
30530
  ensureTextVerticalAlign(component.options);
30431
30531
  }
30532
+ // 处理文本颜色从 0-255 到 0-1 的转换
30533
+ if (component.dataType === DataType.TextComponent) {
30534
+ convertTextColorTo01(component.options);
30535
+ }
30432
30536
  }
30433
30537
  }
30434
30538
  //@ts-expect-error
@@ -30448,6 +30552,22 @@ function version35Migration(json) {
30448
30552
  options.TextVerticalAlign = options.textBaseline;
30449
30553
  }
30450
30554
  }
30555
+ /**
30556
+ * 将文本颜色从 0-255 转换到 0-1
30557
+ */ function convertTextColorTo01(options) {
30558
+ if (!options || !options.textColor) {
30559
+ return;
30560
+ }
30561
+ var textColor = options.textColor;
30562
+ var _textColor_;
30563
+ // 将 RGB 从 0-255 转换到 0-1(alpha 通道已经是 0-1,不需要转换)
30564
+ options.textColor = [
30565
+ textColor[0] / 255.0,
30566
+ textColor[1] / 255.0,
30567
+ textColor[2] / 255.0,
30568
+ (_textColor_ = textColor[3]) != null ? _textColor_ : 1
30569
+ ];
30570
+ }
30451
30571
  /**
30452
30572
  * 根据形状获取形状几何体数据
30453
30573
  * @param shape - 形状
@@ -31370,7 +31490,7 @@ function getStandardSpriteContent(sprite, transform) {
31370
31490
  return ret;
31371
31491
  }
31372
31492
 
31373
- var version$2 = "2.8.0-alpha.3";
31493
+ var version$2 = "2.8.0-alpha.4";
31374
31494
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31375
31495
  var standardVersion = /^(\d+)\.(\d+)$/;
31376
31496
  var reverseParticle = false;
@@ -32010,8 +32130,8 @@ var seed$1 = 1;
32010
32130
  };
32011
32131
  return [
32012
32132
  4,
32013
- hookTimeInfo("plugin:processAssets", function() {
32014
- return _this.processPluginAssets(scene);
32133
+ hookTimeInfo("plugin:onAssetsLoadStart", function() {
32134
+ return _this.onPluginSceneLoadStart(scene);
32015
32135
  })
32016
32136
  ];
32017
32137
  case 6:
@@ -32299,7 +32419,7 @@ var seed$1 = 1;
32299
32419
  });
32300
32420
  })();
32301
32421
  };
32302
- _proto.processPluginAssets = function processPluginAssets(scene) {
32422
+ _proto.onPluginSceneLoadStart = function onPluginSceneLoadStart(scene) {
32303
32423
  var _this = this;
32304
32424
  return _async_to_generator(function() {
32305
32425
  return __generator(this, function(_state) {
@@ -32307,7 +32427,7 @@ var seed$1 = 1;
32307
32427
  case 0:
32308
32428
  return [
32309
32429
  4,
32310
- PluginSystem.processAssets(scene, _this.options)
32430
+ PluginSystem.onAssetsLoadStart(scene, _this.options)
32311
32431
  ];
32312
32432
  case 1:
32313
32433
  _state.sent();
@@ -35008,8 +35128,8 @@ var SceneLoader = /*#__PURE__*/ function() {
35008
35128
  case 1:
35009
35129
  loadedScene = _state.sent();
35010
35130
  engine.clearResources();
35011
- // 触发插件系统 pluginSystem 的回调 prepareResource
35012
- PluginSystem.loadResources(loadedScene, assetManager.options, engine);
35131
+ // 触发插件系统 pluginSystem 的回调 onAssetsLoadFinish
35132
+ PluginSystem.onAssetsLoadFinish(loadedScene, assetManager.options, engine);
35013
35133
  engine.assetService.prepareAssets(loadedScene, loadedScene.assets);
35014
35134
  engine.assetService.updateTextVariables(loadedScene, options.variables);
35015
35135
  engine.assetService.initializeTexture(loadedScene);
@@ -35071,7 +35191,7 @@ registerPlugin("sprite", SpriteLoader);
35071
35191
  registerPlugin("particle", ParticleLoader);
35072
35192
  registerPlugin("cal", CalculateLoader);
35073
35193
  registerPlugin("interact", InteractLoader);
35074
- var version$1 = "2.8.0-alpha.3";
35194
+ var version$1 = "2.8.0-alpha.4";
35075
35195
  logger.info("Core version: " + version$1 + ".");
35076
35196
 
35077
35197
  var _obj;
@@ -36365,8 +36485,8 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
36365
36485
  _$scene = _state.sent();
36366
36486
  engine = _this.engine;
36367
36487
  engine.clearResources();
36368
- // 触发插件系统 pluginSystem 的回调 prepareResource
36369
- PluginSystem.loadResources(_$scene, assetManager.options, engine);
36488
+ // 触发插件系统 pluginSystem 的回调 onAssetsLoadFinish
36489
+ PluginSystem.onAssetsLoadFinish(_$scene, assetManager.options, engine);
36370
36490
  _this.assetService.prepareAssets(_$scene, assetManager.getAssets());
36371
36491
  _this.assetService.updateTextVariables(_$scene, assetManager.options.variables);
36372
36492
  _this.assetService.initializeTexture(_$scene);
@@ -36661,8 +36781,8 @@ applyMixins(ThreeTextComponent, [
36661
36781
  */ Mesh.create = function(engine, props) {
36662
36782
  return new ThreeMesh(engine, props);
36663
36783
  };
36664
- var version = "2.8.0-alpha.3";
36784
+ var version = "2.8.0-alpha.4";
36665
36785
  logger.info("THREEJS plugin version: " + version + ".");
36666
36786
 
36667
- 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, 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, 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, TEXTURE_UNIFORM_MAP, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, 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, setUniformValue, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
36787
+ 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, 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, 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, TEXTURE_UNIFORM_MAP, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, 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, setUniformValue, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
36668
36788
  //# sourceMappingURL=index.mjs.map