@galacean/engine-ui 1.4.0-beta.0 → 1.4.0-beta.2

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/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 = 0, n = transitions.length; i < n; 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,6 +1074,7 @@ 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;
@@ -1115,7 +1112,8 @@ var UICanvas = /*#__PURE__*/ function(Component) {
1115
1112
  var frameCount = engine.time.frameCount;
1116
1113
  // @ts-ignore
1117
1114
  var renderElement = this._renderElement = engine._renderElementPool.get();
1118
- this._updateSortDistance(context.virtualCamera.position);
1115
+ var virtualCamera = context.virtualCamera;
1116
+ this._updateSortDistance(virtualCamera.isOrthographic, virtualCamera.position, virtualCamera.forward);
1119
1117
  renderElement.set(this.sortOrder, this._sortDistance);
1120
1118
  var _engine_canvas = engine.canvas, width = _engine_canvas.width, height = _engine_canvas.height;
1121
1119
  var renderers = this._getRenderers();
@@ -1148,7 +1146,7 @@ var UICanvas = /*#__PURE__*/ function(Component) {
1148
1146
  };
1149
1147
  /**
1150
1148
  * @internal
1151
- */ _proto._updateSortDistance = function _updateSortDistance(cameraPosition) {
1149
+ */ _proto._updateSortDistance = function _updateSortDistance(isOrthographic, cameraPosition, cameraForward) {
1152
1150
  switch(this._realRenderMode){
1153
1151
  case CanvasRenderMode.ScreenSpaceOverlay:
1154
1152
  this._sortDistance = 0;
@@ -1157,7 +1155,13 @@ var UICanvas = /*#__PURE__*/ function(Component) {
1157
1155
  this._sortDistance = this._distance;
1158
1156
  break;
1159
1157
  case CanvasRenderMode.WorldSpace:
1160
- this._sortDistance = Vector3.distance(cameraPosition, this.entity.transform.worldPosition);
1158
+ var boundsCenter = this._getCenter();
1159
+ if (isOrthographic) {
1160
+ Vector3.subtract(boundsCenter, cameraPosition, boundsCenter);
1161
+ this._sortDistance = Vector3.dot(boundsCenter, cameraForward);
1162
+ } else {
1163
+ this._sortDistance = Vector3.distanceSquared(boundsCenter, cameraPosition);
1164
+ }
1161
1165
  break;
1162
1166
  }
1163
1167
  };
@@ -1387,6 +1391,17 @@ var UICanvas = /*#__PURE__*/ function(Component) {
1387
1391
  }
1388
1392
  }
1389
1393
  };
1394
+ _proto._getCenter = function _getCenter() {
1395
+ if (this._centerDirtyFlag.flag) {
1396
+ var center = this._center;
1397
+ var uiTransform = this.entity.transform;
1398
+ var pivot = uiTransform.pivot, size = uiTransform.size;
1399
+ center.set((0.5 - pivot.x) * size.x, (0.5 - pivot.y) * size.y, 0);
1400
+ Vector3.transformCoordinate(center, uiTransform.worldMatrix, center);
1401
+ this._centerDirtyFlag.flag = false;
1402
+ }
1403
+ return this._center;
1404
+ };
1390
1405
  _proto._getRealRenderMode = function _getRealRenderMode() {
1391
1406
  if (this._isRootCanvas) {
1392
1407
  var _this__renderCamera;
@@ -1605,6 +1620,12 @@ __decorate([
1605
1620
  __decorate([
1606
1621
  ignoreClone
1607
1622
  ], UICanvas.prototype, "_hierarchyVersion", void 0);
1623
+ __decorate([
1624
+ ignoreClone
1625
+ ], UICanvas.prototype, "_center", void 0);
1626
+ __decorate([
1627
+ ignoreClone
1628
+ ], UICanvas.prototype, "_centerDirtyFlag", void 0);
1608
1629
  __decorate([
1609
1630
  ignoreClone
1610
1631
  ], UICanvas.prototype, "_rootCanvasListener", null);
@@ -1940,6 +1961,7 @@ __decorate([
1940
1961
  var engine = _this.engine;
1941
1962
  // @ts-ignore
1942
1963
  _this.font = engine._textDefaultFont;
1964
+ _this.raycastEnabled = false;
1943
1965
  // @ts-ignore
1944
1966
  _this.setMaterial(engine._basicResources.textDefaultMaterial);
1945
1967
  return _this;
@@ -2702,16 +2724,28 @@ var TextChunk = function TextChunk() {
2702
2724
  }
2703
2725
  var _proto = ColorTransition.prototype;
2704
2726
  _proto._onNormalValueChanged = function _onNormalValueChanged() {
2705
- this._finalState === InteractiveState.Normal && this._updateValue();
2727
+ if (this._finalState === InteractiveState.Normal) {
2728
+ this._finalValue = this._normal;
2729
+ this._updateValue();
2730
+ }
2706
2731
  };
2707
2732
  _proto._onHoverValueChanged = function _onHoverValueChanged() {
2708
- this._finalState === InteractiveState.Hover && this._updateValue();
2733
+ if (this._finalState === InteractiveState.Hover) {
2734
+ this._finalValue = this._hover;
2735
+ this._updateValue();
2736
+ }
2709
2737
  };
2710
2738
  _proto._onPressedValueChanged = function _onPressedValueChanged() {
2711
- this._finalState === InteractiveState.Pressed && this._updateValue();
2739
+ if (this._finalState === InteractiveState.Pressed) {
2740
+ this._finalValue = this._pressed;
2741
+ this._updateValue();
2742
+ }
2712
2743
  };
2713
2744
  _proto._onDisabledValueChanged = function _onDisabledValueChanged() {
2714
- this._finalState === InteractiveState.Disable && this._updateValue();
2745
+ if (this._finalState === InteractiveState.Disable) {
2746
+ this._finalValue = this._disabled;
2747
+ this._updateValue();
2748
+ }
2715
2749
  };
2716
2750
  _proto._getTargetValueCopy = function _getTargetValueCopy() {
2717
2751
  var _this__target;
@@ -2803,11 +2837,30 @@ var TextChunk = function TextChunk() {
2803
2837
  this._currentValue = weight >= 1 ? destValue : srcValue;
2804
2838
  };
2805
2839
  _proto._applyValue = function _applyValue(value) {
2806
- this._target.sprite = value || this._normal;
2840
+ this._target.sprite = value;
2807
2841
  };
2808
2842
  return SpriteTransition;
2809
2843
  }(Transition);
2810
2844
 
2845
+ var GUIComponent = /*#__PURE__*/Object.freeze({
2846
+ __proto__: null,
2847
+ get UICanvas () { return UICanvas; },
2848
+ UIGroup: UIGroup,
2849
+ get UIRenderer () { return UIRenderer; },
2850
+ UITransform: UITransform,
2851
+ Button: Button,
2852
+ Image: Image,
2853
+ Text: Text,
2854
+ ColorTransition: ColorTransition,
2855
+ ScaleTransition: ScaleTransition,
2856
+ SpriteTransition: SpriteTransition,
2857
+ Transition: Transition
2858
+ });
2859
+
2860
+ 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
2861
+
2862
+ 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
2863
+
2811
2864
  /**
2812
2865
  * @internal
2813
2866
  */ var UIHitResult = function UIHitResult() {
@@ -2855,10 +2908,11 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
2855
2908
  continue;
2856
2909
  }
2857
2910
  camera.screenPointToRay(pointer.position, ray);
2858
- /** Other canvases */ var cameraPosition = camera.entity.transform.position;
2911
+ /** Other canvases */ var isOrthographic = camera.isOrthographic;
2912
+ var _camera_entity_transform = camera.entity.transform, cameraPosition = _camera_entity_transform.worldPosition, cameraForward = _camera_entity_transform.worldForward;
2859
2913
  /** Sort by rendering order */ canvasElements = componentsManager._canvases;
2860
2914
  for(var k = 0, n = canvasElements.length; k < n; k++){
2861
- canvasElements.get(k)._updateSortDistance(cameraPosition);
2915
+ canvasElements.get(k)._updateSortDistance(isOrthographic, cameraPosition, cameraForward);
2862
2916
  }
2863
2917
  canvasElements.sort(function(a, b) {
2864
2918
  return a.sortOrder - b.sortOrder || a._sortDistance - b._sortDistance;
@@ -2869,7 +2923,7 @@ var UIPointerEventEmitter = /*#__PURE__*/ function(PointerEventEmitter1) {
2869
2923
  var farClipPlane = camera.farClipPlane;
2870
2924
  /** Post-rendering first detection */ for(var k2 = 0, n2 = canvasElements.length; k2 < n2; k2++){
2871
2925
  var canvas = canvasElements.get(k2);
2872
- if (canvas.renderCamera !== camera) continue;
2926
+ if (!canvas._canRender(camera)) continue;
2873
2927
  if (canvas.raycast(ray, hitResult, farClipPlane)) {
2874
2928
  this._updateRaycast(hitResult.component, pointer);
2875
2929
  return;
@@ -3072,6 +3126,13 @@ ReflectionParser.registerCustomParseComponent("Text", /*#__PURE__*/ _async_to_ge
3072
3126
  ];
3073
3127
  });
3074
3128
  }));
3129
+ /**
3130
+ * Register GUI components for the editor.
3131
+ */ function registerGUI() {
3132
+ for(var key in GUIComponent){
3133
+ Loader.registerClass(key, GUIComponent[key]);
3134
+ }
3135
+ }
3075
3136
 
3076
- export { Button, CanvasRenderMode, ColorTransition, EngineExtension, EntityExtension, Image, ResolutionAdaptationMode, ScaleTransition, SpriteTransition, Text, Transition, UICanvas, UIGroup, UIPointerEventEmitter, UIRenderer, UITransform };
3137
+ export { Button, CanvasRenderMode, ColorTransition, EngineExtension, EntityExtension, Image, ResolutionAdaptationMode, ScaleTransition, SpriteTransition, Text, Transition, UICanvas, UIGroup, UIPointerEventEmitter, UIRenderer, UITransform, registerGUI };
3077
3138
  //# sourceMappingURL=module.js.map