forked from organicmaps/organicmaps
using sequenceID only from ScreenCoverage.
This commit is contained in:
parent
f8de798bbc
commit
20a0b3282f
5 changed files with 24 additions and 16 deletions
|
@ -95,6 +95,7 @@ void CoverageGenerator::CoverScreen(ScreenBase const & screen, int sequenceID)
|
|||
ASSERT(m_workCoverage == 0, ());
|
||||
|
||||
m_workCoverage = m_currentCoverage->Clone();
|
||||
m_workCoverage->SetSequenceID(sequenceID);
|
||||
m_workCoverage->SetStylesCache(m_workStylesCache.get());
|
||||
m_workCoverage->SetScreen(screen);
|
||||
m_workCoverage->CacheInfoLayer();
|
||||
|
@ -129,9 +130,11 @@ void CoverageGenerator::AddMergeTileTask(Tiler::RectInfo const & rectInfo)
|
|||
|
||||
void CoverageGenerator::MergeTile(Tiler::RectInfo const & rectInfo)
|
||||
{
|
||||
|
||||
ASSERT(m_workCoverage == 0, ());
|
||||
|
||||
m_workCoverage = m_currentCoverage->Clone();
|
||||
m_workCoverage->SetSequenceID(sequenceID);
|
||||
m_workCoverage->SetStylesCache(m_workStylesCache.get());
|
||||
m_workCoverage->Merge(rectInfo);
|
||||
m_workCoverage->CacheInfoLayer();
|
||||
|
|
|
@ -324,7 +324,7 @@ void ScreenCoverage::SetScreen(ScreenBase const & screen)
|
|||
/// clearing all old commands
|
||||
m_tileRenderer->ClearCommands();
|
||||
/// setting new sequenceID
|
||||
m_tileRenderer->SetSequenceID(m_tiler.sequenceID());
|
||||
m_tileRenderer->SetSequenceID(GetSequenceID());
|
||||
|
||||
m_tileRenderer->CancelCommands();
|
||||
|
||||
|
@ -332,12 +332,12 @@ void ScreenCoverage::SetScreen(ScreenBase const & screen)
|
|||
|
||||
// adding commands for tiles which aren't in cache
|
||||
for (size_t i = 0; i < firstClassTiles.size(); ++i)
|
||||
m_tileRenderer->AddCommand(firstClassTiles[i], m_tiler.sequenceID(),
|
||||
m_tileRenderer->AddCommand(firstClassTiles[i], GetSequenceID(),
|
||||
bind(&CoverageGenerator::AddMergeTileTask, m_coverageGenerator,
|
||||
firstClassTiles[i]));
|
||||
|
||||
for (size_t i = 0; i < secondClassTiles.size(); ++i)
|
||||
m_tileRenderer->AddCommand(secondClassTiles[i], m_tiler.sequenceID());
|
||||
m_tileRenderer->AddCommand(secondClassTiles[i], GetSequenceID());
|
||||
}
|
||||
|
||||
ScreenCoverage::~ScreenCoverage()
|
||||
|
@ -425,3 +425,13 @@ bool ScreenCoverage::IsPartialCoverage() const
|
|||
{
|
||||
return !m_newTileRects.empty();
|
||||
}
|
||||
|
||||
void ScreenCoverage::SetSequenceID(int id)
|
||||
{
|
||||
m_sequenceID = id;
|
||||
}
|
||||
|
||||
int ScreenCoverage::GetSequenceID() const
|
||||
{
|
||||
return m_sequenceID;
|
||||
}
|
||||
|
|
|
@ -32,6 +32,8 @@ class ScreenCoverage
|
|||
{
|
||||
private:
|
||||
|
||||
/// Unique ID of this screen coverage
|
||||
int m_sequenceID;
|
||||
/// Queue to put new rendering tasks in
|
||||
TileRenderer * m_tileRenderer;
|
||||
/// Tiler to compute visible and predicted tiles
|
||||
|
@ -71,6 +73,11 @@ public:
|
|||
CoverageGenerator * coverageGenerator);
|
||||
|
||||
ScreenCoverage * Clone();
|
||||
|
||||
/// set unique ID for all actions, used to compute this coverage
|
||||
void SetSequenceID(int id);
|
||||
/// get unique ID for all actions, used to compute this coverage
|
||||
int GetSequenceID() const;
|
||||
/// Is this screen coverage partial, which means that it contains non-drawn rects
|
||||
bool IsPartialCoverage() const;
|
||||
/// Is this screen coverage contains only empty tiles
|
||||
|
|
|
@ -107,9 +107,6 @@ int Tiler::getTileScale(ScreenBase const & s, int ts) const
|
|||
|
||||
void Tiler::seed(ScreenBase const & screen, m2::PointD const & centerPt)
|
||||
{
|
||||
if (screen != m_screen)
|
||||
++m_sequenceID;
|
||||
|
||||
m_screen = screen;
|
||||
m_centerPt = centerPt;
|
||||
|
||||
|
@ -174,15 +171,9 @@ void Tiler::tiles(vector<RectInfo> & tiles, int depth)
|
|||
|
||||
Tiler::Tiler()
|
||||
: m_drawScale(0),
|
||||
m_tileScale(0),
|
||||
m_sequenceID(0)
|
||||
m_tileScale(0)
|
||||
{}
|
||||
|
||||
size_t Tiler::sequenceID() const
|
||||
{
|
||||
return m_sequenceID;
|
||||
}
|
||||
|
||||
int Tiler::drawScale() const
|
||||
{
|
||||
return m_drawScale;
|
||||
|
|
|
@ -31,7 +31,6 @@ private:
|
|||
m2::PointD m_centerPt;
|
||||
int m_drawScale;
|
||||
int m_tileScale;
|
||||
size_t m_sequenceID;
|
||||
|
||||
int getDrawScale(ScreenBase const & s, int ts, double k) const;
|
||||
int getTileScale(ScreenBase const & s, int ts) const;
|
||||
|
@ -46,8 +45,6 @@ public:
|
|||
void tiles(vector<RectInfo> & tiles, int depth);
|
||||
bool isLeaf(RectInfo const & ri) const;
|
||||
|
||||
size_t sequenceID() const;
|
||||
|
||||
int drawScale() const;
|
||||
int tileScale() const;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue