@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/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityModifyFlags, ignoreClone, assignmentClone, DisorderedArray, Component, deepClone, Vector2, Transform, Vector3, Matrix, Plane, ShaderProperty, dependentComponents, DependentMode, BatchUtils, ShaderMacroCollection, Renderer, Vector4, Color, RendererUpdateFlags, Script, MathUtil, CameraModifyFlags, SafeLoopArray, SpriteDrawMode, RenderQueueFlags, SpriteModifyFlags, SpriteTileMode, TiledSpriteAssembler, SlicedSpriteAssembler, SimpleSpriteAssembler, BoundingBox, ShaderData, ShaderDataGroup, TextUtils, Engine, TextVerticalAlignment, TextHorizontalAlignment, OverflowMode, CharRenderInfo, FontStyle, ReferResource, registerPointerEventEmitter, PointerEventEmitter, CameraClearFlags, ReflectionParser, Shader, ShaderPass, PipelineStage, Material, BlendFactor, BlendOperation, CullMode, RenderQueueType, Entity } from '@galacean/engine';
|
|
1
|
+
import { EntityModifyFlags, ignoreClone, assignmentClone, DisorderedArray, Component, deepClone, Vector2, Transform, Vector3, Matrix, Plane, ShaderProperty, dependentComponents, DependentMode, BatchUtils, ShaderMacroCollection, Renderer, Vector4, Color, RendererUpdateFlags, Script, MathUtil, CameraModifyFlags, SafeLoopArray, SpriteDrawMode, RenderQueueFlags, SpriteModifyFlags, SpriteTileMode, TiledSpriteAssembler, SlicedSpriteAssembler, SimpleSpriteAssembler, BoundingBox, ShaderData, ShaderDataGroup, TextUtils, Engine, TextVerticalAlignment, TextHorizontalAlignment, OverflowMode, CharRenderInfo, FontStyle, ReferResource, registerPointerEventEmitter, PointerEventEmitter, CameraClearFlags, ReflectionParser, Shader, ShaderPass, PipelineStage, Material, BlendFactor, BlendOperation, CullMode, RenderQueueType, Entity, Loader, Font } from '@galacean/engine';
|
|
2
2
|
|
|
3
3
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
4
4
|
try {
|
|
@@ -86,10 +86,6 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
86
86
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
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
|
|
90
|
-
|
|
91
|
-
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
|
|
92
|
-
|
|
93
89
|
function _defineProperties(target, props) {
|
|
94
90
|
for (var i = 0; i < props.length; i++) {
|
|
95
91
|
var descriptor = props[i];
|
|
@@ -905,7 +901,7 @@ UIRenderer = __decorate([
|
|
|
905
901
|
_proto.onDestroy = function onDestroy() {
|
|
906
902
|
Script.prototype.onDestroy.call(this);
|
|
907
903
|
var transitions = this._transitions;
|
|
908
|
-
for(var i =
|
|
904
|
+
for(var i = transitions.length - 1; i >= 0; i--){
|
|
909
905
|
transitions[i].destroy();
|
|
910
906
|
}
|
|
911
907
|
};
|
|
@@ -1070,7 +1066,7 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1070
1066
|
_inherits(UICanvas, Component);
|
|
1071
1067
|
function UICanvas(entity) {
|
|
1072
1068
|
var _this;
|
|
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 DisorderedArray(), _this._renderMode = CanvasRenderMode.WorldSpace, _this._resolutionAdaptationMode = ResolutionAdaptationMode.HeightAdaptation, _this._sortOrder = 0, _this._distance = 10, _this._referenceResolution = new Vector2(800, 600), _this._referenceResolutionPerUnit = 100, _this._hierarchyVersion = -1;
|
|
1069
|
+
_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 DisorderedArray(), _this._renderMode = CanvasRenderMode.WorldSpace, _this._resolutionAdaptationMode = ResolutionAdaptationMode.HeightAdaptation, _this._sortOrder = 0, _this._distance = 10, _this._referenceResolution = new Vector2(800, 600), _this._referenceResolutionPerUnit = 100, _this._hierarchyVersion = -1, _this._center = new Vector3();
|
|
1074
1070
|
_this._onCanvasSizeListener = _this._onCanvasSizeListener.bind(_this);
|
|
1075
1071
|
_this._onCameraModifyListener = _this._onCameraModifyListener.bind(_this);
|
|
1076
1072
|
_this._onCameraTransformListener = _this._onCameraTransformListener.bind(_this);
|
|
@@ -1078,10 +1074,13 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1078
1074
|
// @ts-ignore
|
|
1079
1075
|
_this._referenceResolution._onValueChanged = _this._onReferenceResolutionChanged;
|
|
1080
1076
|
_this._rootCanvasListener = _this._rootCanvasListener.bind(_this);
|
|
1077
|
+
_this._centerDirtyFlag = entity.registerWorldChangeFlag();
|
|
1081
1078
|
return _this;
|
|
1082
1079
|
}
|
|
1083
1080
|
var _proto = UICanvas.prototype;
|
|
1084
|
-
|
|
1081
|
+
/**
|
|
1082
|
+
* @internal
|
|
1083
|
+
*/ _proto._raycast = function _raycast(ray, out, distance) {
|
|
1085
1084
|
if (distance === void 0) distance = Number.MAX_SAFE_INTEGER;
|
|
1086
1085
|
var renderers = this._getRenderers();
|
|
1087
1086
|
for(var i = renderers.length - 1; i >= 0; i--){
|
|
@@ -1115,7 +1114,8 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1115
1114
|
var frameCount = engine.time.frameCount;
|
|
1116
1115
|
// @ts-ignore
|
|
1117
1116
|
var renderElement = this._renderElement = engine._renderElementPool.get();
|
|
1118
|
-
|
|
1117
|
+
var virtualCamera = context.virtualCamera;
|
|
1118
|
+
this._updateSortDistance(virtualCamera.isOrthographic, virtualCamera.position, virtualCamera.forward);
|
|
1119
1119
|
renderElement.set(this.sortOrder, this._sortDistance);
|
|
1120
1120
|
var _engine_canvas = engine.canvas, width = _engine_canvas.width, height = _engine_canvas.height;
|
|
1121
1121
|
var renderers = this._getRenderers();
|
|
@@ -1148,7 +1148,7 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1148
1148
|
};
|
|
1149
1149
|
/**
|
|
1150
1150
|
* @internal
|
|
1151
|
-
*/ _proto._updateSortDistance = function _updateSortDistance(cameraPosition) {
|
|
1151
|
+
*/ _proto._updateSortDistance = function _updateSortDistance(isOrthographic, cameraPosition, cameraForward) {
|
|
1152
1152
|
switch(this._realRenderMode){
|
|
1153
1153
|
case CanvasRenderMode.ScreenSpaceOverlay:
|
|
1154
1154
|
this._sortDistance = 0;
|
|
@@ -1157,7 +1157,13 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1157
1157
|
this._sortDistance = this._distance;
|
|
1158
1158
|
break;
|
|
1159
1159
|
case CanvasRenderMode.WorldSpace:
|
|
1160
|
-
|
|
1160
|
+
var boundsCenter = this._getCenter();
|
|
1161
|
+
if (isOrthographic) {
|
|
1162
|
+
Vector3.subtract(boundsCenter, cameraPosition, boundsCenter);
|
|
1163
|
+
this._sortDistance = Vector3.dot(boundsCenter, cameraForward);
|
|
1164
|
+
} else {
|
|
1165
|
+
this._sortDistance = Vector3.distanceSquared(boundsCenter, cameraPosition);
|
|
1166
|
+
}
|
|
1161
1167
|
break;
|
|
1162
1168
|
}
|
|
1163
1169
|
};
|
|
@@ -1387,6 +1393,17 @@ var UICanvas = /*#__PURE__*/ function(Component) {
|
|
|
1387
1393
|
}
|
|
1388
1394
|
}
|
|
1389
1395
|
};
|
|
1396
|
+
_proto._getCenter = function _getCenter() {
|
|
1397
|
+
if (this._centerDirtyFlag.flag) {
|
|
1398
|
+
var center = this._center;
|
|
1399
|
+
var uiTransform = this.entity.transform;
|
|
1400
|
+
var pivot = uiTransform.pivot, size = uiTransform.size;
|
|
1401
|
+
center.set((0.5 - pivot.x) * size.x, (0.5 - pivot.y) * size.y, 0);
|
|
1402
|
+
Vector3.transformCoordinate(center, uiTransform.worldMatrix, center);
|
|
1403
|
+
this._centerDirtyFlag.flag = false;
|
|
1404
|
+
}
|
|
1405
|
+
return this._center;
|
|
1406
|
+
};
|
|
1390
1407
|
_proto._getRealRenderMode = function _getRealRenderMode() {
|
|
1391
1408
|
if (this._isRootCanvas) {
|
|
1392
1409
|
var _this__renderCamera;
|
|
@@ -1605,6 +1622,12 @@ __decorate([
|
|
|
1605
1622
|
__decorate([
|
|
1606
1623
|
ignoreClone
|
|
1607
1624
|
], UICanvas.prototype, "_hierarchyVersion", void 0);
|
|
1625
|
+
__decorate([
|
|
1626
|
+
ignoreClone
|
|
1627
|
+
], UICanvas.prototype, "_center", void 0);
|
|
1628
|
+
__decorate([
|
|
1629
|
+
ignoreClone
|
|
1630
|
+
], UICanvas.prototype, "_centerDirtyFlag", void 0);
|
|
1608
1631
|
__decorate([
|
|
1609
1632
|
ignoreClone
|
|
1610
1633
|
], UICanvas.prototype, "_rootCanvasListener", null);
|
|
@@ -1940,6 +1963,7 @@ __decorate([
|
|
|
1940
1963
|
var engine = _this.engine;
|
|
1941
1964
|
// @ts-ignore
|
|
1942
1965
|
_this.font = engine._textDefaultFont;
|
|
1966
|
+
_this.raycastEnabled = false;
|
|
1943
1967
|
// @ts-ignore
|
|
1944
1968
|
_this.setMaterial(engine._basicResources.textDefaultMaterial);
|
|
1945
1969
|
return _this;
|
|
@@ -2702,16 +2726,28 @@ var TextChunk = function TextChunk() {
|
|
|
2702
2726
|
}
|
|
2703
2727
|
var _proto = ColorTransition.prototype;
|
|
2704
2728
|
_proto._onNormalValueChanged = function _onNormalValueChanged() {
|
|
2705
|
-
this._finalState === InteractiveState.Normal
|
|
2729
|
+
if (this._finalState === InteractiveState.Normal) {
|
|
2730
|
+
this._finalValue = this._normal;
|
|
2731
|
+
this._updateValue();
|
|
2732
|
+
}
|
|
2706
2733
|
};
|
|
2707
2734
|
_proto._onHoverValueChanged = function _onHoverValueChanged() {
|
|
2708
|
-
this._finalState === InteractiveState.Hover
|
|
2735
|
+
if (this._finalState === InteractiveState.Hover) {
|
|
2736
|
+
this._finalValue = this._hover;
|
|
2737
|
+
this._updateValue();
|
|
2738
|
+
}
|
|
2709
2739
|
};
|
|
2710
2740
|
_proto._onPressedValueChanged = function _onPressedValueChanged() {
|
|
2711
|
-
this._finalState === InteractiveState.Pressed
|
|
2741
|
+
if (this._finalState === InteractiveState.Pressed) {
|
|
2742
|
+
this._finalValue = this._pressed;
|
|
2743
|
+
this._updateValue();
|
|
2744
|
+
}
|
|
2712
2745
|
};
|
|
2713
2746
|
_proto._onDisabledValueChanged = function _onDisabledValueChanged() {
|
|
2714
|
-
this._finalState === InteractiveState.Disable
|
|
2747
|
+
if (this._finalState === InteractiveState.Disable) {
|
|
2748
|
+
this._finalValue = this._disabled;
|
|
2749
|
+
this._updateValue();
|
|
2750
|
+
}
|
|
2715
2751
|
};
|
|
2716
2752
|
_proto._getTargetValueCopy = function _getTargetValueCopy() {
|
|
2717
2753
|
var _this__target;
|
|
@@ -2803,11 +2839,30 @@ var TextChunk = function TextChunk() {
|
|
|
2803
2839
|
this._currentValue = weight >= 1 ? destValue : srcValue;
|
|
2804
2840
|
};
|
|
2805
2841
|
_proto._applyValue = function _applyValue(value) {
|
|
2806
|
-
this._target.sprite = value
|
|
2842
|
+
this._target.sprite = value;
|
|
2807
2843
|
};
|
|
2808
2844
|
return SpriteTransition;
|
|
2809
2845
|
}(Transition);
|
|
2810
2846
|
|
|
2847
|
+
var GUIComponent = /*#__PURE__*/Object.freeze({
|
|
2848
|
+
__proto__: null,
|
|
2849
|
+
get UICanvas () { return UICanvas; },
|
|
2850
|
+
UIGroup: UIGroup,
|
|
2851
|
+
get UIRenderer () { return UIRenderer; },
|
|
2852
|
+
UITransform: UITransform,
|
|
2853
|
+
Button: Button,
|
|
2854
|
+
Image: Image,
|
|
2855
|
+
Text: Text,
|
|
2856
|
+
ColorTransition: ColorTransition,
|
|
2857
|
+
ScaleTransition: ScaleTransition,
|
|
2858
|
+
SpriteTransition: SpriteTransition,
|
|
2859
|
+
Transition: Transition
|
|
2860
|
+
});
|
|
2861
|
+
|
|
2862
|
+
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
|
|
2863
|
+
|
|
2864
|
+
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
|
|
2865
|
+
|
|
2811
2866
|
/**
|
|
2812
2867
|
* @internal
|
|
2813
2868
|
*/ var UIHitResult = function UIHitResult() {
|
|
@@ -2837,11 +2892,13 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
|
|
|
2837
2892
|
if (!scene.isActive || scene.destroyed) continue;
|
|
2838
2893
|
// @ts-ignore
|
|
2839
2894
|
var componentsManager = scene._componentsManager;
|
|
2840
|
-
|
|
2841
|
-
|
|
2895
|
+
// Overlay Canvas
|
|
2896
|
+
var canvasElements = componentsManager._overlayCanvases;
|
|
2897
|
+
// Screen to world ( Assume that world units have a one-to-one relationship with pixel units )
|
|
2898
|
+
ray.origin.set(position.x, scene.engine.canvas.height - position.y, 1);
|
|
2842
2899
|
ray.direction.set(0, 0, -1);
|
|
2843
2900
|
for(var j = canvasElements.length - 1; j >= 0; j--){
|
|
2844
|
-
if (canvasElements.get(j).
|
|
2901
|
+
if (canvasElements.get(j)._raycast(ray, hitResult)) {
|
|
2845
2902
|
this._updateRaycast(hitResult.component, pointer);
|
|
2846
2903
|
return;
|
|
2847
2904
|
}
|
|
@@ -2855,10 +2912,13 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
|
|
|
2855
2912
|
continue;
|
|
2856
2913
|
}
|
|
2857
2914
|
camera.screenPointToRay(pointer.position, ray);
|
|
2858
|
-
|
|
2859
|
-
|
|
2915
|
+
// Other canvases
|
|
2916
|
+
var isOrthographic = camera.isOrthographic;
|
|
2917
|
+
var _camera_entity_transform = camera.entity.transform, cameraPosition = _camera_entity_transform.worldPosition, cameraForward = _camera_entity_transform.worldForward;
|
|
2918
|
+
// Sort by rendering order
|
|
2919
|
+
canvasElements = componentsManager._canvases;
|
|
2860
2920
|
for(var k = 0, n = canvasElements.length; k < n; k++){
|
|
2861
|
-
canvasElements.get(k)._updateSortDistance(cameraPosition);
|
|
2921
|
+
canvasElements.get(k)._updateSortDistance(isOrthographic, cameraPosition, cameraForward);
|
|
2862
2922
|
}
|
|
2863
2923
|
canvasElements.sort(function(a, b) {
|
|
2864
2924
|
return a.sortOrder - b.sortOrder || a._sortDistance - b._sortDistance;
|
|
@@ -2867,10 +2927,11 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
|
|
|
2867
2927
|
canvasElements.get(k1)._canvasIndex = k1;
|
|
2868
2928
|
}
|
|
2869
2929
|
var farClipPlane = camera.farClipPlane;
|
|
2870
|
-
|
|
2930
|
+
// Post-rendering first detection
|
|
2931
|
+
for(var k2 = 0, n2 = canvasElements.length; k2 < n2; k2++){
|
|
2871
2932
|
var canvas = canvasElements.get(k2);
|
|
2872
|
-
if (canvas.
|
|
2873
|
-
if (canvas.
|
|
2933
|
+
if (!canvas._canRender(camera)) continue;
|
|
2934
|
+
if (canvas._raycast(ray, hitResult, farClipPlane)) {
|
|
2874
2935
|
this._updateRaycast(hitResult.component, pointer);
|
|
2875
2936
|
return;
|
|
2876
2937
|
}
|
|
@@ -2880,6 +2941,7 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
|
|
|
2880
2941
|
return;
|
|
2881
2942
|
}
|
|
2882
2943
|
}
|
|
2944
|
+
this._updateRaycast(null);
|
|
2883
2945
|
}
|
|
2884
2946
|
};
|
|
2885
2947
|
_proto.processDrag = function processDrag(pointer) {
|
|
@@ -3072,6 +3134,13 @@ ReflectionParser.registerCustomParseComponent("Text", /*#__PURE__*/ _async_to_ge
|
|
|
3072
3134
|
];
|
|
3073
3135
|
});
|
|
3074
3136
|
}));
|
|
3137
|
+
/**
|
|
3138
|
+
* Register GUI components for the editor.
|
|
3139
|
+
*/ function registerGUI() {
|
|
3140
|
+
for(var key in GUIComponent){
|
|
3141
|
+
Loader.registerClass(key, GUIComponent[key]);
|
|
3142
|
+
}
|
|
3143
|
+
}
|
|
3075
3144
|
|
|
3076
|
-
export { Button, CanvasRenderMode, ColorTransition, EngineExtension, EntityExtension, Image, ResolutionAdaptationMode, ScaleTransition, SpriteTransition, Text, Transition, UICanvas, UIGroup, UIPointerEventEmitter, UIRenderer, UITransform };
|
|
3145
|
+
export { Button, CanvasRenderMode, ColorTransition, EngineExtension, EntityExtension, Image, ResolutionAdaptationMode, ScaleTransition, SpriteTransition, Text, Transition, UICanvas, UIGroup, UIPointerEventEmitter, UIRenderer, UITransform, registerGUI };
|
|
3077
3146
|
//# sourceMappingURL=module.js.map
|