diff options
author | Filippos Karapetis | 2008-12-10 19:39:26 +0000 |
---|---|---|
committer | Filippos Karapetis | 2008-12-10 19:39:26 +0000 |
commit | 39871b84de6733f624f3aeee3deac16a04ac3943 (patch) | |
tree | 327ee61cd6cdcc9df8950bdc8de2140b34ae06dd /engines/saga | |
parent | 5f4518a2ad36573516f1568cc6fca613bc31a8c0 (diff) | |
download | scummvm-rg350-39871b84de6733f624f3aeee3deac16a04ac3943.tar.gz scummvm-rg350-39871b84de6733f624f3aeee3deac16a04ac3943.tar.bz2 scummvm-rg350-39871b84de6733f624f3aeee3deac16a04ac3943.zip |
Some more dirty rectangle fixes, only 2 known glitches are left
svn-id: r35296
Diffstat (limited to 'engines/saga')
-rw-r--r-- | engines/saga/events.cpp | 2 | ||||
-rw-r--r-- | engines/saga/font.cpp | 3 | ||||
-rw-r--r-- | engines/saga/render.cpp | 8 |
3 files changed, 7 insertions, 6 deletions
diff --git a/engines/saga/events.cpp b/engines/saga/events.cpp index 3933881b61..0f99790b47 100644 --- a/engines/saga/events.cpp +++ b/engines/saga/events.cpp @@ -383,8 +383,6 @@ int Events::handleOneShot(Event *event) { free(buf); free(resourceData); - _vm->_render->setFullRefresh(true); - // Draw the scene. It won't be drawn by Render::drawScene(), as a placard is up _vm->_scene->draw(); } diff --git a/engines/saga/font.cpp b/engines/saga/font.cpp index 58c37a9e74..c1d01295a7 100644 --- a/engines/saga/font.cpp +++ b/engines/saga/font.cpp @@ -409,8 +409,7 @@ void Font::outFont(const FontStyle &drawFont, const char *text, size_t count, co } // end per-character processing rowLimit = (_vm->_gfx->getBackBufferHeight() < (textPoint.y + drawFont.header.charHeight)) ? _vm->_gfx->getBackBufferHeight() : textPoint.y + drawFont.header.charHeight; - // TODO: for now we add a dirty rect that ends at the right of the screen - _vm->_render->addDirtyRect(Common::Rect(textPoint.x, textPoint.y, _vm->_gfx->getBackBufferWidth(), rowLimit)); + _vm->_render->addDirtyRect(Common::Rect(point.x, point.y, textPoint.x, rowLimit)); } diff --git a/engines/saga/render.cpp b/engines/saga/render.cpp index 3bee811eab..57cb1ca325 100644 --- a/engines/saga/render.cpp +++ b/engines/saga/render.cpp @@ -82,7 +82,10 @@ void Render::drawScene() { int curMode = _vm->_interface->getMode(); assert(_initialized); - // TODO: Remove this + // TODO: Remove this to use dirty rectangles + // 2 known glitches exist: + // - When a placard is up, the text is not shown correctly + // - Sprite::drawClip() can draw sprites incorrectly in isometric scenes in ITE _fullRefresh = true; #ifdef SAGA_DEBUG @@ -221,7 +224,8 @@ void Render::addDirtyRect(Common::Rect rect) { break; // we need to break now, as the list is changed } } - _dirtyRects.push_back(rectClipped); + if (_vm->_interface->getFadeMode() != kFadeOut) + _dirtyRects.push_back(rectClipped); } } |