GameKit  0.0.1a
C++ gamedev tools
VertexBuffer.hpp
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: VertexBuffer.hpp
5  *
6  * Description:
7  *
8  * Created: 15/12/2014 17:09:58
9  *
10  * Author: Quentin Bazin, <quent42340@gmail.com>
11  *
12  * =====================================================================================
13  */
14 #ifndef GK_VERTEXBUFFER_HPP_
15 #define GK_VERTEXBUFFER_HPP_
16 
17 #include "gk/gl/OpenGL.hpp"
18 #include "gk/utils/NonCopyable.hpp"
19 
20 namespace gk {
21 
22 class VertexBuffer : public NonCopyable {
23  public:
24  VertexBuffer();
26  ~VertexBuffer() noexcept;
27 
28  VertexBuffer &operator=(VertexBuffer &&) = default;
29 
30  void setData(GLsizeiptr size, const GLvoid *data, GLenum usage) const;
31  void updateData(GLintptr offset, GLsizeiptr size, const GLvoid *data) const;
32 
33  void setAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer) const;
34 
35  static void bind(const VertexBuffer *vertexBuffer);
36 
37  private:
38  GLuint m_id = 0;
39 };
40 
41 } // namespace gk
42 
43 #endif // GK_VERTEXBUFFER_HPP_
~VertexBuffer() noexcept
void updateData(GLintptr offset, GLsizeiptr size, const GLvoid *data) const
void setAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer) const
static void bind(const VertexBuffer *vertexBuffer)
void setData(GLsizeiptr size, const GLvoid *data, GLenum usage) const
VertexBuffer & operator=(VertexBuffer &&)=default