summaryrefslogtreecommitdiff
path: root/gfx/gl/glFramebuffer.cpp
diff options
context:
space:
mode:
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!");
+ }
+}