@galacean/effects-core 2.2.2 → 2.2.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.2.2
6
+ * Version: v2.2.4
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -16620,8 +16620,16 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16620
16620
  _proto.onEnable = function onEnable() {
16621
16621
  RendererComponent.prototype.onEnable.call(this);
16622
16622
  var type = this.interactData.options.type;
16623
+ var env = this.item.engine.renderer.env;
16623
16624
  if (type === InteractType.CLICK) {
16624
16625
  this.clickable = true;
16626
+ } else if (type === InteractType.DRAG) {
16627
+ var options = this.interactData.options;
16628
+ var enableInEditor = options.enableInEditor;
16629
+ if (env !== PLAYER_OPTIONS_ENV_EDITOR || enableInEditor) {
16630
+ var _this_item_composition;
16631
+ ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.event) && this.beginDragTarget(options, this.item.composition.event);
16632
+ }
16625
16633
  }
16626
16634
  };
16627
16635
  _proto.onUpdate = function onUpdate(dt) {
@@ -17157,6 +17165,83 @@ var PlayState;
17157
17165
  PlayState[PlayState["Paused"] = 1] = "Paused";
17158
17166
  })(PlayState || (PlayState = {}));
17159
17167
 
17168
+ /**
17169
+ *
17170
+ */ /**
17171
+ * 事件监听器
17172
+ */ var EventEmitter = function EventEmitter() {
17173
+ var _this = this;
17174
+ var _this1 = this;
17175
+ this.listeners = {};
17176
+ /**
17177
+ * 移除事件监听器
17178
+ * @param eventName - 事件名称
17179
+ * @param listener - 事件监听器
17180
+ * @returns
17181
+ */ this.off = function(eventName, listener) {
17182
+ if (!_this.listeners[eventName]) {
17183
+ return;
17184
+ }
17185
+ _this.listeners[eventName] = _this.listeners[eventName].filter(function(param) {
17186
+ var l = param.listener;
17187
+ return l !== listener;
17188
+ });
17189
+ };
17190
+ /**
17191
+ * 监听事件
17192
+ * @param eventName - 事件名称
17193
+ * @param listener - 事件监听器
17194
+ * @param options - 事件监听器选项
17195
+ * @returns
17196
+ */ this.on = function(eventName, listener, options) {
17197
+ _this.listeners[eventName] = _this.listeners[eventName] || [];
17198
+ _this.listeners[eventName].push({
17199
+ listener: listener,
17200
+ options: options
17201
+ });
17202
+ return function() {
17203
+ return _this.off(eventName, listener);
17204
+ };
17205
+ };
17206
+ /**
17207
+ * 一次性监听事件
17208
+ * @param eventName - 事件名称
17209
+ * @param listener - 事件监听器
17210
+ */ this.once = function(eventName, listener) {
17211
+ _this.on(eventName, listener, {
17212
+ once: true
17213
+ });
17214
+ };
17215
+ /**
17216
+ * 触发事件
17217
+ * @param eventName - 事件名称
17218
+ * @param args - 事件参数
17219
+ */ this.emit = function(eventName) {
17220
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
17221
+ args[_key - 1] = arguments[_key];
17222
+ }
17223
+ var _this_listeners_eventName;
17224
+ (_this_listeners_eventName = _this1.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.forEach(function(param) {
17225
+ var listener = param.listener, options = param.options;
17226
+ listener.apply(void 0, [].concat(args));
17227
+ if (options == null ? void 0 : options.once) {
17228
+ _this1.off(eventName, listener);
17229
+ }
17230
+ });
17231
+ };
17232
+ /**
17233
+ * 获取事件名称对应的所有监听器
17234
+ * @param eventName - 事件名称
17235
+ * @returns - 返回事件名称对应的所有监听器
17236
+ */ this.getListeners = function(eventName) {
17237
+ var _this_listeners_eventName;
17238
+ return ((_this_listeners_eventName = _this.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.map(function(param) {
17239
+ var listener = param.listener;
17240
+ return listener;
17241
+ })) || [];
17242
+ };
17243
+ };
17244
+
17160
17245
  var tempQuat$1 = new Quaternion();
17161
17246
  var seed$3 = 1;
17162
17247
  // TODO 继承 Component
@@ -17627,83 +17712,6 @@ var seed$3 = 1;
17627
17712
  return Transform;
17628
17713
  }();
