diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2009-06-09 03:09:02 +0200 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2009-06-09 03:09:02 +0200 |
| commit | f34ad86a302613a2831c7b2080c20696be6a4dc9 (patch) | |
| tree | 27f971f8b1178622f67a156281ae4c38de45e819 | |
| parent | bdd9e446243db1603e5ab6018ecbed3d4c8a59bd (diff) | |
| download | enigma2-f34ad86a302613a2831c7b2080c20696be6a4dc9.tar.gz enigma2-f34ad86a302613a2831c7b2080c20696be6a4dc9.zip | |
optimize manual blits by not forcing them at gPainter::end, but instead call flush manually
| -rw-r--r-- | lib/gdi/grc.cpp | 8 | ||||
| -rw-r--r-- | lib/gdi/grc.h | 2 | ||||
| -rw-r--r-- | lib/gui/ewidgetdesktop.cpp | 4 |
3 files changed, 13 insertions, 1 deletions
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(); } } |
