From 58931e29b3b1b553230f6cdeabc9b9dde4a48a42 Mon Sep 17 00:00:00 2001 From: tleety Date: Thu, 10 Sep 2015 17:45:26 +0200 Subject: [PATCH] Sprites are now rendered on unitQuads instead of ScreenQuads --- include/Core/Engine.h | 14 +++++++------- include/Core/Renderer.h | 2 +- src/game/Core/Renderer.cpp | 12 +++++------- 3 files changed, 13 insertions(+), 15 deletions(-) mode change 100644 => 100755 include/Core/Renderer.h diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 04b3693..1b05bf8 100755 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -63,13 +63,13 @@ public: m_World->ComponentFactory.Register(); m_World->Initialize(); -// { -// auto ent = m_World->CreateEntity(); -// std::shared_ptr transform = m_World->AddComponent(ent); -// transform->Position = glm::vec3(0.f, 0.f, -10.f); -// auto sprite = m_World->AddComponent(ent); -// sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; -// } + { + auto ent = m_World->CreateEntity(); + std::shared_ptr transform = m_World->AddComponent(ent); + transform->Position = glm::vec3(0.f, 0.f, -10.f); + auto sprite = m_World->AddComponent(ent); + sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; + } m_LastTime = glfwGetTime(); } diff --git a/include/Core/Renderer.h b/include/Core/Renderer.h old mode 100644 new mode 100755 index 8aa4a2c..d3c7054 --- a/include/Core/Renderer.h +++ b/include/Core/Renderer.h @@ -73,7 +73,7 @@ private: ShaderProgram* m_spForward; ShaderProgram* m_spScreen; - GLuint m_UnitQuad = 0; + GLuint m_ScreenQuad = 0; Model* m_UnitSphere = nullptr; GLuint m_rbDepthBuffer = 0; diff --git a/src/game/Core/Renderer.cpp b/src/game/Core/Renderer.cpp index 69aee81..e204763 100755 --- a/src/game/Core/Renderer.cpp +++ b/src/game/Core/Renderer.cpp @@ -98,21 +98,19 @@ void dd::Renderer::LoadShaders() /* Forward rendering */ - m_spForward = ResourceManager::Load("Shaders/Forward/"); m_spForward->Link(); /* Screen draw */ - m_spScreen = ResourceManager::Load("Shaders/Screen/"); m_spScreen->Link(); } void dd::Renderer::CreateBuffers() { - m_UnitQuad = CreateQuad(); + m_ScreenQuad = CreateQuad(); m_UnitSphere = ResourceManager::Load("Models/Core/UnitSphere.obj"); glGenRenderbuffers(1, &m_rbDepthBuffer); @@ -222,7 +220,7 @@ void dd::Renderer::Draw(RenderQueueCollection& rq) m_spScreen->Bind(); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, m_CurrentScreenBuffer); - glBindVertexArray(m_UnitQuad); + glBindVertexArray(m_ScreenQuad); glDrawArrays(GL_TRIANGLES, 0, 6); glfwSwapBuffers(m_Window); @@ -271,7 +269,7 @@ void dd::Renderer::DrawDeferred(RenderQueue &objects, RenderQueue &lights) glBindTexture(GL_TEXTURE_2D, m_GDiffuse); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_tLighting); - glBindVertexArray(m_UnitQuad); + glBindVertexArray(m_ScreenQuad); glDrawArrays(GL_TRIANGLES, 0, 6); } @@ -329,7 +327,7 @@ void dd::Renderer::DrawScene(RenderQueue &objects, ShaderProgram &program) auto spriteJob = std::dynamic_pointer_cast(job); if (spriteJob) { - glm::mat4 modelMatrix = spriteJob->ModelMatrix; + glm::mat4 modelMatrix = glm::scale(glm::vec3(0.5f)) * spriteJob->ModelMatrix; MVP = PV * modelMatrix; glUniformMatrix4fv(glGetUniformLocation(shaderProgramHandle, "MVP"), 1, GL_FALSE, glm::value_ptr(MVP)); glUniformMatrix4fv(glGetUniformLocation(shaderProgramHandle, "M"), 1, GL_FALSE, glm::value_ptr(modelMatrix)); @@ -338,7 +336,7 @@ void dd::Renderer::DrawScene(RenderQueue &objects, ShaderProgram &program) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, spriteJob->Texture); - glBindVertexArray(m_UnitQuad); + glBindVertexArray(m_ScreenQuad); glDrawArrays(GL_TRIANGLES, 0, 6); continue;