summaryrefslogtreecommitdiff
path: root/include/scenefx/render/fx_renderer/fx_effect_framebuffers.h
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2024-04-15 01:32:22 -0400
committerGitHub <[email protected]>2024-04-15 01:32:22 -0400
commite1f4bc5996b1c77c7fa8536b7c03d9eb4140227d (patch)
tree3fa8045ca37131acc96c88cec4a2f920de6113fb /include/scenefx/render/fx_renderer/fx_effect_framebuffers.h
parent7e723f983b074e62e676caffe21cd5527b524587 (diff)
feat: add functions required by SwayFX (#35)
Diffstat (limited to 'include/scenefx/render/fx_renderer/fx_effect_framebuffers.h')
-rw-r--r--include/scenefx/render/fx_renderer/fx_effect_framebuffers.h29
1 files changed, 29 insertions, 0 deletions
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 <wlr/types/wlr_output.h>
+#include <wlr/util/addon.h>
+
+/**
+ * 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