[core] Add onRemoveUnusedStyleImages observer API

This commit is contained in:
Alexander Shalamov
2019-05-03 16:11:41 +03:00
parent 0344ce36c4
commit d24524440c
4 changed files with 76 additions and 47 deletions

View File

@@ -511,9 +511,10 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
}
#endif
const bool needsRepaint = isMapModeContinuous && hasTransitions(parameters.timePoint);
observer->onDidFinishRenderingFrame(
loaded ? RendererObserver::RenderMode::Full : RendererObserver::RenderMode::Partial,
isMapModeContinuous && hasTransitions(parameters.timePoint)
needsRepaint
);
if (!loaded) {
@@ -521,6 +522,10 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
} else if (renderState != RenderState::Fully) {
renderState = RenderState::Fully;
observer->onDidFinishRenderingMap();
} else if (!needsRepaint) {
// Notify observer about unused images when map is fully loaded
// and there are no ongoing transitions.
imageManager->reduceMemoryUseIfCacheSizeExceedsLimit();
}
if (updateParameters.mode == MapMode::Continuous) {
@@ -661,10 +666,8 @@ void Renderer::Impl::reduceMemoryUse() {
entry.second->reduceMemoryUse();
}
backend.getContext().performCleanup();
imageManager->reduceMemoryUse();
observer->onInvalidate();
if (imageManager) {
imageManager->reduceMemoryUse();
}
}
void Renderer::Impl::dumpDebugLogs() {