From ab5d3148b98df01d7505d3d5b20f5f9217fdb076 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Sun, 21 Sep 2025 01:38:35 +0200 Subject: [PATCH] color_management_v1: expose try_* enum converters in internal header This will be useful for the Wayland backend. --- include/types/wlr_color_management_v1.h | 9 +++++++++ types/wlr_color_management_v1.c | 25 +++++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 include/types/wlr_color_management_v1.h diff --git a/include/types/wlr_color_management_v1.h b/include/types/wlr_color_management_v1.h new file mode 100644 index 000000000..7fdd50d72 --- /dev/null +++ b/include/types/wlr_color_management_v1.h @@ -0,0 +1,9 @@ +#ifndef TYPES_WLR_COLOR_MANAGEMENT_V1_H +#define TYPES_WLR_COLOR_MANAGEMENT_V1_H + +#include + +uint32_t transfer_function_try_to_wlr(enum wp_color_manager_v1_transfer_function tf); +uint32_t named_primaries_try_to_wlr(enum wp_color_manager_v1_primaries primaries); + +#endif diff --git a/types/wlr_color_management_v1.c b/types/wlr_color_management_v1.c index c69a69c81..ca9773e41 100644 --- a/types/wlr_color_management_v1.c +++ b/types/wlr_color_management_v1.c @@ -9,6 +9,7 @@ #include "color-management-v1-protocol.h" #include "render/color.h" +#include "types/wlr_color_management_v1.h" #include "util/mem.h" #define COLOR_MANAGEMENT_V1_VERSION 1 @@ -984,8 +985,7 @@ void wlr_color_manager_v1_set_surface_preferred_image_description( } } -enum wlr_color_transfer_function -wlr_color_manager_v1_transfer_function_to_wlr(enum wp_color_manager_v1_transfer_function tf) { +uint32_t transfer_function_try_to_wlr(enum wp_color_manager_v1_transfer_function tf) { switch (tf) { case WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_SRGB: return WLR_COLOR_TRANSFER_FUNCTION_SRGB; @@ -998,10 +998,17 @@ wlr_color_manager_v1_transfer_function_to_wlr(enum wp_color_manager_v1_transfer_ case WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_BT1886: return WLR_COLOR_TRANSFER_FUNCTION_BT1886; default: - abort(); + return 0; } } +enum wlr_color_transfer_function +wlr_color_manager_v1_transfer_function_to_wlr(enum wp_color_manager_v1_transfer_function tf) { + uint32_t wlr_tf = transfer_function_try_to_wlr(tf); + assert(wlr_tf != 0); + return wlr_tf; +} + enum wp_color_manager_v1_transfer_function wlr_color_manager_v1_transfer_function_from_wlr(enum wlr_color_transfer_function tf) { switch (tf) { @@ -1019,18 +1026,24 @@ wlr_color_manager_v1_transfer_function_from_wlr(enum wlr_color_transfer_function abort(); } -enum wlr_color_named_primaries -wlr_color_manager_v1_primaries_to_wlr(enum wp_color_manager_v1_primaries primaries) { +uint32_t named_primaries_try_to_wlr(enum wp_color_manager_v1_primaries primaries) { switch (primaries) { case WP_COLOR_MANAGER_V1_PRIMARIES_SRGB: return WLR_COLOR_NAMED_PRIMARIES_SRGB; case WP_COLOR_MANAGER_V1_PRIMARIES_BT2020: return WLR_COLOR_NAMED_PRIMARIES_BT2020; default: - abort(); + return 0; } } +enum wlr_color_named_primaries +wlr_color_manager_v1_primaries_to_wlr(enum wp_color_manager_v1_primaries primaries) { + uint32_t wlr_primaries = named_primaries_try_to_wlr(primaries); + assert(wlr_primaries != 0); + return wlr_primaries; +} + enum wp_color_manager_v1_primaries wlr_color_manager_v1_primaries_from_wlr(enum wlr_color_named_primaries primaries) { switch (primaries) {