Zen 0.3.0
Loading...
Searching...
No Matches
ZEN_OpenGLBuffer.h
1#pragma once
2
3#include <zen/renderer/ZEN_Buffer.h>
4
5namespace Zen {
6 class OpenGLVertexBuffer : public VertexBuffer {
7 public:
8 OpenGLVertexBuffer(float *vertices, uint32_t size);
9 virtual ~OpenGLVertexBuffer();
10
11 virtual void bind() const override;
12 virtual void unbind() const override;
13
14 virtual void setData(const void *data, uint32_t size) override;
15
16 virtual const BufferLayout &getLayout() const override { return m_layout; }
17 virtual void setLayout(const BufferLayout &layout) override { m_layout = layout; }
18
19 private:
20 uint32_t m_rendererID;
21 BufferLayout m_layout;
22 };
23
24 class OpenGLIndexBuffer : public IndexBuffer {
25 public:
26 OpenGLIndexBuffer(uint32_t *indices, uint32_t count);
27 virtual ~OpenGLIndexBuffer();
28
29 void bind() const override;
30 void unbind() const override;
31 uint32_t getCount() const override;
32 void setCount(uint32_t count) override;
33
34 private:
35 uint32_t m_rendererID;
36 uint32_t m_count;
37 };
38
39}; // namespace Zen