@galacean/effects-core 2.8.0 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.8.0
6
+ * Version: v2.8.2
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -13346,22 +13346,34 @@ function _loadVideo() {
13346
13346
  return [
13347
13347
  2,
13348
13348
  new Promise(function(resolve, reject) {
13349
- var handleCanPlay = function() {
13349
+ var settled = false;
13350
+ var handleSuccess = function() {
13351
+ if (settled) {
13352
+ return;
13353
+ }
13354
+ settled = true;
13355
+ cleanup();
13350
13356
  resolve(video);
13351
- video.removeEventListener("error", handleError);
13352
13357
  };
13353
- var handleError = function(e) {
13354
- video.removeEventListener("canplay", handleCanPlay);
13358
+ var handleError = function() {
13359
+ if (settled) {
13360
+ return;
13361
+ }
13362
+ settled = true;
13363
+ cleanup();
13355
13364
  reject("Load video fail.");
13356
13365
  };
13357
- video.addEventListener("canplay", handleCanPlay, {
13358
- once: true
13359
- });
13360
- video.addEventListener("error", handleError, {
13361
- once: true
13366
+ var cleanup = function() {
13367
+ video.removeEventListener("loadeddata", handleSuccess);
13368
+ video.removeEventListener("canplay", handleSuccess);
13369
+ video.removeEventListener("error", handleError);
13370
+ };
13371
+ video.addEventListener("loadeddata", handleSuccess);
13372
+ video.addEventListener("canplay", handleSuccess);
13373
+ video.addEventListener("error", handleError);
13374
+ video.play().catch(function(err) {
13375
+ console.warn("Autoplay blocked:", err);
13362
13376
  });
13363
- // 显式触发视频加载
13364
- video.load();
13365
13377
  })
13366
13378
  ];
13367
13379
  });
@@ -16663,10 +16675,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
16663
16675
  }
16664
16676
  var regions = [];
16665
16677
  var ray = this.getHitTestRay(x, y);
16666
- this.refContent.forEach(function(ref) {
16667
- var _ref_getComponent;
16668
- (_ref_getComponent = ref.getComponent(CompositionComponent)) == null ? void 0 : _ref_getComponent.hitTest(ray, x, y, regions, force, options);
16669
- });
16678
+ this.rootComposition.hitTest(ray, x, y, regions, force, options);
16670
16679
  return regions;
16671
16680
  };
16672
16681
  /**
@@ -17743,10 +17752,32 @@ var CompositionComponent = /*#__PURE__*/ function(Component) {
17743
17752
  });
17744
17753
  };
