Revert "Revert "split renderSync and transition nudging to allow client view syncing""
This reverts commit 263f9fad30.
This commit is contained in:
@@ -67,7 +67,10 @@ public:
|
||||
void renderStill(StillImageCallback callback);
|
||||
|
||||
// Triggers a synchronous or asynchronous render.
|
||||
void renderSync();
|
||||
bool renderSync();
|
||||
|
||||
// Nudges transitions one step, possibly notifying of the need for a rerender.
|
||||
void nudgeTransitions(bool forceRerender);
|
||||
|
||||
// Notifies the Map thread that the state has changed and an update might be necessary.
|
||||
void update(Update update = Update::Nothing);
|
||||
|
||||
@@ -703,9 +703,11 @@ std::chrono::steady_clock::duration secondsAsDuration(float duration)
|
||||
|
||||
_mbglMap->setSourceTileCacheSize(cacheSize);
|
||||
|
||||
_mbglMap->renderSync();
|
||||
bool needsRerender = _mbglMap->renderSync();
|
||||
|
||||
[self updateUserLocationAnnotationView];
|
||||
|
||||
_mbglMap->nudgeTransitions(needsRerender);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ void Map::renderStill(StillImageCallback callback) {
|
||||
FrameData{ view.getFramebufferSize() }, callback);
|
||||
}
|
||||
|
||||
void Map::renderSync() {
|
||||
bool Map::renderSync() {
|
||||
if (renderState == RenderState::never) {
|
||||
view.notifyMapChange(MapChangeWillStartRenderingMap);
|
||||
}
|
||||
@@ -69,9 +69,13 @@ void Map::renderSync() {
|
||||
view.notifyMapChange(MapChangeDidFinishRenderingMapFullyRendered);
|
||||
}
|
||||
|
||||
return result.needsRerender;
|
||||
}
|
||||
|
||||
void Map::nudgeTransitions(bool forceRerender) {
|
||||
if (transform->needsTransition()) {
|
||||
update(Update(transform->updateTransitions(Clock::now())));
|
||||
} else if (result.needsRerender) {
|
||||
} else if (forceRerender) {
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user