Files
OpenEngine/open_engine/include/open_engine/opengl/opengl_buffer.hpp
2026-03-01 17:06:15 +01:00

48 lines
1.3 KiB
C++

#ifndef OPENGL_BUFFER_HPP
#define OPENGL_BUFFER_HPP
#include "renderer/buffer.hpp"
#include <cstdint>
namespace OpenEngine {
class OpenGLVertexBuffer : public VertexBuffer
{
public:
OpenGLVertexBuffer(uint32_t size);
OpenGLVertexBuffer(float* vertices, uint32_t size);
virtual ~OpenGLVertexBuffer();
virtual void SetData(const void* data, uint32_t size) override;
virtual void Bind() const override;
virtual void UnBind() const override;
virtual const BufferLayout& GetLayout() const override { return layout; };
virtual void SetLayout(const BufferLayout& layout) override { this->layout = layout; };
private:
BufferLayout layout;
unsigned int id;
};
class OpenGLIndexBuffer : public IndexBuffer
{
public:
OpenGLIndexBuffer(const uint32_t* indices, uint32_t count);
virtual ~OpenGLIndexBuffer();
virtual void Bind() const override;
virtual void UnBind() const override;
virtual uint32_t GetCount() const override { return count; };
virtual uint32_t GetID() const override { return id; };
private:
unsigned int id;
uint32_t count;
};
}
#endif // OPENGL_BUFFER_HPP