Fixed updating features waiting status.

This commit is contained in:
Daria Volvenkova 2016-02-09 15:19:40 +03:00 committed by Sergey Yershov
parent 0f8ef5c4ec
commit 921281f1fd
2 changed files with 18 additions and 20 deletions

View file

@ -882,9 +882,7 @@ void FrontendRenderer::RenderScene(ScreenBase const & modelView)
m2::RectD const & screenRect = modelView.ClipRect();
auto isFeaturesWaiting = [&screenRect, waitFeatures](m2::RectD const & rect)
{
if (waitFeatures && rect.IsIntersect(screenRect))
return true;
return false;
return waitFeatures && rect.IsIntersect(screenRect);
};
for (RenderLayer & layer : m_layers)

View file

@ -183,27 +183,27 @@ void RenderGroup::Disappear()
bool RenderGroup::UpdateFeaturesWaitingStatus(TCheckFeaturesWaiting isFeaturesWaiting)
{
if (m_sharedFeaturesWaiting)
{
m2::RectD const tileRect = GetTileKey().GetGlobalRect();
bool const isTileVisible = isFeaturesWaiting(tileRect);
if (!m_sharedFeaturesWaiting)
return false;
for (size_t i = 0; i < m_renderBuckets.size(); )
m2::RectD const tileRect = GetTileKey().GetGlobalRect();
bool const isTileVisible = isFeaturesWaiting(tileRect);
for (size_t i = 0; i < m_renderBuckets.size(); )
{
bool visibleBucket = m_renderBuckets[i]->IsShared() ? m_renderBuckets[i]->IsFeaturesWaiting(isFeaturesWaiting)
: isTileVisible;
if (!visibleBucket)
{
bool visibleBucket = m_renderBuckets[i]->IsShared() ? m_renderBuckets[i]->IsFeaturesWaiting(isFeaturesWaiting)
: isTileVisible;
if (!visibleBucket)
{
swap(m_renderBuckets[i], m_renderBuckets.back());
m_renderBuckets.pop_back();
}
else
{
++i;
}
swap(m_renderBuckets[i], m_renderBuckets.back());
m_renderBuckets.pop_back();
}
else
{
++i;
}
m_sharedFeaturesWaiting = !m_renderBuckets.empty();
}
m_sharedFeaturesWaiting = !m_renderBuckets.empty();
return m_renderBuckets.empty();
}