aboutsummaryrefslogtreecommitdiff
path: root/visuals.frag
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-05-26 17:34:58 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-05-26 17:34:58 +0200
commit52bc19527838f2cac481a89cefd18cfea6e1a2d2 (patch)
treeaed452488b766f9e0f02d6e5237d6eecf0e8e909 /visuals.frag
parent33deac9462906c5e7b084665df3194cfa5e73249 (diff)
WIP add framebuffer
Diffstat (limited to 'visuals.frag')
-rw-r--r--visuals.frag26
1 files changed, 15 insertions, 11 deletions
diff --git a/visuals.frag b/visuals.frag
index d680834..35f9a6a 100644
--- a/visuals.frag
+++ b/visuals.frag
@@ -1,18 +1,22 @@
-#version 330 core
+#version 460 core
+
+out vec4 color;
+in vec4 gl_FragCoord;
uniform float time;
uniform ivec2 window;
-
-// adapted from <https://www.shadertoy.com/view/4djSRW>
-float hash12(vec2 p) {
- vec3 p3 = fract(vec3(p.xyx) * .1031);
- p3 += dot(p3, p3.yzx + 33.33);
- return fract((p3.x + p3.y) * p3.z);
-}
+uniform sampler2D buf;
void main() {
- vec2 uv = gl_FragCoord.xy / window;
- vec2 pos = gl_FragCoord.xy + time;
- gl_FragColor = vec4(hash12(pos), uv.xy, 1.0);
+ vec2 point = vec2(sin(time), cos(time)) * 0.7;
+ point.x *= float(window.y) / float(window.x); // adjust for aspect ratio
+ point = ((point + 1.0) / 2.0) * window.xy; // convert to screen coords
+ float r = 20.0; // circle radius
+
+ color = vec4(0.0);
+ if (length(gl_FragCoord.xy - point) < r)
+ color = vec4(1.0);
+
+ color += texture(buf, gl_FragCoord.xy / window.xy) * 0.90;
}