From 3943834834a76049701e3ac12d219faa3ac89f7d Mon Sep 17 00:00:00 2001 From: ExMix Date: Tue, 17 Dec 2013 16:01:42 +0300 Subject: [PATCH] [drape]use engine context to draw map shapes --- drape_frontend/read_mwm_task.cpp | 21 ++++++++++++++++++--- drape_frontend/read_mwm_task.hpp | 10 +++++++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/drape_frontend/read_mwm_task.cpp b/drape_frontend/read_mwm_task.cpp index 91d9eaf8e3..a62d3b4dac 100644 --- a/drape_frontend/read_mwm_task.cpp +++ b/drape_frontend/read_mwm_task.cpp @@ -1,11 +1,16 @@ #include "read_mwm_task.hpp" +#include "../std/vector.hpp" + namespace df { - ReadMWMTask::ReadMWMTask(TileKey const & tileKey, df::MemoryFeatureIndex & index) + ReadMWMTask::ReadMWMTask(TileKey const & tileKey, + MemoryFeatureIndex & index, + EngineContext &context) : m_tileInfo(tileKey) , m_isFinished(false) , m_index(index) + , m_context(context) { } @@ -16,15 +21,22 @@ namespace df vector indexesToRead; m_index.ReadFeaturesRequest(m_tileInfo.m_featureInfo, indexesToRead); + + if (!indexesToRead.empty()) + m_context.BeginReadTile(m_tileInfo.m_key); + for (size_t i = 0; i < indexesToRead.size(); ++i) { - df::FeatureInfo & info = m_tileInfo.m_featureInfo[i]; + FeatureInfo & info = m_tileInfo.m_featureInfo[i]; ReadGeometry(info.m_id); info.m_isOwner = true; } + + if (!indexesToRead.empty()) + m_context.EndReadTile(m_tileInfo.m_key); } - df::TileInfo const & ReadMWMTask::GetTileInfo() const + TileInfo const & ReadMWMTask::GetTileInfo() const { return m_tileInfo; } @@ -53,5 +65,8 @@ namespace df void ReadMWMTask::ReadGeometry(const FeatureID & id) { ///TODO read geometry + ///TODO proccess geometry by styles + ///foreach shape in shapes + /// m_context.InsertShape(shape); } } diff --git a/drape_frontend/read_mwm_task.hpp b/drape_frontend/read_mwm_task.hpp index 8c5b319e39..260378b959 100644 --- a/drape_frontend/read_mwm_task.hpp +++ b/drape_frontend/read_mwm_task.hpp @@ -2,6 +2,7 @@ #include "tile_info.hpp" #include "memory_feature_index.hpp" +#include "engine_context.hpp" #include "../base/thread.hpp" #include "../base/object_tracker.hpp" @@ -11,7 +12,9 @@ namespace df class ReadMWMTask : public threads::IRoutine { public: - ReadMWMTask(TileKey const & tileKey, df::MemoryFeatureIndex & index); + ReadMWMTask(TileKey const & tileKey, + MemoryFeatureIndex & index, + EngineContext & context); virtual void Do(); @@ -26,9 +29,10 @@ namespace df void ReadGeometry(const FeatureID & id); private: - df::TileInfo m_tileInfo; + TileInfo m_tileInfo; bool m_isFinished; - df::MemoryFeatureIndex & m_index; + MemoryFeatureIndex & m_index; + EngineContext & m_context; #ifdef DEBUG dbg::ObjectTracker m_objTracker;