49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
#include "mesh.h"
|
|
|
|
Mesh::Mesh(GLfloat *vertices, unsigned int *indices, unsigned int numVerticies) {
|
|
m_drawCount = numVerticies;
|
|
|
|
glGenVertexArrays(1, &m_VAO);
|
|
glGenBuffers(1, &m_VBO);
|
|
glGenBuffers(1, &m_EBO);
|
|
|
|
glBindVertexArray(m_VAO);
|
|
|
|
glBindBuffer(GL_ARRAY_BUFFER, m_VBO);
|
|
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
|
|
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_EBO);
|
|
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
|
|
|
|
// position attribute
|
|
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0);
|
|
glEnableVertexAttribArray(0);
|
|
// color attribute
|
|
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float)));
|
|
glEnableVertexAttribArray(1);
|
|
<<<<<<< HEAD
|
|
// texture attribute
|
|
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));
|
|
glEnableVertexAttribArray(2);
|
|
|
|
=======
|
|
// texture coord attribute
|
|
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));
|
|
glEnableVertexAttribArray(2);
|
|
|
|
glBindVertexArray(0);
|
|
|
|
>>>>>>> 11f63887e9573415f2ed2fed84986ab4c4bd0b4f
|
|
std::cout << "Mesh loaded successfully" << std::endl;
|
|
}
|
|
|
|
void Mesh::Draw() {
|
|
glBindVertexArray(m_VAO);
|
|
glDrawArrays(GL_TRIANGLES, 0, m_drawCount);
|
|
glBindVertexArray(0);
|
|
}
|
|
|
|
Mesh::~Mesh() {
|
|
glDeleteVertexArrays(1, &m_VAO);
|
|
}
|