diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-11-17 03:28:33 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-11-17 03:31:32 +0300 |
commit | 82b8c156841f7202a4ca806968a782e517201d81 (patch) | |
tree | eb12ae03e9b7143e283baa8e1296a3e1f3670a4f /source/blender/gpu/intern | |
parent | 906ff7b8fea8ae077c3d3f39ae2c9a2be08b88e5 (diff) |
Fix T81827: MacOS lines that should be thick are green instead
The issue was the use of alpha values of 0 when there were no blending
enabled.
This patch just disables the smoothing of the wires in this case.
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_immediate.cc b/source/blender/gpu/intern/gpu_immediate.cc index 44c6cac02ca..979b3cbb557 100644 --- a/source/blender/gpu/intern/gpu_immediate.cc +++ b/source/blender/gpu/intern/gpu_immediate.cc @@ -180,6 +180,11 @@ static void wide_line_workaround_start(GPUPrimType prim_type) immUniform2fv("viewportSize", &viewport[2]); immUniform1f("lineWidth", line_width); + if (GPU_blend_get() == GPU_BLEND_NONE) { + /* Disable line smoothing when blending is disabled (see T81827). */ + immUniform1i("lineSmooth", 0); + } + if (ELEM(polyline_sh, GPU_SHADER_3D_POLYLINE_CLIPPED_UNIFORM_COLOR, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR)) { @@ -190,6 +195,10 @@ static void wide_line_workaround_start(GPUPrimType prim_type) static void wide_line_workaround_end(void) { if (imm->prev_shader) { + if (GPU_blend_get() == GPU_BLEND_NONE) { + /* Restore default. */ + immUniform1i("lineSmooth", 1); + } immUnbindProgram(); immBindShader(imm->prev_shader); |