Use ResourceRefs for RenderSystem, add IReloadableSystem, remove UI package.
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
using System.Numerics;
|
||||
using Voile.Rendering;
|
||||
using Voile.Utils;
|
||||
|
||||
namespace Voile.UI;
|
||||
|
||||
public abstract class UIElement
|
||||
{
|
||||
public Rect Rect { get; set; } = new Rect();
|
||||
public SizeFlags VerticalSizeFlags { get; set; } = SizeFlags.Fill;
|
||||
public SizeFlags HorizontalSizeFlags { get; set; } = SizeFlags.Fill;
|
||||
|
||||
public Vector2 ExpandRatio { get; set; } = Vector2.One;
|
||||
|
||||
public UIElement()
|
||||
{
|
||||
children = new();
|
||||
}
|
||||
|
||||
public void AddChild(UIElement child)
|
||||
{
|
||||
children.Add(child);
|
||||
child.parent = this;
|
||||
}
|
||||
|
||||
public void Render(RenderSystem renderer)
|
||||
{
|
||||
Vector2 parentPos = parent != null ? parent.Rect.Position : Vector2.Zero;
|
||||
renderer.SetTransform(Rect.Position + parentPos, Vector2.Zero, 0);
|
||||
OnRender(renderer);
|
||||
|
||||
foreach (UIElement child in children)
|
||||
{
|
||||
renderer.SetTransform(child.Rect.Position, Vector2.Zero, 0);
|
||||
child.Render(renderer);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void OnRender(RenderSystem renderer);
|
||||
|
||||
protected List<UIElement> children;
|
||||
protected UIElement? parent;
|
||||
|
||||
private Logger _logger = new(nameof(UIElement));
|
||||
}
|
||||
|
||||
|
||||
[Flags]
|
||||
public enum SizeFlags
|
||||
{
|
||||
ShrinkBegin,
|
||||
ShrinkCenter,
|
||||
ShrinkEnd,
|
||||
Fill
|
||||
}
|
||||
Reference in New Issue
Block a user