diff --git a/src/WallpaperEngine/Render/CContext.cpp b/src/WallpaperEngine/Render/CContext.cpp index b79b6d0..cab6897 100644 --- a/src/WallpaperEngine/Render/CContext.cpp +++ b/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 (); + firstFrame = false; + renderFrame = !this->m_wallpaper->is (); } } else diff --git a/src/WallpaperEngine/Render/CWallpaper.cpp b/src/WallpaperEngine/Render/CWallpaper.cpp index a517d96..8870fef 100644 --- a/src/WallpaperEngine/Render/CWallpaper.cpp +++ b/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; diff --git a/src/WallpaperEngine/Render/CWallpaper.h b/src/WallpaperEngine/Render/CWallpaper.h index f247596..50a46ba 100644 --- a/src/WallpaperEngine/Render/CWallpaper.h +++ b/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