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