diff --git a/shaders/GL/route_arrow.fsh.glsl b/shaders/GL/route_arrow.fsh.glsl index 1f5d22e4fb..41c33717db 100644 --- a/shaders/GL/route_arrow.fsh.glsl +++ b/shaders/GL/route_arrow.fsh.glsl @@ -11,9 +11,12 @@ varying vec2 v_colorTexCoords; void main() { vec4 finalColor = texture2D(u_colorTex, v_colorTexCoords); - finalColor.a *= u_opacity; + if (finalColor.r == 1.0 && finalColor.g == 1.0 && finalColor.b == 1.0) + finalColor=vec4(vec3(u_maskColor.rgb * finalColor.rgb), finalColor.a); + else + finalColor=vec4(1.0,1.0,1.0,finalColor.a); if (finalColor.a < 0.01) discard; - finalColor = vec4(mix(finalColor.rgb, u_maskColor.rgb, u_maskColor.a), finalColor.a); + finalColor = finalColor * u_opacity; gl_FragColor = finalColor; }