using Ghost.Core;
using Ghost.Graphics.Core;
namespace Ghost.Graphics.RHI;
///
/// Swap chain interface for presentation
///
public interface ISwapChain : IDisposable
{
///
/// Width of the swap chain back buffers
///
public uint Width
{
get;
}
///
/// Height of the swap chain back buffers
///
public uint Height
{
get;
}
///
/// Number of back buffers
///
public uint BufferCount
{
get;
}
///
/// Gets the current back buffer texture
///
/// Current back buffer texture
public Handle GetCurrentBackBuffer();
///
/// Presents the rendered frame
///
/// Enable vertical synchronization
public void Present(bool vsync = true);
///
/// Resizes the swap chain back buffers
///
/// New width
/// New height
public void Resize(uint width, uint height);
}