diff --git a/yg/overlay_renderer.cpp b/yg/overlay_renderer.cpp index 7bc0d9026b..dad25e9711 100644 --- a/yg/overlay_renderer.cpp +++ b/yg/overlay_renderer.cpp @@ -42,7 +42,6 @@ namespace yg params.m_position = pos; params.m_pivot = pt; params.m_symbolName = symbolName; - params.m_styleID = 0; params.m_skin = skin().get(); shared_ptr oe(new SymbolElement(params)); diff --git a/yg/symbol_element.cpp b/yg/symbol_element.cpp index 5d29366b91..c51450fa40 100644 --- a/yg/symbol_element.cpp +++ b/yg/symbol_element.cpp @@ -10,24 +10,23 @@ namespace yg { SymbolElement::SymbolElement(Params const & p) : base_t(p), - m_styleID(p.m_styleID), - m_symbolName(p.m_symbolName) + m_symbolName(p.m_symbolName), + m_symbolRect(0, 0, 0, 0) { - if (m_styleID == 0) - m_styleID = p.m_skin->mapSymbol(m_symbolName.c_str()); + uint32_t styleID = p.m_skin->mapSymbol(m_symbolName.c_str()); + ResourceStyle const * style = p.m_skin->fromID(styleID); - m_style = p.m_skin->fromID(m_styleID); + if (style == 0) + { + LOG(LINFO, ("POI ", m_symbolName, " wasn't found on the current skin")); + return; + } - if (m_style == 0) - LOG(LINFO, ("drawSymbolImpl: styleID=", m_styleID, " wasn't found on the current skin")); - else - m_symbolRect = m_style->m_texRect; + m_symbolRect = style->m_texRect; } SymbolElement::SymbolElement(SymbolElement const & se, math::Matrix const & m) : base_t(se), - m_styleID(0), - m_style(0), m_symbolName(se.m_symbolName), m_symbolRect(se.m_symbolRect) { @@ -60,17 +59,22 @@ namespace yg if (!isNeedRedraw()) return; - if (m_styleID == 0) + uint32_t styleID = r->skin()->mapSymbol(m_symbolName.c_str()); + ResourceStyle const * style = r->skin()->fromID(styleID); + + if (style == 0) { - m_styleID = r->skin()->mapSymbol(m_symbolName.c_str()); - m_style = r->skin()->fromID(m_styleID); - m_symbolRect = m_style->m_texRect; + LOG(LINFO, ("POI(", m_symbolName, ") wasn't found on the current skin")); + return; } - if (m_style == 0) + if (style->m_texRect != m_symbolRect) + { + LOG(LINFO, ("POI(", m_symbolName, ") rects do not match.")); return; + } - m2::RectI texRect(m_symbolRect); + m2::RectI texRect(style->m_texRect); texRect.Inflate(-1, -1); m2::PointD posPt = tieRect(m2::RectD(texRect), m); @@ -79,12 +83,7 @@ namespace yg texRect.minX(), texRect.minY(), texRect.maxX(), texRect.maxY(), posPt.x, posPt.y, posPt.x + texRect.SizeX(), posPt.y + texRect.SizeY(), yg::maxDepth, - m_style->m_pipelineID); - } - - uint32_t SymbolElement::styleID() const - { - return m_styleID; + style->m_pipelineID); } void SymbolElement::map(StylesCache * stylesCache) const diff --git a/yg/symbol_element.hpp b/yg/symbol_element.hpp index aa93b9d77e..a7844f3196 100644 --- a/yg/symbol_element.hpp +++ b/yg/symbol_element.hpp @@ -12,10 +12,8 @@ namespace yg { private: - mutable uint32_t m_styleID; - mutable ResourceStyle const * m_style; string m_symbolName; - mutable m2::RectU m_symbolRect; + m2::RectU m_symbolRect; mutable vector m_boundRects; @@ -29,7 +27,6 @@ namespace yg { Skin * m_skin; string m_symbolName; - uint32_t m_styleID; }; SymbolElement(Params const & p);