@galacean/effects-core 2.0.0-alpha.3 → 2.0.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.0.0-alpha.3
6
+ * Version: v2.0.0-alpha.4
7
7
  */
8
8
 
9
9
  /******************************************************************************
@@ -122,7 +122,7 @@ function __read$3(o, n) {
122
122
  return ar;
123
123
  }
124
124
 
125
- function __spreadArray$2(to, from, pack) {
125
+ function __spreadArray$3(to, from, pack) {
126
126
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
127
127
  if (ar || !(i in from)) {
128
128
  if (!ar) ar = Array.prototype.slice.call(from, 0, i);
@@ -140,20 +140,20 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
140
140
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
141
141
  // require the crypto API and do not support built-in fallback to lower quality random number
142
142
  // generators (like Math.random()).
143
- let getRandomValues;
144
- const rnds8 = new Uint8Array(16);
145
- function rng() {
143
+ let getRandomValues$1;
144
+ const rnds8$1 = new Uint8Array(16);
145
+ function rng$1() {
146
146
  // lazy load so that environments that need to polyfill have a chance to do so
147
- if (!getRandomValues) {
147
+ if (!getRandomValues$1) {
148
148
  // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
149
- getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
149
+ getRandomValues$1 = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
150
150
 
151
- if (!getRandomValues) {
151
+ if (!getRandomValues$1) {
152
152
  throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
153
153
  }
154
154
  }
155
155
 
156
- return getRandomValues(rnds8);
156
+ return getRandomValues$1(rnds8$1);
157
157
  }
158
158
 
159
159
  /**
@@ -161,30 +161,30 @@ function rng() {
161
161
  * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
162
162
  */
163
163
 
164
- const byteToHex = [];
164
+ const byteToHex$2 = [];
165
165
 
166
166
  for (let i = 0; i < 256; ++i) {
167
- byteToHex.push((i + 0x100).toString(16).slice(1));
167
+ byteToHex$2.push((i + 0x100).toString(16).slice(1));
168
168
  }
169
169
 
