From 182de0881108cf504004b1a3d86eb6f587fb184f Mon Sep 17 00:00:00 2001 From: lisyarus Date: Wed, 30 Nov 2022 17:25:13 +0300 Subject: [PATCH] Add gfx::renderbuffer::target --- libs/gfx/include/psemek/gfx/renderbuffer.hpp | 2 ++ libs/gfx/source/framebuffer.cpp | 6 +++--- libs/gfx/source/renderbuffer.cpp | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libs/gfx/include/psemek/gfx/renderbuffer.hpp b/libs/gfx/include/psemek/gfx/renderbuffer.hpp index 5d2c9ed5..86ed9c43 100644 --- a/libs/gfx/include/psemek/gfx/renderbuffer.hpp +++ b/libs/gfx/include/psemek/gfx/renderbuffer.hpp @@ -18,6 +18,8 @@ namespace psemek::gfx renderbuffer(renderbuffer const &) = delete; renderbuffer & operator = (renderbuffer const &) = delete; + static constexpr GLenum target = gl::RENDERBUFFER; + static renderbuffer null(); GLuint id() const { return id_; } diff --git a/libs/gfx/source/framebuffer.cpp b/libs/gfx/source/framebuffer.cpp index 12dcfbc1..345db3ce 100644 --- a/libs/gfx/source/framebuffer.cpp +++ b/libs/gfx/source/framebuffer.cpp @@ -106,7 +106,7 @@ namespace psemek::gfx void framebuffer::color(renderbuffer const & rb, int attachment) { bind(); - gl::FramebufferRenderbuffer(gl::DRAW_FRAMEBUFFER, gl::COLOR_ATTACHMENT0 + attachment, gl::RENDERBUFFER, rb.id()); + gl::FramebufferRenderbuffer(gl::DRAW_FRAMEBUFFER, gl::COLOR_ATTACHMENT0 + attachment, rb.target, rb.id()); } void framebuffer::depth(texture_2d const & tex) @@ -136,7 +136,7 @@ namespace psemek::gfx void framebuffer::depth(renderbuffer const & rb) { bind(); - gl::FramebufferRenderbuffer(gl::DRAW_FRAMEBUFFER, gl::DEPTH_ATTACHMENT, gl::RENDERBUFFER, rb.id()); + gl::FramebufferRenderbuffer(gl::DRAW_FRAMEBUFFER, gl::DEPTH_ATTACHMENT, rb.target, rb.id()); } void framebuffer::depth_stencil(texture_2d const & tex) @@ -166,7 +166,7 @@ namespace psemek::gfx void framebuffer::depth_stencil(renderbuffer const & rb) { bind(); - gl::FramebufferRenderbuffer(gl::DRAW_FRAMEBUFFER, gl::DEPTH_STENCIL_ATTACHMENT, gl::RENDERBUFFER, rb.id()); + gl::FramebufferRenderbuffer(gl::DRAW_FRAMEBUFFER, gl::DEPTH_STENCIL_ATTACHMENT, rb.target, rb.id()); } GLenum framebuffer::status() const diff --git a/libs/gfx/source/renderbuffer.cpp b/libs/gfx/source/renderbuffer.cpp index bbd97587..7b85639e 100644 --- a/libs/gfx/source/renderbuffer.cpp +++ b/libs/gfx/source/renderbuffer.cpp @@ -37,7 +37,7 @@ namespace psemek::gfx void renderbuffer::bind() const { - gl::BindRenderbuffer(gl::RENDERBUFFER, id_); + gl::BindRenderbuffer(target, id_); } void renderbuffer::reset() @@ -50,7 +50,7 @@ namespace psemek::gfx void renderbuffer::storage(GLenum internal_format, geom::vector const & size) { bind(); - gl::RenderbufferStorage(gl::RENDERBUFFER, internal_format, size[0], size[1]); + gl::RenderbufferStorage(target, internal_format, size[0], size[1]); } renderbuffer::renderbuffer(std::nullptr_t)