Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Sorokin <sorok-roma@yandex.ru>2014-08-20 17:46:38 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:25:17 +0300
commitd28f9cb2e29e53b65d1475b5374148e790eaaaaa (patch)
treef68a39d399fe83567673b28cd0a389cfc8d68f21
parentdfa9cc1d67404cafc9eefd3bdcec7b26abe69e55 (diff)
ScreenBase now passed to GetAttributeMutation
-rw-r--r--drape/render_bucket.cpp10
-rw-r--r--drape/render_bucket.hpp2
-rw-r--r--drape_frontend/frontend_renderer.cpp5
-rw-r--r--drape_frontend/render_group.cpp4
-rw-r--r--drape_frontend/render_group.hpp2
5 files changed, 14 insertions, 9 deletions
diff --git a/drape/render_bucket.cpp b/drape/render_bucket.cpp
index faffdd0d10..6abd709ea7 100644
--- a/drape/render_bucket.cpp
+++ b/drape/render_bucket.cpp
@@ -50,19 +50,20 @@ namespace
void AccumulateMutations(MasterPointer<OverlayHandle> const & handle,
RefPointer<IndexBufferMutator> indexMutator,
- RefPointer<AttributeBufferMutator> attributeMutator)
+ RefPointer<AttributeBufferMutator> attributeMutator,
+ ScreenBase const & screen)
{
if (handle->IsVisible())
{
handle->GetElementIndexes(indexMutator);
if (handle->HasDynamicAttributes())
- handle->GetAttributeMutation(attributeMutator);
+ handle->GetAttributeMutation(attributeMutator, screen);
}
}
} // namespace
-void RenderBucket::Render()
+void RenderBucket::Render(ScreenBase const & screen)
{
if (!m_overlay.empty())
{
@@ -71,7 +72,8 @@ void RenderBucket::Render()
IndexBufferMutator indexMutator(6 * m_overlay.size());
for_each(m_overlay.begin(), m_overlay.end(), bind(&AccumulateMutations, _1,
MakeStackRefPointer(&indexMutator),
- MakeStackRefPointer(&attributeMutator)));
+ MakeStackRefPointer(&attributeMutator),
+ screen));
m_buffer->ApplyMutation(MakeStackRefPointer(&indexMutator),
MakeStackRefPointer(&attributeMutator));
}
diff --git a/drape/render_bucket.hpp b/drape/render_bucket.hpp
index 2db38aa162..cbd30ac49d 100644
--- a/drape/render_bucket.hpp
+++ b/drape/render_bucket.hpp
@@ -23,7 +23,7 @@ public:
void Update(ScreenBase const & modelView);
void CollectOverlayHandles(RefPointer<OverlayTree> tree);
- void Render();
+ void Render(const ScreenBase & screen);
private:
vector<MasterPointer<OverlayHandle> > m_overlay;
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index 4b4f55e216..7bf347f04e 100644
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -220,7 +220,7 @@ void FrontendRenderer::RenderScene()
ApplyUniforms(m_generalUniforms, program);
ApplyState(state, program, m_textureController.GetRefPointer());
- group->Render();
+ group->Render(m_view);
}
#ifdef DRAW_INFO
@@ -328,6 +328,9 @@ void FrontendRenderer::ThreadMain()
//int messageCount = 0;
double availableTime = VSyncInterval - (timer.ElapsedSeconds() /*+ avarageMessageTime*/);
+ if (availableTime < 0.0)
+ availableTime = 0.01;
+
while (availableTime > 0)
{
ProcessSingleMessage(availableTime * 1000.0);
diff --git a/drape_frontend/render_group.cpp b/drape_frontend/render_group.cpp
index 3e79979235..84f6844e8b 100644
--- a/drape_frontend/render_group.cpp
+++ b/drape_frontend/render_group.cpp
@@ -34,11 +34,11 @@ void RenderGroup::CollectOverlay(dp::RefPointer<dp::OverlayTree> tree)
tree));
}
-void RenderGroup::Render()
+void RenderGroup::Render(ScreenBase const & screen)
{
ASSERT(m_pendingOnDelete == false, ());
for_each(m_renderBuckets.begin(), m_renderBuckets.end(), bind(&dp::RenderBucket::Render,
- bind(&dp::NonConstGetter<dp::RenderBucket>, _1)));
+ bind(&dp::NonConstGetter<dp::RenderBucket>, _1), screen));
}
void RenderGroup::PrepareForAdd(size_t countForAdd)
diff --git a/drape_frontend/render_group.hpp b/drape_frontend/render_group.hpp
index 040097c8be..9c0c2e6778 100644
--- a/drape_frontend/render_group.hpp
+++ b/drape_frontend/render_group.hpp
@@ -23,7 +23,7 @@ public:
void Update(ScreenBase const & modelView);
void CollectOverlay(dp::RefPointer<dp::OverlayTree> tree);
- void Render();
+ void Render(const ScreenBase & screen);
void PrepareForAdd(size_t countForAdd);
void AddBucket(dp::TransferPointer<dp::RenderBucket> bucket);