Uhhhhh big big changes
This commit is contained in:
@@ -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_) {
|
||||
|
||||
Reference in New Issue
Block a user