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
+8 -8
View File
@@ -2,7 +2,7 @@
namespace nb {
const std::unordered_map<GLenum, std::string> BufferTypes({
const ConstantMap<GLenum, std::string> BufferTypes({
{GL_ARRAY_BUFFER, "GL_ARRAY_BUFFER"},
{GL_ELEMENT_ARRAY_BUFFER, "GL_ELEMENT_BUFFER"}
});
@@ -22,10 +22,10 @@ Buffer::Buffer(Buffer&& rval) : Target(rval.Target) {
Buffer& Buffer::operator=(Buffer&& rhs) {
if (Target != rhs.Target) {
auto targ_name = BufferTypes.at(Target);
THROW(OGLError(
OGLError::Codes::INVALID_OBJECT,
"w/ BufferType "+targ_name+" != BufferType "+BufferTypes.at(rhs.Target)
auto targ_name = BufferTypes[Target];
THROW(OpenGLObjectError(
OpenGLObjectError::Codes::INVALID_OBJECT,
"w/ BufferType "+targ_name+" != BufferType "+BufferTypes[Target]
));
}
OpenGLObject::operator=(std::move(rhs));
@@ -44,13 +44,13 @@ size_t Buffer::size() const { return _size; }
ByteVector Buffer::data() const {
bind();
ByteVector ret(_size);
glGetBufferSubData(Target, 0, _size, ret.data());
OPENGL_CALL(glGetBufferSubData(Target, 0, _size, ret.data()));
return ret;
}
void Buffer::data(const void* data_, size_t size_, GLenum usage_) {
declare();
glBufferData(Target, size_, data_, usage_);
OPENGL_CALL(glBufferData(Target, size_, data_, usage_));
_size = size_;
_usage = usage_;
}
@@ -65,7 +65,7 @@ void Buffer::subdata(const void* data_, size_t size_, GLintptr offset_) {
if (offset_+size_ <= _size) {
THROW(BufferError(BufferError::Codes::DATA_OVERFLOW));
}
glBufferSubData(Target, offset_, size_, data_);
OPENGL_CALL(glBufferSubData(Target, offset_, size_, data_));
}
void Buffer::subdata(const ByteVector& data_, GLintptr offset_) {