[gtk/wip/chergert/glyphy] gsk/gl: fix output color of glyphy fragment shader
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/glyphy] gsk/gl: fix output color of glyphy fragment shader
- Date: Sun, 20 Mar 2022 04:40:13 +0000 (UTC)
commit 7a1b50ff4ed54e5f61c748309380936b89ece2cb
Author: Christian Hergert <chergert redhat com>
Date: Sat Mar 19 21:39:26 2022 -0700
gsk/gl: fix output color of glyphy fragment shader
This copied more or less what the coloring vertex shader was doing in
that we premultiply alpha. That changes how we apply alpha in the fragment
shader to match.
This fixes a white halo around the fonts.
gsk/gl/resources/glyphy.fs.glsl | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
---
diff --git a/gsk/gl/resources/glyphy.fs.glsl b/gsk/gl/resources/glyphy.fs.glsl
index 691ad77b1f..4e41b67bef 100644
--- a/gsk/gl/resources/glyphy.fs.glsl
+++ b/gsk/gl/resources/glyphy.fs.glsl
@@ -46,8 +46,6 @@ main()
vec2 dpdy = dFdy (p);
float m = length (vec2 (length (dpdx), length (dpdy))) * SQRT2_2;
- vec4 color = final_color;
-
float gsdist = glyphy_sdf (p, gi.nominal_size GLYPHY_DEMO_EXTRA_ARGS);
float sdist = gsdist / m * u_contrast;
@@ -60,9 +58,10 @@ main()
float alpha = antialias (-sdist);
if (u_gamma_adjust != 1.)
alpha = pow (alpha, 1./u_gamma_adjust);
- color = vec4 (color.rgb,color.a * alpha);
+
+ gskSetOutputColor(final_color * alpha);
} else {
- color = vec4 (0,0,0,0);
+ vec4 color = vec4 (0,0,0,0);
// Color the inside of the glyph a light red
color += vec4 (.5,0,0,.5) * smoothstep (1., -1., sdist);
@@ -82,7 +81,7 @@ main()
glyphy_arc_list_t arc_list = glyphy_arc_list (p, gi.nominal_size GLYPHY_DEMO_EXTRA_ARGS);
// Color the number of endpoints per cell blue
color += vec4 (0,0,1,.1) * float(arc_list.num_endpoints) * 32./255.;
- }
- gskSetOutputColor(color);
+ gskSetOutputColor(color);
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]