diff --git a/drape/overlay_tree.cpp b/drape/overlay_tree.cpp index 43f964735e..24e6065da7 100644 --- a/drape/overlay_tree.cpp +++ b/drape/overlay_tree.cpp @@ -37,7 +37,7 @@ void OverlayTree::Add(ref_ptr handle, bool isTransparent) */ ForEachInRect(pixelRect, [&] (detail::OverlayInfo const & info) { - if (handle->IsIntersect(modelView, info.m_handle) && isTransparent == info.m_isTransparent) + if (isTransparent == info.m_isTransparent && handle->IsIntersect(modelView, info.m_handle)) elements.push_back(info); }); @@ -49,7 +49,7 @@ void OverlayTree::Add(ref_ptr handle, bool isTransparent) * But if some of already inserted elements more priority than we don't insert "handle" */ for (OverlayContainerT::const_iterator it = elements.begin(); it != elements.end(); ++it) - if (inputPriority < (*it).m_handle->GetPriority()) + if (inputPriority < it->m_handle->GetPriority()) return; for (OverlayContainerT::const_iterator it = elements.begin(); it != elements.end(); ++it) diff --git a/drape/shaders/button_fragment_shader.fsh b/drape/shaders/button_fragment_shader.fsh index 9a704f9c87..c2db173581 100644 --- a/drape/shaders/button_fragment_shader.fsh +++ b/drape/shaders/button_fragment_shader.fsh @@ -1,12 +1,9 @@ uniform vec4 u_color; -uniform float u_opacity; void main(void) { - vec4 color = u_color; - if (color.a < 0.1) + if (u_color.a < 0.1) discard; - color.a *= u_opacity; - gl_FragColor = color; + gl_FragColor = u_color; } diff --git a/drape_frontend/animation/opacity_animation.cpp b/drape_frontend/animation/opacity_animation.cpp index 04d42524d4..bb61ac70f7 100644 --- a/drape_frontend/animation/opacity_animation.cpp +++ b/drape_frontend/animation/opacity_animation.cpp @@ -6,7 +6,7 @@ namespace df OpacityAnimation::OpacityAnimation(double duration, double startOpacity, double endOpacity) : BaseInterpolator(duration) - , m_opacity(1.0) + , m_opacity(startOpacity) , m_startOpacity(startOpacity) , m_endOpacity(endOpacity) { diff --git a/drape_frontend/render_group.cpp b/drape_frontend/render_group.cpp index 62c94947ad..ddb7455bf3 100755 --- a/drape_frontend/render_group.cpp +++ b/drape_frontend/render_group.cpp @@ -60,7 +60,7 @@ void RenderGroup::Update(ScreenBase const & modelView) void RenderGroup::CollectOverlay(ref_ptr tree) { for(drape_ptr & renderBucket : m_renderBuckets) - renderBucket->CollectOverlayHandles(tree, GetOpacity() != 1.0); + renderBucket->CollectOverlayHandles(tree, GetOpacity() < 1.0); } void RenderGroup::Render(ScreenBase const & screen) @@ -100,7 +100,7 @@ bool RenderGroupComparator::operator()(drape_ptr const & l, drape_p if (rPendingOnDelete == lPendingOnDelete) { - if (l->GetOpacity() == r->GetOpacity()) + if (my::AlmostEqual(l->GetOpacity(), r->GetOpacity())) return lState < rState; else return l->GetOpacity() > r->GetOpacity();