Replace string element render types with RenderCommandType enum, decompose UI elements (Button, CheckBox, chrome) into drawing primitives via ToPrimitives(), emit per-element commands on flush, and move composite into IRenderSource.

This commit is contained in:
Stone_Red
2026-06-16 01:11:01 +02:00
parent 1355fa06b8
commit e90e9ab163
16 changed files with 850 additions and 187 deletions
+19
View File
@@ -1,3 +1,5 @@
using RemSox.UI.GUI.Rendering;
using System.Drawing;
namespace RemSox.UI.GUI.UIEelements.Shapes;
@@ -21,4 +23,21 @@ public class Text() : UIElement("Text")
get;
set => SetProperty(nameof(FontSize), ref field, value);
} = 12;
public override IEnumerable<RenderCommand> ToPrimitives(int windowId)
{
yield return new RenderCommand
{
WindowId = windowId,
ElementId = PrimitiveId(0),
Type = RenderCommandType.DrawText,
Position = Position,
Properties = new Dictionary<string, object?>
{
["Color"] = Color,
["Content"] = Content,
["FontSize"] = FontSize,
}
};
}
}