20#ifndef YOURGAME_GLGEOMETRY_H
21#define YOURGAME_GLGEOMETRY_H
62 bool bufferArrayData(std::string name, GLsizeiptr size,
const GLvoid *data);
83 static Buffer *
make(GLenum target, GLsizeiptr size,
const GLvoid *data, GLenum usage);
87 bool bufferData(GLsizeiptr size,
const GLvoid *data);
91 Buffer(Buffer
const &) =
delete;
92 Buffer &operator=(Buffer
const &) =
delete;
103 Buffer *buffer =
nullptr;
104 ArrayBufferDescriptor descriptor;
107 struct ElementArrayBuffer
109 Buffer *buffer =
nullptr;
110 ElementArrayBufferDescriptor descriptor;
114 std::map<std::string, ArrayBuffer> m_arrayBuffers;
115 ElementArrayBuffer m_elementArrayBuffer;
116 GLuint m_vaoHandle = 0;
Geometry(Geometry const &)=delete
bool addArrayBuffer(std::string name, GLsizeiptr size, const GLvoid *data, GLenum usage, ArrayBufferDescriptor descriptor)
Definition geometry.cpp:50
void draw() const
Definition geometry.cpp:139
bool setElementArrayBuffer(GLsizeiptr size, const GLvoid *data, GLenum usage, ElementArrayBufferDescriptor descriptor)
Definition geometry.cpp:69
bool init()
Definition geometry.cpp:101
bool bufferArrayData(std::string name, GLsizeiptr size, const GLvoid *data)
Definition geometry.cpp:91
~Geometry()
Definition geometry.cpp:31
Geometry & operator=(Geometry const &)=delete
static Geometry * make()
Definition geometry.cpp:26
void drawInstanced(GLsizei instancecount) const
Definition geometry.cpp:149
const GLvoid * pointer
Definition geometry.h:42
GLuint attribDivisor
Definition geometry.h:43
GLboolean normalized
Definition geometry.h:40
GLenum type
Definition geometry.h:39
GLint size
Definition geometry.h:38
GLsizei stride
Definition geometry.h:41
GLuint index
Definition geometry.h:37
GLenum type
Definition geometry.h:48
GLsizei numElements
Definition geometry.h:50
GLenum drawMode
Definition geometry.h:49