#include #include #include "mesh.h" Mesh::Mesh(int vertexCount, float *vertices) { // Generate buffers glGenBuffers(1, &VBO); glGenVertexArrays(1, &VAO); // Bind vertex data to VBO glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, vertexCount * (3 + 3 + 2) * sizeof(float), vertices, GL_STATIC_DRAW); // Bind vertex attributes to VAO glBindVertexArray(VAO); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(0 * sizeof(float))); glEnableVertexAttribArray(0); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float))); glEnableVertexAttribArray(1); glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float))); glEnableVertexAttribArray(2); } Mesh::~Mesh() { glDeleteBuffers(1, &VBO); glDeleteVertexArrays(1, &VAO); } void Mesh::bind() { glBindBuffer(GL_ARRAY_BUFFER, VBO); glBindVertexArray(VAO); }