[Bf-blender-cvs] [4c7ff8f] blender2.8: Fix animation transition in region overlay not working since 4a1feaa5

Dalai Felinto noreply at git.blender.org
Wed Sep 28 20:48:58 CEST 2016


Commit: 4c7ff8fb1e3c59439cdd8181b10f6b6dfc478033
Author: Dalai Felinto
Date:   Wed Sep 28 18:48:51 2016 +0000
Branches: blender2.8
https://developer.blender.org/rB4c7ff8fb1e3c59439cdd8181b10f6b6dfc478033

Fix animation transition in region overlay not working since 4a1feaa5

We still have stills with the User Preference window, though.

===================================================================

M	source/blender/gpu/gawain/immediate.c
M	source/blender/gpu/gawain/immediate.h
M	source/blender/gpu/shaders/gpu_shader_2D_texture_2D_frag.glsl
M	source/blender/gpu/shaders/gpu_shader_2D_texture_rect_frag.glsl
M	source/blender/windowmanager/intern/wm_draw.c
M	source/blender/windowmanager/intern/wm_stereo.c

===================================================================

diff --git a/source/blender/gpu/gawain/immediate.c b/source/blender/gpu/gawain/immediate.c
index 9c3904f..7edc4e2 100644
--- a/source/blender/gpu/gawain/immediate.c
+++ b/source/blender/gpu/gawain/immediate.c
@@ -622,6 +622,17 @@ void immVertex3fv(unsigned attrib_id, const float data[3])
 	immEndVertex();
 	}
 
+void immUniform1f(const char* name, float x)
+{
+	int loc = glGetUniformLocation(imm.bound_program, name);
+
+#if TRUST_NO_ONE
+	assert(loc != -1);
+#endif
+
+	glUniform1f(loc, x);
+}
+
 void immUniform4f(const char* name, float x, float y, float z, float w)
 	{
 	int loc = glGetUniformLocation(imm.bound_program, name);
diff --git a/source/blender/gpu/gawain/immediate.h b/source/blender/gpu/gawain/immediate.h
index 84fb076..3fcf856 100644
--- a/source/blender/gpu/gawain/immediate.h
+++ b/source/blender/gpu/gawain/immediate.h
@@ -66,6 +66,7 @@ void immVertex3fv(unsigned attrib_id, const float data[3]);
 void immVertex2iv(unsigned attrib_id, const int data[2]);
 
 // provide values that don't change for the entire draw call
+void immUniform1f(const char* name, float x);
 void immUniform4f(const char* name, float x, float y, float z, float w);
 
 // these set "uniform vec4 color"
diff --git a/source/blender/gpu/shaders/gpu_shader_2D_texture_2D_frag.glsl b/source/blender/gpu/shaders/gpu_shader_2D_texture_2D_frag.glsl
index 6029fd8..69bc616 100644
--- a/source/blender/gpu/shaders/gpu_shader_2D_texture_2D_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_2D_texture_2D_frag.glsl
@@ -6,9 +6,10 @@
   out vec4 fragColor;
 #endif
 
+uniform float alpha;
 uniform sampler2D texture_map;
 
 void main()
 {
-	fragColor = texture2D(texture_map, texture_coord);
+	fragColor = vec4(texture2D(texture_map, texture_coord).rgb, alpha);
 }
diff --git a/source/blender/gpu/shaders/gpu_shader_2D_texture_rect_frag.glsl b/source/blender/gpu/shaders/gpu_shader_2D_texture_rect_frag.glsl
index d32b8ba..75298bc 100644
--- a/source/blender/gpu/shaders/gpu_shader_2D_texture_rect_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_2D_texture_rect_frag.glsl
@@ -6,9 +6,10 @@
   out vec4 fragColor;
 #endif
 
+uniform float alpha;
 uniform sampler2DRect texture_map;
 
 void main()
 {
-	fragColor = texture2DRect(texture_map, texture_coord);
+	fragColor = vec4(texture2DRect(texture_map, texture_coord).rgb, alpha);
 }
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index 4303ce3..e9eaa56 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -455,6 +455,7 @@ void wm_triple_draw_textures(wmWindow *win, wmDrawTriple *triple, float alpha)
 
 	glBindTexture(triple->target, triple->bind);
 
+	immUniform1f("alpha", alpha);
 	immUniform1i("texture_map", 0);
 
 	immBegin(GL_QUADS, 4);
diff --git a/source/blender/windowmanager/intern/wm_stereo.c b/source/blender/windowmanager/intern/wm_stereo.c
index ea9a09d..e2b6df6 100644
--- a/source/blender/windowmanager/intern/wm_stereo.c
+++ b/source/blender/windowmanager/intern/wm_stereo.c
@@ -282,6 +282,7 @@ static void wm_method_draw_stereo3d_topbottom(wmWindow *win)
 
 		glBindTexture(triple->target, triple->bind);
 
+		immUniform1f("alpha", 1.0f);
 		immUniform1i("texture_map", 0);
 
 		immBegin(GL_QUADS, 4);




More information about the Bf-blender-cvs mailing list