allowed for buffer data updating
This commit is contained in:
parent
e1e149e5c7
commit
a206be747c
|
@ -21,6 +21,7 @@ Model::Model(std::vector<float>&& vertices, std::vector<unsigned int>&& indices)
|
|||
|
||||
Model::~Model()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Model::Draw()
|
||||
|
@ -35,18 +36,23 @@ void Model::CreateVAO()
|
|||
glBindVertexArray(vao);
|
||||
|
||||
glGenBuffers(1, &vbo);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, vbo);
|
||||
glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(float), vertices.data(), GL_STATIC_DRAW);
|
||||
|
||||
glGenBuffers(1, &ebo);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
|
||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(unsigned int), indices.data(), GL_STATIC_DRAW);
|
||||
|
||||
UpdateBufferData();
|
||||
DefineVAOLayout();
|
||||
|
||||
glBindVertexArray(0);
|
||||
}
|
||||
|
||||
void Model::UpdateBufferData()
|
||||
{
|
||||
glBindBuffer(GL_ARRAY_BUFFER, vbo);
|
||||
glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(float), vertices.data(), GL_STATIC_DRAW);
|
||||
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
|
||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(unsigned int), indices.data(), GL_STATIC_DRAW);
|
||||
}
|
||||
|
||||
void Model::DefineVAOLayout()
|
||||
{
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||
|
|
|
@ -14,6 +14,7 @@ public:
|
|||
|
||||
protected:
|
||||
void CreateVAO();
|
||||
void UpdateBufferData();
|
||||
virtual void DefineVAOLayout();
|
||||
|
||||
protected:
|
||||
|
|
36
src/main.cpp
36
src/main.cpp
|
@ -5,7 +5,6 @@
|
|||
#include <GLFW/glfw3.h>
|
||||
#include <glm/gtc/matrix_transform.hpp>
|
||||
|
||||
#include "Model.hpp"
|
||||
#include "Orbital.hpp"
|
||||
#include "Shader.hpp"
|
||||
#include "Camera.hpp"
|
||||
|
@ -55,40 +54,7 @@ int main(int argc, char** argv)
|
|||
return -1;
|
||||
}
|
||||
|
||||
Model triangle(
|
||||
{
|
||||
-1.0f, -1.0f, 1.0f, // Front Bottom, Left
|
||||
-1.0f, 1.0f, 1.0f, // Front Top Left
|
||||
1.0f, 1.0f, 1.0f, // Front Top Right
|
||||
1.0f, -1.0f, 1.0f, // Front Bottom Right
|
||||
|
||||
-1.0f, -1.0f, -1.0f, // Back Bottom, Left
|
||||
-1.0f, 1.0f, -1.0f, // Back Top Left
|
||||
1.0f, 1.0f, -1.0f, // Back Top Right
|
||||
1.0f, -1.0f, -1.0f, // Back Bottom Right
|
||||
},
|
||||
{
|
||||
0, 1, 2,
|
||||
0, 2, 3,
|
||||
|
||||
3, 2, 6,
|
||||
3, 6, 7,
|
||||
|
||||
4, 5, 1,
|
||||
4, 1, 0,
|
||||
|
||||
1, 5, 6,
|
||||
1, 6, 2,
|
||||
|
||||
4, 0, 3,
|
||||
4, 3, 7,
|
||||
|
||||
7, 6, 5,
|
||||
7, 5, 4
|
||||
}
|
||||
);
|
||||
|
||||
Orbital orbital(4, 2);
|
||||
Orbital orbital(2, 1);
|
||||
|
||||
glm::mat4 modelMatrix = glm::mat4(1.0f);
|
||||
modelMatrix = glm::rotate(modelMatrix, glm::radians(90.0f), glm::vec3(1.0f, 0.0f, 0.0f));
|
||||
|
|
Loading…
Reference in a new issue