#pragma once #include "drape_frontend/map_shape.hpp" #include "drape_frontend/tile_utils.hpp" #include "drape_frontend/threads_commutator.hpp" #include "drape_frontend/traffic_generator.hpp" #include "drape/pointers.hpp" namespace dp { class TextureManager; } // namespace dp namespace df { class Message; class EngineContext { public: EngineContext(TileKey tileKey, ref_ptr commutator, ref_ptr texMng); TileKey const & GetTileKey() const { return m_tileKey; } ref_ptr GetTextureManager() const; void BeginReadTile(); void Flush(TMapShapes && shapes); void FlushOverlays(TMapShapes && shapes); void FlushTrafficGeometry(TrafficSegmentsGeometry && geometry); void EndReadTile(); private: void PostMessage(drape_ptr && message); TileKey m_tileKey; ref_ptr m_commutator; ref_ptr m_texMng; }; } // namespace df