summaryrefslogtreecommitdiff
path: root/in_practice/breakout/shaders/post.frag
blob: 899b0985df66651d60f0fc7534c6ea238db9158b (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
34
35
36
37
38
#version 330 core

in vert_t {
	vec2 tex_coords;
} vert;

out vec4 frag_color;

uniform sampler2D colorbuffer;
uniform vec2 offsets[9];
uniform int edge_kernel[9];
uniform float blur_kernel[9];

uniform bool chaos;
uniform bool confuse;
uniform bool shake;

void main()
{
	frag_color = vec4(0.0);
	vec3 sample[9];
	if (chaos || shake)
		for (int i = 0; i < 9; i++)
			sample[i] = vec3(texture(colorbuffer, vert.tex_coords + offsets[i]));
	if (chaos) {
		for (int i = 0; i < 9; i++)
			frag_color += vec4(sample[i] * edge_kernel[i], 0.0);
		frag_color.a = 1.0;
	} else if (confuse) {
		frag_color = vec4(1.0 - texture(colorbuffer, vert.tex_coords).rgb, 1.0);
	} else if (shake) {
		for (int i = 0; i < 9; i++)
			frag_color += vec4(sample[i] * blur_kernel[i], 0.0);
		frag_color.a = 1.0;
	} else {
		frag_color = texture(colorbuffer, vert.tex_coords);
	}
}