~ Fixed multiple screens not getting a background drawn

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
This commit is contained in:
Alexis Maiquez 2021-12-04 23:49:28 +01:00
parent 577b81215b
commit fa2720f07c
3 changed files with 7 additions and 5 deletions

View File

@ -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

View File

@ -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;

View File

@ -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