Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions sources/engine/Stride.UI/Engine/UIComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,15 @@ public UIPage Page
[DefaultValue(RenderGroup.Group0)]
public RenderGroup RenderGroup { get; set; }

/// <summary>
/// Gets or sets the render order of this UI component. Components with a lower value
/// are rendered first (behind), higher values are rendered on top.
/// </summary>
[DataMember(90)]
[Display("Render Order")]
[DefaultValue(0)]
public int RenderOrder { get; set; }

/// <summary>
/// A fixed size UI component with height of 1 will be this much of the vertical resolution on screen
/// </summary>
Expand Down
1 change: 1 addition & 0 deletions sources/engine/Stride.UI/Rendering/UI/RenderUIElement.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public RenderUIElement()
public bool IsBillboard;
public bool SnapText;
public bool IsFixedSize;
public int RenderOrder;

/// <summary>
/// Last registered position of teh mouse
Expand Down
3 changes: 3 additions & 0 deletions sources/engine/Stride.UI/Rendering/UI/UIRenderFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ private void DrawInternal(RenderDrawContext context, RenderView renderView, Rend
uiElementStates.Add(new UIElementState(renderElement));
}

// sort by RenderOrder so components with lower value are drawn first (behind)
uiElementStates.Sort(static (a, b) => a.RenderObject.RenderOrder.CompareTo(b.RenderObject.RenderOrder));

// evaluate the current draw time (game instance is null for thumbnails)
var drawTime = game != null ? game.DrawTime : new GameTime();

Expand Down
1 change: 1 addition & 0 deletions sources/engine/Stride.UI/Rendering/UI/UIRenderProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public override void Draw(RenderContext gameTime)
renderUIElement.IsBillboard = uiComponent.IsBillboard;
renderUIElement.SnapText = uiComponent.SnapText;
renderUIElement.IsFixedSize = uiComponent.IsFixedSize;
renderUIElement.RenderOrder = uiComponent.RenderOrder;

if (renderUIElement.RenderGroup != uiComponent.RenderGroup)
{
Expand Down