Heavy buffer update, window update, object tracking
This commit is contained in:
@@ -12,10 +12,21 @@ const std::string BufferError::type = "nb::BufferError";
|
||||
const ErrorCodeMap BufferError::ErrorMessages = {
|
||||
{ BufferErrorCodes::UNDEFINED, "Error" },
|
||||
{ BufferErrorCodes::DATA_OVERFLOW, "Attempting buffer overflow" },
|
||||
{BufferErrorCodes::DATA_ERROR, "Invalid memory operation"}
|
||||
|
||||
{ BufferErrorCodes::DATA_ERROR, "Invalid memory operation" },
|
||||
{ BufferErrorCodes::BAD_DATA_TYPE, "Entered data type not allowed for buffer type"}
|
||||
};
|
||||
|
||||
// class Buffer
|
||||
|
||||
Buffer::Buffer(GLenum target_) : OpenGLObject(), Target(target_) {
|
||||
declare();
|
||||
}
|
||||
|
||||
Buffer::Buffer(GLenum target_, const ByteVector& data_, GLenum usage_) : Buffer(target_) {
|
||||
bind();
|
||||
data(data_, usage_);
|
||||
}
|
||||
|
||||
Buffer::Buffer(Buffer&& rval) : Target(rval.Target) {
|
||||
*this = std::move(rval);
|
||||
}
|
||||
@@ -89,17 +100,6 @@ GLuint UniformBuffer::bufferIndex(GLuint idx) {
|
||||
}
|
||||
|
||||
// class ElementBuffer
|
||||
ElementBuffer::ElementBuffer() : Buffer(GL_ELEMENT_ARRAY_BUFFER) {}
|
||||
|
||||
ByteVector ElementBuffer::data() const {
|
||||
return data();
|
||||
}
|
||||
|
||||
size_t ElementBuffer::size() const { return _size / _typeSize; }
|
||||
|
||||
size_t ElementBuffer::typeSize() const { return _typeSize; }
|
||||
|
||||
GLenum ElementBuffer::glslType() const { return _glslType; }
|
||||
|
||||
template void ElementBuffer::data<uint8_t>(const std::vector<uint8_t>& data, GLenum usage);
|
||||
template void ElementBuffer::data<uint16_t>(const std::vector<uint16_t>& data, GLenum usage);
|
||||
@@ -108,11 +108,11 @@ template void ElementBuffer::data<uint8_t>(const uint8_t* const data, size_t siz
|
||||
template void ElementBuffer::data<uint16_t>(const uint16_t* const data, size_t size, GLenum usage);
|
||||
template void ElementBuffer::data<uint32_t>(const uint32_t* const data, size_t size, GLenum usage);
|
||||
|
||||
template void ElementBuffer::subdata<uint8_t>(const uint8_t* const data, size_t size, size_t offset=0);
|
||||
template void ElementBuffer::subdata<uint16_t>(const uint16_t* const data, size_t size, size_t offset=0);
|
||||
template void ElementBuffer::subdata<uint32_t>(const uint32_t* const data, size_t size, size_t offset=0);
|
||||
template void ElementBuffer::subdata<uint8_t>(const std::vector<uint8_t>& data, size_t offset=0);
|
||||
template void ElementBuffer::subdata<uint16_t>(const std::vector<uint16_t>& data, size_t offset=0);
|
||||
template void ElementBuffer::subdata<uint32_t>(const std::vector<uint32_t>& data, size_t offset=0);
|
||||
template void ElementBuffer::subdata<uint8_t>(const uint8_t* const data, size_t size, GLintptr offset=0);
|
||||
template void ElementBuffer::subdata<uint16_t>(const uint16_t* const data, size_t size, GLintptr offset=0);
|
||||
template void ElementBuffer::subdata<uint32_t>(const uint32_t* const data, size_t size, GLintptr offset=0);
|
||||
template void ElementBuffer::subdata<uint8_t>(const std::vector<uint8_t>& data, GLintptr offset=0);
|
||||
template void ElementBuffer::subdata<uint16_t>(const std::vector<uint16_t>& data, GLintptr offset=0);
|
||||
template void ElementBuffer::subdata<uint32_t>(const std::vector<uint32_t>& data, GLintptr offset=0);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user