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);
}
}