diff --git a/assets b/assets index b6592dbb..e8174f63 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit b6592dbb0216bbac00ccea43a0afd0e27d0b185e +Subproject commit e8174f630fc3242e15ada1346b42c72f44cbc854 diff --git a/include/Engine/Rendering/Renderer.h b/include/Engine/Rendering/Renderer.h index 0e8c70ec..875fa616 100644 --- a/include/Engine/Rendering/Renderer.h +++ b/include/Engine/Rendering/Renderer.h @@ -19,7 +19,7 @@ #include "Camera.h" #include "../Core/Transform.h" -#include "TextRenderer.h" +#include "TextPass.h" class Renderer : public IRenderer { @@ -37,7 +37,7 @@ public: private: //----------------------Variables----------------------// EventBroker* m_EventBroker; - TextRenderer* m_TextRenderer; + TextPass* m_TextRenderer; Texture* m_ErrorTexture; Texture* m_WhiteTexture; diff --git a/include/Engine/Rendering/TextRenderer.h b/include/Engine/Rendering/TextPass.h similarity index 91% rename from include/Engine/Rendering/TextRenderer.h rename to include/Engine/Rendering/TextPass.h index cdc1d8c7..eaace1c2 100644 --- a/include/Engine/Rendering/TextRenderer.h +++ b/include/Engine/Rendering/TextPass.h @@ -10,11 +10,12 @@ #include "Font.h" #include "../Core/ResourceManager.h" #include "RenderQueue.h" +#include "TextPassState.h" -class TextRenderer +class TextPass { public: - TextRenderer(); + TextPass(); void Initialize(); void Update(); void Draw(RenderScene& scene); diff --git a/include/Engine/Rendering/TextPassState.h b/include/Engine/Rendering/TextPassState.h new file mode 100644 index 00000000..9bc25f26 --- /dev/null +++ b/include/Engine/Rendering/TextPassState.h @@ -0,0 +1,15 @@ +#ifndef TextPassState_h__ +#define TextPassState_h__ + +#include "Rendering/RenderState.h" + +class TextPassState : public RenderState +{ +public: + TextPassState(); + ~TextPassState(); +private: + +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Rendering/Renderer.cpp b/src/Engine/Rendering/Renderer.cpp index 4a2b30f6..02a986ad 100644 --- a/src/Engine/Rendering/Renderer.cpp +++ b/src/Engine/Rendering/Renderer.cpp @@ -9,7 +9,7 @@ void Renderer::Initialize() glfwSwapInterval(m_VSYNC); InitializeShaders(); InitializeTextures(); - m_TextRenderer = new TextRenderer(); + m_TextRenderer = new TextPass(); m_TextRenderer->Initialize(); diff --git a/src/Engine/Rendering/TextRenderer.cpp b/src/Engine/Rendering/TextPass.cpp similarity index 85% rename from src/Engine/Rendering/TextRenderer.cpp rename to src/Engine/Rendering/TextPass.cpp index a8dfc083..6b05d7fb 100644 --- a/src/Engine/Rendering/TextRenderer.cpp +++ b/src/Engine/Rendering/TextPass.cpp @@ -1,11 +1,11 @@ -#include "Rendering/TextRenderer.h" +#include "Rendering/TextPass.h" -TextRenderer::TextRenderer() +TextPass::TextPass() { } -void TextRenderer::Initialize() +void TextPass::Initialize() { glGenVertexArrays(1, &VAO); glGenBuffers(1, &VBO); @@ -24,12 +24,12 @@ void TextRenderer::Initialize() m_TextProgram->Link(); } -void TextRenderer::Update() +void TextPass::Update() { } -void TextRenderer::Draw(RenderScene& scene) +void TextPass::Draw(RenderScene& scene) { for (auto &job : scene.TextJobs) { auto textJob = std::dynamic_pointer_cast(job); @@ -40,11 +40,11 @@ void TextRenderer::Draw(RenderScene& scene) } } -void TextRenderer::renderText(std::string text, Font* font, TextJob::AlignmentEnum alignment, glm::vec4 color, glm::mat4 modelMatrix, glm::mat4 projectionMatrix, glm::mat4 viewMatrix) +void TextPass::renderText(std::string text, Font* font, TextJob::AlignmentEnum alignment, glm::vec4 color, glm::mat4 modelMatrix, glm::mat4 projectionMatrix, glm::mat4 viewMatrix) { GLfloat penX = 0; GLfloat penY = 0; - float scale = 1.0/font->FontSize; + GLfloat scale = 1.0/font->FontSize; GLfloat stringWidth = 0.f; @@ -61,10 +61,7 @@ void TextRenderer::renderText(std::string text, Font* font, TextJob::AlignmentEn penX = 0; } - glEnable(GL_BLEND); - glDisable(GL_CULL_FACE); - glEnable(GL_DEPTH_TEST); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + TextPassState state; m_TextProgram->Bind(); glUniform3f(glGetUniformLocation(m_TextProgram->GetHandle(), "textColor"), color.x, color.y, color.z); diff --git a/src/Engine/Rendering/TextPassState.cpp b/src/Engine/Rendering/TextPassState.cpp new file mode 100644 index 00000000..e81f7b7c --- /dev/null +++ b/src/Engine/Rendering/TextPassState.cpp @@ -0,0 +1,16 @@ +#include "Rendering/TextPassState.h" + + +TextPassState::TextPassState() +{ + BindFramebuffer(0); + glEnable(GL_BLEND); + glDisable(GL_CULL_FACE); + glEnable(GL_DEPTH_TEST); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +} + +TextPassState::~TextPassState() +{ + +}