Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2019-07-25 09:51:59 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2019-08-08 09:00:57 +0300
commit7bc300a74baa382e6243322898675c3f24121606 (patch)
treec716e90b4f88c6be273e337bcbcd8ebe9a413e9c /source/blender/draw/modes/shaders
parent66356dae943d50215be7699d842989b5e7fe0398 (diff)
Fix T67587: Fix Drawing in Wireframe Non X-Ray Mode
When using Vertex or Weight paint mode on a wireframe the overlay was blended with the background. In this case we now use alpha blending. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5340
Diffstat (limited to 'source/blender/draw/modes/shaders')
-rw-r--r--source/blender/draw/modes/shaders/paint_vertex_frag.glsl9
-rw-r--r--source/blender/draw/modes/shaders/paint_weight_frag.glsl5
2 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/draw/modes/shaders/paint_vertex_frag.glsl b/source/blender/draw/modes/shaders/paint_vertex_frag.glsl
index 426dbada812..f03e3410ec3 100644
--- a/source/blender/draw/modes/shaders/paint_vertex_frag.glsl
+++ b/source/blender/draw/modes/shaders/paint_vertex_frag.glsl
@@ -2,7 +2,7 @@
in vec3 finalColor;
out vec4 fragColor;
-uniform float white_factor = 1.0;
+uniform float opacity = 1.0;
vec3 linear_to_srgb_attr(vec3 c)
{
@@ -14,6 +14,11 @@ vec3 linear_to_srgb_attr(vec3 c)
void main()
{
- fragColor.rgb = mix(linear_to_srgb_attr(finalColor), vec3(1.0), white_factor);
+ vec3 color = linear_to_srgb_attr(finalColor);
+#ifdef DRW_STATE_BLEND_ALPHA
+ fragColor = vec4(color, opacity);
+#else
+ fragColor.rgb = mix(vec3(1.0), color, opacity);
fragColor.a = 1.0;
+#endif
}
diff --git a/source/blender/draw/modes/shaders/paint_weight_frag.glsl b/source/blender/draw/modes/shaders/paint_weight_frag.glsl
index 8b0e03ac31c..76b7719be64 100644
--- a/source/blender/draw/modes/shaders/paint_weight_frag.glsl
+++ b/source/blender/draw/modes/shaders/paint_weight_frag.glsl
@@ -95,6 +95,11 @@ void main()
color = mix(weight_color, colorVertexUnreferenced, alert * alert);
}
+#ifdef DRW_STATE_BLEND_ALPHA
+ /* alpha blending mix */
+ fragColor = vec4(color.rgb, opacity);
+#else
/* mix with 1.0 -> is like opacity when using multiply blend mode */
fragColor = vec4(mix(vec3(1.0), color.rgb, opacity), 1.0);
+#endif
}