Merge branch 'for-main' into 'main'

image tool: Better color state support

See merge request GNOME/gtk!7799
This commit is contained in:
Matthias Clasen 2024-10-05 13:38:07 +00:00
commit 1ad5943cd8
4 changed files with 35 additions and 2 deletions

View File

@ -48,12 +48,23 @@ static void
file_info (const char *filename)
{
GdkTexture *texture;
char *name;
char *cicp;
texture = load_image_file (filename);
g_print ("%s %dx%d\n", _("Size:"), gdk_texture_get_width (texture), gdk_texture_get_height (texture));
g_print ("%s %s\n", _("Format:"), get_format_name (gdk_texture_get_format (texture)));
g_print ("%s %s\n", _("Color state:"), get_color_state_name (gdk_texture_get_color_state (texture)));
name = get_color_state_name (gdk_texture_get_color_state (texture));
cicp = get_color_state_cicp (gdk_texture_get_color_state (texture));
if (name && cicp)
g_print ("%s %s (cicp %s)\n", _("Color state:"), name, cicp);
else if (cicp)
g_print ("%s cicp %s\n", _("Color state:"), cicp);
else
g_print ("%s %s\n", _("Color state:"), _("unknown"));
g_object_unref (texture);
}

View File

@ -188,6 +188,27 @@ get_color_state_names (void)
return g_strdupv ((char **) names);
}
char *
get_color_state_cicp (GdkColorState *color_state)
{
GdkCicpParams *params;
char *str = NULL;
params = gdk_color_state_create_cicp_params (color_state);
if (params)
{
str = g_strdup_printf ("%u/%u/%u/%u",
gdk_cicp_params_get_color_primaries (params),
gdk_cicp_params_get_transfer_function (params),
gdk_cicp_params_get_matrix_coefficients (params),
gdk_cicp_params_get_range (params));
g_object_unref (params);
}
return str;
}
char *
get_color_state_name (GdkColorState *color_state)
{

View File

@ -18,6 +18,7 @@ GdkColorState * find_color_state_by_name (const char *name);
char ** get_color_state_names (void);
char * get_color_state_name (GdkColorState *color_state);
char * get_color_state_cicp (GdkColorState *color_state);
GdkColorState *parse_cicp_tuple (const char *cicp_tuple,
GError **error);

View File

@ -11,7 +11,7 @@ if win32_enabled
# compile_resources doesn't like to consume targets with multiple outputs,
# and the xxx.exe.manifest and xxx.rc are tied together
uac_rc = custom_target(
'tools/@0@.rc'.format(uac_exe_name),
'@0@-rc'.format(uac_exe_name),
output: ['@0@.rc'.format(uac_exe_name)],
command: [gen_uac_manifest,
'-p=@0@'.format(uac_exe_pkg),