From 47966a143176a337733fe63b4121d2d00c48359a Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Fri, 30 Jan 2015 11:02:26 -0800 Subject: [PATCH] make line-opacity work with line-image js: 0e9a86e3553913abb8ebb3d8926e2b99db8d4008 --- src/mbgl/renderer/painter_line.cpp | 1 + src/mbgl/shader/linepattern.fragment.glsl | 3 ++- src/mbgl/shader/linepattern_shader.hpp | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mbgl/renderer/painter_line.cpp b/src/mbgl/renderer/painter_line.cpp index 4669b72fa..3951f2e7c 100644 --- a/src/mbgl/renderer/painter_line.cpp +++ b/src/mbgl/renderer/painter_line.cpp @@ -138,6 +138,7 @@ void Painter::renderLine(LineBucket& bucket, util::ptr layer_desc, c linepatternShader->u_pattern_tl = imagePos.tl; linepatternShader->u_pattern_br = imagePos.br; linepatternShader->u_fade = fade; + linepatternShader->u_opacity = properties.opacity; MBGL_CHECK_ERROR(glActiveTexture(GL_TEXTURE0)); spriteAtlas.bind(true); diff --git a/src/mbgl/shader/linepattern.fragment.glsl b/src/mbgl/shader/linepattern.fragment.glsl index 52ca823a3..45be7c8c2 100644 --- a/src/mbgl/shader/linepattern.fragment.glsl +++ b/src/mbgl/shader/linepattern.fragment.glsl @@ -6,6 +6,7 @@ uniform vec2 u_pattern_size; uniform vec2 u_pattern_tl; uniform vec2 u_pattern_br; uniform float u_fade; +uniform float u_opacity; uniform sampler2D u_image; @@ -31,7 +32,7 @@ void main() { vec4 color = texture2D(u_image, pos) * (1.0 - u_fade) + u_fade * texture2D(u_image, pos2); - color.rgb *= color.a; // premultiply + alpha *= u_opacity; gl_FragColor = color * alpha; } diff --git a/src/mbgl/shader/linepattern_shader.hpp b/src/mbgl/shader/linepattern_shader.hpp index ace8198ae..388cff17d 100644 --- a/src/mbgl/shader/linepattern_shader.hpp +++ b/src/mbgl/shader/linepattern_shader.hpp @@ -22,6 +22,7 @@ public: Uniform u_point = {"u_point", *this}; Uniform u_blur = {"u_blur", *this}; Uniform u_fade = {"u_fade", *this}; + Uniform u_opacity = {"u_opacity", *this}; private: int32_t a_pos = -1;