diff Framework/Viewport/SdlViewport.cpp @ 1213:86a8266b8888 broker

moving the scene from IViewport to ViewportController
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 04 Dec 2019 17:54:10 +0100
parents d10d2acb8a02
children 5147277850cf
line wrap: on
line diff
--- a/Framework/Viewport/SdlViewport.cpp	Wed Dec 04 16:54:24 2019 +0100
+++ b/Framework/Viewport/SdlViewport.cpp	Wed Dec 04 17:54:10 2019 +0100
@@ -58,10 +58,10 @@
     SendRefreshEvent();
   }
 
-  void SdlOpenGLViewport::Paint()
+  void SdlOpenGLViewport::Paint(const Scene2D& scene)
   {
     boost::mutex::scoped_lock lock(mutex_);
-    compositor_->Refresh(GetScene());
+    compositor_->Refresh(scene);
   }
 
 
@@ -83,15 +83,12 @@
     }
   }
   
-  void SdlCairoViewport::InvalidateInternal()  // Assumes that the mutex is locked
-  {
-    compositor_.Refresh(GetScene());
-    CreateSdlSurfaceFromCompositor();
-  }
-
-  void SdlCairoViewport::Paint()
+  void SdlCairoViewport::Paint(const Scene2D& scene)
   {
     boost::mutex::scoped_lock lock(mutex_);
+
+    compositor_.Refresh(scene);
+    CreateSdlSurfaceFromCompositor();
     
     if (sdlSurface_ != NULL)
     {
@@ -101,20 +98,18 @@
 
   void SdlCairoViewport::Invalidate()
   {
-    {
-      boost::mutex::scoped_lock lock(mutex_);
-      InvalidateInternal();
-    }
-
     SendRefreshEvent();
   }
 
   void SdlCairoViewport::UpdateSize(unsigned int width,
                                     unsigned int height)
   {
-    boost::mutex::scoped_lock lock(mutex_);
-    compositor_.UpdateSize(width, height);
-    InvalidateInternal();
+    {
+      boost::mutex::scoped_lock lock(mutex_);
+      compositor_.UpdateSize(width, height);
+    }
+
+    Invalidate();
   }
   
   void SdlCairoViewport::CreateSdlSurfaceFromCompositor()  // Assumes that the mutex is locked