render/pixman: skip mask for opaque texture rendering

This commit is contained in:
Simon Ser 2022-12-08 16:53:14 +01:00
parent 9b7ee63774
commit 32fc23a383

View file

@ -255,10 +255,12 @@ static bool pixman_render_subtexture_with_matrix(
} }
} }
// TODO: don't create a mask if alpha == 1.0 pixman_image_t *mask = NULL;
if (alpha != 1.0) {
struct pixman_color mask_colour = {0}; struct pixman_color mask_colour = {0};
mask_colour.alpha = 0xFFFF * alpha; mask_colour.alpha = 0xFFFF * alpha;
pixman_image_t *mask = pixman_image_create_solid_fill(&mask_colour); mask = pixman_image_create_solid_fill(&mask_colour);
}
float m[9]; float m[9];
memcpy(m, matrix, sizeof(m)); memcpy(m, matrix, sizeof(m));
@ -279,7 +281,9 @@ static bool pixman_render_subtexture_with_matrix(
wlr_buffer_end_data_ptr_access(texture->buffer); wlr_buffer_end_data_ptr_access(texture->buffer);
} }
if (mask != NULL) {
pixman_image_unref(mask); pixman_image_unref(mask);
}
return true; return true;
} }