From e1f4bc5996b1c77c7fa8536b7c03d9eb4140227d Mon Sep 17 00:00:00 2001 From: William McKinnon Date: Mon, 15 Apr 2024 01:32:22 -0400 Subject: feat: add functions required by SwayFX (#35) --- .../render/fx_renderer/fx_effect_framebuffers.h | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 include/scenefx/render/fx_renderer/fx_effect_framebuffers.h (limited to 'include/scenefx/render/fx_renderer/fx_effect_framebuffers.h') diff --git a/include/scenefx/render/fx_renderer/fx_effect_framebuffers.h b/include/scenefx/render/fx_renderer/fx_effect_framebuffers.h new file mode 100644 index 0000000..566884a --- /dev/null +++ b/include/scenefx/render/fx_renderer/fx_effect_framebuffers.h @@ -0,0 +1,29 @@ +#ifndef _FX_EFFECT_FRAMEBUFFERS_H +#define _FX_EFFECT_FRAMEBUFFERS_H + +#include +#include + +/** + * Used to add effect framebuffers per output instead of every output sharing + * them. + */ +struct fx_effect_framebuffers { + struct wlr_addon addon; + + // Contains the blurred background for tiled windows + struct fx_framebuffer *optimized_blur_buffer; + // Contains the original pixels to draw over the areas where artifact are visible + struct fx_framebuffer *blur_saved_pixels_buffer; + // Blur swaps between the two effects buffers everytime it scales the image + // Buffer used for effects + struct fx_framebuffer *effects_buffer; + // Swap buffer used for effects + struct fx_framebuffer *effects_buffer_swapped; + + bool blur_buffer_dirty; +}; + +struct fx_effect_framebuffers *fx_effect_framebuffers_try_get(struct wlr_output *output); + +#endif -- cgit v1.2.3