diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2019-07-25 09:51:59 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2019-08-08 09:00:57 +0300 |
commit | 7bc300a74baa382e6243322898675c3f24121606 (patch) | |
tree | c716e90b4f88c6be273e337bcbcd8ebe9a413e9c /source/blender/draw/modes/shaders | |
parent | 66356dae943d50215be7699d842989b5e7fe0398 (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.glsl | 9 | ||||
-rw-r--r-- | source/blender/draw/modes/shaders/paint_weight_frag.glsl | 5 |
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 } |