@galacean/engine-core 1.0.0-beta.16 → 1.0.0-beta.18

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.
@@ -1599,6 +1599,11 @@ var Logger = {
1599
1599
  subFont.nativeFontString = fontString;
1600
1600
  for(var i = 0, n = subTexts.length; i < n; i++){
1601
1601
  var subText = subTexts[i];
1602
+ // If subText is empty, push an empty line directly
1603
+ if (subText.length === 0) {
1604
+ this._pushLine(lines, lineWidths, lineMaxSizes, "", 0, 0, 0);
1605
+ continue;
1606
+ }
1602
1607
  var word = "";
1603
1608
  var wordWidth = 0;
1604
1609
  var wordMaxAscent = 0;
@@ -1626,7 +1631,10 @@ var Logger = {
1626
1631
  // If it is a word before, need to handle the previous word and line
1627
1632
  if (word.length > 0) {
1628
1633
  if (lineWidth + wordWidth > wrapWidth) {
1629
- this._pushLine(lines, lineWidths, lineMaxSizes, line, lineWidth, lineMaxAscent, lineMaxDescent);
1634
+ // Push if before line is not empty
1635
+ if (lineWidth > 0) {
1636
+ this._pushLine(lines, lineWidths, lineMaxSizes, line, lineWidth, lineMaxAscent, lineMaxDescent);
1637
+ }
1630
1638
  textWidth = Math.max(textWidth, lineWidth);
1631
1639
  notFirstLine = true;
1632
1640
  line = word;
@@ -1671,7 +1679,10 @@ var Logger = {
1671
1679
  line = "";
1672
1680
  lineWidth = lineMaxAscent = lineMaxDescent = 0;
1673
1681
  }
1674
- this._pushLine(lines, lineWidths, lineMaxSizes, word, wordWidth, wordMaxAscent, wordMaxDescent);
1682
+ // Push if before word is not empty
1683
+ if (wordWidth > 0) {
1684
+ this._pushLine(lines, lineWidths, lineMaxSizes, word, wordWidth, wordMaxAscent, wordMaxDescent);
1685
+ }
1675
1686
  textWidth = Math.max(textWidth, wordWidth);
1676
1687
  notFirstLine = true;
1677
1688
  word = char;
@@ -1690,11 +1701,15 @@ var Logger = {
1690
1701
  // If the total width from line and word exceed wrap width
1691
1702
  if (lineWidth + wordWidth > wrapWidth) {
1692
1703
  // Push chars to a single line
1693
- this._pushLine(lines, lineWidths, lineMaxSizes, line, lineWidth, lineMaxAscent, lineMaxDescent);
1704
+ if (lineWidth > 0) {
1705
+ this._pushLine(lines, lineWidths, lineMaxSizes, line, lineWidth, lineMaxAscent, lineMaxDescent);
1706
+ }
1694
1707
  textWidth = Math.max(textWidth, lineWidth);
1695
1708
  lineWidth = 0;
1696
1709
  // Push word to a single line
1697
- this._pushLine(lines, lineWidths, lineMaxSizes, word, wordWidth, wordMaxAscent, wordMaxDescent);
1710
+ if (wordWidth > 0) {
1711
+ this._pushLine(lines, lineWidths, lineMaxSizes, word, wordWidth, wordMaxAscent, wordMaxDescent);
1712
+ }
1698
1713
  textWidth = Math.max(textWidth, wordWidth);
1699
1714
  } else {
1700
1715
  // Merge to chars
@@ -1726,23 +1741,20 @@ var Logger = {
1726
1741
  var subFont = renderer._subFont;
1727
1742
  var fontString = subFont.nativeFontString;
1728
1743
  var fontSizeInfo = TextUtils.measureFont(fontString);
1729
- var lines = renderer.text.split(/(?:\r\n|\r|\n)/);
1730
- var lineCount = lines.length;
1744
+ var subTexts = renderer.text.split(/(?:\r\n|\r|\n)/);
1745
+ var textCount = subTexts.length;
1746
+ var lines = new Array();
1731
1747
  var lineWidths = new Array();
1732
1748
  var lineMaxSizes = new Array();
1733
1749
  var _pixelsPerUnit = Engine._pixelsPerUnit;
1734
1750
  var lineHeight = fontSizeInfo.size + renderer.lineSpacing * _pixelsPerUnit;
1735
1751
  var width = 0;
1736
- var height = renderer.height * _pixelsPerUnit;
1737
- if (renderer.overflowMode === exports.OverflowMode.Overflow) {
1738
- height = lineHeight * lineCount;
1739
- }
1740
1752
  subFont.nativeFontString = fontString;
1741
- for(var i = 0; i < lineCount; ++i){
1742
- var line = lines[i];
1753
+ for(var i = 0; i < textCount; ++i){
1754
+ var line = subTexts[i];
1743
1755
  var curWidth = 0;
1744
- var maxAscent = -1;
1745
- var maxDescent = -1;
1756
+ var maxAscent = 0;
1757
+ var maxDescent = 0;
1746
1758
  for(var j = 0, m = line.length; j < m; ++j){
1747
1759
  var charInfo = TextUtils._getCharInfo(line[j], fontString, subFont);
1748
1760
  curWidth += charInfo.xAdvance;
@@ -1753,16 +1765,15 @@ var Logger = {
1753
1765
  maxAscent < ascent && (maxAscent = ascent);
1754
1766
  maxDescent < descent && (maxDescent = descent);
1755
1767
  }
1756
- lineWidths[i] = curWidth;
1757
- lineMaxSizes[i] = {
1758
- ascent: maxAscent,
1759
- descent: maxDescent,
1760
- size: maxAscent + maxDescent
1761
- };
1762
- if (curWidth > width) {
1763
- width = curWidth;
1768
+ if (curWidth > 0) {
1769
+ this._pushLine(lines, lineWidths, lineMaxSizes, line, curWidth, maxAscent, maxDescent);
1770
+ width = Math.max(width, curWidth);
1764
1771
  }
1765
1772
  }
1773
+ var height = renderer.height * _pixelsPerUnit;
1774
+ if (renderer.overflowMode === exports.OverflowMode.Overflow) {
1775
+ height = lineHeight * lines.length;
1776
+ }
1766
1777
  return {
1767
1778
  width: width,
1768
1779
  height: height,
@@ -2615,7 +2626,6 @@ var rePropName$1 = RegExp(// Match anything that isn't a dot or bracket.
2615
2626
  function EventDispatcher() {
2616
2627
  this._events = Object.create(null);
2617
2628
  this._eventCount = 0;
2618
- this._dispatchingListeners = [];
2619
2629
  }
2620
2630
  var _proto = EventDispatcher.prototype;
2621
2631
  /**
@@ -2655,7 +2665,8 @@ var rePropName$1 = RegExp(// Match anything that isn't a dot or bracket.
2655
2665
  if (Array.isArray(listeners)) {
2656
2666
  var count = listeners.length;
2657
2667
  // cloning list to avoid structure breaking
2658
- var dispatchingListeners = this._dispatchingListeners;
2668
+ var pool = EventDispatcher._dispatchingListenersPool;
2669
+ var dispatchingListeners = pool.length > 0 ? pool.pop() : [];
2659
2670
  dispatchingListeners.length = count;
2660
2671
  for(var i = 0; i < count; i++){
2661
2672
  dispatchingListeners[i] = listeners[i];
@@ -2669,6 +2680,7 @@ var rePropName$1 = RegExp(// Match anything that isn't a dot or bracket.
2669
2680
  }
2670
2681
  // remove hooked function to avoid gc problem
2671
2682
  dispatchingListeners.length = 0;
2683
+ pool.push(dispatchingListeners);
2672
2684
  } else {
2673
2685
  if (listeners.once) this.off(event, listeners.fn);
2674
2686
  listeners.fn(data);
@@ -2769,6 +2781,9 @@ var rePropName$1 = RegExp(// Match anything that isn't a dot or bracket.
2769
2781
  };
2770
2782
  return EventDispatcher;
2771
2783
  }();
2784
+ (function() {
2785
+ EventDispatcher._dispatchingListenersPool = [];
2786
+ })();
2772
2787
 
2773
2788
  /**
2774
2789
  * Shader property.
@@ -4768,6 +4783,7 @@ var ComponentCloner = /*#__PURE__*/ function() {
4768
4783
  cloneEntity._hookResource = hookResource;
4769
4784
  hookResource._addReferCount(1);
4770
4785
  }
4786
+ cloneEntity.layer = this.layer;
4771
4787
  cloneEntity._isActive = this._isActive;
4772
4788
  cloneEntity.transform.localMatrix = this.transform.localMatrix;
4773
4789
  var children = this._children;
@@ -13735,6 +13751,15 @@ var VertexChangedFlags;
13735
13751
  };
13736
13752
  /**
13737
13753
  * @internal
13754
+ */ _proto._prepareRender = function _prepareRender(context) {
13755
+ if (!this._mesh) {
13756
+ Logger.error("mesh is null.");
13757
+ return;
13758
+ }
13759
+ Renderer.prototype._prepareRender.call(this, context);
13760
+ };
13761
+ /**
13762
+ * @internal
13738
13763
  */ _proto._cloneTo = function _cloneTo(target) {
13739
13764
  Renderer.prototype._cloneTo.call(this, target);
13740
13765
  target.mesh = this._mesh;
@@ -13756,49 +13781,45 @@ var VertexChangedFlags;
13756
13781
  * @internal
13757
13782
  */ _proto._render = function _render(context) {
13758
13783
  var mesh = this._mesh;
13759
- if (mesh) {
13760
- if (this._dirtyUpdateFlag & 0x2) {
13761
- var shaderData = this.shaderData;
13762
- var vertexElements = mesh._vertexElements;
13763
- shaderData.disableMacro(MeshRenderer._uvMacro);
13764
- shaderData.disableMacro(MeshRenderer._uv1Macro);
13765
- shaderData.disableMacro(MeshRenderer._normalMacro);
13766
- shaderData.disableMacro(MeshRenderer._tangentMacro);
13767
- shaderData.disableMacro(MeshRenderer._enableVertexColorMacro);
13768
- for(var i = 0, n = vertexElements.length; i < n; i++){
13769
- switch(vertexElements[i].semantic){
13770
- case "TEXCOORD_0":
13771
- shaderData.enableMacro(MeshRenderer._uvMacro);
13772
- break;
13773
- case "TEXCOORD_1":
13774
- shaderData.enableMacro(MeshRenderer._uv1Macro);
13775
- break;
13776
- case "NORMAL":
13777
- shaderData.enableMacro(MeshRenderer._normalMacro);
13778
- break;
13779
- case "TANGENT":
13780
- shaderData.enableMacro(MeshRenderer._tangentMacro);
13781
- break;
13782
- case "COLOR_0":
13783
- this._enableVertexColor && shaderData.enableMacro(MeshRenderer._enableVertexColorMacro);
13784
- break;
13785
- }
13784
+ if (this._dirtyUpdateFlag & 0x2) {
13785
+ var shaderData = this.shaderData;
13786
+ var vertexElements = mesh._vertexElements;
13787
+ shaderData.disableMacro(MeshRenderer._uvMacro);
13788
+ shaderData.disableMacro(MeshRenderer._uv1Macro);
13789
+ shaderData.disableMacro(MeshRenderer._normalMacro);
13790
+ shaderData.disableMacro(MeshRenderer._tangentMacro);
13791
+ shaderData.disableMacro(MeshRenderer._enableVertexColorMacro);
13792
+ for(var i = 0, n = vertexElements.length; i < n; i++){
13793
+ switch(vertexElements[i].semantic){
13794
+ case "TEXCOORD_0":
13795
+ shaderData.enableMacro(MeshRenderer._uvMacro);
13796
+ break;
13797
+ case "TEXCOORD_1":
13798
+ shaderData.enableMacro(MeshRenderer._uv1Macro);
13799
+ break;
13800
+ case "NORMAL":
13801
+ shaderData.enableMacro(MeshRenderer._normalMacro);
13802
+ break;
13803
+ case "TANGENT":
13804
+ shaderData.enableMacro(MeshRenderer._tangentMacro);
13805
+ break;
13806
+ case "COLOR_0":
13807
+ this._enableVertexColor && shaderData.enableMacro(MeshRenderer._enableVertexColorMacro);
13808
+ break;
13786
13809
  }
13787
- this._dirtyUpdateFlag &= ~0x2;
13788
13810
  }
13789
- var materials = this._materials;
13790
- var subMeshes = mesh.subMeshes;
13791
- var renderPipeline = context.camera._renderPipeline;
13792
- var meshRenderDataPool = this._engine._meshRenderDataPool;
13793
- for(var i1 = 0, n1 = subMeshes.length; i1 < n1; i1++){
13794
- var material = materials[i1];
13795
- if (!material) continue;
13796
- var renderData = meshRenderDataPool.getFromPool();
13797
- renderData.set(this, material, mesh, subMeshes[i1]);
13798
- renderPipeline.pushRenderData(context, renderData);
13799
- }
13800
- } else {
13801
- Logger.error("mesh is null.");
13811
+ this._dirtyUpdateFlag &= ~0x2;
13812
+ }
13813
+ var materials = this._materials;
13814
+ var subMeshes = mesh.subMeshes;
13815
+ var renderPipeline = context.camera._renderPipeline;
13816
+ var meshRenderDataPool = this._engine._meshRenderDataPool;
13817
+ for(var i1 = 0, n1 = subMeshes.length; i1 < n1; i1++){
13818
+ var material = materials[i1];
13819
+ if (!material) continue;
13820
+ var renderData = meshRenderDataPool.getFromPool();
13821
+ renderData.set(this, material, mesh, subMeshes[i1]);
13822
+ renderPipeline.pushRenderData(context, renderData);
13802
13823
  }
13803
13824
  };
13804
13825
  _proto._setMesh = function _setMesh(mesh) {
@@ -19557,18 +19578,10 @@ var defaultInterval = 500;
19557
19578
  var _config_type;
19558
19579
  config.type = (_config_type = config.type) != null ? _config_type : getMimeTypeFromUrl(url);
19559
19580
  var realRequest = config.type === "image" ? requestImage : requestRes;
19560
- var lastError;
19561
19581
  var executor = new MultiExecutor(function() {
19562
- return realRequest(url, config).onProgress(setProgress).then(function(res) {
19563
- resolve(res);
19564
- executor.stop();
19565
- }).catch(function(err) {
19566
- return lastError = err;
19567
- });
19582
+ return realRequest(url, config).onProgress(setProgress);
19568
19583
  }, retryCount, retryInterval);
19569
- executor.start(function() {
19570
- reject(lastError);
19571
- });
19584
+ executor.start().onError(reject).onComplete(resolve);
19572
19585
  });
19573
19586
  }
19574
19587
  function requestImage(url, config) {
@@ -19655,23 +19668,33 @@ var MultiExecutor = /*#__PURE__*/ function() {
19655
19668
  this.exec = this.exec.bind(this);
19656
19669
  }
19657
19670
  var _proto = MultiExecutor.prototype;
19658
- _proto.start = function start(done) {
19659
- this.done = done;
19671
+ _proto.start = function start() {
19660
19672
  this.exec();
19673
+ return this;
19661
19674
  };
19662
- _proto.stop = function stop() {
19663
- clearTimeout(this._timeoutId);
19675
+ _proto.onComplete = function onComplete(func) {
19676
+ this._onComplete = func;
19677
+ return this;
19678
+ };
19679
+ _proto.onError = function onError(func) {
19680
+ this._onError = func;
19681
+ return this;
19682
+ };
19683
+ _proto.cancel = function cancel() {
19684
+ engineMiniprogramAdapter.window.clearTimeout(this._timeoutId);
19664
19685
  };
19665
19686
  _proto.exec = function exec() {
19666
19687
  var _this = this;
19667
19688
  if (this._currentCount >= this.totalCount) {
19668
- this.done && this.done();
19689
+ this._onError && this._onError(this._error);
19669
19690
  return;
19670
19691
  }
19671
19692
  this._currentCount++;
19672
- this.execFunc(this._currentCount).then(function() {
19673
- //@ts-ignore
19674
- _this._timeoutId = setTimeout(_this.exec, _this.interval);
19693
+ this.execFunc(this._currentCount).then(function(result) {
19694
+ return _this._onComplete && _this._onComplete(result);
19695
+ }).catch(function(e) {
19696
+ _this._error = e;
19697
+ _this._timeoutId = engineMiniprogramAdapter.window.setTimeout(_this.exec, _this.interval);
19675
19698
  });
19676
19699
  };
19677
19700
  return MultiExecutor;
@@ -22304,92 +22327,97 @@ var /**
22304
22327
  }
22305
22328
  };
22306
22329
  _proto._updateLocalData = function _updateLocalData() {
22307
- var _this = this, color = _this.color, horizontalAlignment = _this.horizontalAlignment, verticalAlignment = _this.verticalAlignment, charRenderDatas = _this._charRenderDatas;
22330
+ var _this = this, color = _this.color, charRenderDatas = _this._charRenderDatas, charFont = _this._subFont;
22308
22331
  var _this__localBounds = this._localBounds, min = _this__localBounds.min, max = _this__localBounds.max;
22309
- var _pixelsPerUnit = Engine._pixelsPerUnit;
22310
- var pixelsPerUnitReciprocal = 1.0 / _pixelsPerUnit;
22311
- var charFont = this._subFont;
22312
- var rendererWidth = this.width * _pixelsPerUnit;
22313
- var halfRendererWidth = rendererWidth * 0.5;
22314
- var rendererHeight = this.height * _pixelsPerUnit;
22315
22332
  var textMetrics = this.enableWrapping ? TextUtils.measureTextWithWrap(this) : TextUtils.measureTextWithoutWrap(this);
22316
22333
  var height = textMetrics.height, lines = textMetrics.lines, lineWidths = textMetrics.lineWidths, lineHeight = textMetrics.lineHeight, lineMaxSizes = textMetrics.lineMaxSizes;
22317
22334
  var charRenderDataPool = TextRenderer._charRenderDataPool;
22318
- var halfLineHeight = lineHeight * 0.5;
22319
22335
  var linesLen = lines.length;
22320
- var startY = 0;
22321
- var topDiff = lineHeight * 0.5 - lineMaxSizes[0].ascent;
22322
- var bottomDiff = lineHeight * 0.5 - lineMaxSizes[linesLen - 1].descent - 1;
22323
- switch(verticalAlignment){
22324
- case exports.TextVerticalAlignment.Top:
22325
- startY = rendererHeight * 0.5 - halfLineHeight + topDiff;
22326
- break;
22327
- case exports.TextVerticalAlignment.Center:
22328
- startY = height * 0.5 - halfLineHeight - (bottomDiff - topDiff) * 0.5;
22329
- break;
22330
- case exports.TextVerticalAlignment.Bottom:
22331
- startY = height - rendererHeight * 0.5 - halfLineHeight - bottomDiff;
22332
- break;
22333
- }
22334
22336
  var renderDataCount = 0;
22335
- var firstLine = -1;
22336
- var minX = Number.MAX_SAFE_INTEGER;
22337
- var minY = Number.MAX_SAFE_INTEGER;
22338
- var maxX = Number.MIN_SAFE_INTEGER;
22339
- var maxY = Number.MIN_SAFE_INTEGER;
22340
- for(var i = 0; i < linesLen; ++i){
22341
- var lineWidth = lineWidths[i];
22342
- if (lineWidth > 0) {
22343
- var line = lines[i];
22344
- var startX = 0;
22345
- var firstRow = -1;
22346
- if (firstLine < 0) {
22347
- firstLine = i;
22348
- }
22349
- switch(horizontalAlignment){
22350
- case exports.TextHorizontalAlignment.Left:
22351
- startX = -halfRendererWidth;
22352
- break;
22353
- case exports.TextHorizontalAlignment.Center:
22354
- startX = -lineWidth * 0.5;
22355
- break;
22356
- case exports.TextHorizontalAlignment.Right:
22357
- startX = halfRendererWidth - lineWidth;
22358
- break;
22359
- }
22360
- for(var j = 0, n = line.length; j < n; ++j){
22361
- var char = line[j];
22362
- var charInfo = charFont._getCharInfo(char);
22363
- if (charInfo.h > 0) {
22364
- var _charRenderDatas, _ref;
22365
- firstRow < 0 && (firstRow = j);
22366
- var charRenderData = (_charRenderDatas = charRenderDatas)[_ref = renderDataCount++] || (_charRenderDatas[_ref] = charRenderDataPool.get());
22367
- var renderData = charRenderData.renderData, localPositions = charRenderData.localPositions;
22368
- charRenderData.texture = charFont._getTextureByIndex(charInfo.index);
22369
- renderData.color = color;
22370
- renderData.uvs = charInfo.uvs;
22371
- var w = charInfo.w, ascent = charInfo.ascent, descent = charInfo.descent;
22372
- var left = startX * pixelsPerUnitReciprocal;
22373
- var right = (startX + w) * pixelsPerUnitReciprocal;
22374
- var top = (startY + ascent) * pixelsPerUnitReciprocal;
22375
- var bottom = (startY - descent + 1) * pixelsPerUnitReciprocal;
22376
- localPositions.set(left, top, right, bottom);
22377
- i === firstLine && (maxY = Math.max(maxY, top));
22378
- minY = Math.min(minY, bottom);
22379
- j === firstRow && (minX = Math.min(minX, left));
22380
- maxX = Math.max(maxX, right);
22337
+ if (linesLen > 0) {
22338
+ var _pixelsPerUnit = Engine._pixelsPerUnit;
22339
+ var horizontalAlignment = this.horizontalAlignment;
22340
+ var pixelsPerUnitReciprocal = 1.0 / _pixelsPerUnit;
22341
+ var rendererWidth = this.width * _pixelsPerUnit;
22342
+ var halfRendererWidth = rendererWidth * 0.5;
22343
+ var rendererHeight = this.height * _pixelsPerUnit;
22344
+ var halfLineHeight = lineHeight * 0.5;
22345
+ var startY = 0;
22346
+ var topDiff = lineHeight * 0.5 - lineMaxSizes[0].ascent;
22347
+ var bottomDiff = lineHeight * 0.5 - lineMaxSizes[linesLen - 1].descent - 1;
22348
+ switch(this.verticalAlignment){
22349
+ case exports.TextVerticalAlignment.Top:
22350
+ startY = rendererHeight * 0.5 - halfLineHeight + topDiff;
22351
+ break;
22352
+ case exports.TextVerticalAlignment.Center:
22353
+ startY = height * 0.5 - halfLineHeight - (bottomDiff - topDiff) * 0.5;
22354
+ break;
22355
+ case exports.TextVerticalAlignment.Bottom:
22356
+ startY = height - rendererHeight * 0.5 - halfLineHeight - bottomDiff;
22357
+ break;
22358
+ }
22359
+ var firstLine = -1;
22360
+ var minX = Number.MAX_SAFE_INTEGER;
22361
+ var minY = Number.MAX_SAFE_INTEGER;
22362
+ var maxX = Number.MIN_SAFE_INTEGER;
22363
+ var maxY = Number.MIN_SAFE_INTEGER;
22364
+ for(var i = 0; i < linesLen; ++i){
22365
+ var lineWidth = lineWidths[i];
22366
+ if (lineWidth > 0) {
22367
+ var line = lines[i];
22368
+ var startX = 0;
22369
+ var firstRow = -1;
22370
+ if (firstLine < 0) {
22371
+ firstLine = i;
22372
+ }
22373
+ switch(horizontalAlignment){
22374
+ case exports.TextHorizontalAlignment.Left:
22375
+ startX = -halfRendererWidth;
22376
+ break;
22377
+ case exports.TextHorizontalAlignment.Center:
22378
+ startX = -lineWidth * 0.5;
22379
+ break;
22380
+ case exports.TextHorizontalAlignment.Right:
22381
+ startX = halfRendererWidth - lineWidth;
22382
+ break;
22383
+ }
22384
+ for(var j = 0, n = line.length; j < n; ++j){
22385
+ var char = line[j];
22386
+ var charInfo = charFont._getCharInfo(char);
22387
+ if (charInfo.h > 0) {
22388
+ var _charRenderDatas, _ref;
22389
+ firstRow < 0 && (firstRow = j);
22390
+ var charRenderData = (_charRenderDatas = charRenderDatas)[_ref = renderDataCount++] || (_charRenderDatas[_ref] = charRenderDataPool.get());
22391
+ var renderData = charRenderData.renderData, localPositions = charRenderData.localPositions;
22392
+ charRenderData.texture = charFont._getTextureByIndex(charInfo.index);
22393
+ renderData.color = color;
22394
+ renderData.uvs = charInfo.uvs;
22395
+ var w = charInfo.w, ascent = charInfo.ascent, descent = charInfo.descent;
22396
+ var left = startX * pixelsPerUnitReciprocal;
22397
+ var right = (startX + w) * pixelsPerUnitReciprocal;
22398
+ var top = (startY + ascent) * pixelsPerUnitReciprocal;
22399
+ var bottom = (startY - descent + 1) * pixelsPerUnitReciprocal;
22400
+ localPositions.set(left, top, right, bottom);
22401
+ i === firstLine && (maxY = Math.max(maxY, top));
22402
+ minY = Math.min(minY, bottom);
22403
+ j === firstRow && (minX = Math.min(minX, left));
22404
+ maxX = Math.max(maxX, right);
22405
+ }
22406
+ startX += charInfo.xAdvance;
22381
22407
  }
22382
- startX += charInfo.xAdvance;
22383
22408
  }
22409
+ startY -= lineHeight;
22384
22410
  }
22385
- startY -= lineHeight;
22386
- }
22387
- if (firstLine < 0) {
22411
+ if (firstLine < 0) {
22412
+ min.set(0, 0, 0);
22413
+ max.set(0, 0, 0);
22414
+ } else {
22415
+ min.set(minX, minY, 0);
22416
+ max.set(maxX, maxY, 0);
22417
+ }
22418
+ } else {
22388
22419
  min.set(0, 0, 0);
22389
22420
  max.set(0, 0, 0);
22390
- } else {
22391
- min.set(minX, minY, 0);
22392
- max.set(maxX, maxY, 0);
22393
22421
  }
22394
22422
  // Revert excess render data to pool.
22395
22423
  var lastRenderDataCount = charRenderDatas.length;
@@ -24405,7 +24433,8 @@ exports.AnimatorLayerBlendingMode = void 0;
24405
24433
  };
24406
24434
  _proto._saveAnimatorEventHandlers = function _saveAnimatorEventHandlers(state, animatorStateData) {
24407
24435
  var eventHandlerPool = this._animationEventHandlerPool;
24408
- var scripts = this._entity._scripts;
24436
+ var scripts = [];
24437
+ this._entity.getComponents(Script, scripts);
24409
24438
  var scriptCount = scripts.length;
24410
24439
  var eventHandlers = animatorStateData.eventHandlers;
24411
24440
  var events = state.clip.events;
@@ -24418,7 +24447,7 @@ exports.AnimatorLayerBlendingMode = void 0;
24418
24447
  eventHandler.event = event;
24419
24448
  handlers.length = 0;
24420
24449
  for(var j = scriptCount - 1; j >= 0; j--){
24421
- var handler = scripts.get(j)[funcName];
24450
+ var handler = scripts[j][funcName];
24422
24451
  handler && handlers.push(handler);
24423
24452
  }
24424
24453
  eventHandlers.push(eventHandler);