diff options
| author | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
|---|---|---|
| committer | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
| commit | 5d94c0a7d44a2255b81815a52a7056a94a39842d (patch) | |
| tree | 759bdea9645c6a62f9e1e4c001f7d81cccd120d2 /raveos-theme/gnome/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl | |
| parent | e79cdf210b267f21a186255ce1a4d50029439d54 (diff) | |
| download | RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.tar.gz RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.zip | |
update Raveos themes
Diffstat (limited to 'raveos-theme/gnome/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl')
| -rw-r--r-- | raveos-theme/gnome/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/raveos-theme/gnome/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl b/raveos-theme/gnome/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl new file mode 100644 index 0000000..27b3806 --- /dev/null +++ b/raveos-theme/gnome/theme-data/extensions/installed/blur-my-shell@aunetx/effects/monte_carlo_blur.glsl @@ -0,0 +1,52 @@ +uniform sampler2D tex; +uniform float radius; +uniform int iterations; +uniform float brightness; +uniform float width; +uniform float height; +uniform bool use_base_pixel; +uniform bool prefer_closer_pixels; + +float srand(vec2 a) { + return sin(dot(a, vec2(1233.224, 1743.335))); +} + +float rand(inout float r) { + r = fract(3712.65 * r + 0.61432); + return (r - 0.5) * 2.0; +} + +void main() { + vec2 uv = cogl_tex_coord0_in.st; + vec2 p = 16 * radius / vec2(width, height); + float r = srand(uv); + + vec2 rv; + vec2 dir; + vec2 new_uv; + int strength; + + int count = 0; + vec4 c = vec4(0.); + + for (int i = 0; i < iterations; i++) { + rv.x = rand(r); + rv.y = rand(r) * 3.141592; + dir = vec2(cos(rv.y), sin(rv.y)); + new_uv = uv + rv.x * dir * p; + if (new_uv.x > 2. / width && new_uv.y > 2. / height && new_uv.x < 1. - 3. / width && new_uv.y < 1. - 3. / height) { + strength = prefer_closer_pixels ? (iterations - i)^2 : 1; + c += strength * texture2D(tex, new_uv); + count += strength; + } + } + + if (count == 0 || use_base_pixel) { + strength = prefer_closer_pixels ? (iterations + 1)^2 : 1; + c += strength * texture2D(tex, uv); + count += strength; + } + + c.xyz *= brightness; + cogl_color_out = c / count; +}
\ No newline at end of file |