Extra2D/include/renderer/rhi/opengl/gl_buffer.h

36 lines
760 B
C
Raw Normal View History

#pragma once
#include <glad/glad.h>
#include <renderer/rhi/rhi.h>
namespace extra2d {
/**
* @brief OpenGL
*/
class GLBuffer : public RHIBuffer {
public:
explicit GLBuffer(const BufferDesc &desc);
~GLBuffer() override;
bool create();
void destroy();
bool update(const void *data, uint32_t size, uint32_t offset) override;
void *map() override;
void unmap() override;
const BufferDesc &getDesc() const { return desc_; }
uint32_t getSize() const override { return desc_.size; }
BufferType getType() const override { return desc_.type; }
bool isValid() const override { return buffer_ != 0; }
GLuint getGLBuffer() const { return buffer_; }
private:
BufferDesc desc_;
GLuint buffer_;
};
} // namespace extra2d