Skip to content

File VertexBuffer.cpp

File List > buffers > VertexBuffer.cpp

Go to the documentation of this file

#include "VertexBuffer.h"

VertexBuffer::VertexBuffer(const std::vector<float>& data)
{
    buf_size = static_cast<GLuint>(data.size() * sizeof(float));
    glGenBuffers(1, &buf_ID);
    glBindBuffer(GL_ARRAY_BUFFER, buf_ID);
    glBufferData(GL_ARRAY_BUFFER, buf_size, data.data(), GL_STATIC_DRAW);
}

VertexBuffer::VertexBuffer(const VertexBuffer& vbo) : Buffers(vbo) {}

VertexBuffer::VertexBuffer(VertexBuffer&& vbo) noexcept : Buffers(std::move(vbo)) {}

VertexBuffer& VertexBuffer::operator=(const VertexBuffer& vbo)
{
    Buffers::operator=(vbo);
    return *this;
}

VertexBuffer& VertexBuffer::operator=(VertexBuffer&& vbo) noexcept
{
    Buffers::operator=(std::move(vbo));
    return *this;
}

void VertexBuffer::Bind() const
{
    glBindBuffer(GL_ARRAY_BUFFER, buf_ID);
}

void VertexBuffer::Unbind() const
{
    glBindBuffer(GL_ARRAY_BUFFER, 0);
}