Substitute nudgeTransitions with async view invalidation

This commit is contained in:
Bruno de Oliveira Abinader
2015-08-30 22:25:11 +03:00
parent e920328223
commit 0b501e0566
8 changed files with 18 additions and 14 deletions

View File

@@ -55,6 +55,7 @@ void Map::renderSync() {
view.notifyMapChange(MapChangeWillStartRenderingFrame);
const Update flags = transform->updateTransitions(Clock::now());
const bool fullyLoaded = context->invokeSync<bool>(
&MapContext::renderSync, transform->getState(), FrameData { view.getFramebufferSize() });
@@ -68,14 +69,12 @@ void Map::renderSync() {
renderState = RenderState::fully;
view.notifyMapChange(MapChangeDidFinishRenderingMapFullyRendered);
}
}
void Map::nudgeTransitions() {
Update flags = transform->updateTransitions(Clock::now());
if (data->getNeedsRepaint()) {
flags |= Update::Repaint;
// Triggers an asynchronous update, that eventually triggers a view
// invalidation, causing renderSync to be called again if in transition.
if (transform->inTransition()) {
update(flags);
}
update(flags);
}
void Map::update(Update flags) {