summaryrefslogtreecommitdiff
path: root/config/picom/shaders/shiny.glsl
blob: 16636ac713a101c4bb85fab65479566cafc935a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#version 430

// Source: https://github.com/yshui/picom/issues/295#issuecomment-592077997

in vec2 texcoord;

uniform float opacity;
uniform bool invert_color;
uniform sampler2D tex;
uniform float time;

ivec2 window_size = textureSize(tex, 0);

float amt = 10000.0;

vec4 default_post_processing(vec4 c);

vec4 window_shader() {
    float pct = mod(time, amt) / amt * 1000;
    float factor = float(max(window_size.x, window_size.y));
    pct *= factor / 150.0;
    vec2 pos = texcoord;
	vec4 c = texelFetch(tex, ivec2(texcoord), 0);

    if (pos.x + pos.y < pct * 4.0 && pos.x + pos.y > pct * 4.0 - .5 * pct
        || pos.x + pos.y < pct * 4.0 - .8 * pct && pos.x + pos.y > pct * 3.0)
       c *= vec4(2, 2, 2, 1);
    if (invert_color)
    	c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);

	c *= opacity;
	return default_post_processing(c);
}