#pragma once #include "geometry/rect2d.hpp" #include "geometry/screenbase.hpp" #include "std/cstdint.hpp" #include "std/noncopyable.hpp" namespace df { extern uint32_t const YotaDevice; class VisualParams : private noncopyable { public: static void Init(double vs, uint32_t tileSize, vector const & additionalOptions = vector()); static VisualParams & Instance(); VisualParams(); string const & GetResourcePostfix() const; double GetVisualScale() const; uint32_t GetTileSize() const; private: int m_tileSize; double m_visualScale; bool m_isYotaDevice; }; m2::RectD const & GetWorldRect(); int GetTileScaleBase(ScreenBase const & s); int GetTileScaleBase(m2::RectD const & r); /// @return Adjusting base tile scale to look the same across devices with different /// tile size and visual scale values. int GetTileScaleIncrement(); int GetDrawTileScale(int baseScale); int GetDrawTileScale(ScreenBase const & s); int GetDrawTileScale(m2::RectD const & r); m2::RectD GetRectForDrawScale(int drawScale, m2::PointD const & center); m2::RectD GetRectForDrawScale(double drawScale, m2::PointD const & center); int CalculateTileSize(int screenWidth, int screenHeight); } // namespace df