21 glCreateBuffers(1, &
m_id);
51 glDeleteBuffers(1, &
m_id);
57 const auto ind_len = indicies.size_bytes();
59 m_count =
static_cast<int>(indicies.size());
61 glNamedBufferData(
m_id, ind_len +
m_offset,
nullptr, GL_DYNAMIC_DRAW);
62 glNamedBufferSubData(
m_id,
m_offset, ind_len, indicies.data());
68 const auto ind_len = indicies.size_bytes();
70 m_count =
static_cast<int>(indicies.size());
72 glNamedBufferData(
m_id, ind_len +
m_offset,
nullptr, GL_DYNAMIC_DRAW);
73 glNamedBufferSubData(
m_id,
m_offset, ind_len, indicies.data());
86 glGetNamedBufferParameteriv(
m_id, GL_BUFFER_SIZE, &size);
87 glNamedBufferData(
m_id, size,
nullptr, GL_DYNAMIC_DRAW);
thread_local const float vertices[]
Video.cpp galaxy.
Abstraction for OpenGL vertex buffer objects.
void clear()
Clear buffer data.
std::size_t m_offset
Index buffer offset.
VertexBuffer & operator=(VertexBuffer &&)
Move assignment operator.
unsigned int m_id
ID returned by OpenGL when generating buffer.
int m_count
Index buffer count.
void buffer(std::span< Vertex > vertices, std::span< unsigned int > indicies)
Create vertex buffer object.
void sub_buffer(const unsigned int index, std::span< Vertex > vertices)
Sub-buffer vertex object.
unsigned int id() const
Get OpenGL handle.
~VertexBuffer()
Destructor.
void * offset()
Gets index offset.
int count() const
Get the index count.
VertexBuffer()
Constructor.
Represents a single vertex point.