170
- function unsafeStringify(arr, offset = 0) {
170
+ function unsafeStringify$1(arr, offset = 0) {
171
171
  // Note: Be careful editing this code! It's been tuned for performance
172
172
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
173
- return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
173
+ return byteToHex$2[arr[offset + 0]] + byteToHex$2[arr[offset + 1]] + byteToHex$2[arr[offset + 2]] + byteToHex$2[arr[offset + 3]] + '-' + byteToHex$2[arr[offset + 4]] + byteToHex$2[arr[offset + 5]] + '-' + byteToHex$2[arr[offset + 6]] + byteToHex$2[arr[offset + 7]] + '-' + byteToHex$2[arr[offset + 8]] + byteToHex$2[arr[offset + 9]] + '-' + byteToHex$2[arr[offset + 10]] + byteToHex$2[arr[offset + 11]] + byteToHex$2[arr[offset + 12]] + byteToHex$2[arr[offset + 13]] + byteToHex$2[arr[offset + 14]] + byteToHex$2[arr[offset + 15]];
174
174
  }
175
175
 
176
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
177
- var native = {
178
- randomUUID
176
+ const randomUUID$1 = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
177
+ var native$1 = {
178
+ randomUUID: randomUUID$1
179
179
  };
180
180
 
181
- function v4(options, buf, offset) {
182
- if (native.randomUUID && !buf && !options) {
183
- return native.randomUUID();
181
+ function v4$1(options, buf, offset) {
182
+ if (native$1.randomUUID && !buf && !options) {
183
+ return native$1.randomUUID();
184
184
  }
185
185
 
186
186
  options = options || {};
187
- const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
187
+ const rnds = options.random || (options.rng || rng$1)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
188
188
 
189
189
  rnds[6] = rnds[6] & 0x0f | 0x40;
190
190
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
@@ -199,7 +199,7 @@ function v4(options, buf, offset) {
199
199
  return buf;
200
200
  }
201
201
 
202
- return unsafeStringify(rnds);
202
+ return unsafeStringify$1(rnds);
203
203
  }
204
204
 
205
205
  function addItem(arr, value) {
@@ -2186,7 +2186,7 @@ var __read$2 = (undefined && undefined.__read) || function (o, n) {
2186
2186
  }
2187
2187
  return ar;
2188
2188
  };
2189
- var __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from, pack) {
2189
+ var __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from, pack) {
2190
2190
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
2191
2191
  if (ar || !(i in from)) {
2192
2192
  if (!ar) ar = Array.prototype.slice.call(from, 0, i);
@@ -2503,7 +2503,7 @@ var Matrix4 = /** @class */ (function () {
2503
2503
  * @returns 复制结果
2504
2504
  */
2505
2505
  Matrix4.prototype.copyFrom = function (m) {
2506
- this.elements = __spreadArray$1([], __read$2(m.elements), false);
2506
+ this.elements = __spreadArray$2([], __read$2(m.elements), false);
2507
2507
  return this;
2508
2508
  };
2509
2509
  /**
@@ -3032,7 +3032,7 @@ var Matrix4 = /** @class */ (function () {
3032
3032
  * @returns
3033
3033
  */
3034
3034
  Matrix4.prototype.toArray = function () {
3035
- return __spreadArray$1([], __read$2(this.elements), false);
3035
+ return __spreadArray$2([], __read$2(this.elements), false);
3036
3036
  };
3037
3037
  Matrix4.prototype.fill = function (array, offset) {
3038
3038
  if (offset === void 0) { offset = 0; }
@@ -4285,7 +4285,7 @@ var __read$1 = (undefined && undefined.__read) || function (o, n) {
4285
4285
  }
4286
4286
  return ar;
4287
4287
  };
4288
- var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {
4288
+ var __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from, pack) {
4289
4289
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4290
4290
  if (ar || !(i in from)) {
4291
4291
  if (!ar) ar = Array.prototype.slice.call(from, 0, i);
@@ -4472,7 +4472,7 @@ var Matrix3 = /** @class */ (function () {
4472
4472
  * @returns 复制结果
4473
4473
  */
4474
4474
  Matrix3.prototype.copyFrom = function (m) {
4475
- this.elements = __spreadArray([], __read$1(m.elements), false);
4475
+ this.elements = __spreadArray$1([], __read$1(m.elements), false);
4476
4476
  return this;
4477
4477
  };
4478
4478
  /**
@@ -4688,7 +4688,7 @@ var Matrix3 = /** @class */ (function () {
4688
4688
  * @returns
4689
4689
  */
4690
4690
  Matrix3.prototype.toArray = function () {
4691
- return __spreadArray([], __read$1(this.elements), false);
4691
+ return __spreadArray$1([], __read$1(this.elements), false);
4692
4692
  };
4693
4693
  Matrix3.prototype.fill = function (array, offset) {
4694
4694
  if (offset === void 0) { offset = 0; }
@@ -6446,7 +6446,7 @@ function error(message) {
6446
6446
  for (var _i = 1; _i < arguments.length; _i++) {
6447
6447
  args[_i - 1] = arguments[_i];
6448
6448
  }
6449
- console.error.apply(console, __spreadArray$2(__spreadArray$2([], __read$3(format(message)), false), [args], false));
6449
+ console.error.apply(console, __spreadArray$3(__spreadArray$3([], __read$3(format(message)), false), [args], false));
6450
6450
  localLogger === null || localLogger === void 0 ? void 0 : localLogger('error', message, args);
6451
6451
  }
6452
6452
  /**
@@ -6459,7 +6459,7 @@ function info(message) {
6459
6459
  for (var _i = 1; _i < arguments.length; _i++) {
6460
6460
  args[_i - 1] = arguments[_i];
6461
6461
  }
6462
- console.debug.apply(console, __spreadArray$2([], __read$3(format(message)), false));
6462
+ console.debug.apply(console, __spreadArray$3([], __read$3(format(message)), false));
6463
6463
  localLogger === null || localLogger === void 0 ? void 0 : localLogger('info', message, args);
6464
6464
  }
6465
6465
  function warn(message) {
@@ -6467,7 +6467,7 @@ function warn(message) {
6467
6467
  for (var _i = 1; _i < arguments.length; _i++) {
6468
6468
  args[_i - 1] = arguments[_i];
6469
6469
  }
6470
- console.warn.apply(console, __spreadArray$2([], __read$3(format(message)), false));
6470
+ console.warn.apply(console, __spreadArray$3([], __read$3(format(message)), false));
6471
6471
  localLogger === null || localLogger === void 0 ? void 0 : localLogger('warn', message, args);
6472
6472
  }
6473
6473
  /**
@@ -6564,17 +6564,30 @@ function random(min, max) {
6564
6564
  function throwDestroyedError() {
6565
6565
  throw Error('destroyed item cannot be used again');
6566
6566
  }
6567
- function generateGUID() {
6568
- return v4().replace(/-/g, '');
6567
+ function generateGUID$1() {
6568
+ return v4$1().replace(/-/g, '');
6569
6569
  }
6570
6570
 
6571
6571
  /*!
6572
6572
  * Name: @galacean/effects-specification
6573
6573
  * Description: Galacean Effects JSON Specification
6574
6574
  * Author: Ant Group CO., Ltd.
6575
- * Version: v1.0.1
6575
+ * Version: v2.0.0-alpha.2
6576
+ */
6577
+
6578
+ typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
6579
+
6580
+ /**
6581
+ * Convert array of 16 byte values to UUID string format of the form:
6582
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
6576
6583
  */
6577
6584
 
6585
+ const byteToHex$1 = [];
6586
+
6587
+ for (let i = 0; i < 256; ++i) {
6588
+ byteToHex$1.push((i + 0x100).toString(16).slice(1));
6589
+ }
6590
+
6578
6591
  /*********************************************/
6579
6592
  /* 元素属性参数类型 */
6580
6593
  /*********************************************/
@@ -6837,6 +6850,10 @@ var ItemType$1;
6837
6850
  * 天空盒元素
6838
6851
  */
6839
6852
  ItemType["skybox"] = "skybox";
6853
+ /**
6854
+ * 特效元素
6855
+ */
6856
+ ItemType["effect"] = "effect";
6840
6857
  })(ItemType$1 || (ItemType$1 = {}));
6841
6858
  /**
6842
6859
  * 渲染模式
@@ -6951,6 +6968,10 @@ var CompositionEndBehavior$1;
6951
6968
  * 销毁并保留最后一帧
6952
6969
  */
6953
6970
  CompositionEndBehavior[CompositionEndBehavior["pause_destroy"] = END_BEHAVIOR_PAUSE_AND_DESTROY$1] = "pause_destroy";
6971
+ /**
6972
+ * 冻结
6973
+ */
6974
+ CompositionEndBehavior[CompositionEndBehavior["freeze"] = END_BEHAVIOR_FREEZE$1] = "freeze";
6954
6975
  })(CompositionEndBehavior$1 || (CompositionEndBehavior$1 = {}));
6955
6976
 
6956
6977
  /*********************************************/
@@ -7089,12 +7110,38 @@ var ShapeArcMode$1;
7089
7110
 
7090
7111
  var BloomFilterThresholdAvgColor = 0;
7091
7112
 
7113
+ var LightType$1;
7114
+ (function (LightType) {
7115
+ /**
7116
+ * 点光源
7117
+ */
7118
+ LightType["point"] = "point";
7119
+ /**
7120
+ * 聚光灯
7121
+ */
7122
+ LightType["spot"] = "spot";
7123
+ /**
7124
+ * 方向光
7125
+ */
7126
+ LightType["directional"] = "directional";
7127
+ /**
7128
+ * 环境光
7129
+ */
7130
+ LightType["ambient"] = "ambient";
7131
+ })(LightType$1 || (LightType$1 = {}));
7132
+
7092
7133
  var ModelBoundingType$1;
7093
7134
  (function (ModelBoundingType) {
7094
7135
  ModelBoundingType[ModelBoundingType["box"] = 2] = "box";
7095
7136
  ModelBoundingType[ModelBoundingType["sphere"] = 3] = "sphere";
7096
7137
  })(ModelBoundingType$1 || (ModelBoundingType$1 = {}));
7097
7138
 
7139
+ var CameraType$1;
7140
+ (function (CameraType) {
7141
+ CameraType["orthographic"] = "orthographic";
7142
+ CameraType["perspective"] = "perspective";
7143
+ })(CameraType$1 || (CameraType$1 = {}));
7144
+
7098
7145
  // 材质类型
7099
7146
  var MaterialType$1;
7100
7147
  (function (MaterialType) {
@@ -7240,6 +7287,28 @@ var FontStyle$1;
7240
7287
  FontStyle["oblique"] = "oblique";
7241
7288
  })(FontStyle$1 || (FontStyle$1 = {}));
7242
7289
 
7290
+ var DataType$2;
7291
+ (function (DataType) {
7292
+ DataType["VFXItemData"] = "VFXItemData";
7293
+ DataType["EffectComponent"] = "EffectComponent";
7294
+ DataType["Material"] = "Material";
7295
+ DataType["Shader"] = "Shader";
7296
+ DataType["SpriteComponent"] = "SpriteComponent";
7297
+ DataType["ParticleSystem"] = "ParticleSystem";
7298
+ DataType["InteractComponent"] = "InteractComponent";
7299
+ DataType["CameraController"] = "CameraController";
7300
+ DataType["Geometry"] = "Geometry";
7301
+ DataType["Texture"] = "Texture";
7302
+ DataType["TextComponent"] = "TextComponent";
7303
+ // FIXME: 先完成ECS的场景转换,后面移到spec中
7304
+ DataType["MeshComponent"] = "MeshComponent";
7305
+ DataType["SkyboxComponent"] = "SkyboxComponent";
7306
+ DataType["LightComponent"] = "LightComponent";
7307
+ DataType["CameraComponent"] = "CameraComponent";
7308
+ DataType["ModelPluginComponent"] = "ModelPluginComponent";
7309
+ DataType["TreeComponent"] = "TreeComponent";
7310
+ })(DataType$2 || (DataType$2 = {}));
7311
+
7243
7312
  var index = /*#__PURE__*/Object.freeze({
7244
7313
  __proto__: null,
7245
7314
  get BezierKeyframeType () { return BezierKeyframeType$1; },
@@ -7248,7 +7317,9 @@ var index = /*#__PURE__*/Object.freeze({
7248
7317
  CAMERA_CLIP_MODE_NORMAL: CAMERA_CLIP_MODE_NORMAL$1,
7249
7318
  CAMERA_CLIP_MODE_VERTICAL: CAMERA_CLIP_MODE_VERTICAL$1,
7250
7319
  get CameraClipMode () { return CameraClipMode$1; },
7320
+ get CameraType () { return CameraType$1; },
7251
7321
  get CompositionEndBehavior () { return CompositionEndBehavior$1; },
7322
+ get DataType () { return DataType$2; },
7252
7323
  END_BEHAVIOR_DESTROY: END_BEHAVIOR_DESTROY$1,
7253
7324
  END_BEHAVIOR_DESTROY_CHILDREN: END_BEHAVIOR_DESTROY_CHILDREN$1,
7254
7325
  END_BEHAVIOR_FORWARD: END_BEHAVIOR_FORWARD$1,
@@ -7261,6 +7332,7 @@ var index = /*#__PURE__*/Object.freeze({
7261
7332
  get InteractType () { return InteractType$1; },
7262
7333
  get ItemEndBehavior () { return ItemEndBehavior$1; },
7263
7334
  get ItemType () { return ItemType$1; },
7335
+ get LightType () { return LightType$1; },
7264
7336
  MESSAGE_ITEM_PHRASE_BEGIN: MESSAGE_ITEM_PHRASE_BEGIN,
7265
7337
  MESSAGE_ITEM_PHRASE_END: MESSAGE_ITEM_PHRASE_END,
7266
7338
  get MaskMode () { return MaskMode$1; },
@@ -7452,7 +7524,7 @@ function copy$1(target) {
7452
7524
  }
7453
7525
  }
7454
7526
 
7455
- var _a$5;
7527
+ var _a$6;
7456
7528
  function valIfUndefined(val, def) {
7457
7529
  if (val === undefined || val === null) {
7458
7530
  return def;
@@ -7482,15 +7554,15 @@ function getPreMultiAlpha(blending) {
7482
7554
  return 1;
7483
7555
  }
7484
7556
  }
7485
- var downgradeKeywords = (_a$5 = {},
7486
- _a$5[ShaderType.vertex] = {
7557
+ var downgradeKeywords = (_a$6 = {},
7558
+ _a$6[ShaderType.vertex] = {
7487
7559
  in: 'attribute',
7488
7560
  out: 'varying',
7489
7561
  },
7490
- _a$5[ShaderType.fragment] = {
7562
+ _a$6[ShaderType.fragment] = {
7491
7563
  in: 'varying',
7492
7564
  },
7493
- _a$5);
7565
+ _a$6);
7494
7566
  /**
7495
7567
  * 生成 shader,检测到 WebGL1 上下文会降级
7496
7568
  * @param marcos - 宏定义数组
@@ -7931,7 +8003,7 @@ function loadMipmapImage(pointer, bins) {
7931
8003
  var EffectsObject = /** @class */ (function () {
7932
8004
  function EffectsObject(engine) {
7933
8005
  this.engine = engine;
7934
- this.guid = generateGUID();
8006
+ this.guid = generateGUID$1();
7935
8007
  this.taggedProperties = {};
7936
8008
  this.engine.addInstance(this);
7937
8009
  }
@@ -8628,13 +8700,49 @@ var GLSLVersion;
8628
8700
  GLSLVersion["GLSL1"] = "100";
8629
8701
  GLSLVersion["GLSL3"] = "300 es";
8630
8702
  })(GLSLVersion || (GLSLVersion = {}));
8631
- var Shader = /** @class */ (function (_super) {
8632
- __extends(Shader, _super);
8633
- function Shader(engine, source) {
8703
+ var ShaderVariant = /** @class */ (function (_super) {
8704
+ __extends(ShaderVariant, _super);
8705
+ function ShaderVariant(engine, source) {
8634
8706
  var _this = _super.call(this, engine) || this;
8635
8707
  _this.source = source;
8636
8708
  return _this;
8637
8709
  }
8710
+ return ShaderVariant;
8711
+ }(EffectsObject));
8712
+ var Shader = /** @class */ (function (_super) {
8713
+ __extends(Shader, _super);
8714
+ function Shader() {
8715
+ return _super !== null && _super.apply(this, arguments) || this;
8716
+ }
8717
+ Shader.prototype.createVariant = function (macros) {
8718
+ var e_1, _a;
8719
+ var shaderMacros = [];
8720
+ if (macros) {
8721
+ try {
8722
+ for (var _b = __values$1(Object.keys(macros)), _c = _b.next(); !_c.done; _c = _b.next()) {
8723
+ var key = _c.value;
8724
+ shaderMacros.push([key, macros[key]]);
8725
+ }
8726
+ }
8727
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
8728
+ finally {
8729
+ try {
8730
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
8731
+ }
8732
+ finally { if (e_1) throw e_1.error; }
8733
+ }
8734
+ }
8735
+ var shaderVariant = this.engine.getShaderLibrary().createShader(this.shaderData, shaderMacros);
8736
+ shaderVariant.shader = this;
8737
+ return shaderVariant;
8738
+ };
8739
+ Shader.prototype.fromData = function (data) {
8740
+ _super.prototype.fromData.call(this, data);
8741
+ this.shaderData = data;
8742
+ };
8743
+ Shader = __decorate([
8744
+ effectsClass('Shader')
8745
+ ], Shader);
8638
8746
  return Shader;
8639
8747
  }(EffectsObject));
8640
8748
 
@@ -8647,8 +8755,8 @@ function createCopyShader(level, writeDepth) {
8647
8755
  var version = webgl2 ? '#version 300 es' : '';
8648
8756
  return {
8649
8757
  name: EFFECTS_COPY_MESH_NAME,
8650
- vertex: createShaderWithMarcos([], version + '\n' + COPY_VERTEX_SHADER, ShaderType.vertex, level),
8651
- fragment: createShaderWithMarcos([], version + '\n' + COPY_FRAGMENT_SHADER, ShaderType.fragment, level),
8758
+ vertex: version + '\n' + COPY_VERTEX_SHADER,
8759
+ fragment: version + '\n' + COPY_FRAGMENT_SHADER,
8652
8760
  glslVersion: webgl2 ? GLSLVersion.GLSL3 : GLSLVersion.GLSL1,
8653
8761
  marcos: [
8654
8762
  ['WEBGL2', !!webgl2],
@@ -8780,13 +8888,13 @@ var SemanticMap = /** @class */ (function () {
8780
8888
  return SemanticMap;
8781
8889
  }());
8782
8890
 
8783
- var _a$4;
8784
- var BYTES_TYPE_MAP = (_a$4 = {},
8785
- _a$4[glContext.FLOAT] = Float32Array.BYTES_PER_ELEMENT,
8786
- _a$4[glContext.INT] = Int32Array.BYTES_PER_ELEMENT,
8787
- _a$4[glContext.SHORT] = Int16Array.BYTES_PER_ELEMENT,
8788
- _a$4[glContext.BYTE] = Int8Array.BYTES_PER_ELEMENT,
8789
- _a$4);
8891
+ var _a$5;
8892
+ var BYTES_TYPE_MAP = (_a$5 = {},
8893
+ _a$5[glContext.FLOAT] = Float32Array.BYTES_PER_ELEMENT,
8894
+ _a$5[glContext.INT] = Int32Array.BYTES_PER_ELEMENT,
8895
+ _a$5[glContext.SHORT] = Int16Array.BYTES_PER_ELEMENT,
8896
+ _a$5[glContext.BYTE] = Int8Array.BYTES_PER_ELEMENT,
8897
+ _a$5);
8790
8898
  /**
8791
8899
  * Geometry 抽象类
8792
8900
  */
@@ -9355,7 +9463,7 @@ var RenderPass = /** @class */ (function () {
9355
9463
  RenderPass.prototype.setMeshes = function (meshes) {
9356
9464
  var _a;
9357
9465
  this.meshes.length = 0;
9358
- (_a = this.meshes).splice.apply(_a, __spreadArray$2([0, 0], __read$3(meshes), false));
9466
+ (_a = this.meshes).splice.apply(_a, __spreadArray$3([0, 0], __read$3(meshes), false));
9359
9467
  sortByOrder(this.meshes, this.meshOrder);
9360
9468
  return this.meshes;
9361
9469
  };
@@ -11540,18 +11648,15 @@ var AssetLoader = /** @class */ (function () {
11540
11648
  return undefined;
11541
11649
  }
11542
11650
  switch (effectsObjectData.dataType) {
11543
- case DataType.Material:
11651
+ case DataType$1.Material:
11544
11652
  effectsObject = Material.create(this.engine);
11545
11653
  break;
11546
- case DataType.Geometry:
11654
+ case DataType$1.Geometry:
11547
11655
  effectsObject = Geometry.create(this.engine);
11548
11656
  break;
11549
- case DataType.Texture:
11657
+ case DataType$1.Texture:
11550
11658
  effectsObject = Texture.create(this.engine, effectsObjectData);
11551
11659
  return effectsObject;
11552
- case DataType.Shader:
11553
- effectsObject = this.engine.getShaderLibrary().createShader(effectsObjectData);
11554
- break;
11555
11660
  default: {
11556
11661
  var classConstructor = AssetLoader.getClass(effectsObjectData.dataType);
11557
11662
  if (classConstructor) {
@@ -11595,18 +11700,15 @@ var AssetLoader = /** @class */ (function () {
11595
11700
  return [2 /*return*/, effectsObject];
11596
11701
  case 2:
11597
11702
  switch (effectsObjectData.dataType) {
11598
- case DataType.Material:
11703
+ case DataType$1.Material:
11599
11704
  effectsObject = Material.create(this.engine);
11600
11705
  break;
11601
- case DataType.Geometry:
11706
+ case DataType$1.Geometry:
11602
11707
  effectsObject = Geometry.create(this.engine);
11603
11708
  break;
11604
- case DataType.Texture:
11709
+ case DataType$1.Texture:
11605
11710
  effectsObject = Texture.create(this.engine, effectsObjectData);
11606
11711
  return [2 /*return*/, effectsObject];
11607
- case DataType.Shader:
11608
- effectsObject = this.engine.getShaderLibrary().createShader(effectsObjectData);
11609
- break;
11610
11712
  default: {
11611
11713
  classConstructor = AssetLoader.getClass(effectsObjectData.dataType);
11612
11714
  if (classConstructor) {
@@ -11648,7 +11750,7 @@ var Database = /** @class */ (function () {
11648
11750
  };
11649
11751
  return Database;
11650
11752
  }());
11651
- var DataType;
11753
+ var DataType$1;
11652
11754
  (function (DataType) {
11653
11755
  DataType["VFXItemData"] = "VFXItemData";
11654
11756
  DataType["EffectComponent"] = "EffectComponent";
@@ -11668,7 +11770,7 @@ var DataType;
11668
11770
  DataType["CameraComponent"] = "CameraComponent";
11669
11771
  DataType["ModelPluginComponent"] = "ModelPluginComponent";
11670
11772
  DataType["TreeComponent"] = "TreeComponent";
11671
- })(DataType || (DataType = {}));
11773
+ })(DataType$1 || (DataType$1 = {}));
11672
11774
 
11673
11775
  /**
11674
11776
  * 抽象插件类
@@ -11819,7 +11921,7 @@ function calculateTranslation(out, target, acc, time, duration, posData, velData
11819
11921
  return ret;
11820
11922
  }
11821
11923
 
11822
- var _a$3;
11924
+ var _a$4;
11823
11925
  function ensureVec3(num) {
11824
11926
  return Array.isArray(num) ? [num[0], num[1], num[2]] : [0, 0, 0];
11825
11927
  }
@@ -11842,7 +11944,7 @@ function vecNormalize(out, a) {
11842
11944
  out = [];
11843
11945
  }
11844
11946
  var ap = a;
11845
- var sum = Math.hypot.apply(Math, __spreadArray$2([], __read$3(ap), false));
11947
+ var sum = Math.hypot.apply(Math, __spreadArray$3([], __read$3(ap), false));
11846
11948
  if (sum === 0) {
11847
11949
  return vecAssign(out, ap, ap.length);
11848
11950
  }
@@ -11873,17 +11975,17 @@ function vecMulCombine(out, a, b) {
11873
11975
  }
11874
11976
  return out;
11875
11977
  }
11876
- var particleOriginTranslateMap = (_a$3 = {},
11877
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_CENTER] = [0, 0],
11878
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_CENTER_BOTTOM] = [0, -0.5],
11879
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_CENTER_TOP] = [0, 0.5],
11880
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_LEFT_TOP] = [-0.5, 0.5],
11881
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_LEFT_CENTER] = [-0.5, 0],
11882
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_LEFT_BOTTOM] = [-0.5, -0.5],
11883
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_RIGHT_CENTER] = [0.5, 0],
11884
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_RIGHT_BOTTOM] = [0.5, -0.5],
11885
- _a$3[ParticleOrigin$1.PARTICLE_ORIGIN_RIGHT_TOP] = [0.5, 0.5],
11886
- _a$3);
11978
+ var particleOriginTranslateMap$1 = (_a$4 = {},
11979
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_CENTER] = [0, 0],
11980
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_CENTER_BOTTOM] = [0, -0.5],
11981
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_CENTER_TOP] = [0, 0.5],
11982
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_LEFT_TOP] = [-0.5, 0.5],
11983
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_LEFT_CENTER] = [-0.5, 0],
11984
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_LEFT_BOTTOM] = [-0.5, -0.5],
11985
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_RIGHT_CENTER] = [0.5, 0],
11986
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_RIGHT_BOTTOM] = [0.5, -0.5],
11987
+ _a$4[ParticleOrigin$1.PARTICLE_ORIGIN_RIGHT_TOP] = [0.5, 0.5],
11988
+ _a$4);
11887
11989
  function nearestPowerOfTwo(value) {
11888
11990
  return Math.pow(2, Math.round(Math.log(value) / Math.LN2));
11889
11991
  }
@@ -11908,7 +12010,7 @@ function trianglesFromRect(position, halfWidth, halfHeight) {
11908
12010
  ];
11909
12011
  }
11910
12012
 
11911
- var _a$2;
12013
+ var _a$3;
11912
12014
  var NOT_IMPLEMENT = 'not_implement';
11913
12015
  var ValueGetter = /** @class */ (function () {
11914
12016
  function ValueGetter(arg) {
@@ -12416,50 +12518,50 @@ var BezierSegments = /** @class */ (function (_super) {
12416
12518
  };
12417
12519
  return BezierSegments;
12418
12520
  }(PathSegments));
12419
- var map$1 = (_a$2 = {},
12420
- _a$2[ValueType$1.RANDOM] = function (props) {
12521
+ var map$1 = (_a$3 = {},
12522
+ _a$3[ValueType$1.RANDOM] = function (props) {
12421
12523
  if (props[0] instanceof Array) {
12422
12524
  return new RandomVectorValue(props);
12423
12525
  }
12424
12526
  return new RandomValue(props);
12425
12527
  },
12426
- _a$2[ValueType$1.CONSTANT] = function (props) {
12528
+ _a$3[ValueType$1.CONSTANT] = function (props) {
12427
12529
  return new StaticValue(props);
12428
12530
  },
12429
- _a$2[ValueType$1.CONSTANT_VEC2] = function (props) {
12531
+ _a$3[ValueType$1.CONSTANT_VEC2] = function (props) {
12430
12532
  return new StaticValue(props);
12431
12533
  },
12432
- _a$2[ValueType$1.CONSTANT_VEC3] = function (props) {
12534
+ _a$3[ValueType$1.CONSTANT_VEC3] = function (props) {
12433
12535
  return new StaticValue(props);
12434
12536
  },
12435
- _a$2[ValueType$1.CONSTANT_VEC4] = function (props) {
12537
+ _a$3[ValueType$1.CONSTANT_VEC4] = function (props) {
12436
12538
  return new StaticValue(props);
12437
12539
  },
12438
- _a$2[ValueType$1.CURVE] = function (props) {
12540
+ _a$3[ValueType$1.CURVE] = function (props) {
12439
12541
  return new CurveValue(props);
12440
12542
  },
12441
- _a$2[ValueType$1.RGBA_COLOR] = function (props) {
12543
+ _a$3[ValueType$1.RGBA_COLOR] = function (props) {
12442
12544
  return new StaticValue(props);
12443
12545
  },
12444
- _a$2[ValueType$1.COLORS] = function (props) {
12546
+ _a$3[ValueType$1.COLORS] = function (props) {
12445
12547
  return new RandomSetValue(props.map(function (c) { return colorToArr$1(c, false); }));
12446
12548
  },
12447
- _a$2[ValueType$1.LINE] = function (props) {
12549
+ _a$3[ValueType$1.LINE] = function (props) {
12448
12550
  if (props.length === 2 && props[0][0] === 0 && props[1][0] === 1) {
12449
12551
  return new LinearValue([props[0][1], props[1][1]]);
12450
12552
  }
12451
12553
  return new LineSegments(props);
12452
12554
  },
12453
- _a$2[ValueType$1.GRADIENT_COLOR] = function (props) {
12555
+ _a$3[ValueType$1.GRADIENT_COLOR] = function (props) {
12454
12556
  return new GradientValue(props);
12455
12557
  },
12456
- _a$2[ValueType$1.LINEAR_PATH] = function (pros) {
12558
+ _a$3[ValueType$1.LINEAR_PATH] = function (pros) {
12457
12559
  return new PathSegments(pros);
12458
12560
  },
12459
- _a$2[ValueType$1.BEZIER_PATH] = function (pros) {
12561
+ _a$3[ValueType$1.BEZIER_PATH] = function (pros) {
12460
12562
  return new BezierSegments(pros);
12461
12563
  },
12462
- _a$2);
12564
+ _a$3);
12463
12565
  function createValueGetter(args) {
12464
12566
  if (!args || !isNaN(+args)) {
12465
12567
  return new StaticValue(args || 0);
@@ -13189,7 +13291,7 @@ var CameraController = /** @class */ (function (_super) {
13189
13291
  }
13190
13292
  };
13191
13293
  CameraController = __decorate([
13192
- effectsClass(DataType.CameraController)
13294
+ effectsClass(DataType$1.CameraController)
13193
13295
  ], CameraController);
13194
13296
  return CameraController;
13195
13297
  }(ItemBehaviour));
@@ -13410,13 +13512,13 @@ var InteractMesh = /** @class */ (function () {
13410
13512
  ['ENV_EDITOR', ((_a = this.engine.renderer) === null || _a === void 0 ? void 0 : _a.env) === PLAYER_OPTIONS_ENV_EDITOR],
13411
13513
  ];
13412
13514
  var color = createValueGetter(this.color).getValue(0);
13413
- var level = this.engine.gpuCapability.level;
13414
13515
  var materialProps = {
13415
13516
  shader: {
13416
- vertex: createShaderWithMarcos(marcos, vertex, ShaderType.vertex, level),
13417
- fragment: createShaderWithMarcos(marcos, fragment, ShaderType.fragment, level),
13517
+ vertex: vertex,
13518
+ fragment: fragment,
13418
13519
  glslVersion: GLSLVersion.GLSL1,
13419
13520
  cacheId: "".concat(rendererOptions.cachePrefix, "_effects_interact"),
13521
+ marcos: marcos,
13420
13522
  },
13421
13523
  uniformSemantics: {
13422
13524
  effects_MatrixVP: 'VIEWPROJECTION',
@@ -13490,11 +13592,11 @@ var InteractComponent = /** @class */ (function (_super) {
13490
13592
  }
13491
13593
  InteractComponent_1 = InteractComponent;
13492
13594
  InteractComponent.prototype.start = function () {
13493
- var _a, _b, _c;
13595
+ var _this = this;
13494
13596
  var options = this.item.props.content.options;
13495
- var env = ((_b = (_a = this.item.engine) === null || _a === void 0 ? void 0 : _a.renderer) !== null && _b !== void 0 ? _b : {}).env;
13597
+ var env = this.item.engine.renderer.env;
13496
13598
  var composition = this.item.composition;
13497
- var _d = this.interactData.options, type = _d.type, showPreview = _d.showPreview;
13599
+ var _a = this.interactData.options, type = _a.type, showPreview = _a.showPreview;
13498
13600
  if (type === InteractType$1.CLICK) {
13499
13601
  this.clickable = true;
13500
13602
  if (showPreview && env === PLAYER_OPTIONS_ENV_EDITOR) {
@@ -13502,7 +13604,8 @@ var InteractComponent = /** @class */ (function (_super) {
13502
13604
  this.previewContent = new InteractMesh(this.item.props.content, rendererOptions, this.transform, this.engine);
13503
13605
  }
13504
13606
  }
13505
- (_c = this.item.composition) === null || _c === void 0 ? void 0 : _c.addInteractiveItem(this.item, options.type);
13607
+ composition.addInteractiveItem(this.item, options.type);
13608
+ this.item.onEnd = function () { return composition.removeInteractiveItem(_this.item, options.type); };
13506
13609
  if (options.type === InteractType$1.DRAG) {
13507
13610
  if (env !== PLAYER_OPTIONS_ENV_EDITOR || options.enableInEditor) {
13508
13611
  composition.event && this.beginDragTarget(options, composition.event);
@@ -13646,7 +13749,7 @@ var InteractComponent = /** @class */ (function (_super) {
13646
13749
  };
13647
13750
  var InteractComponent_1;
13648
13751
  InteractComponent = InteractComponent_1 = __decorate([
13649
- effectsClass(DataType.InteractComponent)
13752
+ effectsClass(DataType$1.InteractComponent)
13650
13753
  ], InteractComponent);
13651
13754
  return InteractComponent;
13652
13755
  }(RendererComponent));
@@ -13695,8 +13798,8 @@ function spriteMeshShaderFromFilter(level, options) {
13695
13798
  var fragment = wireframe ? itemFrameFrag : itemFrag.replace(/#pragma\s+FILTER_FRAG/, '');
13696
13799
  var vertex = itemVert.replace(/#pragma\s+FILTER_VERT/, 'vec4 filterMain(float t,vec4 pos){return effects_MatrixVP * pos;}');
13697
13800
  return {
13698
- fragment: createShaderWithMarcos(marcos, fragment, ShaderType.fragment, level),
13699
- vertex: createShaderWithMarcos(marcos, vertex, ShaderType.vertex, level),
13801
+ fragment: fragment,
13802
+ vertex: vertex,
13700
13803
  glslVersion: level === 1 ? GLSLVersion.GLSL1 : GLSLVersion.GLSL3,
13701
13804
  marcos: marcos,
13702
13805
  shared: true,
@@ -15015,7 +15118,7 @@ var SpriteComponent = /** @class */ (function (_super) {
15015
15118
  _super.prototype.toData.call(this);
15016
15119
  };
15017
15120
  SpriteComponent = __decorate([
15018
- effectsClass(DataType.SpriteComponent)
15121
+ effectsClass(DataType$1.SpriteComponent)
15019
15122
  ], SpriteComponent);
15020
15123
  return SpriteComponent;
15021
15124
  }(RendererComponent));
@@ -15176,8 +15279,8 @@ var ParticleMesh = /** @class */ (function () {
15176
15279
  var originalVertex = "#define LOOKUP_TEXTURE_CURVE ".concat(vertex_lookup_texture, "\n").concat(particleVert);
15177
15280
  var vertex = originalVertex;
15178
15281
  var shader = {
15179
- fragment: createShaderWithMarcos(marcos, fragment, ShaderType.fragment, level),
15180
- vertex: createShaderWithMarcos(marcos, vertex, ShaderType.vertex, level),
15282
+ fragment: fragment,
15283
+ vertex: vertex,
15181
15284
  glslVersion: level === 1 ? GLSLVersion.GLSL1 : GLSLVersion.GLSL3,
15182
15285
  shared: true,
15183
15286
  cacheId: shaderCache,
@@ -15732,8 +15835,8 @@ var TrailMesh = /** @class */ (function () {
15732
15835
  else {
15733
15836
  uniformValues.uVCurveValues = CurveValue.getAllData(keyFrameMeta);
15734
15837
  }
15735
- var vertex = createShaderWithMarcos(marcos, trailVert, ShaderType.vertex, level);
15736
- var fragment = createShaderWithMarcos(marcos, particleFrag, ShaderType.fragment, level);
15838
+ var vertex = trailVert;
15839
+ var fragment = particleFrag;
15737
15840
  var mtl = ({
15738
15841
  shader: {
15739
15842
  vertex: vertex,
@@ -16420,7 +16523,7 @@ var TextureShape = /** @class */ (function () {
16420
16523
  return TextureShape;
16421
16524
  }());
16422
16525
 
16423
- var _a$1;
16526
+ var _a$2;
16424
16527
  var ShapeNone = /** @class */ (function () {
16425
16528
  function ShapeNone() {
16426
16529
  }
@@ -16432,18 +16535,18 @@ var ShapeNone = /** @class */ (function () {
16432
16535
  };
16433
16536
  return ShapeNone;
16434
16537
  }());
16435
- var map = (_a$1 = {},
16436
- _a$1[ShapeType$1.NONE] = ShapeNone,
16437
- _a$1[ShapeType$1.CONE] = Cone,
16438
- _a$1[ShapeType$1.SPHERE] = Sphere,
16439
- _a$1[ShapeType$1.HEMISPHERE] = Hemisphere,
16440
- _a$1[ShapeType$1.CIRCLE] = Circle,
16441
- _a$1[ShapeType$1.DONUT] = Donut,
16442
- _a$1[ShapeType$1.RECTANGLE] = Rectangle,
16443
- _a$1[ShapeType$1.EDGE] = Edge,
16444
- _a$1[ShapeType$1.RECTANGLE_EDGE] = RectangleEdge,
16445
- _a$1[ShapeType$1.TEXTURE] = TextureShape,
16446
- _a$1);
16538
+ var map = (_a$2 = {},
16539
+ _a$2[ShapeType$1.NONE] = ShapeNone,
16540
+ _a$2[ShapeType$1.CONE] = Cone,
16541
+ _a$2[ShapeType$1.SPHERE] = Sphere,
16542
+ _a$2[ShapeType$1.HEMISPHERE] = Hemisphere,
16543
+ _a$2[ShapeType$1.CIRCLE] = Circle,
16544
+ _a$2[ShapeType$1.DONUT] = Donut,
16545
+ _a$2[ShapeType$1.RECTANGLE] = Rectangle,
16546
+ _a$2[ShapeType$1.EDGE] = Edge,
16547
+ _a$2[ShapeType$1.RECTANGLE_EDGE] = RectangleEdge,
16548
+ _a$2[ShapeType$1.TEXTURE] = TextureShape,
16549
+ _a$2);
16447
16550
  function createShape(shapeOptions) {
16448
16551
  if (!shapeOptions) {
16449
16552
  return new ShapeNone();
@@ -17772,7 +17875,7 @@ var ParticleSystem = /** @class */ (function (_super) {
17772
17875
  }));
17773
17876
  p.delay += meshTime;
17774
17877
  cursor++;
17775
- (_a = p.transform).translate.apply(_a, __spreadArray$2([], __read$3(burstOffset), false));
17878
+ (_a = p.transform).translate.apply(_a, __spreadArray$3([], __read$3(burstOffset), false));
17776
17879
  this.addParticle(p, maxCount_1);
17777
17880
  }
17778
17881
  }
@@ -18361,7 +18464,7 @@ var ParticleSystem = /** @class */ (function (_super) {
18361
18464
  timeline.createTrack(Track).createClip(ParticleBehaviourPlayable);
18362
18465
  };
18363
18466
  ParticleSystem = __decorate([
18364
- effectsClass(DataType.ParticleSystem)
18467
+ effectsClass(DataType$1.ParticleSystem)
18365
18468
  ], ParticleSystem);
18366
18469
  return ParticleSystem;
18367
18470
  }(Component));
@@ -18544,7 +18647,9 @@ var TextStyle = /** @class */ (function () {
18544
18647
  this.fontOffset = 0;
18545
18648
  var _g = options.textColor, textColor = _g === void 0 ? [1, 1, 1, 1] : _g, _h = options.fontSize, fontSize = _h === void 0 ? 40 : _h, outline = options.outline, shadow = options.shadow, _j = options.fontWeight, fontWeight = _j === void 0 ? 'normal' : _j, _k = options.fontStyle, fontStyle = _k === void 0 ? 'normal' : _k, _l = options.fontFamily, fontFamily = _l === void 0 ? 'sans-serif' : _l;
18546
18649
  this.textColor = textColor;
18650
+ //@ts-expect-error
18547
18651
  this.textWeight = fontWeight;
18652
+ //@ts-expect-error
18548
18653
  this.fontStyle = fontStyle;
18549
18654
  this.fontFamily = fontFamily;
18550
18655
  this.fontSize = fontSize; // 暂时取消字号限制 Math.min(fontSize, this.maxFontSize);
@@ -20054,7 +20159,7 @@ var TextComponent = /** @class */ (function (_super) {
20054
20159
  context.shadowOffsetY = -style.shadowOffsetY;
20055
20160
  };
20056
20161
  TextComponent = __decorate([
20057
- effectsClass(DataType.TextComponent)
20162
+ effectsClass(DataType$1.TextComponent)
20058
20163
  ], TextComponent);
20059
20164
  return TextComponent;
20060
20165
  }(SpriteComponent));
@@ -20210,7 +20315,7 @@ var EffectComponent = /** @class */ (function (_super) {
20210
20315
  serialize()
20211
20316
  ], EffectComponent.prototype, "geometry", void 0);
20212
20317
  EffectComponent = __decorate([
20213
- effectsClass(DataType.EffectComponent)
20318
+ effectsClass(DataType$1.EffectComponent)
20214
20319
  ], EffectComponent);
20215
20320
  return EffectComponent;
20216
20321
  }(RendererComponent));
@@ -20612,7 +20717,10 @@ var VFXItem = /** @class */ (function (_super) {
20612
20717
  try {
20613
20718
  for (var _e = __values$1(this.children), _f = _e.next(); !_f.done; _f = _e.next()) {
20614
20719
  var child = _f.value;
20615
- return child.find(name);
20720
+ var res = child.find(name);
20721
+ if (res) {
20722
+ return res;
20723
+ }
20616
20724
  }
20617
20725
  }
20618
20726
  catch (e_4_1) { e_4 = { error: e_4_1 }; }
@@ -20629,6 +20737,7 @@ var VFXItem = /** @class */ (function (_super) {
20629
20737
  _super.prototype.fromData.call(this, data);
20630
20738
  var id = data.id, name = data.name, delay = data.delay, parentId = data.parentId, endBehavior = data.endBehavior, transform = data.transform, _b = data.listIndex, listIndex = _b === void 0 ? 0 : _b, _c = data.duration, duration = _c === void 0 ? 0 : _c;
20631
20739
  this.props = data;
20740
+ //@ts-expect-error
20632
20741
  this.type = data.type;
20633
20742
  this.id = id.toString(); // TODO 老数据 id 是 number,需要转换
20634
20743
  this.name = name;
@@ -20697,7 +20806,7 @@ var VFXItem = /** @class */ (function (_super) {
20697
20806
  var _b, _c;
20698
20807
  this.taggedProperties.id = this.guid;
20699
20808
  this.taggedProperties.transform = this.transform.toData();
20700
- this.taggedProperties.dataType = DataType.VFXItemData;
20809
+ this.taggedProperties.dataType = DataType$1.VFXItemData;
20701
20810
  if (((_b = this.parent) === null || _b === void 0 ? void 0 : _b.name) !== 'rootItem') {
20702
20811
  this.taggedProperties.parentId = (_c = this.parent) === null || _c === void 0 ? void 0 : _c.guid;
20703
20812
  }
@@ -20724,10 +20833,10 @@ var VFXItem = /** @class */ (function (_super) {
20724
20833
  };
20725
20834
  VFXItem.prototype.translateByPixel = function (x, y) {
20726
20835
  if (this.composition) {
20836
+ // @ts-expect-error
20837
+ var _a = this.composition.renderer.canvas.getBoundingClientRect(), width = _a.width, height = _a.height;
20727
20838
  var z = this.transform.getWorldPosition().z;
20728
- var _a = this.composition.camera.getInverseVPRatio(z), rx = _a.x, ry = _a.y;
20729
- var width = this.composition.renderer.getWidth() / 2;
20730
- var height = this.composition.renderer.getHeight() / 2;
20839
+ var _b = this.composition.camera.getInverseVPRatio(z), rx = _b.x, ry = _b.y;
20731
20840
  this.transform.translate(2 * x * rx / width, -2 * y * ry / height, 0);
20732
20841
  }
20733
20842
  };
@@ -20794,7 +20903,7 @@ var VFXItem = /** @class */ (function (_super) {
20794
20903
  };
20795
20904
  var VFXItem_1;
20796
20905
  VFXItem = VFXItem_1 = __decorate([
20797
- effectsClass(DataType.VFXItemData)
20906
+ effectsClass(DataType$1.VFXItemData)
20798
20907
  ], VFXItem);
20799
20908
  return VFXItem;
20800
20909
  }(EffectsObject));
@@ -20832,7 +20941,6 @@ function createVFXItem(props, composition) {
20832
20941
  if (!pluginName) {
20833
20942
  switch (type) {
20834
20943
  case ItemType$1.null:
20835
- case ItemType$1.base:
20836
20944
  pluginName = 'cal';
20837
20945
  break;
20838
20946
  case ItemType$1.sprite:
@@ -20953,7 +21061,7 @@ var PluginSystem = /** @class */ (function () {
20953
21061
  plugin = plugins[i];
20954
21062
  ctrl = pluginLoaderMap[plugin.name];
20955
21063
  if (name in ctrl) {
20956
- pendings.push(Promise.resolve(ctrl[name].apply(ctrl, __spreadArray$2([], __read$3(args), false))));
21064
+ pendings.push(Promise.resolve(ctrl[name].apply(ctrl, __spreadArray$3([], __read$3(args), false))));
20957
21065
  }
20958
21066
  }
20959
21067
  return [2 /*return*/, Promise.all(pendings)];
@@ -20998,9 +21106,74 @@ function getPluginUsageInfo(name) {
20998
21106
  * Name: @galacean/effects-specification
20999
21107
  * Description: Galacean Effects JSON Specification
21000
21108
  * Author: Ant Group CO., Ltd.
21001
- * Version: v1.0.1
21109
+ * Version: v2.0.0-alpha.2
21110
+ */
21111
+
21112
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
21113
+ var native = {
21114
+ randomUUID
21115
+ };
21116
+
21117
+ // Unique ID creation requires a high quality random # generator. In the browser we therefore
21118
+ // require the crypto API and do not support built-in fallback to lower quality random number
21119
+ // generators (like Math.random()).
21120
+ let getRandomValues;
21121
+ const rnds8 = new Uint8Array(16);
21122
+ function rng() {
21123
+ // lazy load so that environments that need to polyfill have a chance to do so
21124
+ if (!getRandomValues) {
21125
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
21126
+ getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
21127
+
21128
+ if (!getRandomValues) {
21129
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
21130
+ }
21131
+ }
21132
+
21133
+ return getRandomValues(rnds8);
21134
+ }
21135
+
21136
+ /**
21137
+ * Convert array of 16 byte values to UUID string format of the form:
21138
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
21002
21139
  */
21003
21140
 
21141
+ const byteToHex = [];
21142
+
21143
+ for (let i = 0; i < 256; ++i) {
21144
+ byteToHex.push((i + 0x100).toString(16).slice(1));
21145
+ }
21146
+
21147
+ function unsafeStringify(arr, offset = 0) {
21148
+ // Note: Be careful editing this code! It's been tuned for performance
21149
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
21150
+ return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
21151
+ }
21152
+
21153
+ function v4(options, buf, offset) {
21154
+ if (native.randomUUID && !buf && !options) {
21155
+ return native.randomUUID();
21156
+ }
21157
+
21158
+ options = options || {};
21159
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
21160
+
21161
+ rnds[6] = rnds[6] & 0x0f | 0x40;
21162
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
21163
+
21164
+ if (buf) {
21165
+ offset = offset || 0;
21166
+
21167
+ for (let i = 0; i < 16; ++i) {
21168
+ buf[offset + i] = rnds[i];
21169
+ }
21170
+
21171
+ return buf;
21172
+ }
21173
+
21174
+ return unsafeStringify(rnds);
21175
+ }
21176
+
21004
21177
  /*********************************************/
21005
21178
  /* 元素属性参数类型 */
21006
21179
  /*********************************************/
@@ -21263,6 +21436,10 @@ var ItemType;
21263
21436
  * 天空盒元素
21264
21437
  */
21265
21438
  ItemType["skybox"] = "skybox";
21439
+ /**
21440
+ * 特效元素
21441
+ */
21442
+ ItemType["effect"] = "effect";
21266
21443
  })(ItemType || (ItemType = {}));
21267
21444
  /**
21268
21445
  * 渲染模式
@@ -21375,6 +21552,10 @@ var CompositionEndBehavior;
21375
21552
  * 销毁并保留最后一帧
21376
21553
  */
21377
21554
  CompositionEndBehavior[CompositionEndBehavior["pause_destroy"] = END_BEHAVIOR_PAUSE_AND_DESTROY] = "pause_destroy";
21555
+ /**
21556
+ * 冻结
21557
+ */
21558
+ CompositionEndBehavior[CompositionEndBehavior["freeze"] = END_BEHAVIOR_FREEZE] = "freeze";
21378
21559
  })(CompositionEndBehavior || (CompositionEndBehavior = {}));
21379
21560
 
21380
21561
  /*********************************************/
@@ -21511,12 +21692,38 @@ var ShapeArcMode;
21511
21692
  ShapeArcMode[ShapeArcMode["UNIFORM_BURST"] = 3] = "UNIFORM_BURST";
21512
21693
  })(ShapeArcMode || (ShapeArcMode = {}));
21513
21694
 
21695
+ var LightType;
21696
+ (function (LightType) {
21697
+ /**
21698
+ * 点光源
21699
+ */
21700
+ LightType["point"] = "point";
21701
+ /**
21702
+ * 聚光灯
21703
+ */
21704
+ LightType["spot"] = "spot";
21705
+ /**
21706
+ * 方向光
21707
+ */
21708
+ LightType["directional"] = "directional";
21709
+ /**
21710
+ * 环境光
21711
+ */
21712
+ LightType["ambient"] = "ambient";
21713
+ })(LightType || (LightType = {}));
21714
+
21514
21715
  var ModelBoundingType;
21515
21716
  (function (ModelBoundingType) {
21516
21717
  ModelBoundingType[ModelBoundingType["box"] = 2] = "box";
21517
21718
  ModelBoundingType[ModelBoundingType["sphere"] = 3] = "sphere";
21518
21719
  })(ModelBoundingType || (ModelBoundingType = {}));
21519
21720
 
21721
+ var CameraType;
21722
+ (function (CameraType) {
21723
+ CameraType["orthographic"] = "orthographic";
21724
+ CameraType["perspective"] = "perspective";
21725
+ })(CameraType || (CameraType = {}));
21726
+
21520
21727
  // 材质类型
21521
21728
  var MaterialType;
21522
21729
  (function (MaterialType) {
@@ -21662,6 +21869,28 @@ var FontStyle;
21662
21869
  FontStyle["oblique"] = "oblique";
21663
21870
  })(FontStyle || (FontStyle = {}));
21664
21871
 
21872
+ var DataType;
21873
+ (function (DataType) {
21874
+ DataType["VFXItemData"] = "VFXItemData";
21875
+ DataType["EffectComponent"] = "EffectComponent";
21876
+ DataType["Material"] = "Material";
21877
+ DataType["Shader"] = "Shader";
21878
+ DataType["SpriteComponent"] = "SpriteComponent";
21879
+ DataType["ParticleSystem"] = "ParticleSystem";
21880
+ DataType["InteractComponent"] = "InteractComponent";
21881
+ DataType["CameraController"] = "CameraController";
21882
+ DataType["Geometry"] = "Geometry";
21883
+ DataType["Texture"] = "Texture";
21884
+ DataType["TextComponent"] = "TextComponent";
21885
+ // FIXME: 先完成ECS的场景转换,后面移到spec中
21886
+ DataType["MeshComponent"] = "MeshComponent";
21887
+ DataType["SkyboxComponent"] = "SkyboxComponent";
21888
+ DataType["LightComponent"] = "LightComponent";
21889
+ DataType["CameraComponent"] = "CameraComponent";
21890
+ DataType["ModelPluginComponent"] = "ModelPluginComponent";
21891
+ DataType["TreeComponent"] = "TreeComponent";
21892
+ })(DataType || (DataType = {}));
21893
+
21665
21894
  /******************************************************************************
21666
21895
  Copyright (c) Microsoft Corporation.
21667
21896
 
@@ -21717,11 +21946,22 @@ function __read(o, n) {
21717
21946
  return ar;
21718
21947
  }
21719
21948
 
21949
+ function __spreadArray(to, from, pack) {
21950
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
21951
+ if (ar || !(i in from)) {
21952
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21953
+ ar[i] = from[i];
21954
+ }
21955
+ }
21956
+ return to.concat(ar || Array.prototype.slice.call(from));
21957
+ }
21958
+
21720
21959
  typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
21721
21960
  var e = new Error(message);
21722
21961
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
21723
21962
  };
21724
21963
 
21964
+ var _a$1;
21725
21965
  function arrAdd(arr, item) {
21726
21966
  if (!arr.includes(item)) {
21727
21967
  arr.push(item);
@@ -21957,6 +22197,34 @@ function rotationZYXFromQuat(out, quat) {
21957
22197
  }
21958
22198
  return out;
21959
22199
  }
22200
+ function generateGUID() {
22201
+ return v4().replace(/-/g, '');
22202
+ }
22203
+ /**
22204
+ * 提取并转换 JSON 数据中的 anchor 值
22205
+ */
22206
+ function convertAnchor$1(anchor, particleOrigin) {
22207
+ if (anchor) {
22208
+ return [anchor[0] - 0.5, 0.5 - anchor[1]];
22209
+ }
22210
+ else if (particleOrigin) {
22211
+ return particleOriginTranslateMap[particleOrigin];
22212
+ }
22213
+ else {
22214
+ return [0, 0];
22215
+ }
22216
+ }
22217
+ var particleOriginTranslateMap = (_a$1 = {},
22218
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_CENTER] = [0, 0],
22219
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_CENTER_BOTTOM] = [0, -0.5],
22220
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_CENTER_TOP] = [0, 0.5],
22221
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_LEFT_TOP] = [-0.5, 0.5],
22222
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_LEFT_CENTER] = [-0.5, 0],
22223
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_LEFT_BOTTOM] = [-0.5, -0.5],
22224
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_RIGHT_CENTER] = [0.5, 0],
22225
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_RIGHT_BOTTOM] = [0.5, -0.5],
22226
+ _a$1[ParticleOrigin.PARTICLE_ORIGIN_RIGHT_TOP] = [0.5, 0.5],
22227
+ _a$1);
21960
22228
 
21961
22229
  function getStandardParticleContent(particle) {
21962
22230
  var _a;
@@ -22368,6 +22636,309 @@ function version22Migration(json) {
22368
22636
  });
22369
22637
  return json;
22370
22638
  }
22639
+ /**
22640
+ * 3.0 以下版本数据适配(runtime 2.0及以上版本支持)
22641
+ */
22642
+ function version30Migration(json) {
22643
+ var e_1, _a;
22644
+ var _b, _c, _d, _e;
22645
+ var result = Object.assign({}, json, {
22646
+ items: [],
22647
+ components: [],
22648
+ materials: [],
22649
+ shaders: [],
22650
+ geometries: [],
22651
+ });
22652
+ // 兼容老版本数据中不存在textures的情况
22653
+ (_b = result.textures) !== null && _b !== void 0 ? _b : (result.textures = []);
22654
+ result.textures.forEach(function (textureOptions) {
22655
+ Object.assign(textureOptions, {
22656
+ id: generateGUID(),
22657
+ dataType: DataType.Texture,
22658
+ });
22659
+ });
22660
+ if (result.textures.length < result.images.length) {
22661
+ for (var i = result.textures.length; i < result.images.length; i++) {
22662
+ result.textures.push({
22663
+ //@ts-expect-error
22664
+ id: generateGUID(),
22665
+ dataType: DataType.Texture,
22666
+ source: i,
22667
+ flipY: true,
22668
+ });
22669
+ }
22670
+ }
22671
+ var _loop_1 = function (composition) {
22672
+ var e_2, _h, e_3, _j;
22673
+ // composition 的 endbehaviour 兼容
22674
+ if (composition.endBehavior === END_BEHAVIOR_PAUSE_AND_DESTROY || composition.endBehavior === END_BEHAVIOR_PAUSE) {
22675
+ composition.endBehavior = END_BEHAVIOR_FREEZE;
22676
+ }
22677
+ var itemGuidMap = {};
22678
+ try {
22679
+ for (var _k = (e_2 = void 0, __values(composition.items)), _l = _k.next(); !_l.done; _l = _k.next()) {
22680
+ var item = _l.value;
22681
+ itemGuidMap[item.id] = generateGUID();
22682
+ // TODO: 编辑器测试用,上线后删除
22683
+ //@ts-expect-error
22684
+ item.oldId = item.id;
22685
+ item.id = itemGuidMap[item.id];
22686
+ }
22687
+ }
22688
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
22689
+ finally {
22690
+ try {
22691
+ if (_l && !_l.done && (_h = _k.return)) _h.call(_k);
22692
+ }
22693
+ finally { if (e_2) throw e_2.error; }
22694
+ }
22695
+ composition.items.forEach(function (item, index) {
22696
+ if (item.parentId) {
22697
+ if (item.parentId.includes('^')) {
22698
+ var parentId = (item.parentId).split('^')[0];
22699
+ var nodeId = (item.parentId).split('^')[1];
22700
+ item.parentId = itemGuidMap[parentId] + '^' + nodeId;
22701
+ }
22702
+ else {
22703
+ item.parentId = itemGuidMap[item.parentId];
22704
+ }
22705
+ }
22706
+ // @ts-expect-error fix item type
22707
+ result.items.push(item);
22708
+ // @ts-expect-error fix item type
22709
+ composition.items[index] = { id: item.id };
22710
+ });
22711
+ try {
22712
+ for (var _m = (e_3 = void 0, __values(result.items)), _o = _m.next(); !_o.done; _o = _m.next()) {
22713
+ var item = _o.value;
22714
+ // 原 texture 索引转为统一 guid 索引
22715
+ if (item.content) {
22716
+ if (item.content.renderer) {
22717
+ if (item.content.renderer.texture !== undefined) {
22718
+ var oldTextureId = item.content.renderer.texture;
22719
+ //@ts-expect-error
22720
+ item.content.renderer.texture = { id: result.textures[oldTextureId].id };
22721
+ }
22722
+ }
22723
+ if (item.content.trails) {
22724
+ if (item.content.trails.texture !== undefined) {
22725
+ var oldTextureId = item.content.trails.texture;
22726
+ //@ts-expect-error
22727
+ item.content.trails.texture = { id: result.textures[oldTextureId].id };
22728
+ }
22729
+ }
22730
+ }
22731
+ // item 的 transform 属性由数组转为 {x:n, y:n, z:n}
22732
+ if (item.transform) {
22733
+ //@ts-expect-error
22734
+ var position = __spreadArray([], __read((_c = item.transform.position) !== null && _c !== void 0 ? _c : [0, 0, 0]), false);
22735
+ //@ts-expect-error
22736
+ var rotation = __spreadArray([], __read((_d = item.transform.rotation) !== null && _d !== void 0 ? _d : [0, 0, 0]), false);
22737
+ //@ts-expect-error
22738
+ var scale = __spreadArray([], __read((_e = item.transform.scale) !== null && _e !== void 0 ? _e : [1, 1, 1]), false);
22739
+ Object.assign(item, {
22740
+ transform: {
22741
+ position: { x: position[0], y: position[1], z: position[2] },
22742
+ rotation: { x: rotation[0], y: rotation[1], z: rotation[2] },
22743
+ scale: { x: scale[0], y: scale[1], z: scale[0] },
22744
+ },
22745
+ });
22746
+ // sprite 的 scale 转为 size
22747
+ if (item.type === ItemType.sprite) {
22748
+ item.transform.size = { x: scale[0], y: scale[1] };
22749
+ item.transform.scale = { x: 1, y: 1, z: 1 };
22750
+ }
22751
+ // sprite 的 anchor 修正
22752
+ if (item.type === ItemType.sprite) {
22753
+ var content = item.content;
22754
+ if (!content.renderer) {
22755
+ content.renderer = {};
22756
+ }
22757
+ var renderer = content.renderer;
22758
+ var realAnchor = convertAnchor$1(renderer.anchor, renderer.particleOrigin);
22759
+ var startSize = item.transform.size;
22760
+ // 兼容旧JSON(anchor和particleOrigin可能同时存在)
22761
+ if (!renderer.anchor && renderer.particleOrigin !== undefined) {
22762
+ //@ts-expect-error
22763
+ item.transform.position.x += -realAnchor[0] * startSize.x;
22764
+ //@ts-expect-error
22765
+ item.transform.position.y += -realAnchor[1] * startSize.y;
22766
+ }
22767
+ //@ts-expect-error
22768
+ item.transform.anchor = { x: realAnchor[0] * startSize.x, y: realAnchor[1] * startSize.y };
22769
+ }
22770
+ }
22771
+ if (item.type === ItemType.particle) {
22772
+ var content = item.content;
22773
+ if (!content.renderer) {
22774
+ content.renderer = {};
22775
+ }
22776
+ var renderer = content.renderer;
22777
+ content.renderer.anchor = convertAnchor$1(renderer.anchor, renderer.particleOrigin);
22778
+ }
22779
+ // 动画数据转化 TODO: 动画数据移到 TimelineComponentData
22780
+ item.content.tracks = [];
22781
+ var tracks = item.content.tracks;
22782
+ if (item.type !== ItemType.particle) {
22783
+ tracks.push({
22784
+ clips: [
22785
+ {
22786
+ dataType: 'TransformAnimationPlayableAsset',
22787
+ animationClip: {
22788
+ sizeOverLifetime: item.content.sizeOverLifetime,
22789
+ rotationOverLifetime: item.content.rotationOverLifetime,
22790
+ positionOverLifetime: item.content.positionOverLifetime,
22791
+ },
22792
+ },
22793
+ ],
22794
+ });
22795
+ }
22796
+ if (item.type === ItemType.sprite) {
22797
+ tracks.push({
22798
+ clips: [
22799
+ {
22800
+ dataType: 'SpriteColorAnimationPlayableAsset',
22801
+ animationClip: {
22802
+ colorOverLifetime: item.content.colorOverLifetime,
22803
+ startColor: item.content.options.startColor,
22804
+ },
22805
+ },
22806
+ ],
22807
+ });
22808
+ }
22809
+ // gizmo 的 target id 转换为新的 item guid
22810
+ if (item.content.options.target) {
22811
+ item.content.options.target = itemGuidMap[item.content.options.target];
22812
+ }
22813
+ // item 的 content 转为 component data 加入 JSONScene.components
22814
+ var uuid = generateGUID();
22815
+ if (item.type === ItemType.sprite) {
22816
+ item.components = [];
22817
+ result.components.push(item.content);
22818
+ item.content.id = uuid;
22819
+ item.content.dataType = DataType.SpriteComponent;
22820
+ item.content.item = { id: item.id };
22821
+ item.dataType = DataType.VFXItemData;
22822
+ //@ts-expect-error
22823
+ item.components.push({ id: item.content.id });
22824
+ }
22825
+ else if (item.type === ItemType.particle) {
22826
+ item.components = [];
22827
+ result.components.push(item.content);
22828
+ item.content.id = uuid;
22829
+ item.content.dataType = DataType.ParticleSystem;
22830
+ item.content.item = { id: item.id };
22831
+ item.dataType = DataType.VFXItemData;
22832
+ //@ts-expect-error
22833
+ item.components.push({ id: item.content.id });
22834
+ }
22835
+ else if (item.type === ItemType.mesh) {
22836
+ item.components = [];
22837
+ result.components.push(item.content);
22838
+ item.content.id = uuid;
22839
+ item.content.dataType = DataType.MeshComponent;
22840
+ item.content.item = { id: item.id };
22841
+ item.dataType = DataType.VFXItemData;
22842
+ //@ts-expect-error
22843
+ item.components.push({ id: item.content.id });
22844
+ }
22845
+ else if (item.type === ItemType.skybox) {
22846
+ item.components = [];
22847
+ result.components.push(item.content);
22848
+ item.content.id = uuid;
22849
+ item.content.dataType = DataType.SkyboxComponent;
22850
+ item.content.item = { id: item.id };
22851
+ item.dataType = DataType.VFXItemData;
22852
+ //@ts-expect-error
22853
+ item.components.push({ id: item.content.id });
22854
+ }
22855
+ else if (item.type === ItemType.light) {
22856
+ item.components = [];
22857
+ result.components.push(item.content);
22858
+ item.content.id = uuid;
22859
+ item.content.dataType = DataType.LightComponent;
22860
+ item.content.item = { id: item.id };
22861
+ item.dataType = DataType.VFXItemData;
22862
+ //@ts-expect-error
22863
+ item.components.push({ id: item.content.id });
22864
+ }
22865
+ else if (item.type === 'camera') {
22866
+ item.components = [];
22867
+ result.components.push(item.content);
22868
+ item.content.id = uuid;
22869
+ item.content.dataType = DataType.CameraComponent;
22870
+ item.content.item = { id: item.id };
22871
+ item.dataType = DataType.VFXItemData;
22872
+ //@ts-expect-error
22873
+ item.components.push({ id: item.content.id });
22874
+ }
22875
+ else if (item.type === ItemType.tree) {
22876
+ item.components = [];
22877
+ result.components.push(item.content);
22878
+ item.content.id = uuid;
22879
+ item.content.dataType = DataType.TreeComponent;
22880
+ item.content.item = { id: item.id };
22881
+ item.dataType = DataType.VFXItemData;
22882
+ //@ts-expect-error
22883
+ item.components.push({ id: item.content.id });
22884
+ }
22885
+ else if (item.type === ItemType.interact) {
22886
+ item.components = [];
22887
+ result.components.push(item.content);
22888
+ item.content.id = uuid;
22889
+ item.content.dataType = DataType.InteractComponent;
22890
+ item.content.item = { id: item.id };
22891
+ item.dataType = DataType.VFXItemData;
22892
+ //@ts-expect-error
22893
+ item.components.push({ id: item.content.id });
22894
+ }
22895
+ else if (item.type === ItemType.camera) {
22896
+ item.components = [];
22897
+ result.components.push(item.content);
22898
+ item.content.id = uuid;
22899
+ item.content.dataType = DataType.CameraController;
22900
+ item.content.item = { id: item.id };
22901
+ item.dataType = DataType.VFXItemData;
22902
+ //@ts-expect-error
22903
+ item.components.push({ id: item.content.id });
22904
+ }
22905
+ else if (item.type === ItemType.text) {
22906
+ item.components = [];
22907
+ result.components.push(item.content);
22908
+ item.content.id = uuid;
22909
+ item.content.dataType = DataType.TextComponent;
22910
+ item.content.item = { id: item.id };
22911
+ item.dataType = DataType.VFXItemData;
22912
+ //@ts-expect-error
22913
+ item.components.push({ id: item.content.id });
22914
+ }
22915
+ }
22916
+ }
22917
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
22918
+ finally {
22919
+ try {
22920
+ if (_o && !_o.done && (_j = _m.return)) _j.call(_m);
22921
+ }
22922
+ finally { if (e_3) throw e_3.error; }
22923
+ }
22924
+ };
22925
+ try {
22926
+ // 更正Composition.endBehavior
22927
+ for (var _f = __values(json.compositions), _g = _f.next(); !_g.done; _g = _f.next()) {
22928
+ var composition = _g.value;
22929
+ _loop_1(composition);
22930
+ }
22931
+ }
22932
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
22933
+ finally {
22934
+ try {
22935
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
22936
+ }
22937
+ finally { if (e_1) throw e_1.error; }
22938
+ }
22939
+ result.version = '3.0';
22940
+ return result;
22941
+ }
22371
22942
 
22372
22943
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
22373
22944
  var standardVersion = /^(\d+)\.(\d+)$/;
@@ -22377,16 +22948,16 @@ function getStandardJSON(json) {
22377
22948
  if (!json || typeof json !== 'object') {
22378
22949
  throw Error('expect a json object');
22379
22950
  }
22380
- // 修正老版本数据中,meshItem以及lightItem结束行为错误问题
22951
+ // 修正老版本数据中,meshItem 以及 lightItem 结束行为错误问题
22381
22952
  version22Migration(json);
22382
22953
  if (v0.test(json.version)) {
22383
22954
  reverseParticle = ((_a = (/^(\d+)/).exec(json.version)) === null || _a === void 0 ? void 0 : _a[0]) === '0';
22384
- return version21Migration(getStandardJSONFromV0(json));
22955
+ return version30Migration(version21Migration(getStandardJSONFromV0(json)));
22385
22956
  }
22386
22957
  var mainVersion = (_b = standardVersion.exec(json.version)) === null || _b === void 0 ? void 0 : _b[1];
22387
22958
  if (mainVersion) {
22388
- if (Number(mainVersion) < 2) {
22389
- return version21Migration(json);
22959
+ if (Number(mainVersion) < 3) {
22960
+ return version30Migration(version21Migration(json));
22390
22961
  }
22391
22962
  return json;
22392
22963
  }
@@ -22710,7 +23281,7 @@ function version3Migration(scene) {
22710
23281
  try {
22711
23282
  for (var _j = __values$1(ecScene.items), _k = _j.next(); !_k.done; _k = _j.next()) {
22712
23283
  var item = _k.value;
22713
- itemGuidMap[item.id] = generateGUID();
23284
+ itemGuidMap[item.id] = generateGUID$1();
22714
23285
  // TODO: 编辑器测试用,上线后删除
22715
23286
  //@ts-expect-error
22716
23287
  item.oldId = item.id;
@@ -22766,8 +23337,8 @@ function version3Migration(scene) {
22766
23337
  // texture 增加 id 和 dataType
22767
23338
  for (var _q = __values$1(scene.textureOptions), _r = _q.next(); !_r.done; _r = _q.next()) {
22768
23339
  var texture = _r.value;
22769
- texture.id = generateGUID();
22770
- texture.dataType = DataType.Texture;
23340
+ texture.id = generateGUID$1();
23341
+ texture.dataType = DataType$1.Texture;
22771
23342
  }
22772
23343
  }
22773
23344
  catch (e_5_1) { e_5 = { error: e_5_1 }; }
@@ -22786,23 +23357,15 @@ function version3Migration(scene) {
22786
23357
  var item = _t.value;
22787
23358
  // 原 texture 索引转为统一 guid 索引
22788
23359
  if (item.content) {
22789
- //@ts-expect-error
22790
23360
  if (item.content.renderer) {
22791
- //@ts-expect-error
22792
23361
  if (item.content.renderer.texture !== undefined) {
22793
- //@ts-expect-error
22794
23362
  var oldTextureId = item.content.renderer.texture;
22795
- //@ts-expect-error
22796
23363
  item.content.renderer.texture = { id: scene.textureOptions[oldTextureId].id };
22797
23364
  }
22798
23365
  }
22799
- //@ts-expect-error
22800
23366
  if (item.content.trails) {
22801
- //@ts-expect-error
22802
23367
  if (item.content.trails.texture !== undefined) {
22803
- //@ts-expect-error
22804
23368
  var oldTextureId = item.content.trails.texture;
22805
- //@ts-expect-error
22806
23369
  item.content.trails.texture = { id: scene.textureOptions[oldTextureId].id };
22807
23370
  }
22808
23371
  }
@@ -22813,12 +23376,14 @@ function version3Migration(scene) {
22813
23376
  var rotation = item.transform.rotation;
22814
23377
  var scale = item.transform.scale;
22815
23378
  if (!position) {
23379
+ //@ts-expect-error
22816
23380
  position = [0, 0, 0];
22817
23381
  }
22818
23382
  if (!rotation) {
22819
23383
  rotation = [0, 0, 0];
22820
23384
  }
22821
23385
  if (!scale) {
23386
+ //@ts-expect-error
22822
23387
  scale = [1, 1, 1];
22823
23388
  }
22824
23389
  item.transform = {
@@ -22839,12 +23404,9 @@ function version3Migration(scene) {
22839
23404
  // sprite 的 anchor 修正
22840
23405
  if (item.type === ItemType$1.sprite) {
22841
23406
  var content = item.content;
22842
- //@ts-expect-error
22843
23407
  if (!content.renderer) {
22844
- //@ts-expect-error
22845
23408
  content.renderer = {};
22846
23409
  }
22847
- //@ts-expect-error
22848
23410
  var renderer = content.renderer;
22849
23411
  var realAnchor = convertAnchor(renderer.anchor, renderer.particleOrigin);
22850
23412
  //@ts-expect-error
@@ -22862,14 +23424,10 @@ function version3Migration(scene) {
22862
23424
  }
22863
23425
  if (item.type === ItemType$1.particle) {
22864
23426
  var content = item.content;
22865
- //@ts-expect-error
22866
23427
  if (!content.renderer) {
22867
- //@ts-expect-error
22868
23428
  content.renderer = {};
22869
23429
  }
22870
- //@ts-expect-error
22871
23430
  var renderer = content.renderer;
22872
- //@ts-expect-error
22873
23431
  content.renderer.anchor = convertAnchor(renderer.anchor, renderer.particleOrigin);
22874
23432
  }
22875
23433
  // item 的 endbehaviour 兼容
@@ -22878,9 +23436,7 @@ function version3Migration(scene) {
22878
23436
  item.endBehavior = END_BEHAVIOR_FREEZE$1;
22879
23437
  }
22880
23438
  // 动画数据转化 TODO: 动画数据移到 TimelineComponentData
22881
- //@ts-expect-error
22882
23439
  item.content.tracks = [];
22883
- //@ts-expect-error
22884
23440
  var tracks = item.content.tracks;
22885
23441
  if (item.type !== ItemType$1.particle) {
22886
23442
  tracks.push({
@@ -22888,11 +23444,8 @@ function version3Migration(scene) {
22888
23444
  {
22889
23445
  dataType: 'TransformAnimationPlayableAsset',
22890
23446
  animationClip: {
22891
- //@ts-expect-error
22892
23447
  sizeOverLifetime: item.content.sizeOverLifetime,
22893
- //@ts-expect-error
22894
23448
  rotationOverLifetime: item.content.rotationOverLifetime,
22895
- //@ts-expect-error
22896
23449
  positionOverLifetime: item.content.positionOverLifetime,
22897
23450
  },
22898
23451
  },
@@ -22905,9 +23458,7 @@ function version3Migration(scene) {
22905
23458
  {
22906
23459
  dataType: 'SpriteColorAnimationPlayableAsset',
22907
23460
  animationClip: {
22908
- //@ts-expect-error
22909
23461
  colorOverLifetime: item.content.colorOverLifetime,
22910
- //@ts-expect-error
22911
23462
  startColor: item.content.options.startColor,
22912
23463
  },
22913
23464
  },
@@ -22915,170 +23466,108 @@ function version3Migration(scene) {
22915
23466
  });
22916
23467
  }
22917
23468
  // gizmo 的 target id 转换为新的 item guid
22918
- //@ts-expect-error
22919
- if (item.content.options.target) {
22920
- //@ts-expect-error
23469
+ if (item.content && item.content.options && item.content.options.target) {
22921
23470
  item.content.options.target = itemGuidMap[item.content.options.target];
22922
23471
  }
22923
23472
  // item 的 content 转为 component data 加入 JSONScene.components
22924
- var uuid = v4().replace(/-/g, '');
23473
+ var uuid = v4$1().replace(/-/g, '');
22925
23474
  if (item.type === ItemType$1.sprite) {
22926
- //@ts-expect-error
22927
23475
  item.components = [];
22928
- //@ts-expect-error
22929
23476
  components.push(item.content);
22930
- //@ts-expect-error
22931
23477
  item.content.id = uuid;
22932
- //@ts-expect-error
22933
- item.content.dataType = DataType.SpriteComponent;
22934
- //@ts-expect-error
23478
+ item.content.dataType = DataType$1.SpriteComponent;
22935
23479
  item.content.item = { id: item.id };
22936
- //@ts-expect-error
22937
- item.dataType = DataType.VFXItemData;
23480
+ item.dataType = DataType$1.VFXItemData;
22938
23481
  //@ts-expect-error
22939
23482
  item.components.push({ id: item.content.id });
22940
23483
  }
22941
23484
  else if (item.type === ItemType$1.particle) {
22942
- //@ts-expect-error
22943
23485
  item.components = [];
22944
- //@ts-expect-error
22945
23486
  components.push(item.content);
22946
- //@ts-expect-error
22947
23487
  item.content.id = uuid;
22948
- //@ts-expect-error
22949
- item.content.dataType = DataType.ParticleSystem;
22950
- //@ts-expect-error
23488
+ item.content.dataType = DataType$1.ParticleSystem;
22951
23489
  item.content.item = { id: item.id };
22952
- //@ts-expect-error
22953
- item.dataType = DataType.VFXItemData;
23490
+ item.dataType = DataType$1.VFXItemData;
22954
23491
  //@ts-expect-error
22955
23492
  item.components.push({ id: item.content.id });
22956
23493
  }
22957
23494
  else if (item.type === ItemType$1.mesh) {
22958
- //@ts-expect-error
22959
23495
  item.components = [];
22960
- //@ts-expect-error
22961
23496
  components.push(item.content);
22962
- //@ts-expect-error
22963
23497
  item.content.id = uuid;
22964
- //@ts-expect-error
22965
- item.content.dataType = DataType.MeshComponent;
22966
- //@ts-expect-error
23498
+ item.content.dataType = DataType$1.MeshComponent;
22967
23499
  item.content.item = { id: item.id };
22968
- //@ts-expect-error
22969
- item.dataType = DataType.VFXItemData;
23500
+ item.dataType = DataType$1.VFXItemData;
22970
23501
  //@ts-expect-error
22971
23502
  item.components.push({ id: item.content.id });
22972
23503
  }
22973
23504
  else if (item.type === ItemType$1.skybox) {
22974
- //@ts-expect-error
22975
23505
  item.components = [];
22976
- //@ts-expect-error
22977
23506
  components.push(item.content);
22978
- //@ts-expect-error
22979
23507
  item.content.id = uuid;
22980
- //@ts-expect-error
22981
- item.content.dataType = DataType.SkyboxComponent;
22982
- //@ts-expect-error
23508
+ item.content.dataType = DataType$1.SkyboxComponent;
22983
23509
  item.content.item = { id: item.id };
22984
- //@ts-expect-error
22985
- item.dataType = DataType.VFXItemData;
23510
+ item.dataType = DataType$1.VFXItemData;
22986
23511
  //@ts-expect-error
22987
23512
  item.components.push({ id: item.content.id });
22988
23513
  }
22989
23514
  else if (item.type === ItemType$1.light) {
22990
- //@ts-expect-error
22991
23515
  item.components = [];
22992
- //@ts-expect-error
22993
23516
  components.push(item.content);
22994
- //@ts-expect-error
22995
23517
  item.content.id = uuid;
22996
- //@ts-expect-error
22997
- item.content.dataType = DataType.LightComponent;
22998
- //@ts-expect-error
23518
+ item.content.dataType = DataType$1.LightComponent;
22999
23519
  item.content.item = { id: item.id };
23000
- //@ts-expect-error
23001
- item.dataType = DataType.VFXItemData;
23520
+ item.dataType = DataType$1.VFXItemData;
23002
23521
  //@ts-expect-error
23003
23522
  item.components.push({ id: item.content.id });
23004
23523
  }
23005
23524
  else if (item.type === 'camera') {
23006
- //@ts-expect-error
23007
23525
  item.components = [];
23008
- //@ts-expect-error
23009
23526
  components.push(item.content);
23010
- //@ts-expect-error
23011
23527
  item.content.id = uuid;
23012
- //@ts-expect-error
23013
- item.content.dataType = DataType.CameraComponent;
23014
- //@ts-expect-error
23528
+ item.content.dataType = DataType$1.CameraComponent;
23015
23529
  item.content.item = { id: item.id };
23016
- //@ts-expect-error
23017
- item.dataType = DataType.VFXItemData;
23530
+ item.dataType = DataType$1.VFXItemData;
23018
23531
  //@ts-expect-error
23019
23532
  item.components.push({ id: item.content.id });
23020
23533
  }
23021
23534
  else if (item.type === ItemType$1.tree) {
23022
- //@ts-expect-error
23023
23535
  item.components = [];
23024
- //@ts-expect-error
23025
23536
  components.push(item.content);
23026
- //@ts-expect-error
23027
23537
  item.content.id = uuid;
23028
- //@ts-expect-error
23029
- item.content.dataType = DataType.TreeComponent;
23030
- //@ts-expect-error
23538
+ item.content.dataType = DataType$1.TreeComponent;
23031
23539
  item.content.item = { id: item.id };
23032
- //@ts-expect-error
23033
- item.dataType = DataType.VFXItemData;
23540
+ item.dataType = DataType$1.VFXItemData;
23034
23541
  //@ts-expect-error
23035
23542
  item.components.push({ id: item.content.id });
23036
23543
  }
23037
23544
  else if (item.type === ItemType$1.interact) {
23038
- //@ts-expect-error
23039
23545
  item.components = [];
23040
- //@ts-expect-error
23041
23546
  components.push(item.content);
23042
- //@ts-expect-error
23043
23547
  item.content.id = uuid;
23044
- //@ts-expect-error
23045
- item.content.dataType = DataType.InteractComponent;
23046
- //@ts-expect-error
23548
+ item.content.dataType = DataType$1.InteractComponent;
23047
23549
  item.content.item = { id: item.id };
23048
- //@ts-expect-error
23049
- item.dataType = DataType.VFXItemData;
23550
+ item.dataType = DataType$1.VFXItemData;
23050
23551
  //@ts-expect-error
23051
23552
  item.components.push({ id: item.content.id });
23052
23553
  }
23053
23554
  else if (item.type === ItemType$1.camera) {
23054
- //@ts-expect-error
23055
23555
  item.components = [];
23056
- //@ts-expect-error
23057
23556
  components.push(item.content);
23058
- //@ts-expect-error
23059
23557
  item.content.id = uuid;
23060
- //@ts-expect-error
23061
- item.content.dataType = DataType.CameraController;
23062
- //@ts-expect-error
23558
+ item.content.dataType = DataType$1.CameraController;
23063
23559
  item.content.item = { id: item.id };
23064
- //@ts-expect-error
23065
- item.dataType = DataType.VFXItemData;
23560
+ item.dataType = DataType$1.VFXItemData;
23066
23561
  //@ts-expect-error
23067
23562
  item.components.push({ id: item.content.id });
23068
23563
  }
23069
23564
  else if (item.type === ItemType$1.text) {
23070
- //@ts-expect-error
23071
23565
  item.components = [];
23072
- //@ts-expect-error
23073
23566
  components.push(item.content);
23074
- //@ts-expect-error
23075
23567
  item.content.id = uuid;
23076
- //@ts-expect-error
23077
- item.content.dataType = DataType.TextComponent;
23078
- //@ts-expect-error
23568
+ item.content.dataType = DataType$1.TextComponent;
23079
23569
  item.content.item = { id: item.id };
23080
- //@ts-expect-error
23081
- item.dataType = DataType.VFXItemData;
23570
+ item.dataType = DataType$1.VFXItemData;
23082
23571
  //@ts-expect-error
23083
23572
  item.components.push({ id: item.content.id });
23084
23573
  }
@@ -23101,7 +23590,7 @@ function convertAnchor(anchor, particleOrigin) {
23101
23590
  return [anchor[0] - 0.5, 0.5 - anchor[1]];
23102
23591
  }
23103
23592
  else if (particleOrigin) {
23104
- return particleOriginTranslateMap[particleOrigin];
23593
+ return particleOriginTranslateMap$1[particleOrigin];
23105
23594
  }
23106
23595
  else {
23107
23596
  return [0, 0];
@@ -23379,16 +23868,17 @@ var AssetManager = /** @class */ (function () {
23379
23868
  };
23380
23869
  AssetManager.prototype.processBins = function (bins) {
23381
23870
  return __awaiter(this, void 0, void 0, function () {
23382
- var renderLevel, jobs;
23871
+ var renderLevel, baseUrl, jobs;
23383
23872
  var _this = this;
23384
23873
  return __generator(this, function (_a) {
23385
23874
  renderLevel = this.options.renderLevel;
23875
+ baseUrl = this.baseUrl;
23386
23876
  jobs = bins.map(function (bin) {
23387
23877
  if (bin instanceof ArrayBuffer) {
23388
23878
  return bin;
23389
23879
  }
23390
23880
  if (passRenderLevel(bin.renderLevel, renderLevel)) {
23391
- return _this.loadBins(bin.url);
23881
+ return _this.loadBins(new URL(bin.url, baseUrl).href);
23392
23882
  }
23393
23883
  throw new Error("Invalid bins source: ".concat(JSON.stringify(bins)));
23394
23884
  });
@@ -23406,13 +23896,14 @@ var AssetManager = /** @class */ (function () {
23406
23896
  return [2 /*return*/];
23407
23897
  }
23408
23898
  jobs = fonts.map(function (font) { return __awaiter(_this, void 0, void 0, function () {
23409
- var fontFace;
23899
+ var url, fontFace;
23410
23900
  var _a;
23411
23901
  return __generator(this, function (_b) {
23412
23902
  switch (_b.label) {
23413
23903
  case 0:
23414
23904
  if (!(font.fontURL && !AssetManager.fonts.has(font.fontFamily))) return [3 /*break*/, 4];
23415
- fontFace = new FontFace((_a = font.fontFamily) !== null && _a !== void 0 ? _a : '', 'url(' + font.fontURL + ')');
23905
+ url = new URL(font.fontURL, this.baseUrl).href;
23906
+ fontFace = new FontFace((_a = font.fontFamily) !== null && _a !== void 0 ? _a : '', 'url(' + url + ')');
23416
23907
  _b.label = 1;
23417
23908
  case 1:
23418
23909
  _b.trys.push([1, 3, , 4]);
@@ -23425,7 +23916,7 @@ var AssetManager = /** @class */ (function () {
23425
23916
  return [3 /*break*/, 4];
23426
23917
  case 3:
23427
23918
  _b.sent();
23428
- logger.warn("Invalid fonts source: ".concat(JSON.stringify(font.fontURL)));
23919
+ logger.warn("Invalid fonts source: ".concat(JSON.stringify(url)));
23429
23920
  return [3 /*break*/, 4];
23430
23921
  case 4: return [2 /*return*/];
23431
23922
  }
@@ -23674,7 +24165,7 @@ function createTextureOptionsBySource(image, sourceFrom) {
23674
24165
  return image.source;
23675
24166
  }
23676
24167
  else if (image instanceof HTMLImageElement ||
23677
- image instanceof HTMLCanvasElement) {
24168
+ isCanvas(image)) {
23678
24169
  return {
23679
24170
  image: image,
23680
24171
  sourceType: TextureSourceType.image,
@@ -23736,6 +24227,11 @@ function base64ToFile(base64, filename, contentType) {
23736
24227
  var file = new File([blob], filename, { type: contentType });
23737
24228
  return file;
23738
24229
  }
24230
+ function isCanvas(cavnas) {
24231
+ var _a;
24232
+ // 小程序 Canvas 无法使用 instanceof HTMLCanvasElement 判断
24233
+ return typeof cavnas === 'object' && cavnas !== null && ((_a = cavnas.tagName) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'CANVAS';
24234
+ }
23739
24235
 
23740
24236
  var tmpScale = new Vector3(1, 1, 1);
23741
24237
  /**
@@ -23955,8 +24451,9 @@ var Camera = /** @class */ (function () {
23955
24451
  Camera.prototype.getInverseVPRatio = function (z) {
23956
24452
  var pos = new Vector3(0, 0, z);
23957
24453
  var mat = this.getViewProjectionMatrix();
23958
- var nz = pos.applyMatrix(mat).z;
23959
- return new Vector3(1, 1, nz).applyMatrix(mat);
24454
+ var inverseVP = this.getInverseViewProjectionMatrix();
24455
+ var nz = mat.projectPoint(pos).z;
24456
+ return inverseVP.projectPoint(new Vector3(1, 1, nz));
23960
24457
  };
23961
24458
  /**
23962
24459
  * 设置相机的旋转四元数
@@ -23968,7 +24465,6 @@ var Camera = /** @class */ (function () {
23968
24465
  this.dirty = true;
23969
24466
  }
23970
24467
  else {
23971
- this.options.quat;
23972
24468
  if (!this.options.quat.equals(value)) {
23973
24469
  this.options.quat.copyFrom(value);
23974
24470
  this.dirty = true;
@@ -24136,8 +24632,7 @@ var CompositionComponent = /** @class */ (function (_super) {
24136
24632
  }
24137
24633
  item.getComponent(CompositionComponent).createContent();
24138
24634
  }
24139
- else if (itemData.type === 'ECS' ||
24140
- itemData.type === ItemType$1.sprite ||
24635
+ else if (itemData.type === ItemType$1.sprite ||
24141
24636
  itemData.type === ItemType$1.text ||
24142
24637
  itemData.type === ItemType$1.particle ||
24143
24638
  itemData.type === ItemType$1.mesh ||
@@ -24155,20 +24650,7 @@ var CompositionComponent = /** @class */ (function (_super) {
24155
24650
  item = new VFXItem(this.engine, itemData);
24156
24651
  item.composition = this.item.composition;
24157
24652
  // 兼容老的数据代码,json 更新后可移除
24158
- switch (itemData.type) {
24159
- case ItemType$1.text: {
24160
- // 添加文本组件
24161
- var textItem = new TextComponent(this.engine, itemData.content);
24162
- textItem.item = item;
24163
- item.components.push(textItem);
24164
- item.rendererComponents.push(textItem);
24165
- item._content = textItem;
24166
- break;
24167
- }
24168
- default: {
24169
- item = createVFXItem(itemData, this.item.composition);
24170
- }
24171
- }
24653
+ item = createVFXItem(itemData, this.item.composition);
24172
24654
  }
24173
24655
  item.parent = this.item;
24174
24656
  // 相机不跟随合成移动
@@ -25558,10 +26040,8 @@ var Engine = /** @class */ (function () {
25558
26040
  Engine.prototype.addPackageDatas = function (scene) {
25559
26041
  var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f;
25560
26042
  var jsonScene = scene.jsonScene;
25561
- //@ts-expect-error
25562
26043
  if (jsonScene.items) {
25563
26044
  try {
25564
- //@ts-expect-error
25565
26045
  for (var _g = __values$1(jsonScene.items), _h = _g.next(); !_h.done; _h = _g.next()) {
25566
26046
  var vfxItemData = _h.value;
25567
26047
  this.addEffectsObjectData(vfxItemData);
@@ -25575,10 +26055,8 @@ var Engine = /** @class */ (function () {
25575
26055
  finally { if (e_1) throw e_1.error; }
25576
26056
  }
25577
26057
  }
25578
- //@ts-expect-error
25579
26058
  if (jsonScene.materials) {
25580
26059
  try {
25581
- //@ts-expect-error
25582
26060
  for (var _j = __values$1(jsonScene.materials), _k = _j.next(); !_k.done; _k = _j.next()) {
25583
26061
  var materialData = _k.value;
25584
26062
  this.addEffectsObjectData(materialData);
@@ -25592,10 +26070,8 @@ var Engine = /** @class */ (function () {
25592
26070
  finally { if (e_2) throw e_2.error; }
25593
26071
  }
25594
26072
  }
25595
- //@ts-expect-error
25596
26073
  if (jsonScene.shaders) {
25597
26074
  try {
25598
- //@ts-expect-error
25599
26075
  for (var _l = __values$1(jsonScene.shaders), _m = _l.next(); !_m.done; _m = _l.next()) {
25600
26076
  var shaderData = _m.value;
25601
26077
  this.addEffectsObjectData(shaderData);
@@ -25609,10 +26085,8 @@ var Engine = /** @class */ (function () {
25609
26085
  finally { if (e_3) throw e_3.error; }
25610
26086
  }
25611
26087
  }
25612
- //@ts-expect-error
25613
26088
  if (jsonScene.geometries) {
25614
26089
  try {
25615
- //@ts-expect-error
25616
26090
  for (var _o = __values$1(jsonScene.geometries), _p = _o.next(); !_p.done; _p = _o.next()) {
25617
26091
  var geometryData = _p.value;
25618
26092
  this.addEffectsObjectData(geometryData);
@@ -25626,10 +26100,8 @@ var Engine = /** @class */ (function () {
25626
26100
  finally { if (e_4) throw e_4.error; }
25627
26101
  }
25628
26102
  }
25629
- //@ts-expect-error
25630
26103
  if (jsonScene.components) {
25631
26104
  try {
25632
- //@ts-expect-error
25633
26105
  for (var _q = __values$1(jsonScene.components), _r = _q.next(); !_r.done; _r = _q.next()) {
25634
26106
  var componentData = _r.value;
25635
26107
  this.addEffectsObjectData(componentData);
@@ -25983,5 +26455,5 @@ registerPlugin('cal', CalculateLoader, VFXItem, true);
25983
26455
  registerPlugin('interact', InteractLoader, VFXItem, true);
25984
26456
  // registerFilters(filters);
25985
26457
 
25986
- export { AbstractPlugin, ActivationPlayable, AssetLoader, AssetManager, BYTES_TYPE_MAP, Behaviour, BezierSegments, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, Component, Composition, CompositionComponent, CompositionSourceManager, CurveValue, DEFAULT_FONTS, DataType, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, Engine, EventSystem, FILTER_NAME_NONE, FilterMode, Float16ArrayWrapper, FrameBuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractBehavior$1 as InteractBehavior, InteractComponent, InteractLoader, InteractMesh, Item, ItemBehaviour, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, QCanvasViewer, QText, QTextWrapMode, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderBuffer, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderer, RendererComponent, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderType, SpriteColorPlayable, SpriteComponent, SpriteLoader, StaticValue, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextLoader, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineClip, TimelineComponent, Track, Transform, TransformAnimationPlayable, TransformAnimationPlayableAsset, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, alphaFrame_frag as alphaFrameFrag, alphaMask_frag as alphaMaskFrag, assertExist, asserts, blend, bloomMix_frag as bloomMixVert, bloomThreshold_frag as bloomThresholdVert, calculateTranslation, cameraMove_frag as cameraMoveFrag, cameraMove_vert as cameraMoveVert, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, combineImageTemplate1, combineImageTemplate1Async, combineImageTemplate2, combineImageTemplate2Async, combineImageTemplateAsync, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, copy as copyFrag, createCopyShader, createGLContext, createKeyFrameMeta, createShaderWithMarcos, createShape, createVFXItem, createValueGetter, deepClone, defaultGlobalVolume, defaultPlugins, delay_frag as delayFrag, deserializeMipmapTexture, distortion_frag as distortionFrag, distortion_vert as distortionVert, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAndroid, isArray, isFunction, isIOS, isObject, isScene, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isWebGL2, item_define as itemDefine, itemFrag, itemFrameFrag, itemVert, loadBinary, loadBlob, loadImage, loadVideo, loadWebPOptional, logger, index$1 as math, maxSpriteMeshItemCount, maxSpriteTextureCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap, particleVert, pluginLoaderMap, random, registerPlugin, removeItem, requestAsync, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxFragmentTextures, setSpriteMeshMaxItemCountByGPU, sortByOrder, index as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize };
26458
+ export { AbstractPlugin, ActivationPlayable, AssetLoader, AssetManager, BYTES_TYPE_MAP, Behaviour, BezierSegments, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, Component, Composition, CompositionComponent, CompositionSourceManager, CurveValue, DEFAULT_FONTS, DataType$1 as DataType, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, Engine, EventSystem, FILTER_NAME_NONE, FilterMode, Float16ArrayWrapper, FrameBuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractBehavior$1 as InteractBehavior, InteractComponent, InteractLoader, InteractMesh, Item, ItemBehaviour, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, PassTextureCache, PathSegments, PluginSystem, QCanvasViewer, QText, QTextWrapMode, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderBuffer, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderer, RendererComponent, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderType, ShaderVariant, SpriteColorPlayable, SpriteComponent, SpriteLoader, StaticValue, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextLoader, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineClip, TimelineComponent, Track, Transform, TransformAnimationPlayable, TransformAnimationPlayableAsset, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, alphaFrame_frag as alphaFrameFrag, alphaMask_frag as alphaMaskFrag, assertExist, asserts, blend, bloomMix_frag as bloomMixVert, bloomThreshold_frag as bloomThresholdVert, calculateTranslation, cameraMove_frag as cameraMoveFrag, cameraMove_vert as cameraMoveVert, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, combineImageTemplate1, combineImageTemplate1Async, combineImageTemplate2, combineImageTemplate2Async, combineImageTemplateAsync, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, copy as copyFrag, createCopyShader, createGLContext, createKeyFrameMeta, createShaderWithMarcos, createShape, createVFXItem, createValueGetter, deepClone, defaultGlobalVolume, defaultPlugins, delay_frag as delayFrag, deserializeMipmapTexture, distortion_frag as distortionFrag, distortion_vert as distortionVert, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID$1 as generateGUID, generateHalfFloatTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAndroid, isArray, isFunction, isIOS, isObject, isScene, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isWebGL2, item_define as itemDefine, itemFrag, itemFrameFrag, itemVert, loadBinary, loadBlob, loadImage, loadVideo, loadWebPOptional, logger, index$1 as math, maxSpriteMeshItemCount, maxSpriteTextureCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleVert, pluginLoaderMap, random, registerPlugin, removeItem, requestAsync, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxFragmentTextures, setSpriteMeshMaxItemCountByGPU, sortByOrder, index as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize };
25987
26459
  //# sourceMappingURL=index.mjs.map