Sfoglia il codice sorgente

Merge branch 'data-separation' of github.com:Almamu/linux-wallpaperengine into data-separation

Alexis Maiquez 6 anni fa
parent
commit
1a6bfac3ee

+ 9 - 7
src/WallpaperEngine/Irrlicht/CContext.cpp

@@ -170,9 +170,7 @@ void CContext::renderFrame (Render::CScene* scene)
 
     if (this->m_viewports.empty () == true)
     {
-        this->getDevice ()->getVideoDriver ()->beginScene (true, true, scene->getScene ()->getClearColor ().toSColor());
-        this->getDevice ()->getSceneManager ()->drawAll ();
-        this->getDevice ()->getVideoDriver ()->endScene ();
+        this->drawScene (scene, true);
     }
     else
     {
@@ -183,14 +181,18 @@ void CContext::renderFrame (Render::CScene* scene)
         {
             // change viewport to render to the correct portion of the display
             this->getDevice ()->getVideoDriver ()->setViewPort (*cur);
-
-            this->getDevice ()->getVideoDriver ()->beginScene (false, true, scene->getScene ()->getClearColor ().toSColor());
-            this->getDevice ()->getSceneManager ()->drawAll ();
-            this->getDevice ()->getVideoDriver ()->endScene ();
+            this->drawScene (scene, false);
         }
     }
 }
 
+void CContext::drawScene (Render::CScene* scene, bool backBuffer)
+{
+    this->getDevice ()->getVideoDriver ()->beginScene (backBuffer, true, scene->getScene ()->getClearColor ().toSColor());
+    this->getDevice ()->getSceneManager ()->drawAll ();
+    this->getDevice ()->getVideoDriver ()->endScene ();
+}
+
 void CContext::insertShaderVariable (Render::Shaders::Variables::CShaderVariable* variable)
 {
     this->m_globalShaderVariables.push_back (variable);

+ 1 - 0
src/WallpaperEngine/Irrlicht/CContext.h

@@ -38,6 +38,7 @@ namespace WallpaperEngine::Irrlicht
         irr::io::path resolveIncludeShader (const std::string& includeShader);
     private:
         void initializeViewports (irr::SIrrlichtCreationParameters& irrlichtCreationParameters);
+        void drawScene (Render::CScene* scene, bool backBuffer);
 
         irr::io::path resolveFile (const irr::io::path& file);