render/pixel-format: Move has_alpha into it's own array

Some opaque pixel formats (nv12, p010) require per-plane bytes_per_block
info. However, it doesn't make sense to store them in
wlr_pixel_format_info, as they will never be useful (currently, this
info is used for shm, which doesn't have a concept of multi-planar
buffers.)

Let's define a separate array and function for determining whether a
pixel format has alpha.
This commit is contained in:
Leo Li 2024-01-31 12:30:16 -05:00
parent 3a91dc1b48
commit 71fb55f3bf
5 changed files with 46 additions and 28 deletions

View file

@ -382,7 +382,7 @@ static void texture_set_format(struct wlr_vk_texture *texture,
const struct wlr_pixel_format_info *format_info =
drm_get_pixel_format_info(format->drm);
if (format_info != NULL) {
texture->has_alpha = format_info->has_alpha;
texture->has_alpha = pixel_format_has_alpha(format->drm);
} else {
// We don't have format info for multi-planar formats
assert(texture->format->is_ycbcr);