diff options
author | Alexander Orzechowski <alex@ozal.ski> | 2023-04-27 11:19:58 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2023-05-02 18:31:55 +0200 |
commit | d5cc474aef6bf5a23694053ab9c8770ea3f21e6f (patch) | |
tree | 9bead7ab099de9675204d82ae397746cec232ff8 /include/sway | |
parent | 33cfdbe886144e8515593d96a80d850a7c6e382e (diff) |
render: pass rendering state together in a struct
This lets us easily add rendering state that we need in the future
Diffstat (limited to 'include/sway')
-rw-r--r-- | include/sway/input/seat.h | 7 | ||||
-rw-r--r-- | include/sway/output.h | 11 |
2 files changed, 11 insertions, 7 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 7b2d3d07..6d29cf3b 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h @@ -12,6 +12,7 @@ #include "sway/input/text_input.h" struct sway_seat; +struct render_context; struct sway_seatop_impl { void (*button)(struct sway_seat *seat, uint32_t time_msec, @@ -49,8 +50,7 @@ struct sway_seatop_impl { uint32_t time_msec, enum wlr_tablet_tool_tip_state state); void (*end)(struct sway_seat *seat); void (*unref)(struct sway_seat *seat, struct sway_container *con); - void (*render)(struct sway_seat *seat, struct sway_output *output, - const pixman_region32_t *damage); + void (*render)(struct sway_seat *seat, struct render_context *ctx); bool allow_set_cursor; }; @@ -356,8 +356,7 @@ void seatop_unref(struct sway_seat *seat, struct sway_container *con); * Instructs a seatop to render anything that it needs to render * (eg. dropzone for move-tiling) */ -void seatop_render(struct sway_seat *seat, struct sway_output *output, - const pixman_region32_t *damage); +void seatop_render(struct sway_seat *seat, struct render_context *ctx); bool seatop_allows_set_cursor(struct sway_seat *seat); diff --git a/include/sway/output.h b/include/sway/output.h index 04202976..b397c8e2 100644 --- a/include/sway/output.h +++ b/include/sway/output.h @@ -65,6 +65,12 @@ struct sway_output_non_desktop { struct wl_listener destroy; }; +struct render_context { + struct sway_output *output; + struct wlr_renderer *renderer; + const pixman_region32_t *output_damage; +}; + struct sway_output *output_create(struct wlr_output *wlr_output); void output_destroy(struct sway_output *output); @@ -115,7 +121,7 @@ bool output_has_opaque_overlay_layer_surface(struct sway_output *output); struct sway_workspace *output_get_active_workspace(struct sway_output *output); -void output_render(struct sway_output *output, pixman_region32_t *damage); +void output_render(struct render_context *ctx); void output_surface_for_each_surface(struct sway_output *output, struct wlr_surface *surface, double ox, double oy, @@ -168,8 +174,7 @@ void output_get_box(struct sway_output *output, struct wlr_box *box); enum sway_container_layout output_get_default_layout( struct sway_output *output); -void render_rect(struct sway_output *output, - const pixman_region32_t *output_damage, const struct wlr_box *_box, +void render_rect(struct render_context *ctx, const struct wlr_box *_box, float color[static 4]); void premultiply_alpha(float color[4], float opacity); |