Some more dirty rectangle fixes, only 2 known glitches are left

svn-id: r35296
This commit is contained in:
Filippos Karapetis 2008-12-10 19:39:26 +00:00
parent 5f4518a2ad
commit 39871b84de
3 changed files with 7 additions and 6 deletions

View file

@ -383,8 +383,6 @@ int Events::handleOneShot(Event *event) {
free(buf); free(buf);
free(resourceData); free(resourceData);
_vm->_render->setFullRefresh(true);
// Draw the scene. It won't be drawn by Render::drawScene(), as a placard is up // Draw the scene. It won't be drawn by Render::drawScene(), as a placard is up
_vm->_scene->draw(); _vm->_scene->draw();
} }

View file

@ -409,8 +409,7 @@ void Font::outFont(const FontStyle &drawFont, const char *text, size_t count, co
} // end per-character processing } // end per-character processing
rowLimit = (_vm->_gfx->getBackBufferHeight() < (textPoint.y + drawFont.header.charHeight)) ? _vm->_gfx->getBackBufferHeight() : textPoint.y + drawFont.header.charHeight; 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(point.x, point.y, textPoint.x, rowLimit));
_vm->_render->addDirtyRect(Common::Rect(textPoint.x, textPoint.y, _vm->_gfx->getBackBufferWidth(), rowLimit));
} }

View file

@ -82,7 +82,10 @@ void Render::drawScene() {
int curMode = _vm->_interface->getMode(); int curMode = _vm->_interface->getMode();
assert(_initialized); 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; _fullRefresh = true;
#ifdef SAGA_DEBUG #ifdef SAGA_DEBUG
@ -221,7 +224,8 @@ void Render::addDirtyRect(Common::Rect rect) {
break; // we need to break now, as the list is changed break; // we need to break now, as the list is changed
} }
} }
_dirtyRects.push_back(rectClipped); if (_vm->_interface->getFadeMode() != kFadeOut)
_dirtyRects.push_back(rectClipped);
} }
} }