using System; using Quik.CommandMachine; namespace Quik.PAL { /// /// An abstraction over the a window or a rendering context. /// public interface IQuikPort : IDisposable { /// /// Title of the window, if applicable. /// string Title { get; set; } /// /// Size of the window. /// QVec2 Size { get; set; } /// /// Position of the window in the coordinate system. /// QVec2 Position { get; set; } bool IsValid { get; } /// /// Called when an event for this port is raised. /// event EventHandler EventRaised; /// /// Focus the window, bringing it to the front. /// void Focus(); /// /// Show or hide the window. /// /// True to show the window, false to hide. void Show(bool shown = true); /// /// Paint the given command queue onto the port. /// /// The command queue to paint. void Paint(CommandList queue); } }