92 lines
2.4 KiB
C#
92 lines
2.4 KiB
C#
using System.Numerics;
|
|
using DaggerFramework;
|
|
using DaggerFramework.Rendering;
|
|
using DaggerFramework.SceneGraph;
|
|
using DaggerFramework.UI;
|
|
using DaggerFramework.Utils;
|
|
|
|
public class UiLayer : Layer
|
|
{
|
|
protected override void OnStart()
|
|
{
|
|
base.OnStart();
|
|
|
|
GetResources();
|
|
CreateUiElements();
|
|
}
|
|
|
|
protected override void OnUpdate(double dt)
|
|
{
|
|
base.OnUpdate(dt);
|
|
// _textLabel.Text = $"{MathF.Round(1 / (float)dt)} FPS";
|
|
_screenContainer.UpdateRect(Vector2.Zero, Scene.Renderer.WindowSize);
|
|
}
|
|
|
|
protected override void OnBeginDraw(Renderer renderer)
|
|
{
|
|
|
|
}
|
|
|
|
protected override void OnDraw(Renderer renderer)
|
|
{
|
|
_screenContainer.Render(renderer);
|
|
}
|
|
|
|
protected override void OnEndDraw(Renderer renderer)
|
|
{
|
|
|
|
}
|
|
|
|
private void CreateUiElements()
|
|
{
|
|
_screenContainer = new Container();
|
|
_screenContainer.UpdateRect(Vector2.Zero, Scene.Renderer.WindowSize);
|
|
|
|
var style = new PanelStyle()
|
|
{
|
|
BackgroundColor = new Color(0.25f, 0.25f, 0.25f, 1.0f)
|
|
};
|
|
|
|
_panel = new MarginPanel(style)
|
|
{
|
|
ExpandRatio = new Vector2(0.5f, 1.0f),
|
|
RelativeMargin = Vector2.One * 0.01f
|
|
};
|
|
_screenContainer.AddChild(_panel);
|
|
|
|
var exampleText = new TextLabel()
|
|
{
|
|
Font = _defaultFont,
|
|
FontSize = 30,
|
|
Text = "This Panel will occupy 50% of the screen.\nHow cool is that?"
|
|
};
|
|
|
|
_panel.AddChild(exampleText);
|
|
|
|
// var verticalPanel = new VerticalPanel(new PanelStyle()
|
|
// {
|
|
// BackgroundColor = Color.White,
|
|
// });
|
|
|
|
// verticalPanel.ExpandRatio = new Vector2(1f, 0.5f);
|
|
|
|
// _panel.AddChild(verticalPanel);
|
|
|
|
// verticalPanel.AddChild(new Panel(new PanelStyle() { BackgroundColor = Color.Red }));
|
|
// verticalPanel.AddChild(new Panel(new PanelStyle() { BackgroundColor = Color.Green }));
|
|
// verticalPanel.AddChild(new Panel(new PanelStyle() { BackgroundColor = Color.Blue }));
|
|
}
|
|
|
|
private void GetResources()
|
|
{
|
|
ResourceManager.TryGetResource("inter_regular", out _defaultFont);
|
|
}
|
|
|
|
|
|
private Font _defaultFont;
|
|
private Container _screenContainer;
|
|
private Panel _panel, _contentPanel;
|
|
private TextLabel _textLabel;
|
|
|
|
private Logger _logger = new(nameof(UiLayer));
|
|
} |