@galacean/effects-threejs 1.6.0-beta.2 → 1.6.0

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 threejs plugin for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v1.6.0-beta.2
6
+ * Version: v1.6.0
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -20335,6 +20335,10 @@ var TextItem = /** @class */ (function (_super) {
20335
20335
  function TextItem(props, opts, vfxItem) {
20336
20336
  var _this = _super.call(this, props, opts, vfxItem) || this;
20337
20337
  _this.isDirty = true;
20338
+ /**
20339
+ * 文本行数
20340
+ */
20341
+ _this.lineCount = 0;
20338
20342
  var options = props.options;
20339
20343
  _this.canvas = canvasPool.getCanvas();
20340
20344
  canvasPool.saveCanvas(_this.canvas);
@@ -20343,10 +20347,34 @@ var TextItem = /** @class */ (function (_super) {
20343
20347
  _this.textStyle = new TextStyle(options);
20344
20348
  _this.textLayout = new TextLayout(options);
20345
20349
  _this.text = options.text;
20350
+ _this.lineCount = _this.getLineCount(options.text, true);
20346
20351
  // Text
20347
20352
  _this.mesh = new TextMesh(_this.engine, _this.renderInfo, vfxItem.composition);
20348
20353
  return _this;
20349
20354
  }
20355
+ TextItem.prototype.getLineCount = function (text, init) {
20356
+ var _a, _b;
20357
+ var context = this.context;
20358
+ var letterSpace = this.textLayout.letterSpace;
20359
+ var fontScale = init ? this.textStyle.fontSize / 10 : 1 / this.textStyle.fontScale;
20360
+ var width = (this.textLayout.width + this.textStyle.fontOffset);
20361
+ var lineCount = 1;
20362
+ var x = 0;
20363
+ for (var i = 0; i < text.length; i++) {
20364
+ var str = text[i];
20365
+ var textMetrics = ((_b = (_a = context === null || context === void 0 ? void 0 : context.measureText(str)) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0) * fontScale;
20366
+ // 和浏览器行为保持一致
20367
+ x += letterSpace;
20368
+ if (((x + textMetrics) > width && i > 0) || str === '\n') {
20369
+ lineCount++;
20370
+ x = 0;
20371
+ }
20372
+ if (str !== '\n') {
20373
+ x += textMetrics;
20374
+ }
20375
+ }
20376
+ return lineCount;
20377
+ };
20350
20378
  /**
20351
20379
  * 设置字号大小
20352
20380
  * @param value - 字号
@@ -20396,6 +20424,7 @@ var TextItem = /** @class */ (function (_super) {
20396
20424
  return;
20397
20425
  }
20398
20426
  this.text = value;
20427
+ this.lineCount = this.getLineCount(value, false);
20399
20428
  this.isDirty = true;
20400
20429
  };
20401
20430
  /**
@@ -20567,8 +20596,7 @@ var TextItem = /** @class */ (function (_super) {
20567
20596
  context.fillStyle = "rgba(".concat(style.textColor[0], ", ").concat(style.textColor[1], ", ").concat(style.textColor[2], ", ").concat(style.textColor[3], ")");
20568
20597
  var charsInfo = [];
20569
20598
  var x = 0;
20570
- var lineCount = this.text.split('\n').length;
20571
- var y = layout.getOffsetY(style, lineCount, lineHeight);
20599
+ var y = layout.getOffsetY(style, this.lineCount, lineHeight);
20572
20600
  var charsArray = [];
20573
20601
  var charOffsetX = [];
20574
20602
  for (var i = 0; i < this.char.length; i++) {
@@ -27458,7 +27486,7 @@ Geometry.create = function (engine, options) {
27458
27486
  Mesh.create = function (engine, props) {
27459
27487
  return new ThreeMesh(engine, props);
27460
27488
  };
27461
- var version = "1.6.0-beta.2";
27489
+ var version = "1.6.0";
27462
27490
  logger.info('THREEJS plugin version: ' + version);
27463
27491
 
27464
27492
  export { AbstractPlugin, AssetManager, BYTES_TYPE_MAP, BezierCurve, BezierCurvePath, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateItem, CalculateLoader, CalculateVFXItem, Camera, CameraController, CameraVFXItem, CameraVFXItemLoader, Composition, CompositionSourceManager, DEFAULT_FONTS, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, Engine, EventSystem, FILTER_NAME_NONE, FilterMode, FilterSpriteVFXItem, Float16ArrayWrapper, FrameBuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractBehavior$1 as InteractBehavior, InteractItem, InteractLoader, InteractMesh, InteractVFXItem, Item, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleLoader, ParticleMesh, ParticleSystem, ParticleVFXItem, PassTextureCache, PluginSystem, QCanvasViewer, QText, QTextWrapMode, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderBuffer, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderer, 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, SemanticMap, Shader, ShaderCompileResultStatus, ShaderType, SpriteItem, SpriteLoader, SpriteMesh, SpriteVFXItem, StaticValue, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextItem, TextLoader, TextMesh, TextVFXItem, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeMaterial, ThreeTexture, Ticker, TimelineComponent, Transform, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, alphaFrameFrag, alphaMaskFrag, assertExist, asserts, blend, bloomMixVert, bloomThresholdVert, calculateTranslation, cameraMove_frag as cameraMoveFrag, cameraMoveVert, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, combineImageTemplate1, combineImageTemplate1Async, combineImageTemplate2, combineImageTemplate2Async, combineImageTemplateAsync, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, convertAnchor, copyFrag, createCopyShader, createFilter, createFilterShaders, createGLContext, createKeyFrameMeta, createShaderWithMarcos, createShape, createVFXItem, createValueGetter, decimalEqual, deepClone, defaultGlobalVolume, defaultPlugins, delayFrag, deserializeMipmapTexture, distortionFrag, distortionVert, earcut, enlargeBuffer, ensureVec3, filters, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateHalfFloatTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isFunction, isIOS, isObject, isScene, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, itemFrag, itemFrameFrag, itemVert, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, maxSpriteTextureCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap, particleUniformTypeMap, particleVert, pluginLoaderMap, pointOnLine, random, registerFilter, registerFilters, registerPlugin, removeItem, requestAsync, rotateVec2, screenMeshVert, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxFragmentTextures, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize, version };