Antkeeper
0.0.1
|
Vertex buffer object (VBO). More...
#include <vertex-buffer.hpp>
Public Member Functions | |
vertex_buffer (const vertex_buffer &buffer) | |
Constructs a copy of a vertex buffer. More... | |
vertex_buffer (vertex_buffer &&buffer) | |
Move-constructs a vertex buffer. More... | |
~vertex_buffer () | |
Destroys a vertex buffer. More... | |
vertex_buffer & | operator= (const vertex_buffer &buffer) |
Copies another vertex buffer. More... | |
vertex_buffer & | operator= (vertex_buffer &&buffer) |
Moves another vertex buffer into this buffer. More... | |
void | copy (const vertex_buffer &read_buffer, std::size_t copy_size, std::size_t read_offset=0, std::size_t write_offset=0) |
Copies a subset of another vertex buffer's data into this vertex buffer. More... | |
constexpr std::size_t | size () const noexcept |
Returns the size of the buffer's data, in bytes. More... | |
constexpr buffer_usage | usage () const noexcept |
Return's the buffer's usage hint. More... | |
vertex_buffer (buffer_usage usage, std::size_t size, std::span< const std::byte > data={}) | |
Constructs a vertex buffer. More... | |
vertex_buffer (buffer_usage usage, std::span< const std::byte > data={}) | |
Constructs a vertex buffer. More... | |
vertex_buffer () | |
Constructs a vertex buffer. More... | |
void | repurpose (buffer_usage usage, std::size_t size, std::span< const std::byte > data={}) |
Repurposes the vertex buffer, changing its usage hint, size, and updating its data. More... | |
void | repurpose (buffer_usage usage, std::span< const std::byte > data) |
Repurposes the vertex buffer, changing its usage hint, size, and updating its data. More... | |
void | repurpose (buffer_usage usage) |
Repurposes the vertex buffer, changing its usage hint, size, and updating its data. More... | |
void | resize (std::size_t size, std::span< const std::byte > data={}) |
Resizes the vertex buffer. More... | |
void | resize (std::span< const std::byte > data) |
Resizes the vertex buffer. More... | |
void | write (std::size_t offset, std::span< const std::byte > data) |
Writes data into the vertex buffer. More... | |
void | write (std::span< const std::byte > data) |
Writes data into the vertex buffer. More... | |
void | read (std::size_t offset, std::span< std::byte > data) const |
Reads a subset of the buffer's data from the GL and returns it to the application. More... | |
void | read (std::span< std::byte > data) const |
Reads a subset of the buffer's data from the GL and returns it to the application. More... | |
Friends | |
class | pipeline |
Vertex buffer object (VBO).
Definition at line 32 of file vertex-buffer.hpp.
gl::vertex_buffer::vertex_buffer | ( | buffer_usage | usage, |
std::size_t | size, | ||
std::span< const std::byte > | data = {} |
||
) |
Constructs a vertex buffer.
usage | Buffer usage hint. |
size | Buffer size, in bytes. |
data | Buffer data. If empty, buffer data will not be set. |
@except std::out_of_range Vertex buffer construct operation exceeded data bounds.
Definition at line 43 of file vertex-buffer.cpp.
|
inlineexplicit |
Constructs a vertex buffer.
usage | Buffer usage hint. |
size | Buffer size, in bytes. |
data | Buffer data. If empty, buffer data will not be set. |
@except std::out_of_range Vertex buffer construct operation exceeded data bounds.
Definition at line 47 of file vertex-buffer.hpp.
|
inline |
Constructs a vertex buffer.
usage | Buffer usage hint. |
size | Buffer size, in bytes. |
data | Buffer data. If empty, buffer data will not be set. |
@except std::out_of_range Vertex buffer construct operation exceeded data bounds.
Definition at line 51 of file vertex-buffer.hpp.
gl::vertex_buffer::vertex_buffer | ( | const vertex_buffer & | buffer | ) |
Constructs a copy of a vertex buffer.
buffer | Buffer to copy. |
Definition at line 61 of file vertex-buffer.cpp.
gl::vertex_buffer::vertex_buffer | ( | vertex_buffer && | buffer | ) |
Move-constructs a vertex buffer.
buffer | Buffer to move. |
Definition at line 67 of file vertex-buffer.cpp.
gl::vertex_buffer::~vertex_buffer | ( | ) |
Destroys a vertex buffer.
Definition at line 73 of file vertex-buffer.cpp.
void gl::vertex_buffer::copy | ( | const vertex_buffer & | read_buffer, |
std::size_t | copy_size, | ||
std::size_t | read_offset = 0 , |
||
std::size_t | write_offset = 0 |
||
) |
Copies a subset of another vertex buffer's data into this vertex buffer.
read_buffer | Buffer from which data will be read. |
copy_size | Number of bytes to copy from the read buffer into this buffer. |
read_offset | Offset into the read buffer's data, in bytes, where reading will begin. |
write_offset | Offset into the this buffer's data, in bytes, where writing will begin. |
@except std::out_of_range Vertex buffer copy operation exceeded read buffer bounds. @except std::out_of_range Vertex buffer copy operation exceeded write buffer bounds.
Definition at line 155 of file vertex-buffer.cpp.
vertex_buffer & gl::vertex_buffer::operator= | ( | const vertex_buffer & | buffer | ) |
Copies another vertex buffer.
buffer | Buffer to copy. |
Definition at line 81 of file vertex-buffer.cpp.
vertex_buffer & gl::vertex_buffer::operator= | ( | vertex_buffer && | buffer | ) |
Moves another vertex buffer into this buffer.
buffer | Buffer to move. |
Definition at line 89 of file vertex-buffer.cpp.
void gl::vertex_buffer::read | ( | std::size_t | offset, |
std::span< std::byte > | data | ||
) | const |
Reads a subset of the buffer's data from the GL and returns it to the application.
offset | Offset into the buffer's data, in bytes, where reading will begin. |
data | Data buffer where the read bytes will be stored. |
@except std::out_of_range Vertex buffer read operation exceeded buffer bounds.
Definition at line 138 of file vertex-buffer.cpp.
|
inline |
Reads a subset of the buffer's data from the GL and returns it to the application.
offset | Offset into the buffer's data, in bytes, where reading will begin. |
data | Data buffer where the read bytes will be stored. |
@except std::out_of_range Vertex buffer read operation exceeded buffer bounds.
Definition at line 162 of file vertex-buffer.hpp.
|
inline |
Repurposes the vertex buffer, changing its usage hint, size, and updating its data.
usage | New buffer usage hint. |
size | New buffer size, in bytes. |
data | New buffer data. If empty, buffer data will not be updated. |
@except std::out_of_range Vertex buffer resize operation exceeded data bounds.
Definition at line 108 of file vertex-buffer.hpp.
void gl::vertex_buffer::repurpose | ( | buffer_usage | usage, |
std::size_t | size, | ||
std::span< const std::byte > | data = {} |
||
) |
Repurposes the vertex buffer, changing its usage hint, size, and updating its data.
usage | New buffer usage hint. |
size | New buffer size, in bytes. |
data | New buffer data. If empty, buffer data will not be updated. |
@except std::out_of_range Vertex buffer resize operation exceeded data bounds.
Definition at line 103 of file vertex-buffer.cpp.
|
inline |
Repurposes the vertex buffer, changing its usage hint, size, and updating its data.
usage | New buffer usage hint. |
size | New buffer size, in bytes. |
data | New buffer data. If empty, buffer data will not be updated. |
@except std::out_of_range Vertex buffer resize operation exceeded data bounds.
Definition at line 103 of file vertex-buffer.hpp.
|
inline |
Resizes the vertex buffer.
size | New buffer size, in bytes. |
data | New buffer data. If empty, buffer data will not be updated. |
@except std::out_of_range Vertex buffer resize operation exceeded data bounds.
Definition at line 123 of file vertex-buffer.hpp.
|
inline |
Resizes the vertex buffer.
size | New buffer size, in bytes. |
data | New buffer data. If empty, buffer data will not be updated. |
@except std::out_of_range Vertex buffer resize operation exceeded data bounds.
Definition at line 128 of file vertex-buffer.hpp.
|
inlineconstexprnoexcept |
Returns the size of the buffer's data, in bytes.
Definition at line 182 of file vertex-buffer.hpp.
|
inlineconstexprnoexcept |
Return's the buffer's usage hint.
Definition at line 188 of file vertex-buffer.hpp.
void gl::vertex_buffer::write | ( | std::size_t | offset, |
std::span< const std::byte > | data | ||
) |
Writes data into the vertex buffer.
offset | Offset into the buffer's data, in bytes, where writing will begin. |
data | Data to write into the buffer. |
@except std::out_of_range Vertex buffer write operation exceeded buffer bounds.
Definition at line 121 of file vertex-buffer.cpp.
|
inline |
Writes data into the vertex buffer.
offset | Offset into the buffer's data, in bytes, where writing will begin. |
data | Data to write into the buffer. |
@except std::out_of_range Vertex buffer write operation exceeded buffer bounds.
Definition at line 145 of file vertex-buffer.hpp.
|
friend |
Definition at line 194 of file vertex-buffer.hpp.