diff --git a/src/graphics/core/Framebuffer.cpp b/src/graphics/core/Framebuffer.cpp index abac8154..bb360b54 100644 --- a/src/graphics/core/Framebuffer.cpp +++ b/src/graphics/core/Framebuffer.cpp @@ -3,7 +3,6 @@ #include #include "Texture.hpp" #include "debug/Logger.hpp" -#include "gl_util.hpp" static debug::Logger logger("gl-framebuffer"); @@ -20,35 +19,21 @@ Framebuffer::Framebuffer(uint fbo, uint depth, std::unique_ptr texture) } static std::unique_ptr create_texture(int width, int height, int format) { - GLuint texture; - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - glTexImage2D( - GL_TEXTURE_2D, - 0, - format, - width, - height, - 0, - format, - GL_UNSIGNED_BYTE, - nullptr - ); + GLuint tex; + glGenTextures(1, &tex); + glBindTexture(GL_TEXTURE_2D, tex); + glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, nullptr); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glFramebufferTexture2D( - GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0 - ); - return std::make_unique(texture, width, height); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0); + return std::make_unique(tex, width, height); } Framebuffer::Framebuffer(uint width, uint height, bool alpha) : width(width), height(height) { - width = std::max(1, width); - height = std::max(1, height); glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); @@ -60,17 +45,11 @@ Framebuffer::Framebuffer(uint width, uint height, bool alpha) // Setup depth attachment glGenRenderbuffers(1, &depth); glBindRenderbuffer(GL_RENDERBUFFER, depth); - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, width, height); - glFramebufferRenderbuffer( - GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, depth - ); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depth); - GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); - if (status != GL_FRAMEBUFFER_COMPLETE) { - auto logLine = logger.error(); - logLine << "framebuffer is not complete: "; - logLine << gl::to_string(status); - logLine << " (" << status << ")"; + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { + logger.error() << "framebuffer is not complete!"; } glBindFramebuffer(GL_FRAMEBUFFER, 0); @@ -99,7 +78,7 @@ void Framebuffer::resize(uint width, uint height) { glBindFramebuffer(GL_FRAMEBUFFER, fbo); glBindRenderbuffer(GL_RENDERBUFFER, depth); - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, width, height); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height); glBindRenderbuffer(GL_RENDERBUFFER, 0); texture = create_texture(width, height, format); diff --git a/src/graphics/core/gl_util.hpp b/src/graphics/core/gl_util.hpp index e82988ab..da2abfb5 100644 --- a/src/graphics/core/gl_util.hpp +++ b/src/graphics/core/gl_util.hpp @@ -45,40 +45,4 @@ namespace gl { } return 0; } - - /// TODO: extend - inline const char* to_string(GLenum item) { - switch (item) { - case GL_INVALID_ENUM: - return "invalid enum"; - case GL_INVALID_VALUE: - return "invalid value"; - case GL_INVALID_OPERATION: - return "invalid operation"; - case GL_STACK_OVERFLOW: - return "stack overflow"; - case GL_STACK_UNDERFLOW: - return "stack underflow"; - case GL_OUT_OF_MEMORY: - return "out of memory"; - case GL_INVALID_FRAMEBUFFER_OPERATION: - return "invalid framebuffer operation"; - case GL_FRAMEBUFFER_UNDEFINED: - return "framebuffer undefined"; - case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: - return "framebuffer incomplete attachment"; - case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: - return "framebuffer incomplete missing attachment"; - case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER: - return "framebuffer incomplete draw buffer"; - case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER: - return "framebuffer incomplete read buffer"; - case GL_FRAMEBUFFER_UNSUPPORTED: - return "framebuffer unsupported"; - case GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: - return "framebuffer incomplete multisample"; - default: - return "unknown"; - } - } }