diff --git a/drape_frontend/route_shape.cpp b/drape_frontend/route_shape.cpp index e9ab669a28..602e30d884 100644 --- a/drape_frontend/route_shape.cpp +++ b/drape_frontend/route_shape.cpp @@ -440,7 +440,9 @@ void RouteShape::CacheRoute(ref_ptr textures, RouteData & ro PrepareGeometry(routeData.m_sourcePolyline.GetPoints(), routeData.m_pivot, segmentsColors, geometry, joinsGeometry, routeData.m_length); - dp::GLState state = dp::GLState(gpu::ROUTE_PROGRAM, dp::GLState::GeometryLayer); + dp::GLState state = + dp::GLState(routeData.m_pattern.m_isDashed ? gpu::ROUTE_DASH_PROGRAM : gpu::ROUTE_PROGRAM, + dp::GLState::GeometryLayer); state.SetColorTexture(textures->GetSymbolsTexture()); BatchGeometry(state, make_ref(geometry.data()), static_cast(geometry.size()), make_ref(joinsGeometry.data()), static_cast(joinsGeometry.size()), diff --git a/drape_frontend/shaders/route_dash.fsh.glsl b/drape_frontend/shaders/route_dash.fsh.glsl index b38cf1fa14..6c162f6730 100644 --- a/drape_frontend/shaders/route_dash.fsh.glsl +++ b/drape_frontend/shaders/route_dash.fsh.glsl @@ -19,7 +19,7 @@ float alphaFromPattern(float curLen, float dashLen, float gapLen) void main() { - vec4 color = u_color; + vec4 color = u_color + v_color; if (v_length.x < v_length.z) { color.a = 0.0;