From 6f570be911e46bf4bc36b0ce3f03897294a7dc35 Mon Sep 17 00:00:00 2001 From: Alexis Maiquez Date: Fri, 11 Nov 2022 17:09:47 +0100 Subject: [PATCH] g_ModelViewProjectionMatrix should now have the right values for passes (fixes sun not displaying properly in 2882477794) Signed-off-by: Alexis Maiquez --- src/WallpaperEngine/Render/Objects/CImage.cpp | 9 ++++++--- src/WallpaperEngine/Render/Objects/CImage.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/WallpaperEngine/Render/Objects/CImage.cpp b/src/WallpaperEngine/Render/Objects/CImage.cpp index ab5e2b2..d651312 100644 --- a/src/WallpaperEngine/Render/Objects/CImage.cpp +++ b/src/WallpaperEngine/Render/Objects/CImage.cpp @@ -222,7 +222,8 @@ CImage::CImage (CScene* scene, Core::Objects::CImage* image) : this->getScene ()->getCamera ()->getProjection () * this->getScene ()->getCamera ()->getLookAt (); - this->m_modelViewProjectionPass = glm::ortho (0.0, size.x, 0.0, size.y); + this->m_modelViewProjectionPass = glm::mat4(1.0f); + this->m_modelViewProjectionCopy = glm::ortho (0.0, size.x, 0.0, size.y); } void CImage::setup () @@ -329,13 +330,15 @@ void CImage::setupPasses () auto cur = this->m_passes.begin (); auto end = this->m_passes.end (); + bool first = true; for (; cur != end; cur ++) { Effects::CPass* pass = *cur; const CFBO* prevDrawTo = drawTo; - GLuint spacePosition = this->getCopySpacePosition (); - glm::mat4* projection = &this->m_modelViewProjectionPass; + GLuint spacePosition = (first) ? this->getCopySpacePosition () : this->getPassSpacePosition (); + glm::mat4* projection = (first) ? &this->m_modelViewProjectionCopy : &this->m_modelViewProjectionPass; + first = false; // set viewport and target texture if needed if (pass->getMaterial ()->getMaterial ()->hasTarget () == true) diff --git a/src/WallpaperEngine/Render/Objects/CImage.h b/src/WallpaperEngine/Render/Objects/CImage.h index 68d4d09..bfe33ff 100644 --- a/src/WallpaperEngine/Render/Objects/CImage.h +++ b/src/WallpaperEngine/Render/Objects/CImage.h @@ -72,6 +72,7 @@ namespace WallpaperEngine::Render::Objects glm::mat4 m_modelViewProjectionScreen; glm::mat4 m_modelViewProjectionPass; + glm::mat4 m_modelViewProjectionCopy; CFBO* m_mainFBO; CFBO* m_subFBO;