17 glCreateBuffers(n, ids);
23 inline void NamedBufferData(uint32_t buffer, uint32_t target,
size_t size,
const void* data, uint32_t usage) {
25 glNamedBufferData(buffer, size, data, usage);
27 glBindBuffer(target, buffer);
28 glBufferData(target, size, data, usage);
47 GLCheck(glDeleteBuffers(1, &m_rendererID));
53 GLCheck(glBindBuffer(GL_ARRAY_BUFFER, m_rendererID));
58 GLCheck(glBindBuffer(GL_ARRAY_BUFFER, 0));
63 if (m_rendererID != 0)
75 EE_CORE_ERROR(
"ERROR : (OpenGLVertexBuffer::SetData) Buffer is not initialized yet.");
81 if (m_rendererID != 0 && data)
88 EE_CORE_ERROR(
"ERROR : (OpenGLVertexBuffer::Resize) You must initialize the VertexBuffer before resizing it.");
99 GLCheck(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_rendererID));
100 GLCheck(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count *
sizeof(uint32_t), indices, GL_STATIC_DRAW));
108 GLCheck(glDeleteBuffers(1, &m_rendererID));
114 GLCheck(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_rendererID));
119 GLCheck(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0));
static bool CanUseContext()
virtual void Unbind() const
virtual void Bind() const
OpenGLIndexBuffer(const void *indices, uint32_t count)
virtual ~OpenGLIndexBuffer()
virtual void SetData(const void *newData, uint32_t size) override
virtual ~OpenGLVertexBuffer()
OpenGLVertexBuffer(const void *vertices, uint32_t size)
virtual void Unbind() const override
virtual void Resize(uint32_t size) override
virtual void Bind() const override
void SetSize(uint32_t newSize)
void CreateBuffers(int32_t n, uint32_t *ids)
void NamedBufferData(uint32_t buffer, uint32_t target, size_t size, const void *data, uint32_t usage)