aboutsummaryrefslogtreecommitdiff
path: root/gui/ThemeRenderer.cpp
diff options
context:
space:
mode:
authorVicent Marti2008-07-22 17:39:30 +0000
committerVicent Marti2008-07-22 17:39:30 +0000
commit10dff40de64b9c9e8b136a556a3a4bb6f69bc098 (patch)
tree6f79a139d869b44002a4070929056e9ef7ddc68d /gui/ThemeRenderer.cpp
parenta9ab9c0189906229b7ec730fa78eeb18e966a9e1 (diff)
downloadscummvm-rg350-10dff40de64b9c9e8b136a556a3a4bb6f69bc098.tar.gz
scummvm-rg350-10dff40de64b9c9e8b136a556a3a4bb6f69bc098.tar.bz2
scummvm-rg350-10dff40de64b9c9e8b136a556a3a4bb6f69bc098.zip
Dirty screen handling, round three.
svn-id: r33209
Diffstat (limited to 'gui/ThemeRenderer.cpp')
-rw-r--r--gui/ThemeRenderer.cpp19
1 files changed, 7 insertions, 12 deletions
diff --git a/gui/ThemeRenderer.cpp b/gui/ThemeRenderer.cpp
index d31067fbfd..1ca3d4fcc4 100644
--- a/gui/ThemeRenderer.cpp
+++ b/gui/ThemeRenderer.cpp
@@ -592,18 +592,13 @@ void ThemeRenderer::renderDirtyScreen() {
if (_dirtyScreen.empty())
return;
- Common::List<Common::Rect>::iterator cur;
- for (Common::List<Common::Rect>::iterator d = _dirtyScreen.begin(); d != _dirtyScreen.end(); ++d) {
- cur = d;
-
- do {
- ++d;
- if (cur->intersects(*d))
- d = _dirtyScreen.reverse_erase(d);
- } while (d != _dirtyScreen.end());
-
- d = cur;
- _vectorRenderer->copyFrame(_system, *d);
+ Common::List<Common::Rect>::const_iterator i, j;
+ for (i = _dirtyScreen.begin(); i != _dirtyScreen.end(); ++i) {
+ for (j = i; j != _dirtyScreen.end(); ++j)
+ if (j != i && i->intersects(*j))
+ j = _dirtyScreen.reverse_erase(j);
+
+ _vectorRenderer->copyFrame(_system, *i);
}
_dirtyScreen.clear();