Files
doom-dm/Engine/Renderer/Framebuffer/Renderbuffer.cs
2024-12-04 22:35:04 +03:00

49 lines
1.1 KiB
C#

using OpenTK.Graphics.OpenGL;
namespace Engine.Renderer.Framebuffer;
public class Renderbuffer : OpenGlObject
{
public int Width { get; private set; }
public int Height { get; private set; }
private readonly RenderbufferStorage _format;
public Renderbuffer(int width, int height, RenderbufferStorage format)
{
Width = width;
Height = height;
_format = format;
GL.CreateRenderbuffers(1, out int handle);
Handle = handle;
GL.NamedRenderbufferStorage(Handle, _format, Width, Height);
}
public void Resize(int width, int height)
{
if (Width == width && Height == height)
return;
Width = width;
Height = height;
GL.NamedRenderbufferStorage(Handle, _format, Width, Height);
}
internal override void Bind()
{
GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, Handle);
}
internal override void Unbind()
{
GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, 0);
}
protected override void Destroy()
{
GL.DeleteRenderbuffer(Handle);
}
}