Uhhhhh big big changes
This commit is contained in:
@@ -1,23 +1,65 @@
|
||||
#include <NBGraphics/OGLObjects.hpp>
|
||||
|
||||
#ifndef GLENUMSTRPAIR
|
||||
#define GLENUMSTRPAIR(x) {x, #x}
|
||||
#endif // GLENUMSTRPAIR
|
||||
|
||||
namespace nb {
|
||||
|
||||
const std::string OGLError::type = "nb::OGLError";
|
||||
const ErrorCodeMap OGLError::ErrorMessages = {
|
||||
{ OGLError::Codes::UNDEFINED, "Error" },
|
||||
{OGLError::Codes::HANGING_OBJECT, "Attempting to leave a hanging OpenGL object"},
|
||||
{OGLError::Codes::INVALID_OBJECT, "Attempting operation with invalid object"}
|
||||
const std::string OpenGLObjectError::type = "nb::OpenGLObjectError";
|
||||
const ErrorCodeMap OpenGLObjectError::ErrorMessages = {
|
||||
{ OpenGLObjectError::Codes::UNDEFINED, "Error" },
|
||||
{OpenGLObjectError::Codes::HANGING_OBJECT, "Attempting to leave a hanging OpenGL object"},
|
||||
{OpenGLObjectError::Codes::INVALID_OBJECT, "Attempting operation with invalid object"}
|
||||
};
|
||||
|
||||
const std::string OpenGLError::type = "nb::OpenGLError";
|
||||
const ErrorCodeMap OpenGLError::ErrorMessages = {
|
||||
GLENUMSTRPAIR(GL_NO_ERROR),
|
||||
GLENUMSTRPAIR(GL_INVALID_ENUM),
|
||||
GLENUMSTRPAIR(GL_INVALID_ENUM),
|
||||
GLENUMSTRPAIR(GL_INVALID_VALUE),
|
||||
GLENUMSTRPAIR(GL_INVALID_OPERATION),
|
||||
GLENUMSTRPAIR(GL_INVALID_FRAMEBUFFER_OPERATION),
|
||||
GLENUMSTRPAIR(GL_OUT_OF_MEMORY),
|
||||
GLENUMSTRPAIR(GL_STACK_UNDERFLOW),
|
||||
GLENUMSTRPAIR(GL_STACK_OVERFLOW)
|
||||
};
|
||||
|
||||
OpenGLError OpenGLError::status() {
|
||||
return OpenGLError(glGetError());
|
||||
}
|
||||
|
||||
OpenGLObject::OpenGLObject(OpenGLObject&& rval) {
|
||||
*this = std::move(rval);
|
||||
}
|
||||
|
||||
OpenGLObject& OpenGLObject::operator=(OpenGLObject&& rhs) {
|
||||
if (_id) { THROW(OGLError(Codes::HANGING_OBJECT)); }
|
||||
if (_id) { THROW(OpenGLObjectError(Codes::HANGING_OBJECT)); }
|
||||
_id = rhs._id;
|
||||
rhs._id = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
const GLEnumTableType GLenumTable = {
|
||||
GLENUMSTRPAIR(GL_DRAW_FRAMEBUFFER),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_COMPLETE),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_UNDEFINED),
|
||||
GLENUMSTRPAIR(GL_FRAMEBUFFER_UNSUPPORTED),
|
||||
GLENUMSTRPAIR(GL_READ_FRAMEBUFFER),
|
||||
GLENUMSTRPAIR(GL_RG),
|
||||
GLENUMSTRPAIR(GL_RG32F),
|
||||
GLENUMSTRPAIR(GL_RGB),
|
||||
GLENUMSTRPAIR(GL_RGB8UI),
|
||||
GLENUMSTRPAIR(GL_RGBA8UI),
|
||||
GLENUMSTRPAIR(GL_RGBA),
|
||||
};
|
||||
|
||||
} // namespace nb
|
||||
Reference in New Issue
Block a user