17629
17714
 
17630
- /**
17631
- *
17632
- */ /**
17633
- * 事件监听器
17634
- */ var EventEmitter = function EventEmitter() {
17635
- var _this = this;
17636
- var _this1 = this;
17637
- this.listeners = {};
17638
- /**
17639
- * 移除事件监听器
17640
- * @param eventName - 事件名称
17641
- * @param listener - 事件监听器
17642
- * @returns
17643
- */ this.off = function(eventName, listener) {
17644
- if (!_this.listeners[eventName]) {
17645
- return;
17646
- }
17647
- _this.listeners[eventName] = _this.listeners[eventName].filter(function(param) {
17648
- var l = param.listener;
17649
- return l !== listener;
17650
- });
17651
- };
17652
- /**
17653
- * 监听事件
17654
- * @param eventName - 事件名称
17655
- * @param listener - 事件监听器
17656
- * @param options - 事件监听器选项
17657
- * @returns
17658
- */ this.on = function(eventName, listener, options) {
17659
- _this.listeners[eventName] = _this.listeners[eventName] || [];
17660
- _this.listeners[eventName].push({
17661
- listener: listener,
17662
- options: options
17663
- });
17664
- return function() {
17665
- return _this.off(eventName, listener);
17666
- };
17667
- };
17668
- /**
17669
- * 一次性监听事件
17670
- * @param eventName - 事件名称
17671
- * @param listener - 事件监听器
17672
- */ this.once = function(eventName, listener) {
17673
- _this.on(eventName, listener, {
17674
- once: true
17675
- });
17676
- };
17677
- /**
17678
- * 触发事件
17679
- * @param eventName - 事件名称
17680
- * @param args - 事件参数
17681
- */ this.emit = function(eventName) {
17682
- for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
17683
- args[_key - 1] = arguments[_key];
17684
- }
17685
- var _this_listeners_eventName;
17686
- (_this_listeners_eventName = _this1.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.forEach(function(param) {
17687
- var listener = param.listener, options = param.options;
17688
- listener.apply(void 0, [].concat(args));
17689
- if (options == null ? void 0 : options.once) {
17690
- _this1.off(eventName, listener);
17691
- }
17692
- });
17693
- };
17694
- /**
17695
- * 获取事件名称对应的所有监听器
17696
- * @param eventName - 事件名称
17697
- * @returns - 返回事件名称对应的所有监听器
17698
- */ this.getListeners = function(eventName) {
17699
- var _this_listeners_eventName;
17700
- return ((_this_listeners_eventName = _this.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.map(function(param) {
17701
- var listener = param.listener;
17702
- return listener;
17703
- })) || [];
17704
- };
17705
- };
17706
-
17707
17715
  var VFXItem = /*#__PURE__*/ function(EffectsObject) {
17708
17716
  _inherits(VFXItem, EffectsObject);
17709
17717
  function VFXItem(engine, props) {
@@ -18053,42 +18061,36 @@ var VFXItem = /*#__PURE__*/ function(EffectsObject) {
18053
18061
  EffectsObject.prototype.fromData.call(this, data);
18054
18062
  var id = data.id, name = data.name, delay = data.delay, parentId = data.parentId, endBehavior = data.endBehavior, transform = data.transform, _data_duration = data.duration, duration = _data_duration === void 0 ? 0 : _data_duration;
18055
18063
  this.props = data;
18056
- //@ts-expect-error
18057
18064
  this.type = data.type;
18058
18065
  this.id = id.toString(); // TODO 老数据 id 是 number,需要转换
18059
18066
  this.name = name;
18060
18067
  this.start = delay ? delay : this.start;
18068
+ var transformProps = {};
18061
18069
  if (transform) {
18062
- //@ts-expect-error TODO 数据改造后移除 expect-error
18063
- transform.position = new Vector3().copyFrom(transform.position);
18070
+ transformProps.position = new Vector3().copyFrom(transform.position);
18064
18071
  // FIXME: transform.rotation待删除
18072
+ //@ts-expect-error
18065
18073
  if (transform.quat) {
18066
18074
  //@ts-expect-error
18067
- transform.quat = new Quaternion(transform.quat.x, transform.quat.y, transform.quat.z, transform.quat.w);
18075
+ transformProps.quat = new Quaternion(transform.quat.x, transform.quat.y, transform.quat.z, transform.quat.w);
18068
18076
  } else {
18069
18077
  var _transform_eulerHint;
18070
18078
  //@ts-expect-error
18071
- transform.rotation = new Euler().copyFrom((_transform_eulerHint = transform.eulerHint) != null ? _transform_eulerHint : transform.rotation);
18079
+ transformProps.rotation = new Euler().copyFrom((_transform_eulerHint = transform.eulerHint) != null ? _transform_eulerHint : transform.rotation);
18072
18080
  }
18073
- //@ts-expect-error
18074
- transform.scale = new Vector3().copyFrom(transform.scale);
18075
- //@ts-expect-error
18081
+ transformProps.scale = new Vector3().copyFrom(transform.scale);
18076
18082
  if (transform.size) {
18077
- //@ts-expect-error
18078
- transform.size = new Vector2().copyFrom(transform.size);
18083
+ transformProps.size = new Vector2().copyFrom(transform.size);
18079
18084
  }
18080
- //@ts-expect-error
18081
18085
  if (transform.anchor) {
18082
- //@ts-expect-error
18083
- transform.anchor = new Vector2().copyFrom(transform.anchor);
18086
+ transformProps.anchor = new Vector2().copyFrom(transform.anchor);
18084
18087
  }
18085
- this.transform.setTransform(transform);
18088
+ this.transform.setTransform(transformProps);
18086
18089
  }
18087
18090
  this.transform.name = this.name;
18088
18091
  this.transform.engine = this.engine;
18089
18092
  this.parentId = parentId;
18090
18093
  this.duration = duration;
18091
- // TODO spec endbehavior 类型修正
18092
18094
  this.endBehavior = endBehavior;
18093
18095
  if (!data.content) {
18094
18096
  data.content = {
@@ -24880,9 +24882,23 @@ var TextComponent = /*#__PURE__*/ function(BaseRenderComponent) {
24880
24882
  order: listIndex
24881
24883
  };
24882
24884
  this.interaction = interaction;
24885
+ this.cachePrefix = "-";
24886
+ this.renderInfo = getImageItemRenderInfo(this);
24887
+ var material = this.createMaterial(this.renderInfo, 2);
24888
+ this.worldMatrix = Matrix4.fromIdentity();
24889
+ this.material = material;
24890
+ this.material.setVector4("_TexOffset", new Vector4().setFromArray([
24891
+ 0,
24892
+ 0,
24893
+ 1,
24894
+ 1
24895
+ ]));
24896
+ // TextComponentBase
24883
24897
  this.updateWithOptions(options);
24884
- // Text
24885
24898
  this.updateTexture();
24899
+ this.setItem();
24900
+ // 恢复默认颜色
24901
+ this.material.setVector4("_Color", new Vector4(1, 1, 1, 1));
24886
24902
  };
24887
24903
  _proto.updateWithOptions = function updateWithOptions(options) {
24888
24904
  // OVERRIDE by mixins
@@ -25200,7 +25216,7 @@ var TextComponentBase = /*#__PURE__*/ function() {
25200
25216
  }
25201
25217
  //与 toDataURL() 两种方式都需要像素读取操作
25202
25218
  var imageData = context.getImageData(0, 0, this.canvas.width, this.canvas.height);
25203
- this.material.setTexture("_MainTex", Texture.createWithData(this.engine, {
25219
+ var texture = Texture.createWithData(this.engine, {
25204
25220
  data: new Uint8Array(imageData.data),
25205
25221
  width: imageData.width,
25206
25222
  height: imageData.height
@@ -25210,7 +25226,9 @@ var TextComponentBase = /*#__PURE__*/ function() {
25210
25226
  minFilter: glContext.LINEAR,
25211
25227
  wrapS: glContext.CLAMP_TO_EDGE,
25212
25228
  wrapT: glContext.CLAMP_TO_EDGE
25213
- }));
25229
+ });
25230
+ this.renderer.texture = texture;
25231
+ this.material.setTexture("_MainTex", texture);
25214
25232
  this.isDirty = false;
25215
25233
  };
25216
25234
  _proto.getFontDesc = function getFontDesc() {
@@ -28398,7 +28416,7 @@ var tmpScale = new Vector3(1, 1, 1);
28398
28416
  var sourceItemData = this.engine.jsonSceneData[itemDataPath.id];
28399
28417
  var itemProps = sourceItemData;
28400
28418
  if (passRenderLevel(sourceItemData.renderLevel, this.renderLevel)) {
28401
- if (itemProps.type === ItemType.sprite || itemProps.type === ItemType.particle || itemProps.type === ItemType.spine || //@ts-expect-error
28419
+ if (itemProps.type === ItemType.sprite || itemProps.type === ItemType.particle || itemProps.type === ItemType.spine || itemProps.type === ItemType.text || itemProps.type === ItemType.video || //@ts-expect-error
28402
28420
  itemProps.type === ItemType.shape) {
28403
28421
  for(var _iterator2 = _create_for_of_iterator_helper_loose(itemProps.components), _step2; !(_step2 = _iterator2()).done;){
28404
28422
  var componentPath = _step2.value;
@@ -28419,6 +28437,13 @@ var tmpScale = new Vector3(1, 1, 1);
28419
28437
  }
28420
28438
  }
28421
28439
  items.push(itemDataPath);
28440
+ } else {
28441
+ // 非预合成元素未达到渲染等级的转化为空节点。
28442
+ // 预合成元素有根据 item type 的子元素加载判断,没法保留空节点,这边先整体过滤掉。
28443
+ if (itemProps.type !== ItemType.composition) {
28444
+ itemProps.components = [];
28445
+ items.push(itemDataPath);
28446
+ }
28422
28447
  }
28423
28448
  }
28424
28449
  composition.items = items;
@@ -28663,10 +28688,13 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
28663
28688
  assertExist(sourceContent);
28664
28689
  _this.renderer = renderer;
28665
28690
  _this.refCompositionProps = refCompositionProps;
28666
- _this.rootItem = new VFXItem(_this.getEngine(), sourceContent);
28691
+ // Instantiate composition rootItem
28692
+ _this.rootItem = new VFXItem(_this.getEngine());
28667
28693
  _this.rootItem.name = "rootItem";
28694
+ _this.rootItem.duration = sourceContent.duration;
28695
+ _this.rootItem.endBehavior = sourceContent.endBehavior;
28668
28696
  _this.rootItem.composition = _assert_this_initialized(_this);
28669
- // Spawn rootCompositionComponent
28697
+ // Create rootCompositionComponent
28670
28698
  _this.rootComposition = _this.rootItem.addComponent(CompositionComponent);
28671
28699
  _this.width = width;
28672
28700
  _this.height = height;
@@ -31340,7 +31368,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem, true);
31340
31368
  registerPlugin("particle", ParticleLoader, VFXItem, true);
31341
31369
  registerPlugin("cal", CalculateLoader, VFXItem, true);
31342
31370
  registerPlugin("interact", InteractLoader, VFXItem, true);
31343
- var version = "2.2.2";
31371
+ var version = "2.2.4";
31344
31372
  logger.info("Core version: " + version + ".");
31345
31373
 
31346
31374
  export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, CompositionSourceManager, DEFAULT_FONTS, DEFAULT_FPS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PluginSystem, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };