diff options
author | Erik Reider <[email protected]> | 2024-01-05 08:47:43 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2024-01-05 02:47:43 -0500 |
commit | 303b7dfb69fbd93a6d829213e52818844cd5645f (patch) | |
tree | 35147900b0176c1adbfd7f93a10f43f2b4bd293b /sway/desktop/render.c | |
parent | 04b657b58cf54ac611f73723ec44f51feba16b15 (diff) |
Fixed #258 blur regression (#261)
Diffstat (limited to 'sway/desktop/render.c')
-rw-r--r-- | sway/desktop/render.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 391533c5..e1deb33b 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -263,7 +263,13 @@ struct fx_framebuffer *get_main_buffer_blur(struct fx_renderer *renderer, struct float blur_contrast = config->blur_params.contrast; float blur_saturation = config->blur_params.saturation; - if (pixman_region32_not_empty(&damage)) { + // Render additional blur effects like saturation, noise, contrast, etc... + if (config_should_parameters_blur_effects() && pixman_region32_not_empty(&damage)) { + if (current_buffer == &renderer->effects_buffer) { + fx_framebuffer_bind(&renderer->effects_buffer_swapped); + } else { + fx_framebuffer_bind(&renderer->effects_buffer); + } int nrects; pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects); for (int i = 0; i < nrects; ++i) { @@ -273,6 +279,11 @@ struct fx_framebuffer *get_main_buffer_blur(struct fx_renderer *renderer, struct fx_render_blur_effects(renderer, gl_matrix, ¤t_buffer, blur_noise, blur_brightness, blur_contrast, blur_saturation); } + if (current_buffer != &renderer->effects_buffer) { + current_buffer = &renderer->effects_buffer; + } else { + current_buffer = &renderer->effects_buffer_swapped; + } } pixman_region32_fini(&tempDamage); |