소스 검색

Removed duplicate code

IceCryptonym 6 년 전
부모
커밋
67be40032a
2개의 변경된 파일과 10개의 추가작업 그리고 7개의 파일을 삭제
  1. 9 7
      src/WallpaperEngine/Irrlicht/CContext.cpp
  2. 1 0
      src/WallpaperEngine/Irrlicht/CContext.h

+ 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 (false, 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);