summaryrefslogtreecommitdiff
path: root/in_practice/breakout/shaders/post.frag
diff options
context:
space:
mode:
Diffstat (limited to 'in_practice/breakout/shaders/post.frag')
-rw-r--r--in_practice/breakout/shaders/post.frag38
1 files changed, 38 insertions, 0 deletions
diff --git a/in_practice/breakout/shaders/post.frag b/in_practice/breakout/shaders/post.frag
new file mode 100644
index 0000000..899b098
--- /dev/null
+++ b/in_practice/breakout/shaders/post.frag
@@ -0,0 +1,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);
+ }
+}