From 78b4b043a4fe6be84dd36717c832951a0a464f63 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 10 Mar 2026 01:51:38 +0000 Subject: Switch frame and render buffer to DSA helpers --- gfx/gl/glFramebuffer.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 gfx/gl/glFramebuffer.h (limited to 'gfx/gl/glFramebuffer.h') diff --git a/gfx/gl/glFramebuffer.h b/gfx/gl/glFramebuffer.h new file mode 100644 index 0000000..0a4ec5a --- /dev/null +++ b/gfx/gl/glFramebuffer.h @@ -0,0 +1,40 @@ +#pragma once + +#include "config/types.h" +#include "glArrays.h" +#include "glTexture.h" + +namespace Impl { + struct glRenderbuffer : Detail::glNamed { + void storage(GLenum iformat, ImageDimensions); + }; + + struct glFramebuffer : Detail::glNamed { + template + void + texture(GLenum attachment, const glTexture & texture) + { + glNamedFramebufferTexture(name, attachment, texture, 0); + } + + void drawBuffers(std::span buffers); + + template... Buffers> + void + drawBuffers(Buffers... buffers) + { + drawBuffers(std::array {static_cast(buffers)...}); + } + + void buffer(GLenum attachment, const glRenderbuffer &); + void assertComplete() const; + }; +} + +template +using glFramebuffers = glManagedArray; +using glFramebuffer = glManagedSingle; + +template +using glRenderbuffers = glManagedArray; +using glRenderbuffer = glManagedSingle; -- cgit v1.3