mirror of
https://github.com/TomHarte/CLK.git
synced 2026-04-21 17:16:44 +00:00
Gets more explicit about potential causes of failure.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
|
||||
#include <cstdlib>
|
||||
#include <vector>
|
||||
#include <stdexcept>
|
||||
|
||||
using namespace Outputs::Display::OpenGL;
|
||||
|
||||
@@ -48,8 +49,23 @@ TextureTarget::TextureTarget(GLsizei width, GLsizei height, GLenum texture_unit,
|
||||
}
|
||||
|
||||
// Check for successful construction.
|
||||
if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
|
||||
throw ErrorFramebufferIncomplete;
|
||||
const auto framebuffer_status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
|
||||
if(framebuffer_status != GL_FRAMEBUFFER_COMPLETE) {
|
||||
switch(framebuffer_status) {
|
||||
case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
|
||||
throw std::runtime_error("GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT");
|
||||
case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:
|
||||
throw std::runtime_error("GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER");
|
||||
case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER:
|
||||
throw std::runtime_error("GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER");
|
||||
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
|
||||
throw std::runtime_error("GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT");
|
||||
case GL_FRAMEBUFFER_UNSUPPORTED:
|
||||
throw std::runtime_error("GL_FRAMEBUFFER_UNSUPPORTED");
|
||||
default:
|
||||
throw std::runtime_error("Framebuffer status incomplete; " + std::to_string(framebuffer_status));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TextureTarget::~TextureTarget() {
|
||||
|
||||
Reference in New Issue
Block a user