diff options
Diffstat (limited to 'include/render/pass.h')
-rw-r--r-- | include/render/pass.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/include/render/pass.h b/include/render/pass.h new file mode 100644 index 0000000..9551f81 --- /dev/null +++ b/include/render/pass.h @@ -0,0 +1,52 @@ +#ifndef FX_RENDER_PASS_H +#define FX_RENDER_PASS_H + +#include <stdbool.h> +#include <wlr/render/pass.h> +#include <wlr/util/box.h> +#include <wlr/render/interface.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 *renderer, + struct wlr_buffer *buffer, const struct wlr_buffer_pass_options *options); + +struct fx_render_texture_options { + struct wlr_render_texture_options base; + int corner_radius; +}; + +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; +}; + +struct fx_render_rect_options fx_render_rect_options_default( + const struct wlr_render_rect_options *base); + +/** + * 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); + +#endif |