From: Felix Domke Date: Tue, 9 Jun 2009 01:09:02 +0000 (+0200) Subject: optimize manual blits by not forcing them at gPainter::end, but instead call flush... X-Git-Tag: 2.6.0~257 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/f34ad86a302613a2831c7b2080c20696be6a4dc9 optimize manual blits by not forcing them at gPainter::end, but instead call flush manually --- diff --git a/lib/gdi/grc.cpp b/lib/gdi/grc.cpp index 5ef68332..4b2c5550 100644 --- a/lib/gdi/grc.cpp +++ b/lib/gdi/grc.cpp @@ -569,7 +569,7 @@ void gPainter::setCompositing(gCompositingData *comp) m_rc->submit(o); } -void gPainter::end() +void gPainter::flush() { if ( m_dc->islocked() ) return; @@ -579,6 +579,12 @@ void gPainter::end() m_rc->submit(o); } +void gPainter::end() +{ + if ( m_dc->islocked() ) + return; +} + gDC::gDC() { m_spinner_pic = 0; diff --git a/lib/gdi/grc.h b/lib/gdi/grc.h index 3b6ed325..5d0106b3 100644 --- a/lib/gdi/grc.h +++ b/lib/gdi/grc.h @@ -262,6 +262,8 @@ public: void flip(); void notify(); void setCompositing(gCompositingData *comp); + + void flush(); }; class gDC: public iObject diff --git a/lib/gui/ewidgetdesktop.cpp b/lib/gui/ewidgetdesktop.cpp index fa532359..98bc1f7d 100644 --- a/lib/gui/ewidgetdesktop.cpp +++ b/lib/gui/ewidgetdesktop.cpp @@ -332,6 +332,10 @@ void eWidgetDesktop::paint() if (m_comp_mode == cmBuffered) { // redrawComposition(0); + } else + { + gPainter painter(m_screen.m_dc); + painter.flush(); } }