summaryrefslogtreecommitdiff
path: root/include/render/pass.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/render/pass.h
parent7e723f983b074e62e676caffe21cd5527b524587 (diff)
feat: add functions required by SwayFX (#35)
Diffstat (limited to 'include/render/pass.h')
-rw-r--r--include/render/pass.h86
1 files changed, 7 insertions, 79 deletions
diff --git a/include/render/pass.h b/include/render/pass.h
index db33ff6..e7564fd 100644
--- a/include/render/pass.h
+++ b/include/render/pass.h
@@ -1,101 +1,29 @@
#ifndef FX_RENDER_PASS_H
#define FX_RENDER_PASS_H
+#include <scenefx/render/pass.h>
#include <stdbool.h>
#include <wlr/render/pass.h>
#include <wlr/util/box.h>
#include <wlr/render/interface.h>
-#include "scenefx/types/fx/shadow_data.h"
-
-struct fx_gles_render_pass {
- struct wlr_render_pass base;
- struct fx_framebuffer *buffer;
- float projection_matrix[9];
- struct fx_render_timer *timer;
-};
-
-/**
- * Begin a new render pass with the supplied destination buffer.
- *
- * Callers must call wlr_render_pass_submit() once they are done with the
- * render pass.
- */
-struct fx_gles_render_pass *fx_renderer_begin_buffer_pass(struct wlr_renderer *wlr_renderer,
- struct wlr_buffer *wlr_buffer, struct wlr_output *output,
- const struct wlr_buffer_pass_options *options);
-
-struct fx_render_texture_options {
- struct wlr_render_texture_options base;
- float scale;
- struct wlr_box *clip_box; // Used to clip csd. Ignored if NULL
- int corner_radius;
- bool discard_transparent;
-};
struct fx_render_texture_options fx_render_texture_options_default(
const struct wlr_render_texture_options *base);
-struct fx_render_rect_options {
- struct wlr_render_rect_options base;
- float scale;
-};
-
struct fx_render_rect_options fx_render_rect_options_default(
const struct wlr_render_rect_options *base);
-struct fx_render_blur_pass_options {
- struct fx_render_texture_options tex_options;
- pixman_region32_t *opaque_region;
- struct wlr_output *output;
- struct wlr_box monitor_box;
- struct fx_framebuffer *current_buffer;
- struct blur_data *blur_data;
- bool use_optimized_blur;
- bool ignore_transparent;
+struct fx_render_stencil_box_options {
+ struct wlr_box box;
+ /* Clip region, leave NULL to disable clipping */
+ const pixman_region32_t *clip;
+ int corner_radius;
};
/**
- * Render a fx texture.
- */
-void fx_render_pass_add_texture(struct fx_gles_render_pass *render_pass,
- const struct fx_render_texture_options *options);
-
-/**
- * Render a rectangle.
- */
-void fx_render_pass_add_rect(struct fx_gles_render_pass *render_pass,
- const struct fx_render_rect_options *options);
-
-/**
* Render a stencil mask.
*/
void fx_render_pass_add_stencil_mask(struct fx_gles_render_pass *pass,
- const struct fx_render_rect_options *fx_options, int corner_radius);
-
-/**
- * Render a box shadow.
- */
-void fx_render_pass_add_box_shadow(struct fx_gles_render_pass *pass,
- const struct fx_render_rect_options *fx_options,
- int corner_radius, struct shadow_data *shadow_data);
-
-/**
- * Render blur.
- */
-void fx_render_pass_add_blur(struct fx_gles_render_pass *pass,
- struct fx_render_blur_pass_options *fx_options);
-
-/**
- * Render optimized blur.
- */
-void fx_render_pass_add_optimized_blur(struct fx_gles_render_pass *pass,
- struct fx_render_blur_pass_options *fx_options);
-
-/**
- * Render from one buffer to another
- */
-void fx_renderer_read_to_buffer(struct fx_gles_render_pass *pass,
- pixman_region32_t *region, struct fx_framebuffer *dst_buffer,
- struct fx_framebuffer *src_buffer);
+ const struct fx_render_stencil_box_options *options);
#endif