Uhhhhh big big changes

This commit is contained in:
NaifBanana
2026-08-20 08:14:29 -05:00
parent bb2f046c90
commit be68245771
20 changed files with 561 additions and 285 deletions
+48 -6
View File
@@ -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