#version 330 core layout (location = 0) in vec4 vertex; out vert_t { vec2 tex_coords; } vert; uniform bool chaos; uniform bool confuse; uniform bool shake; uniform float time; void main() { gl_Position = vec4(vertex.xy, 0.0, 1.0); vec2 texture = vertex.zw; if (chaos) { float strength = 0.3; vec2 pos = vec2(texture.x + sin(time) * strength, texture.y + cos(time) * strength); vert.tex_coords = pos; } else if (confuse) { vert.tex_coords = vec2(1.0) - texture; } else { vert.tex_coords = texture; } if (shake) { float strength = 0.01; gl_Position.x += cos(time * 10) * strength; gl_Position.y += cos(time * 15) * strength; } }