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:
authorClément Foucault <foucault.clem@gmail.com>2020-11-17 03:28:33 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-11-17 03:31:32 +0300
commit82b8c156841f7202a4ca806968a782e517201d81 (patch)
treeeb12ae03e9b7143e283baa8e1296a3e1f3670a4f /source/blender/gpu/intern/gpu_immediate.cc
parent906ff7b8fea8ae077c3d3f39ae2c9a2be08b88e5 (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/gpu_immediate.cc')
-rw-r--r--source/blender/gpu/intern/gpu_immediate.cc9
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);