From 08972919aef6416ee1402946a6a801f7681d0466 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Thu, 8 Oct 2015 21:49:32 +0200 Subject: [PATCH] Fixed texture rendering order when fading --- include/GUI/TextureFrame.h | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/include/GUI/TextureFrame.h b/include/GUI/TextureFrame.h index 12f15c0..5db574c 100644 --- a/include/GUI/TextureFrame.h +++ b/include/GUI/TextureFrame.h @@ -23,18 +23,6 @@ public: if (m_Texture == nullptr) return; - // Main texture - { - FrameJob job; - job.Scissor = (m_ScissorEnabled) ? m_Parent->AbsoluteRectangle() : Rectangle(); - job.Viewport = Rectangle(Left(), Top(), Width, Height); - job.TextureID = m_Texture->ResourceID; - job.DiffuseTexture = *m_Texture; - job.Color = glm::vec4(m_Color.r, m_Color.g, m_Color.b, m_Color.a * m_CurrentFade); - job.Name = Name(); - rq.GUI.Add(job); - } - // Texture while fading if (m_FadeTexture && m_CurrentFade < 1) { FrameJob job; @@ -46,9 +34,21 @@ public: job.Name = Name(); rq.GUI.Add(job); } + + // Main texture + { + FrameJob job; + job.Scissor = (m_ScissorEnabled) ? m_Parent->AbsoluteRectangle() : Rectangle(); + job.Viewport = Rectangle(Left(), Top(), Width, Height); + job.TextureID = m_Texture->ResourceID; + job.DiffuseTexture = *m_Texture; + job.Color = glm::vec4(m_Color.r, m_Color.g, m_Color.b, m_Color.a * m_CurrentFade); + job.Name = Name(); + rq.GUI.Add(job); + } } - dd::Texture* Texture() const { return m_Texture; } + std::string Texture() const { return m_TextureName; } void SetTexture(std::string resourceName) { @@ -58,6 +58,7 @@ public: } m_Texture = ResourceManager::Load(resourceName); + m_TextureName = resourceName; if (m_Texture == nullptr) { m_Texture = ResourceManager::Load("Textures/Core/ErrorTexture.png"); } @@ -98,6 +99,7 @@ public: protected: bool m_ScissorEnabled = true; dd::Texture* m_Texture = nullptr; + std::string m_TextureName; dd::Texture* m_FadeTexture = nullptr; glm::vec4 m_Color = glm::vec4(1.f, 1.f, 1.f, 1.f); float m_FadeDuration = 0.f;