summaryrefslogtreecommitdiff
path: root/gfx/gl/glFramebuffer.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2026-03-10 01:51:38 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2026-03-10 01:51:38 +0000
commit78b4b043a4fe6be84dd36717c832951a0a464f63 (patch)
treebc82ca1c59d309491323779ebbe3195b4479b546 /gfx/gl/glFramebuffer.cpp
parentSwitch to floating point, camera relative position buffer (diff)
downloadilt-main.tar.bz2
ilt-main.tar.xz
ilt-main.zip
Switch frame and render buffer to DSA helpersHEADmain
Diffstat (limited to 'gfx/gl/glFramebuffer.cpp')
-rw-r--r--gfx/gl/glFramebuffer.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/gfx/gl/glFramebuffer.cpp b/gfx/gl/glFramebuffer.cpp
new file mode 100644
index 0000000..fb3290f
--- /dev/null
+++ b/gfx/gl/glFramebuffer.cpp
@@ -0,0 +1,28 @@
+#include "glFramebuffer.h"
+#include <stdexcept>
+
+void
+Impl::glRenderbuffer::storage(const GLenum iformat, const ImageDimensions dims)
+{
+ glNamedRenderbufferStorage(name, iformat, dims.x, dims.y);
+}
+
+void
+Impl::glFramebuffer::buffer(const GLenum attachment, const Impl::glRenderbuffer & buffer)
+{
+ glNamedFramebufferRenderbuffer(name, attachment, GL_RENDERBUFFER, buffer);
+}
+
+void
+Impl::glFramebuffer::drawBuffers(const std::span<const GLenum> buffers)
+{
+ glNamedFramebufferDrawBuffers(name, static_cast<GLsizei>(buffers.size()), buffers.data());
+}
+
+void
+Impl::glFramebuffer::assertComplete() const
+{
+ if (glCheckNamedFramebufferStatus(name, GL_DRAW_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
+ throw std::runtime_error("Framebuffer not complete!");
+ }
+}