From d43cc4e60b03ea6adc083c79a2f36bc81ce1d9f4 Mon Sep 17 00:00:00 2001
From: Stephane Albert <stephane.albert@c-s.fr>
Date: Fri, 10 Apr 2015 11:37:50 +0200
Subject: [PATCH] ENH: Optimized ImageViewWidget::mouseMove() not calling
 ::updateGL() when no shader effect is enabled.

---
 Code/Common/Gui/mvdImageViewWidget.cxx | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/Code/Common/Gui/mvdImageViewWidget.cxx b/Code/Common/Gui/mvdImageViewWidget.cxx
index cee04b850f..61d054c6cd 100644
--- a/Code/Common/Gui/mvdImageViewWidget.cxx
+++ b/Code/Common/Gui/mvdImageViewWidget.cxx
@@ -529,8 +529,31 @@ ImageViewWidget
 
     emit PhysicalCursorPositionChanged( event->pos(), in, out, pixel );
 
-    updateGL();
+    {
+    StackedLayerModel * stackedLayerModel = m_Renderer->GetLayerStack();
+    assert( stackedLayerModel!=NULL );
+
+    for( StackedLayerModel::ConstIterator it( stackedLayerModel->Begin() );
+	 it!=stackedLayerModel->End();
+	 ++ it )
+      {
+      assert( it->second!=NULL );
+
+      if( it->second->inherits( AbstractImageModel::staticMetaObject.className() ) )
+	{
+	VectorImageModel * imageModel = qobject_cast< VectorImageModel * >( it->second );
+	assert( imageModel!=NULL );
 
+	if( imageModel->GetSettings().GetEffect()!=ImageSettings::EFFECT_NONE &&
+	    imageModel->GetSettings().GetEffect()!=ImageSettings::EFFECT_NORMAL )
+	  {
+	  updateGL();
+
+	  break;
+	  }
+	}
+      }
+    }
 #endif  
 }
 
-- 
GitLab