From acafb20b114ea93f971e118da0233c07157286c0 Mon Sep 17 00:00:00 2001 From: Erik Reider <35975961+ErikReider@users.noreply.github.com> Date: Thu, 18 May 2023 01:39:48 +0200 Subject: Move stencil into each framebuffer (#156) * Move stencil into each framebuffer Also fixes the stencil being added to the wrong framebuffer * Initialize texture members on framebuffer init * removed bind arg * renamed init to create, changed existing create to update * moved stencil buffer creation to new function * removed some now misleading comments --------- Co-authored-by: William McKinnon --- include/sway/desktop/fx_renderer/fx_framebuffer.h | 7 ++++++- include/sway/desktop/fx_renderer/fx_renderer.h | 2 -- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'include/sway') diff --git a/include/sway/desktop/fx_renderer/fx_framebuffer.h b/include/sway/desktop/fx_renderer/fx_framebuffer.h index 289b4d87..39eeb257 100644 --- a/include/sway/desktop/fx_renderer/fx_framebuffer.h +++ b/include/sway/desktop/fx_renderer/fx_framebuffer.h @@ -10,11 +10,16 @@ struct fx_framebuffer { struct fx_texture texture; GLuint fb; + GLuint stencil_buffer; }; +struct fx_framebuffer fx_framebuffer_create(); + void fx_framebuffer_bind(struct fx_framebuffer *buffer); -void fx_framebuffer_create(struct fx_framebuffer *buffer, int width, int height, bool bind); +void fx_framebuffer_update(struct fx_framebuffer *buffer, int width, int height); + +void fx_framebuffer_add_stencil_buffer(struct fx_framebuffer *buffer, int width, int height); void fx_framebuffer_release(struct fx_framebuffer *buffer); diff --git a/include/sway/desktop/fx_renderer/fx_renderer.h b/include/sway/desktop/fx_renderer/fx_renderer.h index bdbcefe1..90b68f1c 100644 --- a/include/sway/desktop/fx_renderer/fx_renderer.h +++ b/include/sway/desktop/fx_renderer/fx_renderer.h @@ -119,8 +119,6 @@ struct fx_renderer { int viewport_width, viewport_height; - GLuint stencil_buffer_id; - struct fx_framebuffer wlr_buffer; // Just the framebuffer used by wlroots struct fx_framebuffer main_buffer; // The main FB used for rendering struct fx_framebuffer blur_buffer; // Contains the blurred background for tiled windows -- cgit v1.2.3