@galacean/effects-core 2.8.7 → 2.8.9
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.js +42 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
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.
|
|
6
|
+
* Version: v2.8.9
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
@@ -17841,14 +17841,14 @@ var CompositionComponent = /*#__PURE__*/ function(Component) {
|
|
|
17841
17841
|
}
|
|
17842
17842
|
}
|
|
17843
17843
|
}
|
|
17844
|
-
|
|
17845
|
-
|
|
17846
|
-
|
|
17847
|
-
|
|
17848
|
-
}
|
|
17849
|
-
|
|
17850
|
-
|
|
17851
|
-
|
|
17844
|
+
}
|
|
17845
|
+
if (VFXItem.isComposition(hitTestItem)) {
|
|
17846
|
+
if (hitTestItem.getComponent(CompositionComponent).hitTest(ray, x, y, regions, force, options)) {
|
|
17847
|
+
hitTestSuccess = true;
|
|
17848
|
+
}
|
|
17849
|
+
} else {
|
|
17850
|
+
if (_this.hitTestRecursive(hitTestItem, ray, x, y, regions, force, options)) {
|
|
17851
|
+
hitTestSuccess = true;
|
|
17852
17852
|
}
|
|
17853
17853
|
}
|
|
17854
17854
|
};
|
|
@@ -28981,8 +28981,8 @@ var TextComponentBase = /*#__PURE__*/ function() {
|
|
|
28981
28981
|
};
|
|
28982
28982
|
_proto.setupShadow = function setupShadow() {
|
|
28983
28983
|
var context = this.context;
|
|
28984
|
-
var _this_textStyle = this.textStyle,
|
|
28985
|
-
var r =
|
|
28984
|
+
var _this_textStyle = this.textStyle, shadowColor = _this_textStyle.shadowColor, shadowBlur = _this_textStyle.shadowBlur, shadowOffsetX = _this_textStyle.shadowOffsetX, shadowOffsetY = _this_textStyle.shadowOffsetY;
|
|
28985
|
+
var r = shadowColor[0], g = shadowColor[1], b = shadowColor[2], a = shadowColor[3];
|
|
28986
28986
|
if (context) {
|
|
28987
28987
|
context.shadowColor = "rgba(" + r * 255 + ", " + g * 255 + ", " + b * 255 + ", " + a + ")";
|
|
28988
28988
|
context.shadowBlur = shadowBlur;
|
|
@@ -29207,11 +29207,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29207
29207
|
_proto.getLineCount = function getLineCount(text) {
|
|
29208
29208
|
var context = this.context;
|
|
29209
29209
|
var _this_textLayout = this.textLayout, letterSpace = _this_textLayout.letterSpace, overflow = _this_textLayout.overflow;
|
|
29210
|
-
// const fontScale = init ? this.textStyle.fontSize / 10 : 1 / this.textStyle.fontScale;
|
|
29211
29210
|
this.maxLineWidth = 0;
|
|
29212
29211
|
var width = this.textLayout.width + this.textStyle.fontOffset;
|
|
29213
29212
|
var lineCount = 1;
|
|
29214
29213
|
var x = 0;
|
|
29214
|
+
var charCountInLine = 0; // 跟踪当前行的字符数
|
|
29215
29215
|
// 设置 context.font 的字号,确保 measureText 能正确计算字宽
|
|
29216
29216
|
if (context) {
|
|
29217
29217
|
context.font = this.getFontDesc(this.textStyle.fontSize);
|
|
@@ -29222,14 +29222,19 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29222
29222
|
var _context_measureText_width;
|
|
29223
29223
|
var textMetrics = (_context_measureText_width = context == null ? void 0 : (_context_measureText = context.measureText(str)) == null ? void 0 : _context_measureText.width) != null ? _context_measureText_width : 0;
|
|
29224
29224
|
// 和浏览器行为保持一致
|
|
29225
|
-
|
|
29225
|
+
// 字符间距只应用在字符之间,每行第一个字符不加间距
|
|
29226
|
+
if (charCountInLine > 0) {
|
|
29227
|
+
x += letterSpace;
|
|
29228
|
+
}
|
|
29226
29229
|
// 处理文本结束行为
|
|
29227
29230
|
if (overflow === TextOverflow.display) {
|
|
29228
29231
|
if (str === "\n") {
|
|
29229
29232
|
lineCount++;
|
|
29230
29233
|
x = 0;
|
|
29234
|
+
charCountInLine = 0; // 重置行字符计数
|
|
29231
29235
|
} else {
|
|
29232
29236
|
x += textMetrics;
|
|
29237
|
+
charCountInLine++;
|
|
29233
29238
|
this.maxLineWidth = Math.max(this.maxLineWidth, x);
|
|
29234
29239
|
}
|
|
29235
29240
|
} else {
|
|
@@ -29237,9 +29242,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29237
29242
|
lineCount++;
|
|
29238
29243
|
this.maxLineWidth = Math.max(this.maxLineWidth, x);
|
|
29239
29244
|
x = 0;
|
|
29245
|
+
charCountInLine = 0; // 重置行字符计数
|
|
29240
29246
|
}
|
|
29241
29247
|
if (str !== "\n") {
|
|
29242
29248
|
x += textMetrics;
|
|
29249
|
+
charCountInLine++;
|
|
29243
29250
|
}
|
|
29244
29251
|
}
|
|
29245
29252
|
}
|
|
@@ -29368,12 +29375,6 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29368
29375
|
} else {
|
|
29369
29376
|
context.font = style.fontDesc;
|
|
29370
29377
|
}
|
|
29371
|
-
if (style.hasShadow) {
|
|
29372
|
-
_this.setupShadow();
|
|
29373
|
-
}
|
|
29374
|
-
if (style.isOutlined) {
|
|
29375
|
-
_this.setupOutline();
|
|
29376
|
-
}
|
|
29377
29378
|
// textColor 统一是 0-1,写入 canvas 时乘 255
|
|
29378
29379
|
var _style_textColor = style.textColor, r = _style_textColor[0], g = _style_textColor[1], b = _style_textColor[2], a = _style_textColor[3];
|
|
29379
29380
|
context.fillStyle = "rgba(" + r * 255 + ", " + g * 255 + ", " + b * 255 + ", " + a + ")";
|
|
@@ -29386,7 +29387,10 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29386
29387
|
var str = char[i];
|
|
29387
29388
|
var textMetrics = context.measureText(str);
|
|
29388
29389
|
// 和浏览器行为保持一致
|
|
29389
|
-
|
|
29390
|
+
// 字符间距只应用在字符之间,每行第一个字符不加间距
|
|
29391
|
+
if (charsArray.length > 0) {
|
|
29392
|
+
x += layout.letterSpace * fontScale;
|
|
29393
|
+
}
|
|
29390
29394
|
if (x + textMetrics.width > baseWidth && i > 0 || str === "\n") {
|
|
29391
29395
|
charsInfo.push({
|
|
29392
29396
|
y: y,
|
|
@@ -29411,8 +29415,13 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29411
29415
|
chars: charsArray,
|
|
29412
29416
|
charOffsetX: charOffsetX
|
|
29413
29417
|
});
|
|
29414
|
-
|
|
29415
|
-
if (
|
|
29418
|
+
var hasOutline = style.isOutlined && style.outlineWidth > 0;
|
|
29419
|
+
if (hasOutline) {
|
|
29420
|
+
// 有描边:在描边时启用阴影
|
|
29421
|
+
if (style.hasShadow) {
|
|
29422
|
+
_this.setupShadow();
|
|
29423
|
+
}
|
|
29424
|
+
_this.setupOutline();
|
|
29416
29425
|
charsInfo.forEach(function(charInfo) {
|
|
29417
29426
|
var ox = layout.getOffsetX(style, charInfo.width);
|
|
29418
29427
|
for(var i = 0; i < charInfo.chars.length; i++){
|
|
@@ -29422,8 +29431,15 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29422
29431
|
context.strokeText(str, drawX, drawY);
|
|
29423
29432
|
}
|
|
29424
29433
|
});
|
|
29434
|
+
// 描边完成后立即禁用阴影,避免填充时重复绘制阴影
|
|
29435
|
+
if (style.hasShadow) {
|
|
29436
|
+
context.shadowColor = "transparent";
|
|
29437
|
+
}
|
|
29438
|
+
}
|
|
29439
|
+
// 填充阶段:无描边时才启用阴影
|
|
29440
|
+
if (!hasOutline && style.hasShadow) {
|
|
29441
|
+
_this.setupShadow();
|
|
29425
29442
|
}
|
|
29426
|
-
// 再填充
|
|
29427
29443
|
charsInfo.forEach(function(charInfo) {
|
|
29428
29444
|
var ox = layout.getOffsetX(style, charInfo.width);
|
|
29429
29445
|
for(var i = 0; i < charInfo.chars.length; i++){
|
|
@@ -29433,6 +29449,7 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29433
29449
|
context.fillText(str, drawX, drawY);
|
|
29434
29450
|
}
|
|
29435
29451
|
});
|
|
29452
|
+
// 清理阴影状态
|
|
29436
29453
|
if (style.hasShadow) {
|
|
29437
29454
|
context.shadowColor = "transparent";
|
|
29438
29455
|
}
|
|
@@ -31616,7 +31633,7 @@ function getStandardSpriteContent(sprite, transform) {
|
|
|
31616
31633
|
return ret;
|
|
31617
31634
|
}
|
|
31618
31635
|
|
|
31619
|
-
var version$1 = "2.8.
|
|
31636
|
+
var version$1 = "2.8.9";
|
|
31620
31637
|
var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
|
|
31621
31638
|
var standardVersion = /^(\d+)\.(\d+)$/;
|
|
31622
31639
|
var reverseParticle = false;
|
|
@@ -35316,7 +35333,7 @@ registerPlugin("text", TextLoader);
|
|
|
35316
35333
|
registerPlugin("sprite", SpriteLoader);
|
|
35317
35334
|
registerPlugin("particle", ParticleLoader);
|
|
35318
35335
|
registerPlugin("interact", InteractLoader);
|
|
35319
|
-
var version = "2.8.
|
|
35336
|
+
var version = "2.8.9";
|
|
35320
35337
|
logger.info("Core version: " + version + ".");
|
|
35321
35338
|
|
|
35322
35339
|
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, isSafeFontFamily, 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 };
|