VertexBuffer.h 770 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef VERTEXBUFFER_H
  2. #define VERTEXBUFFER_H
  3. #include <GL/glew.h>
  4. #include "common/utils/Types.h"
  5. class VertexBuffer final {
  6. public:
  7. VertexBuffer();
  8. ~VertexBuffer();
  9. VertexBuffer(const VertexBuffer& other) = delete;
  10. VertexBuffer(VertexBuffer&& other) = delete;
  11. VertexBuffer& operator=(const VertexBuffer& other) = delete;
  12. VertexBuffer& operator=(VertexBuffer&& other) = delete;
  13. void setFloatAttribute(uint index, uint length, uint offset, uint step);
  14. void setData(u64 size, const void* data);
  15. void bindArray() const;
  16. void bindBuffer() const;
  17. void bind() const;
  18. void draw(uint vertices) const;
  19. void drawLines(uint vertices) const;
  20. private:
  21. GLuint vertexArray;
  22. GLuint vertexBuffer;
  23. };
  24. #endif