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
+18
View File
@@ -1,3 +1,5 @@
using RemSox.UI.GUI.Rendering;
using System.Drawing;
namespace RemSox.UI.GUI.UIEelements.Shapes;
@@ -9,4 +11,20 @@ public class Line() : Shape("Line")
get;
set => SetProperty(nameof(EndPosition), ref field, value);
}
public override IEnumerable<RenderCommand> ToPrimitives(int windowId)
{
yield return new RenderCommand
{
WindowId = windowId,
ElementId = PrimitiveId(0),
Type = RenderCommandType.DrawLine,
Position = Position,
Properties = new Dictionary<string, object?>
{
["Color"] = Color,
["EndPosition"] = EndPosition,
}
};
}
}