17745
17754
  _proto.hitTest = function hitTest(ray, x, y, regions, force, options) {
17746
- var _this, _loop = function(i) {
17747
- var item = _this.items[i];
17748
- if (item.isActive && item.transform.getValid() && !VFXItem.isComposition(item) && !skip(item)) {
17749
- var hitParams = item.getHitTestParams(force);
17755
+ var _this_item_composition;
17756
+ var isHitTestSuccess = this.hitTestRecursive(this.item, ray, x, y, regions, force, options);
17757
+ // 子元素碰撞测试成功加入当前预合成元素,判断是否是合成根元素,根元素不加入
17758
+ if (isHitTestSuccess && this.item !== ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.rootItem)) {
17759
+ var item = this.item;
17760
+ var lastRegion = regions[regions.length - 1];
17761
+ var hitPositions = lastRegion.hitPositions;
17762
+ var region = {
17763
+ id: item.getInstanceId(),
17764
+ name: item.name,
17765
+ position: hitPositions[hitPositions.length - 1],
17766
+ parentId: item.parentId,
17767
+ hitPositions: hitPositions,
17768
+ behavior: InteractBehavior.NONE,
17769
+ item: item,
17770
+ composition: item.composition
17771
+ };
17772
+ regions.push(region);
17773
+ }
17774
+ return isHitTestSuccess;
17775
+ };
17776
+ _proto.hitTestRecursive = function hitTestRecursive(item, ray, x, y, regions, force, options) {
17777
+ var _this, _loop = function() {
17778
+ var hitTestItem = _step.value;
17779
+ if (hitTestItem.isActive && hitTestItem.transform.getValid() && !skip(hitTestItem)) {
17780
+ var hitParams = hitTestItem.getHitTestParams(force);
17750
17781
  if (hitParams) {
17751
17782
  var success = false;
17752
17783
  var intersectPoint = new Vector3();
@@ -17791,35 +17822,48 @@ var CompositionComponent = /*#__PURE__*/ function(Component) {
17791
17822
  }
17792
17823
  if (success) {
17793
17824
  var region = {
17794
- compContent: _this.item,
17795
- id: item.getInstanceId(),
17796
- name: item.name,
17825
+ id: hitTestItem.getInstanceId(),
17826
+ name: hitTestItem.name,
17797
17827
  position: hitPositions[hitPositions.length - 1],
17798
- parentId: item.parentId,
17828
+ parentId: hitTestItem.parentId,
17799
17829
  hitPositions: hitPositions,
17800
17830
  behavior: hitParams.behavior,
17801
- item: item,
17831
+ item: hitTestItem,
17802
17832
  composition: _this.item.composition
17803
17833
  };
17804
17834
  regions.push(region);
17835
+ hitTestSuccess = true;
17805
17836
  if (stop(region)) {
17806
17837
  return {
17807
- v: regions
17838
+ v: true
17808
17839
  };
17809
17840
  }
17810
17841
  }
17811
17842
  }
17843
+ if (VFXItem.isComposition(hitTestItem)) {
17844
+ if (hitTestItem.getComponent(CompositionComponent).hitTest(ray, x, y, regions, force, options)) {
17845
+ hitTestSuccess = true;
17846
+ }
17847
+ } else {
17848
+ if (_this.hitTestRecursive(hitTestItem, ray, x, y, regions, force, options)) {
17849
+ hitTestSuccess = true;
17850
+ }
17851
+ }
17812
17852
  }
17813
17853
  };
17814
17854
  var hitPositions = [];
17815
17855
  var stop = (options == null ? void 0 : options.stop) || noop;
17816
17856
  var skip = (options == null ? void 0 : options.skip) || noop;
17817
- var maxCount = (options == null ? void 0 : options.maxCount) || this.items.length;
17818
- for(var i = 0; i < this.items.length && regions.length < maxCount; i++){
17819
- var _ret = (_this = this, _loop(i));
17857
+ var maxCount = options == null ? void 0 : options.maxCount;
17858
+ if (maxCount !== undefined && regions.length >= maxCount) {
17859
+ return false;
17860
+ }
17861
+ var hitTestSuccess = false;
17862
+ for(var _iterator = _create_for_of_iterator_helper_loose(item.children), _step; !(_step = _iterator()).done;){
17863
+ var _ret = (_this = this, _loop());
17820
17864
  if (_type_of(_ret) === "object") return _ret.v;
17821
17865
  }
17822
- return regions;
17866
+ return hitTestSuccess;
17823
17867
  };
17824
17868
  /**
17825
17869
  * 设置当前合成子元素的渲染顺序
@@ -29391,14 +29435,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29391
29435
  this.isDirty = true;
29392
29436
  };
29393
29437
  _proto.setFontSize = function setFontSize(value) {
29394
- if (this.textStyle.fontSize === value) {
29438
+ var size = Math.max(1, Number(value) || 1);
29439
+ if (this.textStyle.fontSize === size) {
29395
29440
  return;
29396
29441
  }
29397
- // 保证字号变化后位置正常
29398
- var diff = this.textStyle.fontSize - value;
29399
- var layout = this.textLayout;
29400
- layout.lineHeight += diff;
29401
- this.textStyle.fontSize = value;
29442
+ this.textStyle.fontSize = size;
29402
29443
  this.isDirty = true;
29403
29444
  };
29404
29445
  _proto.setOutlineWidth = function setOutlineWidth(value) {
@@ -31492,7 +31533,7 @@ function getStandardSpriteContent(sprite, transform) {
31492
31533
  return ret;
31493
31534
  }
31494
31535
 
31495
- var version$1 = "2.8.0";
31536
+ var version$1 = "2.8.2";
31496
31537
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31497
31538
  var standardVersion = /^(\d+)\.(\d+)$/;
31498
31539
  var reverseParticle = false;
@@ -32837,7 +32878,7 @@ function _createTextureOptionsBySource() {
32837
32878
  scene.jsonScene.items.forEach(function(item) {
32838
32879
  if (item.type === ItemType.text || item.type === ItemType.richtext) {
32839
32880
  var textVariable = variables[item.name];
32840
- if (!textVariable) {
32881
+ if (textVariable === undefined || textVariable === null) {
32841
32882
  return;
32842
32883
  }
32843
32884
  item.components.forEach(function(param) {
@@ -35192,7 +35233,7 @@ registerPlugin("text", TextLoader);
35192
35233
  registerPlugin("sprite", SpriteLoader);
35193
35234
  registerPlugin("particle", ParticleLoader);
35194
35235
  registerPlugin("interact", InteractLoader);
35195
- var version = "2.8.0";
35236
+ var version = "2.8.2";
35196
35237
  logger.info("Core version: " + version + ".");
35197
35238
 
35198
35239
  export { ActivationMixerPlayable, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AndNode, AndNodeData, Animatable, AnimationClip, AnimationClipNode, AnimationClipNodeData, AnimationGraphAsset, Animator, ApplyAdditiveNode, ApplyAdditiveNodeData, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, BlendNode, BlendNodeData, BoolValueNode, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPlayable, ColorPropertyMixerPlayable, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, ComponentTimePlayable, ComponentTimePlayableAsset, ComponentTimeTrack, Composition, CompositionComponent, CompressTextureCapabilityType, ConstBoolNode, ConstBoolNodeData, ConstFloatNode, ConstFloatNodeData, ConstraintTarget, ControlParameterBoolNode, ControlParameterBoolNodeData, ControlParameterFloatNode, ControlParameterFloatNodeData, ControlParameterTriggerNode, ControlParameterTriggerNodeData, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, DrawObjectPass, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectComponentTimeTrack, EffectsObject, EffectsPackage, Ellipse, Engine, EqualNodeData, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatComparisonNode, FloatComparisonNodeData, FloatPropertyMixerPlayable, FloatPropertyPlayableAsset, FloatPropertyTrack, FloatValueNode, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphInstance, GraphNode, GraphNodeData, GraphicsPath, GreaterNodeData, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, InvalidIndex, Item, LayerBlendNode, LayerBlendNodeData, LessNodeData, LineSegments, LinearValue, MaskMode, MaskProcessor, MaskableGraphic, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, NodeTransform, NotNode, NotNodeData, ObjectBindingTrack, OrNode, OrNodeData, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleMixerPlayable, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PlayState, Playable, PlayableAsset, PlayableOutput, Plugin, PluginSystem, PointerEventData, PointerEventType, PolyStar, Polygon, Pose, PoseNode, PositionConstraint, PostProcessVolume, PropertyClipPlayable, PropertyTrack, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RaycastResult, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTargetPool, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SceneLoader, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SourceType, SpriteColorMixerPlayable, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteComponentTimeTrack, SpriteLoader, StarType, StateMachineNode, StateMachineNodeData, StateNode, StateNodeData, StaticValue, SubCompositionClipPlayable, SubCompositionMixerPlayable, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelineInstance, TrackAsset, TrackMixerPlayable, TrackType, Transform, TransformMixerPlayable, TransformPlayable, TransformPlayableAsset, TransformTrack, TransitionNode, TransitionNodeData, TransitionState, VFXItem, ValueGetter, ValueNode, Vector2Curve, Vector2PropertyMixerPlayable, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector3Curve, Vector3PropertyMixerPlayable, Vector3PropertyTrack, Vector3ropertyPlayableAsset, Vector4Curve, Vector4PropertyMixerPlayable, Vector4PropertyPlayableAsset, Vector4PropertyTrack, WeightedMode, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, buildLine, calculateTranslation, canUseBOM, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getClass, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKeyFrameMetaByRawValue, getMergedStore, getNodeDataClass, getParticleMeshShader, getPixelRatio, getPluginUsageInfo, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isPlainObject, isPowerOfTwo, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, modifyMaxKeyframeShader, nearestPowerOfTwo, nodeDataClass, noop, normalizeColor, numberToFix, oldBezierKeyFramesToNew, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setRayFromCamera, setSideMode, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };