@galacean/effects-core 2.4.6 → 2.4.8

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.4.6
6
+ * Version: v2.4.8
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -20135,7 +20135,7 @@ var RuntimeClip = /*#__PURE__*/ function() {
20135
20135
  this.playable.play();
20136
20136
  }
20137
20137
  this.parentMixer.setClipWeight(this.playable, weight);
20138
- var clipTime = parseFloat(clip.toLocalTime(localTime).toFixed(3));
20138
+ var clipTime = clip.toLocalTime(localTime);
20139
20139
  this.playable.setTime(clipTime);
20140
20140
  // 判断动画是否结束
20141
20141
  if (ended) {
@@ -21135,13 +21135,12 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21135
21135
  _this._textures = [];
21136
21136
  var _props_reusable = props.reusable, reusable = _props_reusable === void 0 ? false : _props_reusable, _props_speed = props.speed, speed = _props_speed === void 0 ? 1 : _props_speed, _props_baseRenderOrder = props.baseRenderOrder, baseRenderOrder = _props_baseRenderOrder === void 0 ? 0 : _props_baseRenderOrder, renderer = props.renderer, event = props.event, width = props.width, height = props.height, handleItemMessage = props.handleItemMessage;
21137
21137
  _this.renderer = renderer;
21138
- _this._textures = scene.textureOptions;
21138
+ _this._textures = scene.textures;
21139
21139
  var _scene_jsonScene_renderSettings_postProcessingEnabled;
21140
21140
  _this.postProcessingEnabled = (_scene_jsonScene_renderSettings_postProcessingEnabled = (_scene_jsonScene_renderSettings = scene.jsonScene.renderSettings) == null ? void 0 : _scene_jsonScene_renderSettings.postProcessingEnabled) != null ? _scene_jsonScene_renderSettings_postProcessingEnabled : false;
21141
21141
  _this.getEngine().renderLevel = scene.renderLevel;
21142
21142
  if (reusable) {
21143
21143
  _this.keepResource = true;
21144
- scene.textures = undefined;
21145
21144
  scene.consumed = true;
21146
21145
  }
21147
21146
  var sourceContent = scene.jsonScene.compositions[0];
@@ -21325,11 +21324,12 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21325
21324
  * 前进合成到指定时间
21326
21325
  * @param time - 相对0时刻的时间
21327
21326
  */ _proto.forwardTime = function forwardTime(time) {
21328
- var deltaTime = time * 1000 - this.rootComposition.time * 1000;
21327
+ var deltaTime = time * 1000 - this.time * 1000;
21329
21328
  var reverse = deltaTime < 0;
21330
21329
  var step = 15;
21331
21330
  var t = Math.abs(deltaTime);
21332
21331
  var ss = reverse ? -step : step;
21332
+ // FIXME Update 中可能会修改合成时间,这边需要优化更新逻辑
21333
21333
  for(t; t > step; t -= step){
21334
21334
  this.update(ss);
21335
21335
  }
@@ -21369,13 +21369,14 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21369
21369
  this.callAwake(this.rootItem);
21370
21370
  this.rootItem.beginPlay();
21371
21371
  }
21372
- var dt = parseFloat(this.getUpdateTime(deltaTime * this.speed).toFixed(0));
21373
- this.updateRootComposition(dt / 1000);
21372
+ var previousCompositionTime = this.time;
21373
+ this.updateCompositionTime(deltaTime * this.speed / 1000);
21374
+ var deltaTimeInMs = (this.time - previousCompositionTime) * 1000;
21374
21375
  this.updateVideo();
21375
21376
  // 更新 model-tree-plugin
21376
- this.updatePluginLoaders(deltaTime);
21377
- this.sceneTicking.update.tick(dt);
21378
- this.sceneTicking.lateUpdate.tick(dt);
21377
+ this.updatePluginLoaders(deltaTimeInMs);
21378
+ this.sceneTicking.update.tick(deltaTimeInMs);
21379
+ this.sceneTicking.lateUpdate.tick(deltaTimeInMs);
21379
21380
  this.updateCamera();
21380
21381
  this.prepareRender();
21381
21382
  if (this.isEnded && !this.isEndCalled) {
@@ -21391,14 +21392,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21391
21392
  _proto.shouldDispose = function shouldDispose() {
21392
21393
  return this.isEnded && this.rootItem.endBehavior === EndBehavior.destroy && !this.reusable;
21393
21394
  };
21394
- _proto.getUpdateTime = function getUpdateTime(t) {
21395
- var startTimeInMs = this.startTime * 1000;
21396
- var now = this.rootComposition.time * 1000;
21397
- if (t < 0 && now + t < startTimeInMs) {
21398
- return startTimeInMs - now;
21399
- }
21400
- return t;
21401
- };
21402
21395
  _proto.callAwake = function callAwake(item) {
21403
21396
  for(var _iterator = _create_for_of_iterator_helper_loose(item.components), _step; !(_step = _iterator()).done;){
21404
21397
  var component = _step.value;
@@ -21443,14 +21436,18 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21443
21436
  };
21444
21437
  /**
21445
21438
  * 更新主合成组件
21446
- */ _proto.updateRootComposition = function updateRootComposition(deltaTime) {
21439
+ */ _proto.updateCompositionTime = function updateCompositionTime(deltaTime) {
21447
21440
  if (this.rootComposition.state === PlayState.Paused || !this.rootComposition.isActiveAndEnabled) {
21448
21441
  return;
21449
21442
  }
21450
- var localTime = parseFloat((this.time + deltaTime - this.rootItem.start).toFixed(3));
21451
- var isEnded = false;
21443
+ // 相对于合成开始时间的时间
21444
+ var localTime = this.time + deltaTime - this.startTime;
21445
+ if (deltaTime < 0 && localTime < 0) {
21446
+ localTime = 0;
21447
+ }
21452
21448
  var duration = this.rootItem.duration;
21453
21449
  var endBehavior = this.rootItem.endBehavior;
21450
+ var isEnded = false;
21454
21451
  if (localTime - duration > 0.001) {
21455
21452
  isEnded = true;
21456
21453
  switch(endBehavior){
@@ -21475,7 +21472,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21475
21472
  }
21476
21473
  }
21477
21474
  }
21478
- this.rootComposition.time = localTime;
21475
+ this.rootComposition.time = localTime + this.startTime;
21479
21476
  // end state changed, handle onEnd flags
21480
21477
  if (this.isEnded !== isEnded) {
21481
21478
  if (isEnded) {
@@ -26258,8 +26255,9 @@ var TextComponentBase = /*#__PURE__*/ function() {
26258
26255
  this.isDirty = true;
26259
26256
  };
26260
26257
  /**
26261
- * 设置字体类型
26262
- * @param value 字体类型
26258
+ * 设置字体样式
26259
+ * @param value 设置字体样式
26260
+ * @default "normal"
26263
26261
  * @returns
26264
26262
  */ _proto.setFontStyle = function setFontStyle(value) {
26265
26263
  if (this.textStyle.fontStyle === value) {
@@ -27410,7 +27408,6 @@ function getStandardInteractContent(ui) {
27410
27408
  var currentMaskComponent;
27411
27409
  var componentMap = new Map();
27412
27410
  var itemMap = new Map();
27413
- var refCompositions = new Map();
27414
27411
  /**
27415
27412
  * 3.1 版本数据适配
27416
27413
  * - 富文本插件名称的适配
@@ -27458,27 +27455,20 @@ var refCompositions = new Map();
27458
27455
  function version32Migration(json) {
27459
27456
  componentMap.clear();
27460
27457
  itemMap.clear();
27461
- refCompositions.clear();
27462
27458
  var compositions = json.compositions, items = json.items, components = json.components;
27463
27459
  // 处理旧蒙版数据
27464
- var mainComp = compositions[0];
27465
27460
  for(var _iterator = _create_for_of_iterator_helper_loose(components), _step; !(_step = _iterator()).done;){
27466
27461
  var component = _step.value;
27467
27462
  componentMap.set(component.id, component);
27468
27463
  }
27469
- for(var _iterator1 = _create_for_of_iterator_helper_loose(compositions), _step1; !(_step1 = _iterator1()).done;){
27470
- var comp = _step1.value;
27471
- if (comp.id === json.compositionId) {
27472
- mainComp = comp;
27473
- } else {
27474
- refCompositions.set(comp.id, comp);
27475
- }
27476
- }
27477
- for(var _iterator2 = _create_for_of_iterator_helper_loose(items), _step2; !(_step2 = _iterator2()).done;){
27478
- var item = _step2.value;
27464
+ for(var _iterator1 = _create_for_of_iterator_helper_loose(items), _step1; !(_step1 = _iterator1()).done;){
27465
+ var item = _step1.value;
27479
27466
  itemMap.set(item.id, item);
27480
27467
  }
27481
- processContent(mainComp);
27468
+ for(var _iterator2 = _create_for_of_iterator_helper_loose(compositions), _step2; !(_step2 = _iterator2()).done;){
27469
+ var comp = _step2.value;
27470
+ processContent(comp);
27471
+ }
27482
27472
  return json;
27483
27473
  }
27484
27474
  function version33Migration(json) {
@@ -27563,12 +27553,6 @@ function processContent(composition) {
27563
27553
  processMask(component);
27564
27554
  }
27565
27555
  }
27566
- // 处理预合成的渲染顺序
27567
- if (itemProps.type === ItemType.composition) {
27568
- var refId = itemProps.content.options.refId;
27569
- var comp = refCompositions.get(refId);
27570
- comp && processContent(comp);
27571
- }
27572
27556
  }
27573
27557
  }
27574
27558
  function processMask(renderContent) {
@@ -28957,7 +28941,7 @@ var seed = 1;
28957
28941
  });
28958
28942
  });
28959
28943
  loadResourcePromise = /*#__PURE__*/ _async_to_generator(function() {
28960
- var scene, link, jsonScene, pluginSystem, loadedImages, images, _ref, jsonScene1, pluginSystem1, _jsonScene_bins, bins, images1, fonts, _ref1, loadedBins, loadedImages1, loadedTextures, totalTime;
28944
+ var scene, link, _ref, jsonScene, pluginSystem, _jsonScene_bins, bins, images, fonts, _ref1, loadedBins, loadedImages, loadedTextures, totalTime;
28961
28945
  return __generator(this, function(_state) {
28962
28946
  switch(_state.label){
28963
28947
  case 0:
@@ -28988,37 +28972,23 @@ var seed = 1;
28988
28972
  case 3:
28989
28973
  if (!Scene.isJSONObject(rawJSON)) return [
28990
28974
  3,
28991
- 5
28975
+ 4
28992
28976
  ];
28993
- // 已经加载过的 可能需要更新数据模板
28994
28977
  scene = _extends({}, rawJSON);
28995
- jsonScene = scene.jsonScene, pluginSystem = scene.pluginSystem, loadedImages = scene.images;
28996
- images = jsonScene.images;
28997
- _this.assignImagesToAssets(images, loadedImages);
28998
- return [
28999
- 4,
29000
- Promise.all([
29001
- hookTimeInfo("plugin:processAssets", function() {
29002
- return _this.processPluginAssets(jsonScene, pluginSystem, options);
29003
- })
29004
- ])
29005
- ];
29006
- case 4:
29007
- _state.sent();
29008
28978
  return [
29009
28979
  3,
29010
- 10
28980
+ 9
29011
28981
  ];
29012
- case 5:
28982
+ case 4:
29013
28983
  return [
29014
28984
  4,
29015
28985
  hookTimeInfo("processJSON", function() {
29016
28986
  return _this.processJSON(rawJSON);
29017
28987
  })
29018
28988
  ];
29019
- case 6:
29020
- _ref = _state.sent(), jsonScene1 = _ref.jsonScene, pluginSystem1 = _ref.pluginSystem;
29021
- _jsonScene_bins = jsonScene1.bins, bins = _jsonScene_bins === void 0 ? [] : _jsonScene_bins, images1 = jsonScene1.images, fonts = jsonScene1.fonts;
28989
+ case 5:
28990
+ _ref = _state.sent(), jsonScene = _ref.jsonScene, pluginSystem = _ref.pluginSystem;
28991
+ _jsonScene_bins = jsonScene.bins, bins = _jsonScene_bins === void 0 ? [] : _jsonScene_bins, images = jsonScene.images, fonts = jsonScene.fonts;
29022
28992
  return [
29023
28993
  4,
29024
28994
  Promise.all([
@@ -29026,48 +28996,50 @@ var seed = 1;
29026
28996
  return _this.processBins(bins);
29027
28997
  }),
29028
28998
  hookTimeInfo("processImages", function() {
29029
- return _this.processImages(images1, compressedTexture);
28999
+ return _this.processImages(images, compressedTexture);
29030
29000
  }),
29031
29001
  hookTimeInfo("plugin:processAssets", function() {
29032
- return _this.processPluginAssets(jsonScene1, pluginSystem1, options);
29002
+ return _this.processPluginAssets(jsonScene, pluginSystem, options);
29033
29003
  }),
29034
29004
  hookTimeInfo("processFontURL", function() {
29035
29005
  return _this.processFontURL(fonts);
29036
29006
  })
29037
29007
  ])
29038
29008
  ];
29039
- case 7:
29040
- _ref1 = _state.sent(), loadedBins = _ref1[0], loadedImages1 = _ref1[1];
29009
+ case 6:
29010
+ _ref1 = _state.sent(), loadedBins = _ref1[0], loadedImages = _ref1[1];
29041
29011
  return [
29042
29012
  4,
29043
29013
  hookTimeInfo("processTextures", function() {
29044
- return _this.processTextures(loadedImages1, loadedBins, jsonScene1);
29014
+ return _this.processTextures(loadedImages, loadedBins, jsonScene);
29045
29015
  })
29046
29016
  ];
29047
- case 8:
29017
+ case 7:
29048
29018
  loadedTextures = _state.sent();
29049
29019
  scene = {
29050
29020
  timeInfos: timeInfos,
29051
29021
  url: url,
29052
29022
  renderLevel: _this.options.renderLevel,
29053
29023
  storage: {},
29054
- pluginSystem: pluginSystem1,
29055
- jsonScene: jsonScene1,
29024
+ pluginSystem: pluginSystem,
29025
+ jsonScene: jsonScene,
29056
29026
  bins: loadedBins,
29057
- images: loadedImages1,
29058
- textureOptions: loadedTextures
29027
+ textureOptions: loadedTextures,
29028
+ textures: [],
29029
+ images: loadedImages,
29030
+ assets: _this.assets
29059
29031
  };
29060
29032
  // 触发插件系统 pluginSystem 的回调 prepareResource
29061
29033
  return [
29062
29034
  4,
29063
29035
  hookTimeInfo("plugin:prepareResource", function() {
29064
- return pluginSystem1.loadResources(scene, _this.options);
29036
+ return pluginSystem.loadResources(scene, _this.options);
29065
29037
  })
29066
29038
  ];
29067
- case 9:
29039
+ case 8:
29068
29040
  _state.sent();
29069
- _state.label = 10;
29070
- case 10:
29041
+ _state.label = 9;
29042
+ case 9:
29071
29043
  totalTime = performance.now() - startTime;
29072
29044
  logger.info("Load asset: totalTime: " + totalTime.toFixed(4) + "ms " + timeInfoMessages.join(" ") + ", url: " + assetUrl + ".");
29073
29045
  window.clearTimeout(loadTimer);
@@ -29662,16 +29634,10 @@ function createTextureOptionsBySource(image, sourceFrom, id) {
29662
29634
  };
29663
29635
  _proto.initializeTexture = function initializeTexture(scene) {
29664
29636
  for(var i = 0; i < scene.textureOptions.length; i++){
29665
- var textureOptions = scene.textureOptions[i];
29666
- if (_instanceof1(textureOptions, Texture)) {
29667
- this.engine.addInstance(textureOptions);
29668
- } else {
29669
- textureOptions = this.engine.findObject({
29670
- id: scene.textureOptions[i].id
29671
- });
29672
- scene.textureOptions[i] = textureOptions;
29673
- }
29674
- textureOptions.initialize();
29637
+ scene.textures[i] = this.engine.findObject({
29638
+ id: scene.textureOptions[i].id
29639
+ });
29640
+ scene.textures[i].initialize();
29675
29641
  }
29676
29642
  };
29677
29643
  _proto.prepareAssets = function prepareAssets(scene, assets) {
@@ -31656,7 +31622,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
31656
31622
  registerPlugin("particle", ParticleLoader, VFXItem);
31657
31623
  registerPlugin("cal", CalculateLoader, VFXItem);
31658
31624
  registerPlugin("interact", InteractLoader, VFXItem);
31659
- var version = "2.4.6";
31625
+ var version = "2.4.8";
31660
31626
  logger.info("Core version: " + version + ".");
31661
31627
 
31662
31628
  export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, AssetService, 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, 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, Ellipse, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphicsPath, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, MaskMode, MaskProcessor, 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, PolyStar, Polygon, 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, ShapePath, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StarType, 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, Vector2Curve, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, buildLine, calculateTranslation, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, 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, 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, isOpenHarmony, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrame_frag as 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, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };