From 896ba1f6f0bd3bce33dad57903f6b1f3e24204ce Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Mon, 24 Oct 2022 12:22:11 +0100 Subject: [PATCH] diptoblack shader: Fix mix operation The mix function in GLSL is slightly counter intuitively x(1-a)+y(a) Here we re-arrange the inputs slightly to get the correct result. --- app/shaders/diptoblack.frag | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/shaders/diptoblack.frag b/app/shaders/diptoblack.frag index 30a9c918d..499b03b53 100644 --- a/app/shaders/diptoblack.frag +++ b/app/shaders/diptoblack.frag @@ -13,8 +13,9 @@ out vec4 frag_color; void main(void) { if (out_block_in_enabled && in_block_in_enabled) { - vec4 out_block_col = mix(texture(out_block_in, ove_texcoord), color_in, ove_tprog_out); - vec4 in_block_col = mix(texture(in_block_in, ove_texcoord), color_in, 1.0 - ove_tprog_in); + // mix(x, y , a): a(1-x) + b(x) + vec4 out_block_col = mix(color_in, texture(out_block_in, ove_texcoord),ove_tprog_out); + vec4 in_block_col = mix(color_in, texture(in_block_in, ove_texcoord), ove_tprog_in); frag_color = out_block_col + in_block_col; } else if (out_block_in_enabled) {