@galacean/engine-ui 2.0.0-alpha.2 → 2.0.0-alpha.5
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/browser.js +74 -27
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/main.js +74 -27
- package/dist/main.js.map +1 -1
- package/dist/module.js +74 -27
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/component/UICanvas.d.ts +10 -3
- package/types/component/advanced/Text.d.ts +7 -1
package/dist/module.js
CHANGED
|
@@ -1498,7 +1498,18 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1498
1498
|
/**
|
|
1499
1499
|
* @internal
|
|
1500
1500
|
*/ _proto._canRender = function _canRender(camera) {
|
|
1501
|
-
return this.
|
|
1501
|
+
return this._realRenderMode !== CanvasRenderMode.ScreenSpaceCamera || this._camera === camera;
|
|
1502
|
+
};
|
|
1503
|
+
/**
|
|
1504
|
+
* @internal
|
|
1505
|
+
*/ _proto._canDispatchEvent = function _canDispatchEvent(camera) {
|
|
1506
|
+
var realMode = this._realRenderMode;
|
|
1507
|
+
if (realMode === CanvasRenderMode.ScreenSpaceOverlay) {
|
|
1508
|
+
return true;
|
|
1509
|
+
}
|
|
1510
|
+
var assignedCamera = this._camera;
|
|
1511
|
+
// @ts-ignore
|
|
1512
|
+
return !assignedCamera || !assignedCamera._phasedActiveInScene || assignedCamera === camera;
|
|
1502
1513
|
};
|
|
1503
1514
|
/**
|
|
1504
1515
|
* @internal
|
|
@@ -1600,13 +1611,13 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1600
1611
|
* @internal
|
|
1601
1612
|
*/ _proto._cloneTo = function _cloneTo(target, srcRoot, targetRoot) {
|
|
1602
1613
|
target.renderMode = this._renderMode;
|
|
1603
|
-
var
|
|
1604
|
-
if (
|
|
1614
|
+
var camera = this._camera;
|
|
1615
|
+
if (camera) {
|
|
1605
1616
|
var paths = UICanvas._targetTempPath;
|
|
1606
1617
|
// @ts-ignore
|
|
1607
|
-
var success = Entity._getEntityHierarchyPath(srcRoot,
|
|
1618
|
+
var success = Entity._getEntityHierarchyPath(srcRoot, camera.entity, paths);
|
|
1608
1619
|
// @ts-ignore
|
|
1609
|
-
target.
|
|
1620
|
+
target.camera = success ? Entity._getEntityByHierarchyPath(targetRoot, paths).getComponent(Camera) : camera;
|
|
1610
1621
|
}
|
|
1611
1622
|
};
|
|
1612
1623
|
_proto._getRenderers = function _getRenderers() {
|
|
@@ -1624,7 +1635,7 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1624
1635
|
var transform = this.entity.transform;
|
|
1625
1636
|
var realRenderMode = this._realRenderMode;
|
|
1626
1637
|
if (realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {
|
|
1627
|
-
var cameraEntity = this.
|
|
1638
|
+
var cameraEntity = this._camera.entity;
|
|
1628
1639
|
if (!this._isSameOrChildEntity(cameraEntity)) {
|
|
1629
1640
|
var cameraTransform = cameraEntity.transform;
|
|
1630
1641
|
var cameraWorldPosition = cameraTransform.worldPosition, cameraWorldForward = cameraTransform.worldForward;
|
|
@@ -1645,9 +1656,9 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1645
1656
|
var curWidth;
|
|
1646
1657
|
var curHeight;
|
|
1647
1658
|
if (realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {
|
|
1648
|
-
var
|
|
1649
|
-
curHeight =
|
|
1650
|
-
curWidth =
|
|
1659
|
+
var camera = this._camera;
|
|
1660
|
+
curHeight = camera.isOrthographic ? camera.orthographicSize * 2 : 2 * (Math.tan(MathUtil.degreeToRadian(camera.fieldOfView * 0.5)) * this._distance);
|
|
1661
|
+
curWidth = camera.aspectRatio * curHeight;
|
|
1651
1662
|
} else {
|
|
1652
1663
|
var canvas = this.engine.canvas;
|
|
1653
1664
|
curHeight = canvas.height;
|
|
@@ -1717,7 +1728,7 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1717
1728
|
return depth;
|
|
1718
1729
|
};
|
|
1719
1730
|
_proto._updateCameraObserver = function _updateCameraObserver() {
|
|
1720
|
-
var camera = this._isRootCanvas && this._renderMode === CanvasRenderMode.ScreenSpaceCamera ? this.
|
|
1731
|
+
var camera = this._isRootCanvas && this._renderMode === CanvasRenderMode.ScreenSpaceCamera ? this._camera : null;
|
|
1721
1732
|
var preCamera = this._cameraObserver;
|
|
1722
1733
|
if (preCamera !== camera) {
|
|
1723
1734
|
this._cameraObserver = camera;
|
|
@@ -1743,10 +1754,10 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1743
1754
|
this._adapterSizeInScreenSpace();
|
|
1744
1755
|
break;
|
|
1745
1756
|
case CameraModifyFlags.FieldOfView:
|
|
1746
|
-
!this.
|
|
1757
|
+
!this._camera.isOrthographic && this._adapterSizeInScreenSpace();
|
|
1747
1758
|
break;
|
|
1748
1759
|
case CameraModifyFlags.OrthographicSize:
|
|
1749
|
-
this.
|
|
1760
|
+
this._camera.isOrthographic && this._adapterSizeInScreenSpace();
|
|
1750
1761
|
break;
|
|
1751
1762
|
case CameraModifyFlags.DisableInScene:
|
|
1752
1763
|
this._setRealRenderMode(CanvasRenderMode.ScreenSpaceOverlay);
|
|
@@ -1817,9 +1828,10 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1817
1828
|
};
|
|
1818
1829
|
_proto._getRealRenderMode = function _getRealRenderMode() {
|
|
1819
1830
|
if (this._isRootCanvas) {
|
|
1820
|
-
var
|
|
1831
|
+
var _this__camera;
|
|
1821
1832
|
var mode = this._renderMode;
|
|
1822
|
-
|
|
1833
|
+
// @ts-ignore
|
|
1834
|
+
if (mode === CanvasRenderMode.ScreenSpaceCamera && !((_this__camera = this._camera) == null ? void 0 : _this__camera._phasedActiveInScene)) {
|
|
1823
1835
|
return CanvasRenderMode.ScreenSpaceOverlay;
|
|
1824
1836
|
} else {
|
|
1825
1837
|
return mode;
|
|
@@ -1909,18 +1921,22 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1909
1921
|
}
|
|
1910
1922
|
},
|
|
1911
1923
|
{
|
|
1912
|
-
key: "
|
|
1924
|
+
key: "camera",
|
|
1913
1925
|
get: /**
|
|
1914
|
-
* The camera
|
|
1915
|
-
* @remarks
|
|
1926
|
+
* The camera associated with this canvas.
|
|
1927
|
+
* @remarks
|
|
1928
|
+
* - `ScreenSpaceCamera` mode: Used for rendering adaptation. Defaults to `ScreenSpaceOverlay` if not assigned.
|
|
1929
|
+
* - `WorldSpace` mode: Used for event detection. If not assigned, events are handled by the highest-priority camera.
|
|
1916
1930
|
*/ function get() {
|
|
1917
|
-
return this.
|
|
1931
|
+
return this._camera;
|
|
1918
1932
|
},
|
|
1919
1933
|
set: function set(value) {
|
|
1920
|
-
var preCamera = this.
|
|
1934
|
+
var preCamera = this._camera;
|
|
1921
1935
|
if (preCamera !== value) {
|
|
1922
|
-
value && this._isSameOrChildEntity(value.entity)
|
|
1923
|
-
|
|
1936
|
+
if (value && this._isSameOrChildEntity(value.entity)) {
|
|
1937
|
+
Logger.warn("Camera entity matching or nested within the canvas entity disables canvas auto-adaptation in ScreenSpaceCamera mode.");
|
|
1938
|
+
}
|
|
1939
|
+
this._camera = value;
|
|
1924
1940
|
this._updateCameraObserver();
|
|
1925
1941
|
var preRenderMode = this._realRenderMode;
|
|
1926
1942
|
var curRenderMode = this._getRealRenderMode();
|
|
@@ -1935,6 +1951,17 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1935
1951
|
}
|
|
1936
1952
|
}
|
|
1937
1953
|
},
|
|
1954
|
+
{
|
|
1955
|
+
key: "renderCamera",
|
|
1956
|
+
get: /**
|
|
1957
|
+
* @deprecated Use {@link camera} instead.
|
|
1958
|
+
*/ function get() {
|
|
1959
|
+
return this.camera;
|
|
1960
|
+
},
|
|
1961
|
+
set: function set(value) {
|
|
1962
|
+
this.camera = value;
|
|
1963
|
+
}
|
|
1964
|
+
},
|
|
1938
1965
|
{
|
|
1939
1966
|
key: "resolutionAdaptationMode",
|
|
1940
1967
|
get: /**
|
|
@@ -2030,7 +2057,7 @@ __decorate([
|
|
|
2030
2057
|
], UICanvas.prototype, "_renderMode", void 0);
|
|
2031
2058
|
__decorate([
|
|
2032
2059
|
ignoreClone
|
|
2033
|
-
], UICanvas.prototype, "
|
|
2060
|
+
], UICanvas.prototype, "_camera", void 0);
|
|
2034
2061
|
__decorate([
|
|
2035
2062
|
ignoreClone
|
|
2036
2063
|
], UICanvas.prototype, "_cameraObserver", void 0);
|
|
@@ -2142,6 +2169,7 @@ __decorate([
|
|
|
2142
2169
|
var _this;
|
|
2143
2170
|
_this = UIRenderer1.call(this, entity) || this, _this._sprite = null, _this._tileMode = SpriteTileMode.Continuous, _this._tiledAdaptiveThreshold = 0.5;
|
|
2144
2171
|
_this.drawMode = SpriteDrawMode.Simple;
|
|
2172
|
+
// @ts-ignore
|
|
2145
2173
|
_this.setMaterial(_this._engine._getUIDefaultMaterial());
|
|
2146
2174
|
_this._onSpriteChange = _this._onSpriteChange.bind(_this);
|
|
2147
2175
|
return _this;
|
|
@@ -2193,6 +2221,7 @@ __decorate([
|
|
|
2193
2221
|
}
|
|
2194
2222
|
// @todo: This question needs to be raised rather than hidden.
|
|
2195
2223
|
if (material.destroyed) {
|
|
2224
|
+
// @ts-ignore
|
|
2196
2225
|
material = this._engine._getUIDefaultMaterial();
|
|
2197
2226
|
}
|
|
2198
2227
|
var alpha = this._getGlobalAlpha();
|
|
@@ -2400,7 +2429,7 @@ __decorate([
|
|
|
2400
2429
|
_inherits(Text, UIRenderer1);
|
|
2401
2430
|
function Text(entity) {
|
|
2402
2431
|
var _this;
|
|
2403
|
-
_this = UIRenderer1.call(this, entity) || this, _this._textChunks = Array(), _this._subFont = null, _this._text = "", _this._localBounds = new BoundingBox(), _this._font = null, _this._fontSize = 24, _this._fontStyle = FontStyle.None, _this._lineSpacing = 0, _this._horizontalAlignment = TextHorizontalAlignment.Center, _this._verticalAlignment = TextVerticalAlignment.Center, _this._enableWrapping = false, _this._overflowMode = OverflowMode.Overflow;
|
|
2432
|
+
_this = UIRenderer1.call(this, entity) || this, _this._textChunks = Array(), _this._subFont = null, _this._text = "", _this._localBounds = new BoundingBox(), _this._font = null, _this._fontSize = 24, _this._fontStyle = FontStyle.None, _this._lineSpacing = 0, _this._characterSpacing = 0, _this._horizontalAlignment = TextHorizontalAlignment.Center, _this._verticalAlignment = TextVerticalAlignment.Center, _this._enableWrapping = false, _this._overflowMode = OverflowMode.Overflow;
|
|
2404
2433
|
var engine = _this.engine;
|
|
2405
2434
|
// @ts-ignore
|
|
2406
2435
|
_this.font = engine._textDefaultFont;
|
|
@@ -2577,7 +2606,8 @@ __decorate([
|
|
|
2577
2606
|
var rendererHeight = size.y;
|
|
2578
2607
|
var offsetWidth = rendererWidth * (0.5 - pivot.x);
|
|
2579
2608
|
var offsetHeight = rendererHeight * (0.5 - pivot.y);
|
|
2580
|
-
var
|
|
2609
|
+
var characterSpacing = this._characterSpacing * this._fontSize;
|
|
2610
|
+
var textMetrics = this.enableWrapping ? TextUtils.measureTextWithWrap(this, rendererWidth * pixelsPerResolution, rendererHeight * pixelsPerResolution, this._lineSpacing * this._fontSize, characterSpacing) : TextUtils.measureTextWithoutWrap(this, rendererHeight * pixelsPerResolution, this._lineSpacing * this._fontSize, characterSpacing);
|
|
2581
2611
|
var height = textMetrics.height, lines = textMetrics.lines, lineWidths = textMetrics.lineWidths, lineHeight = textMetrics.lineHeight, lineMaxSizes = textMetrics.lineMaxSizes;
|
|
2582
2612
|
// @ts-ignore
|
|
2583
2613
|
var charRenderInfoPool = this.engine._charRenderInfoPool;
|
|
@@ -2649,7 +2679,7 @@ __decorate([
|
|
|
2649
2679
|
j === firstRow && (minX = Math.min(minX, left));
|
|
2650
2680
|
maxX = Math.max(maxX, right);
|
|
2651
2681
|
}
|
|
2652
|
-
startX += charInfo.xAdvance +
|
|
2682
|
+
startX += charInfo.xAdvance + characterSpacing;
|
|
2653
2683
|
}
|
|
2654
2684
|
}
|
|
2655
2685
|
startY -= lineHeight;
|
|
@@ -2821,7 +2851,7 @@ __decorate([
|
|
|
2821
2851
|
{
|
|
2822
2852
|
key: "lineSpacing",
|
|
2823
2853
|
get: /**
|
|
2824
|
-
* The space between two lines
|
|
2854
|
+
* The space between two lines, in em (ratio of fontSize).
|
|
2825
2855
|
*/ function get() {
|
|
2826
2856
|
return this._lineSpacing;
|
|
2827
2857
|
},
|
|
@@ -2832,6 +2862,20 @@ __decorate([
|
|
|
2832
2862
|
}
|
|
2833
2863
|
}
|
|
2834
2864
|
},
|
|
2865
|
+
{
|
|
2866
|
+
key: "characterSpacing",
|
|
2867
|
+
get: /**
|
|
2868
|
+
* The space between two characters, in em (ratio of fontSize).
|
|
2869
|
+
*/ function get() {
|
|
2870
|
+
return this._characterSpacing;
|
|
2871
|
+
},
|
|
2872
|
+
set: function set(value) {
|
|
2873
|
+
if (this._characterSpacing !== value) {
|
|
2874
|
+
this._characterSpacing = value;
|
|
2875
|
+
this._setDirtyFlagTrue(25);
|
|
2876
|
+
}
|
|
2877
|
+
}
|
|
2878
|
+
},
|
|
2835
2879
|
{
|
|
2836
2880
|
key: "horizontalAlignment",
|
|
2837
2881
|
get: /**
|
|
@@ -2957,6 +3001,9 @@ __decorate([
|
|
|
2957
3001
|
__decorate([
|
|
2958
3002
|
assignmentClone
|
|
2959
3003
|
], Text.prototype, "_lineSpacing", void 0);
|
|
3004
|
+
__decorate([
|
|
3005
|
+
assignmentClone
|
|
3006
|
+
], Text.prototype, "_characterSpacing", void 0);
|
|
2960
3007
|
__decorate([
|
|
2961
3008
|
assignmentClone
|
|
2962
3009
|
], Text.prototype, "_horizontalAlignment", void 0);
|
|
@@ -3374,7 +3421,7 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
|
|
|
3374
3421
|
// Post-rendering first detection
|
|
3375
3422
|
for(var k2 = 0, n2 = canvasElements.length; k2 < n2; k2++){
|
|
3376
3423
|
var canvas = canvasElements.get(k2);
|
|
3377
|
-
if (!canvas.
|
|
3424
|
+
if (!canvas._canDispatchEvent(camera)) continue;
|
|
3378
3425
|
if (canvas._raycast(ray, hitResult, farClipPlane)) {
|
|
3379
3426
|
this._updateRaycast(hitResult.component, pointer);
|
|
3380
3427
|
return;
|