From 4d6553bb554507f07ed0f59d78af420d00e72219 Mon Sep 17 00:00:00 2001 From: tekki Date: Thu, 23 Apr 2026 21:21:45 +0200 Subject: [PATCH] feat: blur-chromatic kombinations-shader --- config/hypr/shaders/blur-chromatic.glsl | 62 +++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 config/hypr/shaders/blur-chromatic.glsl diff --git a/config/hypr/shaders/blur-chromatic.glsl b/config/hypr/shaders/blur-chromatic.glsl new file mode 100644 index 0000000..37ab948 --- /dev/null +++ b/config/hypr/shaders/blur-chromatic.glsl @@ -0,0 +1,62 @@ +#version 300 es +precision highp float; + +in vec2 v_texcoord; +uniform sampler2D tex; +out vec4 fragColor; + +float blur_channel_r(vec2 center) { + float o = 0.003; + float c = 0.0; + c += texture(tex, center + vec2(-o, -o)).r * 0.0625; + c += texture(tex, center + vec2( 0, -o)).r * 0.125; + c += texture(tex, center + vec2( o, -o)).r * 0.0625; + c += texture(tex, center + vec2(-o, 0)).r * 0.125; + c += texture(tex, center ).r * 0.25; + c += texture(tex, center + vec2( o, 0)).r * 0.125; + c += texture(tex, center + vec2(-o, o)).r * 0.0625; + c += texture(tex, center + vec2( 0, o)).r * 0.125; + c += texture(tex, center + vec2( o, o)).r * 0.0625; + return c; +} + +float blur_channel_g(vec2 center) { + float o = 0.003; + float c = 0.0; + c += texture(tex, center + vec2(-o, -o)).g * 0.0625; + c += texture(tex, center + vec2( 0, -o)).g * 0.125; + c += texture(tex, center + vec2( o, -o)).g * 0.0625; + c += texture(tex, center + vec2(-o, 0)).g * 0.125; + c += texture(tex, center ).g * 0.25; + c += texture(tex, center + vec2( o, 0)).g * 0.125; + c += texture(tex, center + vec2(-o, o)).g * 0.0625; + c += texture(tex, center + vec2( 0, o)).g * 0.125; + c += texture(tex, center + vec2( o, o)).g * 0.0625; + return c; +} + +float blur_channel_b(vec2 center) { + float o = 0.003; + float c = 0.0; + c += texture(tex, center + vec2(-o, -o)).b * 0.0625; + c += texture(tex, center + vec2( 0, -o)).b * 0.125; + c += texture(tex, center + vec2( o, -o)).b * 0.0625; + c += texture(tex, center + vec2(-o, 0)).b * 0.125; + c += texture(tex, center ).b * 0.25; + c += texture(tex, center + vec2( o, 0)).b * 0.125; + c += texture(tex, center + vec2(-o, o)).b * 0.0625; + c += texture(tex, center + vec2( 0, o)).b * 0.125; + c += texture(tex, center + vec2( o, o)).b * 0.0625; + return c; +} + +void main() { + float chroma = 0.004; + float a = texture(tex, v_texcoord).a; + + float r = blur_channel_r(v_texcoord + vec2( chroma, 0.0)); + float g = blur_channel_g(v_texcoord); + float b = blur_channel_b(v_texcoord - vec2( chroma, 0.0)); + + fragColor = vec4(r, g, b, a); +}