galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
VertexBuffer.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_GRAPHICS_GL_VERTEXBUFFER_HPP_
9#define GALAXY_GRAPHICS_GL_VERTEXBUFFER_HPP_
10
11#include <span>
12
14
15namespace galaxy
16{
17 namespace graphics
18 {
22 class VertexBuffer final
23 {
24 public:
29
34
39
44
51 void buffer(std::span<Vertex> vertices, std::span<unsigned int> indicies);
52
59 void buffer(const int vertex_count, std::span<unsigned int> indicies);
60
67 void sub_buffer(const unsigned int index, std::span<Vertex> vertices);
68
72 void clear();
73
79 [[nodiscard]]
80 int count() const;
81
87 [[nodiscard]]
88 void* offset();
89
95 [[nodiscard]]
96 unsigned int id() const;
97
98 private:
102 VertexBuffer(const VertexBuffer&) = delete;
107
108 private:
112 unsigned int m_id;
113
117 std::size_t m_offset;
118
123 };
124 } // namespace graphics
125} // namespace galaxy
126
127#endif
thread_local const float vertices[]
Video.cpp galaxy.
Definition Video.cpp:19
Abstraction for OpenGL vertex buffer objects.
void clear()
Clear buffer data.
std::size_t m_offset
Index buffer offset.
VertexBuffer(const VertexBuffer &)=delete
Copy constructor.
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.
void * offset()
Gets index offset.
int count() const
Get the index count.
VertexBuffer & operator=(const VertexBuffer &)=delete
Copy assignment operator.
Animated.cpp galaxy.
Definition Animated.cpp:16