Some more dirty rectangle fixes, only 2 known glitches are left
svn-id: r35296
This commit is contained in:
parent
5f4518a2ad
commit
39871b84de
3 changed files with 7 additions and 6 deletions
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue