Bladeren bron

~ Fixed multiple screens not getting a background drawn

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
Alexis Maiquez 4 jaren geleden
bovenliggende
commit
fa2720f07c

+ 4 - 2
src/WallpaperEngine/Render/CContext.cpp

@@ -88,15 +88,17 @@ void CContext::render ()
     if (this->m_viewports.empty () == false)
     {
         bool firstFrame = true;
+        bool renderFrame = true;
         auto cur = this->m_viewports.begin ();
         auto end = this->m_viewports.end ();
 
         for (; cur != end; cur ++)
         {
-            this->m_wallpaper->render (*cur, firstFrame);
+            this->m_wallpaper->render (*cur, renderFrame, firstFrame);
             // scenes need to render a new frame for each viewport as they produce different results
             // but videos should only be rendered once per group of viewports
-            firstFrame = !this->m_wallpaper->is <CVideo> ();
+            firstFrame = false;
+            renderFrame = !this->m_wallpaper->is <CVideo> ();
         }
     }
     else

+ 2 - 2
src/WallpaperEngine/Render/CWallpaper.cpp

@@ -185,9 +185,9 @@ void CWallpaper::setupShaders ()
     this->a_TexCoord = glGetAttribLocation (this->m_shader, "a_TexCoord");
 }
 
-void CWallpaper::render (glm::vec4 viewport, bool newFrame)
+void CWallpaper::render (glm::vec4 viewport, bool renderFrame, bool newFrame)
 {
-    if (newFrame == true)
+    if (renderFrame == true)
         this->renderFrame (viewport);
 
     int windowWidth = 1920;

+ 1 - 1
src/WallpaperEngine/Render/CWallpaper.h

@@ -31,7 +31,7 @@ namespace WallpaperEngine::Render
         /**
          * Performs a render pass of the wallpaper
          */
-        void render (glm::vec4 viewport, bool newFrame = true);
+        void render (glm::vec4 viewport, bool renderFrame = true, bool newFrame = true);
 
         /**
          * @return The container to resolve files for this wallpaper