CG-Project2
Loading...
Searching...
No Matches
VertexBuffer.hpp
1#pragma once
2
3#include <cstddef>
4#include "Buffer.hpp"
5
6namespace ogl {
7 class VertexBuffer : public Buffer {
8 public:
9 template <typename T>
10 inline void setup(const T *vertices, const size_t &size, const unsigned int &usage) {
11 this->bind();
12 glBufferData(GL_ARRAY_BUFFER, size * sizeof(T), vertices, usage);
13 }
14
15 inline void setup(const float *vertices, const size_t &size, const unsigned int &usage) {
16 this->bind();
17 glBufferData(GL_ARRAY_BUFFER, size * sizeof(float), vertices, usage);
18 }
19
20 template <typename T>
21 inline void setupSubData(const T *vertices, const size_t &size, const int &offset) {
22 // TODO
23 }
24
25 virtual void onAttach() override;
26 virtual void onDetach() override;
27
28 virtual void bind() const override;
29 virtual void unbind() const override;
30
31 VertexBuffer() = default;
32 ~VertexBuffer() override;
33 };
34} // namespace ogl