diff --git a/drape/overlay_handle.cpp b/drape/overlay_handle.cpp index 82600471f2..a8e9bdf9f4 100644 --- a/drape/overlay_handle.cpp +++ b/drape/overlay_handle.cpp @@ -163,7 +163,11 @@ uint64_t CalculateOverlayPriority(int minZoomLevel, uint8_t rank, float depth) // - Rank of the feature (the more the better); // [1 byte - zoom][4 bytes - priority][1 byte - rank][1 byte - reserved][1 byte - reserved]. uint8_t const minZoom = 0xFF - static_cast(max(minZoomLevel, 0)); - uint32_t const priority = static_cast(depth); + + float const kMinDepth = -100000.0f; + float const kMaxDepth = 100000.0f; + float const d = my::clamp(depth, kMinDepth, kMaxDepth) + kMaxDepth; + uint32_t const priority = static_cast(d); return (static_cast(minZoom) << 56) | (static_cast(priority) << 24) | diff --git a/drape/overlay_tree.cpp b/drape/overlay_tree.cpp index 57e0cec621..1a9e0ce55b 100644 --- a/drape/overlay_tree.cpp +++ b/drape/overlay_tree.cpp @@ -178,7 +178,7 @@ void OverlayTree::EndOverlayPlacing() } bool OverlayTree::CheckHandle(ref_ptr handle, int currentRank, - detail::OverlayInfo & parentOverlay) + detail::OverlayInfo & parentOverlay) const { if (currentRank == dp::OverlayRank0) return true; diff --git a/drape/overlay_tree.hpp b/drape/overlay_tree.hpp index 093016a484..1644c6775c 100644 --- a/drape/overlay_tree.hpp +++ b/drape/overlay_tree.hpp @@ -70,7 +70,7 @@ private: void InsertHandle(ref_ptr handle, bool isTransparent, detail::OverlayInfo const & parentOverlay); bool CheckHandle(ref_ptr handle, int currentRank, - detail::OverlayInfo & parentOverlay); + detail::OverlayInfo & parentOverlay) const; void AddHandleToDelete(detail::OverlayInfo const & overlay); int m_frameCounter; diff --git a/drape_frontend/apply_feature_functors.cpp b/drape_frontend/apply_feature_functors.cpp index b09dfde51e..4ef9de053b 100644 --- a/drape_frontend/apply_feature_functors.cpp +++ b/drape_frontend/apply_feature_functors.cpp @@ -220,7 +220,7 @@ void BaseApplyFeature::ExtractCaptionParams(CaptionDefProto const * primaryProto params.m_primaryText = m_captions.GetMainText(); params.m_primaryTextFont = decl; params.m_primaryOffset = GetOffset(primaryProto); - params.m_primaryOptional = primaryProto->is_optional(); + params.m_primaryOptional = primaryProto->has_is_optional() ? primaryProto->is_optional() : true; params.m_secondaryOptional = true; if (secondaryProto) @@ -230,7 +230,7 @@ void BaseApplyFeature::ExtractCaptionParams(CaptionDefProto const * primaryProto params.m_secondaryText = m_captions.GetAuxText(); params.m_secondaryTextFont = auxDecl; - params.m_secondaryOptional = secondaryProto->is_optional(); + params.m_secondaryOptional = secondaryProto->has_is_optional() ? secondaryProto->is_optional() : true; } } diff --git a/drape_frontend/render_group.cpp b/drape_frontend/render_group.cpp index f0f8662695..48cd16d2e9 100755 --- a/drape_frontend/render_group.cpp +++ b/drape_frontend/render_group.cpp @@ -58,11 +58,6 @@ void RenderGroup::Render(ScreenBase const & screen) renderBucket->Render(screen); } -void RenderGroup::PrepareForAdd(size_t countForAdd) -{ - m_renderBuckets.reserve(m_renderBuckets.size() + countForAdd); -} - void RenderGroup::AddBucket(drape_ptr && bucket) { m_renderBuckets.push_back(move(bucket)); @@ -114,7 +109,7 @@ void RenderGroup::Disappear() { if (m_state.GetDepthLayer() == dp::GLState::OverlayLayer) { - m_disappearAnimation = make_unique(0.2 /* duration */, 0.05 /* delay */, + m_disappearAnimation = make_unique(0.1 /* duration */, 0.1 /* delay */, 1.0 /* startOpacity */, 0.0 /* endOpacity */); } else diff --git a/drape_frontend/render_group.hpp b/drape_frontend/render_group.hpp index 5b40029da4..f20616b0cb 100755 --- a/drape_frontend/render_group.hpp +++ b/drape_frontend/render_group.hpp @@ -51,7 +51,6 @@ public: void CollectOverlay(ref_ptr tree); void Render(ScreenBase const & screen) override; - void PrepareForAdd(size_t countForAdd); void AddBucket(drape_ptr && bucket); bool IsEmpty() const { return m_renderBuckets.empty(); } diff --git a/geometry/tree4d.hpp b/geometry/tree4d.hpp index 3d25a1f6b5..f0a61bb6d0 100644 --- a/geometry/tree4d.hpp +++ b/geometry/tree4d.hpp @@ -227,7 +227,7 @@ namespace m4 } template - bool FindNode(ToDo toDo) const + bool FindNode(ToDo const & toDo) const { for (ValueT const & v : m_tree) if (toDo(v.m_val))