using sequenceID only from ScreenCoverage.

This commit is contained in:
rachytski 2012-02-23 17:17:47 +04:00 committed by Alex Zolotarev
parent f8de798bbc
commit 20a0b3282f
5 changed files with 24 additions and 16 deletions

View file

@ -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();

View file

@ -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;
}

View file

@ -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

View file

@ -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;

View file

@ -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;
};