8#ifndef GALAXY_GRAPHICS_GL_VERTEXBUFFER_HPP_
9#define GALAXY_GRAPHICS_GL_VERTEXBUFFER_HPP_
57 void reserve(
const int vertex_count,
const int index_count);
70 const unsigned int vi,
71 const int vertex_size,
73 const unsigned int ei,
104 void erase(
const unsigned int vi,
const int vertex_count,
const unsigned int ei,
const int index_count)
const;
117 int count()
const noexcept;
133 unsigned int id()
const noexcept;
thread_local const float vertices[]
Video.cpp galaxy.
thread_local const unsigned int indices[]
Abstraction for OpenGL vertex buffer objects.
unsigned int m_id
ID returned by OpenGL when generating buffer.
void buffer(std::span< Vertex > vertices, std::span< unsigned int > indices)
Create vertex buffer.
int count() const noexcept
Get the index count.
int m_count
Index buffer count.
VertexBuffer()
Constructor.
void sub_buffer_indices(const unsigned int ei, const int index_size, std::span< unsigned int > indices) const
Sub-buffer element/index buffer.
void sub_buffer_vertices(const unsigned int vi, const int vertex_size, const std::span< Vertex > vertices) const
Sub-buffer vertex buffer.
void sub_buffer(const unsigned int vi, const int vertex_size, const std::span< Vertex > vertices, const unsigned int ei, const int index_size, std::span< unsigned int > indices) const
Sub-buffer vertex buffer.
void clear() const
Clear buffer data.
VertexBuffer(const VertexBuffer &)=delete
Copy constructor.
void erase(const unsigned int vi, const int vertex_count, const unsigned int ei, const int index_count) const
Erase a specfic segment of data.
void * offset() noexcept
Gets index offset.
void reserve(const int vertex_count, const int index_count)
Create vertex buffer without uploading.
VertexBuffer & operator=(VertexBuffer &&) noexcept
Move assignment operator.
~VertexBuffer()
Destructor.
std::size_t m_offset
Index buffer offset.
unsigned int id() const noexcept
Get OpenGL handle.
VertexBuffer & operator=(const VertexBuffer &)=delete
Copy assignment operator.