19 glCreateBuffers(1, &
m_id);
25 this->m_offset = v.m_offset;
26 this->m_count = v.m_count;
36 this->m_offset = v.m_offset;
37 this->m_count = v.m_count;
49 glDeleteBuffers(1, &
m_id);
56 const auto ind_len = indicies.size_bytes();
58 m_count =
static_cast<int>(indicies.size());
60 glNamedBufferData(
m_id, ind_len +
m_offset,
nullptr, GL_DYNAMIC_DRAW);
61 glNamedBufferSubData(
m_id,
m_offset, ind_len, indicies.data());
67 const auto ind_len = indicies.size_bytes();
69 m_count =
static_cast<int>(indicies.size());
71 glNamedBufferData(
m_id, ind_len +
m_offset,
nullptr, GL_DYNAMIC_DRAW);
72 glNamedBufferSubData(
m_id,
m_offset, ind_len, indicies.data());
85 glGetNamedBufferParameteriv(
m_id, GL_BUFFER_SIZE, &size);
86 glNamedBufferData(
m_id, size,
nullptr, GL_DYNAMIC_DRAW);
thread_local const float vertices[]
Video.cpp galaxy.
Abstraction for OpenGL vertex buffer objects.
void buffer(std::span< Vertex > vertices, std::span< unsigned int > indicies)
Create vertex buffer object.
unsigned int m_id
ID returned by OpenGL when generating buffer.
int count() const noexcept
Get the index count.
int m_count
Index buffer count.
VertexBuffer()
Constructor.
void * offset() noexcept
Gets index offset.
VertexBuffer & operator=(VertexBuffer &&) noexcept
Move assignment operator.
~VertexBuffer()
Destructor.
void clear()
Clear buffer data.
std::size_t m_offset
Index buffer offset.
void sub_buffer(const unsigned int index, std::span< Vertex > vertices)
Sub-buffer vertex object.
unsigned int id() const noexcept
Get OpenGL handle.
Represents a single vertex point.