style: moved damage creation to function

This commit is contained in:
Will McKinnon 2023-04-04 09:58:41 -04:00
parent 41df328325
commit c24fccd45c

View file

@ -110,6 +110,15 @@ static void set_scale_filter(struct wlr_output *wlr_output,
} }
} }
pixman_region32_t create_damage(const struct wlr_box damage_box, pixman_region32_t *output_damage) {
pixman_region32_t damage;
pixman_region32_init(&damage);
pixman_region32_union_rect(&damage, &damage, damage_box.x, damage_box.y,
damage_box.width, damage_box.height);
pixman_region32_intersect(&damage, &damage, output_damage);
return damage;
}
static void render_texture(struct wlr_output *wlr_output, static void render_texture(struct wlr_output *wlr_output,
pixman_region32_t *output_damage, struct wlr_texture *texture, pixman_region32_t *output_damage, struct wlr_texture *texture,
const struct wlr_fbox *src_box, const struct wlr_box *dst_box, const struct wlr_fbox *src_box, const struct wlr_box *dst_box,
@ -117,11 +126,7 @@ static void render_texture(struct wlr_output *wlr_output,
struct sway_output *output = wlr_output->data; struct sway_output *output = wlr_output->data;
struct fx_renderer *renderer = output->server->renderer; struct fx_renderer *renderer = output->server->renderer;
pixman_region32_t damage; pixman_region32_t damage = create_damage(*dst_box, output_damage);
pixman_region32_init(&damage);
pixman_region32_union_rect(&damage, &damage, dst_box->x, dst_box->y,
dst_box->width, dst_box->height);
pixman_region32_intersect(&damage, &damage, output_damage);
bool damaged = pixman_region32_not_empty(&damage); bool damaged = pixman_region32_not_empty(&damage);
if (!damaged) { if (!damaged) {
goto damage_finish; goto damage_finish;
@ -242,11 +247,7 @@ void render_rect(struct sway_output *output,
box.x -= output->lx * wlr_output->scale; box.x -= output->lx * wlr_output->scale;
box.y -= output->ly * wlr_output->scale; box.y -= output->ly * wlr_output->scale;
pixman_region32_t damage; pixman_region32_t damage = create_damage(box, output_damage);
pixman_region32_init(&damage);
pixman_region32_union_rect(&damage, &damage, box.x, box.y,
box.width, box.height);
pixman_region32_intersect(&damage, &damage, output_damage);
bool damaged = pixman_region32_not_empty(&damage); bool damaged = pixman_region32_not_empty(&damage);
if (!damaged) { if (!damaged) {
goto damage_finish; goto damage_finish;
@ -274,11 +275,7 @@ void render_rounded_rect(struct sway_output *output, pixman_region32_t *output_d
box.x -= output->lx * wlr_output->scale; box.x -= output->lx * wlr_output->scale;
box.y -= output->ly * wlr_output->scale; box.y -= output->ly * wlr_output->scale;
pixman_region32_t damage; pixman_region32_t damage = create_damage(box, output_damage);
pixman_region32_init(&damage);
pixman_region32_union_rect(&damage, &damage, box.x, box.y,
box.width, box.height);
pixman_region32_intersect(&damage, &damage, output_damage);
bool damaged = pixman_region32_not_empty(&damage); bool damaged = pixman_region32_not_empty(&damage);
if (!damaged) { if (!damaged) {
goto damage_finish; goto damage_finish;
@ -309,11 +306,7 @@ void render_border_corner(struct sway_output *output, pixman_region32_t *output_
box.x -= output->lx * wlr_output->scale; box.x -= output->lx * wlr_output->scale;
box.y -= output->ly * wlr_output->scale; box.y -= output->ly * wlr_output->scale;
pixman_region32_t damage; pixman_region32_t damage = create_damage(box, output_damage);
pixman_region32_init(&damage);
pixman_region32_union_rect(&damage, &damage, box.x, box.y,
box.width, box.height);
pixman_region32_intersect(&damage, &damage, output_damage);
bool damaged = pixman_region32_not_empty(&damage); bool damaged = pixman_region32_not_empty(&damage);
if (!damaged) { if (!damaged) {
goto damage_finish; goto damage_finish;
@ -349,11 +342,7 @@ void render_box_shadow(struct sway_output *output, pixman_region32_t *output_dam
// Uses the outer radii of the window for a more realistic look // Uses the outer radii of the window for a more realistic look
corner_radius = corner_radius + border_thickness; corner_radius = corner_radius + border_thickness;
pixman_region32_t damage; pixman_region32_t damage = create_damage(box, output_damage);
pixman_region32_init(&damage);
pixman_region32_union_rect(&damage, &damage, box.x, box.y,
box.width, box.height);
pixman_region32_intersect(&damage, &damage, output_damage);
bool damaged = pixman_region32_not_empty(&damage); bool damaged = pixman_region32_not_empty(&damage);
if (!damaged) { if (!damaged) {
goto damage_finish; goto damage_finish;