From a9e3e91203b27f88625d9d3120ddaf2248e4a17e Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Sun, 9 Mar 2014 20:36:19 +0100 Subject: [PATCH] WIP Renderer --- Escape-the-Dawn/Renderer.cpp | 13 +++++++------ Escape-the-Dawn/Renderer.h | 12 ++++++++++-- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Escape-the-Dawn/Renderer.cpp b/Escape-the-Dawn/Renderer.cpp index 739ecd8..188b918 100644 --- a/Escape-the-Dawn/Renderer.cpp +++ b/Escape-the-Dawn/Renderer.cpp @@ -102,13 +102,14 @@ void Renderer::Draw(double _dt) { glActiveTexture(GL_TEXTURE0); //FIXA MED FLERA TEXTURER - glBindTexture(GL_TEXTURE_2D, ModelsToRender[i]->texture[0]->texture); - //MVP = projectionMatrix * viewMatrix * /* ModelMatrix */; + glBindTexture(GL_TEXTURE_2D, ModelsToRender[i]->model->texture[0]->texture); + MVP = projectionMatrix * viewMatrix * ModelsToRender[i]->modelMatrix; glUniformMatrix4fv(glGetUniformLocation(m_ShaderProgram.GetHandle(), "MVP"), 1, GL_FALSE, glm::value_ptr(MVP)); - glBindVertexArray(ModelsToRender[i]->VAO); - glDrawArrays(GL_TRIANGLES, 0, ModelsToRender[i]->Vertices.size()); + glBindVertexArray(ModelsToRender[i]->model->VAO); + glDrawArrays(GL_TRIANGLES, 0, ModelsToRender[i]->model->Vertices.size()); } + ModelsToRender.clear(); // Vertices; // std::vector Normals; // std::vector TextureCoords; @@ -126,9 +127,9 @@ void Renderer::AddTextToDraw() //Add to draw shit vector } -void Renderer::AddModelToDraw(Model* _model) +void Renderer::AddModelToDraw(Model* _model, glm::mat4 _modelMatrix) { - ModelsToRender.push_back(_model); + ModelsToRender.push_back(new ModelData(_model, _modelMatrix)); } //Fixa med shaders, lägga in alla verts osv. diff --git a/Escape-the-Dawn/Renderer.h b/Escape-the-Dawn/Renderer.h index 8a93f9f..8820753 100644 --- a/Escape-the-Dawn/Renderer.h +++ b/Escape-the-Dawn/Renderer.h @@ -31,7 +31,15 @@ public: int HEIGHT, WIDTH; - std::vector ModelsToRender; + struct ModelData + { + Model* model; + glm::mat4 modelMatrix; + ModelData(Model* _model, glm::mat4 _modelMatrix) : model(_model), modelMatrix(_modelMatrix) + {} + }; + + std::vector ModelsToRender; Renderer(); @@ -40,7 +48,7 @@ public: void Draw(double dt); void DrawText(); - void AddModelToDraw(Model*); + void AddModelToDraw(Model*, glm::mat4); void AddTextToDraw(); void LoadContent();