@galacean/effects-threejs 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 +43 -26
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +43 -26
- 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 threejs plugin 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
|
import * as THREE from 'three';
|
|
@@ -17843,14 +17843,14 @@ var CompositionComponent = /*#__PURE__*/ function(Component) {
|
|
|
17843
17843
|
}
|
|
17844
17844
|
}
|
|
17845
17845
|
}
|
|
17846
|
-
|
|
17847
|
-
|
|
17848
|
-
|
|
17849
|
-
|
|
17850
|
-
}
|
|
17851
|
-
|
|
17852
|
-
|
|
17853
|
-
|
|
17846
|
+
}
|
|
17847
|
+
if (VFXItem.isComposition(hitTestItem)) {
|
|
17848
|
+
if (hitTestItem.getComponent(CompositionComponent).hitTest(ray, x, y, regions, force, options)) {
|
|
17849
|
+
hitTestSuccess = true;
|
|
17850
|
+
}
|
|
17851
|
+
} else {
|
|
17852
|
+
if (_this.hitTestRecursive(hitTestItem, ray, x, y, regions, force, options)) {
|
|
17853
|
+
hitTestSuccess = true;
|
|
17854
17854
|
}
|
|
17855
17855
|
}
|
|
17856
17856
|
};
|
|
@@ -28983,8 +28983,8 @@ var TextComponentBase = /*#__PURE__*/ function() {
|
|
|
28983
28983
|
};
|
|
28984
28984
|
_proto.setupShadow = function setupShadow() {
|
|
28985
28985
|
var context = this.context;
|
|
28986
|
-
var _this_textStyle = this.textStyle,
|
|
28987
|
-
var r =
|
|
28986
|
+
var _this_textStyle = this.textStyle, shadowColor = _this_textStyle.shadowColor, shadowBlur = _this_textStyle.shadowBlur, shadowOffsetX = _this_textStyle.shadowOffsetX, shadowOffsetY = _this_textStyle.shadowOffsetY;
|
|
28987
|
+
var r = shadowColor[0], g = shadowColor[1], b = shadowColor[2], a = shadowColor[3];
|
|
28988
28988
|
if (context) {
|
|
28989
28989
|
context.shadowColor = "rgba(" + r * 255 + ", " + g * 255 + ", " + b * 255 + ", " + a + ")";
|
|
28990
28990
|
context.shadowBlur = shadowBlur;
|
|
@@ -29209,11 +29209,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29209
29209
|
_proto.getLineCount = function getLineCount(text) {
|
|
29210
29210
|
var context = this.context;
|
|
29211
29211
|
var _this_textLayout = this.textLayout, letterSpace = _this_textLayout.letterSpace, overflow = _this_textLayout.overflow;
|
|
29212
|
-
// const fontScale = init ? this.textStyle.fontSize / 10 : 1 / this.textStyle.fontScale;
|
|
29213
29212
|
this.maxLineWidth = 0;
|
|
29214
29213
|
var width = this.textLayout.width + this.textStyle.fontOffset;
|
|
29215
29214
|
var lineCount = 1;
|
|
29216
29215
|
var x = 0;
|
|
29216
|
+
var charCountInLine = 0; // 跟踪当前行的字符数
|
|
29217
29217
|
// 设置 context.font 的字号,确保 measureText 能正确计算字宽
|
|
29218
29218
|
if (context) {
|
|
29219
29219
|
context.font = this.getFontDesc(this.textStyle.fontSize);
|
|
@@ -29224,14 +29224,19 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29224
29224
|
var _context_measureText_width;
|
|
29225
29225
|
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;
|
|
29226
29226
|
// 和浏览器行为保持一致
|
|
29227
|
-
|
|
29227
|
+
// 字符间距只应用在字符之间,每行第一个字符不加间距
|
|
29228
|
+
if (charCountInLine > 0) {
|
|
29229
|
+
x += letterSpace;
|
|
29230
|
+
}
|
|
29228
29231
|
// 处理文本结束行为
|
|
29229
29232
|
if (overflow === TextOverflow.display) {
|
|
29230
29233
|
if (str === "\n") {
|
|
29231
29234
|
lineCount++;
|
|
29232
29235
|
x = 0;
|
|
29236
|
+
charCountInLine = 0; // 重置行字符计数
|
|
29233
29237
|
} else {
|
|
29234
29238
|
x += textMetrics;
|
|
29239
|
+
charCountInLine++;
|
|
29235
29240
|
this.maxLineWidth = Math.max(this.maxLineWidth, x);
|
|
29236
29241
|
}
|
|
29237
29242
|
} else {
|
|
@@ -29239,9 +29244,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29239
29244
|
lineCount++;
|
|
29240
29245
|
this.maxLineWidth = Math.max(this.maxLineWidth, x);
|
|
29241
29246
|
x = 0;
|
|
29247
|
+
charCountInLine = 0; // 重置行字符计数
|
|
29242
29248
|
}
|
|
29243
29249
|
if (str !== "\n") {
|
|
29244
29250
|
x += textMetrics;
|
|
29251
|
+
charCountInLine++;
|
|
29245
29252
|
}
|
|
29246
29253
|
}
|
|
29247
29254
|
}
|
|
@@ -29370,12 +29377,6 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29370
29377
|
} else {
|
|
29371
29378
|
context.font = style.fontDesc;
|
|
29372
29379
|
}
|
|
29373
|
-
if (style.hasShadow) {
|
|
29374
|
-
_this.setupShadow();
|
|
29375
|
-
}
|
|
29376
|
-
if (style.isOutlined) {
|
|
29377
|
-
_this.setupOutline();
|
|
29378
|
-
}
|
|
29379
29380
|
// textColor 统一是 0-1,写入 canvas 时乘 255
|
|
29380
29381
|
var _style_textColor = style.textColor, r = _style_textColor[0], g = _style_textColor[1], b = _style_textColor[2], a = _style_textColor[3];
|
|
29381
29382
|
context.fillStyle = "rgba(" + r * 255 + ", " + g * 255 + ", " + b * 255 + ", " + a + ")";
|
|
@@ -29388,7 +29389,10 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29388
29389
|
var str = char[i];
|
|
29389
29390
|
var textMetrics = context.measureText(str);
|
|
29390
29391
|
// 和浏览器行为保持一致
|
|
29391
|
-
|
|
29392
|
+
// 字符间距只应用在字符之间,每行第一个字符不加间距
|
|
29393
|
+
if (charsArray.length > 0) {
|
|
29394
|
+
x += layout.letterSpace * fontScale;
|
|
29395
|
+
}
|
|
29392
29396
|
if (x + textMetrics.width > baseWidth && i > 0 || str === "\n") {
|
|
29393
29397
|
charsInfo.push({
|
|
29394
29398
|
y: y,
|
|
@@ -29413,8 +29417,13 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29413
29417
|
chars: charsArray,
|
|
29414
29418
|
charOffsetX: charOffsetX
|
|
29415
29419
|
});
|
|
29416
|
-
|
|
29417
|
-
if (
|
|
29420
|
+
var hasOutline = style.isOutlined && style.outlineWidth > 0;
|
|
29421
|
+
if (hasOutline) {
|
|
29422
|
+
// 有描边:在描边时启用阴影
|
|
29423
|
+
if (style.hasShadow) {
|
|
29424
|
+
_this.setupShadow();
|
|
29425
|
+
}
|
|
29426
|
+
_this.setupOutline();
|
|
29418
29427
|
charsInfo.forEach(function(charInfo) {
|
|
29419
29428
|
var ox = layout.getOffsetX(style, charInfo.width);
|
|
29420
29429
|
for(var i = 0; i < charInfo.chars.length; i++){
|
|
@@ -29424,8 +29433,15 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29424
29433
|
context.strokeText(str, drawX, drawY);
|
|
29425
29434
|
}
|
|
29426
29435
|
});
|
|
29436
|
+
// 描边完成后立即禁用阴影,避免填充时重复绘制阴影
|
|
29437
|
+
if (style.hasShadow) {
|
|
29438
|
+
context.shadowColor = "transparent";
|
|
29439
|
+
}
|
|
29440
|
+
}
|
|
29441
|
+
// 填充阶段:无描边时才启用阴影
|
|
29442
|
+
if (!hasOutline && style.hasShadow) {
|
|
29443
|
+
_this.setupShadow();
|
|
29427
29444
|
}
|
|
29428
|
-
// 再填充
|
|
29429
29445
|
charsInfo.forEach(function(charInfo) {
|
|
29430
29446
|
var ox = layout.getOffsetX(style, charInfo.width);
|
|
29431
29447
|
for(var i = 0; i < charInfo.chars.length; i++){
|
|
@@ -29435,6 +29451,7 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
29435
29451
|
context.fillText(str, drawX, drawY);
|
|
29436
29452
|
}
|
|
29437
29453
|
});
|
|
29454
|
+
// 清理阴影状态
|
|
29438
29455
|
if (style.hasShadow) {
|
|
29439
29456
|
context.shadowColor = "transparent";
|
|
29440
29457
|
}
|
|
@@ -31618,7 +31635,7 @@ function getStandardSpriteContent(sprite, transform) {
|
|
|
31618
31635
|
return ret;
|
|
31619
31636
|
}
|
|
31620
31637
|
|
|
31621
|
-
var version$2 = "2.8.
|
|
31638
|
+
var version$2 = "2.8.9";
|
|
31622
31639
|
var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
|
|
31623
31640
|
var standardVersion = /^(\d+)\.(\d+)$/;
|
|
31624
31641
|
var reverseParticle = false;
|
|
@@ -35318,7 +35335,7 @@ registerPlugin("text", TextLoader);
|
|
|
35318
35335
|
registerPlugin("sprite", SpriteLoader);
|
|
35319
35336
|
registerPlugin("particle", ParticleLoader);
|
|
35320
35337
|
registerPlugin("interact", InteractLoader);
|
|
35321
|
-
var version$1 = "2.8.
|
|
35338
|
+
var version$1 = "2.8.9";
|
|
35322
35339
|
logger.info("Core version: " + version$1 + ".");
|
|
35323
35340
|
|
|
35324
35341
|
var _obj;
|
|
@@ -36895,7 +36912,7 @@ applyMixins(ThreeTextComponent, [
|
|
|
36895
36912
|
*/ Mesh.create = function(engine, props) {
|
|
36896
36913
|
return new ThreeMesh(engine, props);
|
|
36897
36914
|
};
|
|
36898
|
-
var version = "2.8.
|
|
36915
|
+
var version = "2.8.9";
|
|
36899
36916
|
logger.info("THREEJS plugin version: " + version + ".");
|
|
36900
36917
|
|
|
36901
36918
|
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, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, 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, TEXTURE_UNIFORM_MAP, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, 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, setUniformValue, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };
|