diff options
author | ozwaldorf <[email protected]> | 2024-01-03 12:38:44 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2024-01-03 12:38:44 -0500 |
commit | 04b657b58cf54ac611f73723ec44f51feba16b15 (patch) | |
tree | e8c310f8957ded3304503dc1d908b8a233bbae20 /sway/desktop/render.c | |
parent | 1c5c60d9280eb0b13d9884366bdeaf3748b04308 (diff) |
feat: blur tweaks (#258)
Diffstat (limited to 'sway/desktop/render.c')
-rw-r--r-- | sway/desktop/render.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index c054b3a5..391533c5 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -258,6 +258,23 @@ struct fx_framebuffer *get_main_buffer_blur(struct fx_renderer *renderer, struct &renderer->shaders.blur2, box, blur_radius); } + float blur_noise = config->blur_params.noise; + float blur_brightness = config->blur_params.brightness; + float blur_contrast = config->blur_params.contrast; + float blur_saturation = config->blur_params.saturation; + + if (pixman_region32_not_empty(&damage)) { + int nrects; + pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects); + for (int i = 0; i < nrects; ++i) { + const pixman_box32_t box = rects[i]; + struct wlr_box new_box = { box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1 }; + fx_renderer_scissor(&new_box); + fx_render_blur_effects(renderer, gl_matrix, ¤t_buffer, blur_noise, + blur_brightness, blur_contrast, blur_saturation); + } + } + pixman_region32_fini(&tempDamage); pixman_region32_fini(&damage); |