using Engine.Graphics.Texture;
using Engine.Scene;
using OpenTK.Windowing.Common;
namespace Engine.Graphics;
///
/// Defines an interface for a presenter that handles updates, rendering, and presentation.
///
public interface IPresenter : IUpdate, IRender
{
///
/// Occurs when the presenter is resized.
///
public event Action OnResize;
///
/// Gets the current width of the presenter.
///
public int Width { get; }
///
/// Gets the current height of the presenter.
///
public int Height { get; }
///
/// Gets a value indicating whether the presenter is exiting.
///
public bool IsExiting { get; }
///
/// Presents a texture to the rendering surface.
///
/// The texture to present.
public void Present(IConstTexture parTexture);
///
/// Signals the presenter to exit.
///
public void Exit();
}