@galacean/engine-ui 1.4.0-beta.1 → 1.4.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/browser.js +95 -25
- 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 +95 -25
- package/dist/main.js.map +1 -1
- package/dist/module.js +95 -26
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/component/UICanvas.d.ts +4 -3
- package/types/component/index.d.ts +11 -0
- package/types/index.d.ts +5 -11
package/dist/browser.js
CHANGED
|
@@ -90,10 +90,6 @@
|
|
|
90
90
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
var uiDefaultFs = "#define GLSLIFY 1\nuniform sampler2D renderer_UITexture;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main() {\n vec4 baseColor = texture2D(renderer_UITexture, v_uv);\n gl_FragColor = baseColor * v_color;\n}\n"; // eslint-disable-line
|
|
94
|
-
|
|
95
|
-
var uiDefaultVs = "#define GLSLIFY 1\nuniform mat4 renderer_MVPMat;\n\nattribute vec3 POSITION;\nattribute vec2 TEXCOORD_0;\nattribute vec4 COLOR_0;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main() {\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n\n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n}\n"; // eslint-disable-line
|
|
96
|
-
|
|
97
93
|
function _defineProperties(target, props) {
|
|
98
94
|
for (var i = 0; i < props.length; i++) {
|
|
99
95
|
var descriptor = props[i];
|
|
@@ -909,7 +905,7 @@
|
|
|
909
905
|
_proto.onDestroy = function onDestroy() {
|
|
910
906
|
Script.prototype.onDestroy.call(this);
|
|
911
907
|
var transitions = this._transitions;
|
|
912
|
-
for(var i =
|
|
908
|
+
for(var i = transitions.length - 1; i >= 0; i--){
|
|
913
909
|
transitions[i].destroy();
|
|
914
910
|
}
|
|
915
911
|
};
|
|
@@ -1074,7 +1070,7 @@
|
|
|
1074
1070
|
_inherits(UICanvas, Component);
|
|
1075
1071
|
function UICanvas(entity) {
|
|
1076
1072
|
var _this;
|
|
1077
|
-
_this = Component.call(this, entity) || this, /** @internal */ _this._canvasIndex = -1, /** @internal */ _this._indexInRootCanvas = -1, /** @internal */ _this._isRootCanvasDirty = false, /** @internal */ _this._rootCanvasListeningEntities = [], /** @internal */ _this._isRootCanvas = false, /** @internal */ _this._sortDistance = 0, /** @internal */ _this._orderedRenderers = [], /** @internal */ _this._realRenderMode = 4, /** @internal */ _this._disorderedElements = new engine.DisorderedArray(), _this._renderMode = CanvasRenderMode.WorldSpace, _this._resolutionAdaptationMode = ResolutionAdaptationMode.HeightAdaptation, _this._sortOrder = 0, _this._distance = 10, _this._referenceResolution = new engine.Vector2(800, 600), _this._referenceResolutionPerUnit = 100, _this._hierarchyVersion = -1;
|
|
1073
|
+
_this = Component.call(this, entity) || this, /** @internal */ _this._canvasIndex = -1, /** @internal */ _this._indexInRootCanvas = -1, /** @internal */ _this._isRootCanvasDirty = false, /** @internal */ _this._rootCanvasListeningEntities = [], /** @internal */ _this._isRootCanvas = false, /** @internal */ _this._sortDistance = 0, /** @internal */ _this._orderedRenderers = [], /** @internal */ _this._realRenderMode = 4, /** @internal */ _this._disorderedElements = new engine.DisorderedArray(), _this._renderMode = CanvasRenderMode.WorldSpace, _this._resolutionAdaptationMode = ResolutionAdaptationMode.HeightAdaptation, _this._sortOrder = 0, _this._distance = 10, _this._referenceResolution = new engine.Vector2(800, 600), _this._referenceResolutionPerUnit = 100, _this._hierarchyVersion = -1, _this._center = new engine.Vector3();
|
|
1078
1074
|
_this._onCanvasSizeListener = _this._onCanvasSizeListener.bind(_this);
|
|
1079
1075
|
_this._onCameraModifyListener = _this._onCameraModifyListener.bind(_this);
|
|
1080
1076
|
_this._onCameraTransformListener = _this._onCameraTransformListener.bind(_this);
|
|
@@ -1082,10 +1078,13 @@
|
|
|
1082
1078
|
// @ts-ignore
|
|
1083
1079
|
_this._referenceResolution._onValueChanged = _this._onReferenceResolutionChanged;
|
|
1084
1080
|
_this._rootCanvasListener = _this._rootCanvasListener.bind(_this);
|
|
1081
|
+
_this._centerDirtyFlag = entity.registerWorldChangeFlag();
|
|
1085
1082
|
return _this;
|
|
1086
1083
|
}
|
|
1087
1084
|
var _proto = UICanvas.prototype;
|
|
1088
|
-
|
|
1085
|
+
/**
|
|
1086
|
+
* @internal
|
|
1087
|
+
*/ _proto._raycast = function _raycast(ray, out, distance) {
|
|
1089
1088
|
if (distance === void 0) distance = Number.MAX_SAFE_INTEGER;
|
|
1090
1089
|
var renderers = this._getRenderers();
|
|
1091
1090
|
for(var i = renderers.length - 1; i >= 0; i--){
|
|
@@ -1119,7 +1118,8 @@
|
|
|
1119
1118
|
var frameCount = engine.time.frameCount;
|
|
1120
1119
|
// @ts-ignore
|
|
1121
1120
|
var renderElement = this._renderElement = engine._renderElementPool.get();
|
|
1122
|
-
|
|
1121
|
+
var virtualCamera = context.virtualCamera;
|
|
1122
|
+
this._updateSortDistance(virtualCamera.isOrthographic, virtualCamera.position, virtualCamera.forward);
|
|
1123
1123
|
renderElement.set(this.sortOrder, this._sortDistance);
|
|
1124
1124
|
var _engine_canvas = engine.canvas, width = _engine_canvas.width, height = _engine_canvas.height;
|
|
1125
1125
|
var renderers = this._getRenderers();
|
|
@@ -1152,7 +1152,7 @@
|
|
|
1152
1152
|
};
|
|
1153
1153
|
/**
|
|
1154
1154
|
* @internal
|
|
1155
|
-
*/ _proto._updateSortDistance = function _updateSortDistance(cameraPosition) {
|
|
1155
|
+
*/ _proto._updateSortDistance = function _updateSortDistance(isOrthographic, cameraPosition, cameraForward) {
|
|
1156
1156
|
switch(this._realRenderMode){
|
|
1157
1157
|
case CanvasRenderMode.ScreenSpaceOverlay:
|
|
1158
1158
|
this._sortDistance = 0;
|
|
@@ -1161,7 +1161,13 @@
|
|
|
1161
1161
|
this._sortDistance = this._distance;
|
|
1162
1162
|
break;
|
|
1163
1163
|
case CanvasRenderMode.WorldSpace:
|
|
1164
|
-
|
|
1164
|
+
var boundsCenter = this._getCenter();
|
|
1165
|
+
if (isOrthographic) {
|
|
1166
|
+
engine.Vector3.subtract(boundsCenter, cameraPosition, boundsCenter);
|
|
1167
|
+
this._sortDistance = engine.Vector3.dot(boundsCenter, cameraForward);
|
|
1168
|
+
} else {
|
|
1169
|
+
this._sortDistance = engine.Vector3.distanceSquared(boundsCenter, cameraPosition);
|
|
1170
|
+
}
|
|
1165
1171
|
break;
|
|
1166
1172
|
}
|
|
1167
1173
|
};
|
|
@@ -1391,6 +1397,17 @@
|
|
|
1391
1397
|
}
|
|
1392
1398
|
}
|
|
1393
1399
|
};
|
|
1400
|
+
_proto._getCenter = function _getCenter() {
|
|
1401
|
+
if (this._centerDirtyFlag.flag) {
|
|
1402
|
+
var center = this._center;
|
|
1403
|
+
var uiTransform = this.entity.transform;
|
|
1404
|
+
var pivot = uiTransform.pivot, size = uiTransform.size;
|
|
1405
|
+
center.set((0.5 - pivot.x) * size.x, (0.5 - pivot.y) * size.y, 0);
|
|
1406
|
+
engine.Vector3.transformCoordinate(center, uiTransform.worldMatrix, center);
|
|
1407
|
+
this._centerDirtyFlag.flag = false;
|
|
1408
|
+
}
|
|
1409
|
+
return this._center;
|
|
1410
|
+
};
|
|
1394
1411
|
_proto._getRealRenderMode = function _getRealRenderMode() {
|
|
1395
1412
|
if (this._isRootCanvas) {
|
|
1396
1413
|
var _this__renderCamera;
|
|
@@ -1609,6 +1626,12 @@
|
|
|
1609
1626
|
__decorate([
|
|
1610
1627
|
engine.ignoreClone
|
|
1611
1628
|
], exports.UICanvas.prototype, "_hierarchyVersion", void 0);
|
|
1629
|
+
__decorate([
|
|
1630
|
+
engine.ignoreClone
|
|
1631
|
+
], exports.UICanvas.prototype, "_center", void 0);
|
|
1632
|
+
__decorate([
|
|
1633
|
+
engine.ignoreClone
|
|
1634
|
+
], exports.UICanvas.prototype, "_centerDirtyFlag", void 0);
|
|
1612
1635
|
__decorate([
|
|
1613
1636
|
engine.ignoreClone
|
|
1614
1637
|
], exports.UICanvas.prototype, "_rootCanvasListener", null);
|
|
@@ -1944,6 +1967,7 @@
|
|
|
1944
1967
|
var engine$1 = _this.engine;
|
|
1945
1968
|
// @ts-ignore
|
|
1946
1969
|
_this.font = engine$1._textDefaultFont;
|
|
1970
|
+
_this.raycastEnabled = false;
|
|
1947
1971
|
// @ts-ignore
|
|
1948
1972
|
_this.setMaterial(engine$1._basicResources.textDefaultMaterial);
|
|
1949
1973
|
return _this;
|
|
@@ -2706,16 +2730,28 @@
|
|
|
2706
2730
|
}
|
|
2707
2731
|
var _proto = ColorTransition.prototype;
|
|
2708
2732
|
_proto._onNormalValueChanged = function _onNormalValueChanged() {
|
|
2709
|
-
this._finalState === InteractiveState.Normal
|
|
2733
|
+
if (this._finalState === InteractiveState.Normal) {
|
|
2734
|
+
this._finalValue = this._normal;
|
|
2735
|
+
this._updateValue();
|
|
2736
|
+
}
|
|
2710
2737
|
};
|
|
2711
2738
|
_proto._onHoverValueChanged = function _onHoverValueChanged() {
|
|
2712
|
-
this._finalState === InteractiveState.Hover
|
|
2739
|
+
if (this._finalState === InteractiveState.Hover) {
|
|
2740
|
+
this._finalValue = this._hover;
|
|
2741
|
+
this._updateValue();
|
|
2742
|
+
}
|
|
2713
2743
|
};
|
|
2714
2744
|
_proto._onPressedValueChanged = function _onPressedValueChanged() {
|
|
2715
|
-
this._finalState === InteractiveState.Pressed
|
|
2745
|
+
if (this._finalState === InteractiveState.Pressed) {
|
|
2746
|
+
this._finalValue = this._pressed;
|
|
2747
|
+
this._updateValue();
|
|
2748
|
+
}
|
|
2716
2749
|
};
|
|
2717
2750
|
_proto._onDisabledValueChanged = function _onDisabledValueChanged() {
|
|
2718
|
-
this._finalState === InteractiveState.Disable
|
|
2751
|
+
if (this._finalState === InteractiveState.Disable) {
|
|
2752
|
+
this._finalValue = this._disabled;
|
|
2753
|
+
this._updateValue();
|
|
2754
|
+
}
|
|
2719
2755
|
};
|
|
2720
2756
|
_proto._getTargetValueCopy = function _getTargetValueCopy() {
|
|
2721
2757
|
var _this__target;
|
|
@@ -2807,11 +2843,30 @@
|
|
|
2807
2843
|
this._currentValue = weight >= 1 ? destValue : srcValue;
|
|
2808
2844
|
};
|
|
2809
2845
|
_proto._applyValue = function _applyValue(value) {
|
|
2810
|
-
this._target.sprite = value
|
|
2846
|
+
this._target.sprite = value;
|
|
2811
2847
|
};
|
|
2812
2848
|
return SpriteTransition;
|
|
2813
2849
|
}(Transition);
|
|
2814
2850
|
|
|
2851
|
+
var GUIComponent = /*#__PURE__*/Object.freeze({
|
|
2852
|
+
__proto__: null,
|
|
2853
|
+
get UICanvas () { return exports.UICanvas; },
|
|
2854
|
+
UIGroup: UIGroup,
|
|
2855
|
+
get UIRenderer () { return exports.UIRenderer; },
|
|
2856
|
+
UITransform: UITransform,
|
|
2857
|
+
Button: Button,
|
|
2858
|
+
Image: Image,
|
|
2859
|
+
Text: Text,
|
|
2860
|
+
ColorTransition: ColorTransition,
|
|
2861
|
+
ScaleTransition: ScaleTransition,
|
|
2862
|
+
SpriteTransition: SpriteTransition,
|
|
2863
|
+
Transition: Transition
|
|
2864
|
+
});
|
|
2865
|
+
|
|
2866
|
+
var uiDefaultFs = "#define GLSLIFY 1\nuniform sampler2D renderer_UITexture;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main() {\n vec4 baseColor = texture2D(renderer_UITexture, v_uv);\n gl_FragColor = baseColor * v_color;\n}\n"; // eslint-disable-line
|
|
2867
|
+
|
|
2868
|
+
var uiDefaultVs = "#define GLSLIFY 1\nuniform mat4 renderer_MVPMat;\n\nattribute vec3 POSITION;\nattribute vec2 TEXCOORD_0;\nattribute vec4 COLOR_0;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main() {\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n\n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n}\n"; // eslint-disable-line
|
|
2869
|
+
|
|
2815
2870
|
/**
|
|
2816
2871
|
* @internal
|
|
2817
2872
|
*/ var UIHitResult = function UIHitResult() {
|
|
@@ -2841,11 +2896,13 @@
|
|
|
2841
2896
|
if (!scene.isActive || scene.destroyed) continue;
|
|
2842
2897
|
// @ts-ignore
|
|
2843
2898
|
var componentsManager = scene._componentsManager;
|
|
2844
|
-
|
|
2845
|
-
|
|
2899
|
+
// Overlay Canvas
|
|
2900
|
+
var canvasElements = componentsManager._overlayCanvases;
|
|
2901
|
+
// Screen to world ( Assume that world units have a one-to-one relationship with pixel units )
|
|
2902
|
+
ray.origin.set(position.x, scene.engine.canvas.height - position.y, 1);
|
|
2846
2903
|
ray.direction.set(0, 0, -1);
|
|
2847
2904
|
for(var j = canvasElements.length - 1; j >= 0; j--){
|
|
2848
|
-
if (canvasElements.get(j).
|
|
2905
|
+
if (canvasElements.get(j)._raycast(ray, hitResult)) {
|
|
2849
2906
|
this._updateRaycast(hitResult.component, pointer);
|
|
2850
2907
|
return;
|
|
2851
2908
|
}
|
|
@@ -2859,10 +2916,13 @@
|
|
|
2859
2916
|
continue;
|
|
2860
2917
|
}
|
|
2861
2918
|
camera.screenPointToRay(pointer.position, ray);
|
|
2862
|
-
|
|
2863
|
-
|
|
2919
|
+
// Other canvases
|
|
2920
|
+
var isOrthographic = camera.isOrthographic;
|
|
2921
|
+
var _camera_entity_transform = camera.entity.transform, cameraPosition = _camera_entity_transform.worldPosition, cameraForward = _camera_entity_transform.worldForward;
|
|
2922
|
+
// Sort by rendering order
|
|
2923
|
+
canvasElements = componentsManager._canvases;
|
|
2864
2924
|
for(var k = 0, n = canvasElements.length; k < n; k++){
|
|
2865
|
-
canvasElements.get(k)._updateSortDistance(cameraPosition);
|
|
2925
|
+
canvasElements.get(k)._updateSortDistance(isOrthographic, cameraPosition, cameraForward);
|
|
2866
2926
|
}
|
|
2867
2927
|
canvasElements.sort(function(a, b) {
|
|
2868
2928
|
return a.sortOrder - b.sortOrder || a._sortDistance - b._sortDistance;
|
|
@@ -2871,10 +2931,11 @@
|
|
|
2871
2931
|
canvasElements.get(k1)._canvasIndex = k1;
|
|
2872
2932
|
}
|
|
2873
2933
|
var farClipPlane = camera.farClipPlane;
|
|
2874
|
-
|
|
2934
|
+
// Post-rendering first detection
|
|
2935
|
+
for(var k2 = 0, n2 = canvasElements.length; k2 < n2; k2++){
|
|
2875
2936
|
var canvas = canvasElements.get(k2);
|
|
2876
|
-
if (canvas.
|
|
2877
|
-
if (canvas.
|
|
2937
|
+
if (!canvas._canRender(camera)) continue;
|
|
2938
|
+
if (canvas._raycast(ray, hitResult, farClipPlane)) {
|
|
2878
2939
|
this._updateRaycast(hitResult.component, pointer);
|
|
2879
2940
|
return;
|
|
2880
2941
|
}
|
|
@@ -2884,6 +2945,7 @@
|
|
|
2884
2945
|
return;
|
|
2885
2946
|
}
|
|
2886
2947
|
}
|
|
2948
|
+
this._updateRaycast(null);
|
|
2887
2949
|
}
|
|
2888
2950
|
};
|
|
2889
2951
|
_proto.processDrag = function processDrag(pointer) {
|
|
@@ -3068,7 +3130,7 @@
|
|
|
3068
3130
|
props = item.props;
|
|
3069
3131
|
if (!props.font) {
|
|
3070
3132
|
// @ts-ignore
|
|
3071
|
-
instance.font = Font.createFromOS(instance.engine, props.fontFamily || "Arial");
|
|
3133
|
+
instance.font = engine.Font.createFromOS(instance.engine, props.fontFamily || "Arial");
|
|
3072
3134
|
}
|
|
3073
3135
|
return [
|
|
3074
3136
|
2,
|
|
@@ -3076,6 +3138,13 @@
|
|
|
3076
3138
|
];
|
|
3077
3139
|
});
|
|
3078
3140
|
}));
|
|
3141
|
+
/**
|
|
3142
|
+
* Register GUI components for the editor.
|
|
3143
|
+
*/ function registerGUI() {
|
|
3144
|
+
for(var key in GUIComponent){
|
|
3145
|
+
engine.Loader.registerClass(key, GUIComponent[key]);
|
|
3146
|
+
}
|
|
3147
|
+
}
|
|
3079
3148
|
|
|
3080
3149
|
exports.Button = Button;
|
|
3081
3150
|
exports.CanvasRenderMode = CanvasRenderMode;
|
|
@@ -3090,6 +3159,7 @@
|
|
|
3090
3159
|
exports.Transition = Transition;
|
|
3091
3160
|
exports.UIGroup = UIGroup;
|
|
3092
3161
|
exports.UITransform = UITransform;
|
|
3162
|
+
exports.registerGUI = registerGUI;
|
|
3093
3163
|
|
|
3094
3164
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3095
3165
|
|