aboutsummaryrefslogtreecommitdiff
path: root/alacritty/res/text.f.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/res/text.f.glsl')
-rw-r--r--alacritty/res/text.f.glsl38
1 files changed, 19 insertions, 19 deletions
diff --git a/alacritty/res/text.f.glsl b/alacritty/res/text.f.glsl
index c0c1bd1b..d5e26881 100644
--- a/alacritty/res/text.f.glsl
+++ b/alacritty/res/text.f.glsl
@@ -9,31 +9,31 @@ layout(location = 0, index = 1) out vec4 alphaMask;
uniform sampler2D mask;
-void main()
-{
+#define COLORED 2
+
+void main() {
if (backgroundPass != 0) {
- if (bg.a == 0.0)
+ if (bg.a == 0.0) {
discard;
+ }
alphaMask = vec4(1.0);
color = vec4(bg.rgb, 1.0);
- } else {
- if (fg.a != 0.0) {
- // Color glyphs, like emojis.
- vec4 glyphColor = texture(mask, TexCoords);
- alphaMask = vec4(glyphColor.a);
+ } else if ((int(fg.a) & COLORED) != 0) {
+ // Color glyphs, like emojis.
+ vec4 glyphColor = texture(mask, TexCoords);
+ alphaMask = vec4(glyphColor.a);
- // Revert alpha premultiplication.
- if (glyphColor.a != 0) {
- glyphColor.rgb = vec3(glyphColor.rgb / glyphColor.a);
- }
-
- color = vec4(glyphColor.rgb, 1.0);
- } else {
- // Regular text glyphs.
- vec3 textColor = texture(mask, TexCoords).rgb;
- alphaMask = vec4(textColor, textColor.r);
- color = vec4(fg.rgb, 1.0);
+ // Revert alpha premultiplication.
+ if (glyphColor.a != 0) {
+ glyphColor.rgb = vec3(glyphColor.rgb / glyphColor.a);
}
+
+ color = vec4(glyphColor.rgb, 1.0);
+ } else {
+ // Regular text glyphs.
+ vec3 textColor = texture(mask, TexCoords).rgb;
+ alphaMask = vec4(textColor, textColor.r);
+ color = vec4(fg.rgb, 1.0);
}
}