using System.Drawing; using gaemstone.ECS; using gaemstone.Flecs; using Silk.NET.OpenGL; using Silk.NET.Windowing; namespace gaemstone.Client.Systems; [Module] public class Windowing { [Component] public class Canvas { public GL GL { get; } public Canvas(GL gl) => GL = gl; public Size Size { get; set; } public Color BackgroundColor { get; set; } } [Component] public class GameWindow { public IWindow Handle { get; } public GameWindow(IWindow handle) => Handle = handle; } [System] public static void ProcessWindow(GameWindow window, Canvas canvas) { canvas.Size = new(window.Handle.Size.X, window.Handle.Size.Y); window.Handle.DoEvents(); } }