From 2cfcb31ab69395eca3e038c80858d653ff25e3e4 Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Tue, 5 Dec 2017 17:12:48 +0300 Subject: [PATCH] Fixed transfer marker rotation. --- drape_frontend/route_renderer.cpp | 3 +++ drape_frontend/shaders/route_marker.vsh.glsl | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drape_frontend/route_renderer.cpp b/drape_frontend/route_renderer.cpp index 5001c8e228..4f9f9a5f1c 100644 --- a/drape_frontend/route_renderer.cpp +++ b/drape_frontend/route_renderer.cpp @@ -512,6 +512,9 @@ void RouteRenderer::RenderSubrouteMarkers(SubrouteInfo const & subrouteInfo, Scr uniforms.SetMatrix4x4Value("modelView", mv.m_data); uniforms.SetFloatValue("u_routeParams", currentHalfWidth, dist); uniforms.SetFloatValue("u_opacity", 1.0f); + uniforms.SetFloatValue("u_angleCosSin", + static_cast(cos(screen.GetAngle())), + static_cast(sin(screen.GetAngle()))); glsl::vec4 const maskColor = glsl::ToVec4(GetMaskColor(subrouteInfo.m_subroute->m_routeType, subrouteInfo.m_subroute->m_baseDistance, diff --git a/drape_frontend/shaders/route_marker.vsh.glsl b/drape_frontend/shaders/route_marker.vsh.glsl index 497442459c..aacc171260 100644 --- a/drape_frontend/shaders/route_marker.vsh.glsl +++ b/drape_frontend/shaders/route_marker.vsh.glsl @@ -6,6 +6,7 @@ uniform mat4 modelView; uniform mat4 projection; uniform mat4 pivotTransform; +uniform vec2 u_angleCosSin; uniform vec2 u_routeParams; varying vec4 v_radius; @@ -14,7 +15,9 @@ varying vec4 v_color; void main() { float r = u_routeParams.x * a_normal.z; - vec4 radius = vec4(a_normal.xy * r, r, a_position.w); + vec2 normal = vec2(a_normal.x * u_angleCosSin.x - a_normal.y * u_angleCosSin.y, + a_normal.x * u_angleCosSin.y + a_normal.y * u_angleCosSin.x); + vec4 radius = vec4(normal.xy * r, r, a_position.w); vec4 pos = vec4(a_position.xy, 0, 1) * modelView; vec2 shiftedPos = radius.xy + pos.xy; pos = vec4(shiftedPos, a_position.z, 1.0) * projection;