charcoal/OpenGLEngine/MyTriangle.cpp

53 lines
1023 B
C++
Raw Normal View History

2018-09-05 06:49:02 +00:00
#include "MyTriangle.h"
#include "Mesh.h"
2018-09-05 06:49:02 +00:00
MyTriangle::MyTriangle()
{
MeshType* mesh = new MeshType();
mesh->vertices = new VertexType[3]
{
{ 0.0, 0.5, 1.0 },
{ 0.5, -0.5, 1.0 },
{ -0.5, -0.5, 1.0 },
};
mesh->vertex_count = 3;
mesh->indices = new unsigned int[3] { 0, 1, 2, };
mesh->index_count = 3;
m_p_mesh = mesh;
2018-09-05 06:49:02 +00:00
}
MyTriangle::~MyTriangle()
{
if (m_p_mesh != nullptr)
{
if (m_p_mesh->vertices != nullptr)
{
delete[] m_p_mesh->vertices;
}
if (m_p_mesh->indices != nullptr)
{
delete[] m_p_mesh->indices;
}
delete m_p_mesh;
m_p_mesh = nullptr;
}
2018-09-05 06:49:02 +00:00
}
void MyTriangle::populate_vbo() const
{
glBufferData(GL_ARRAY_BUFFER, m_p_mesh->vertex_count * sizeof(VertexType), m_p_mesh->vertices, GL_STATIC_DRAW);
}
/*
2018-09-05 06:49:02 +00:00
GLuint MyTriangle::gen_vbo() const
{
GLuint vbo;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, m_p_mesh->vertex_count * sizeof(VertexType), m_p_mesh->vertices, GL_STATIC_DRAW); // TODO: Optimise Usage
2018-09-05 06:49:02 +00:00
return vbo;
}
*/
2018-09-05 06:49:02 +00:00