plug-ins: simplify the lcms format fallback code
Instead of adding multiple #else ... #endif branches for missing lcms types, do the fallback at the end if no lcms type could be determined for the layer's pixel format.
This commit is contained in:
@ -873,8 +873,6 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
GimpColorRenderingIntent intent,
|
||||
gboolean bpc)
|
||||
{
|
||||
cmsHTRANSFORM transform = NULL;
|
||||
cmsUInt32Number lcms_format = 0;
|
||||
gint i;
|
||||
|
||||
for (i = 0; i < num_layers; i++)
|
||||
@ -884,6 +882,8 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
gboolean has_alpha;
|
||||
const Babl *type;
|
||||
const Babl *iter_format = NULL;
|
||||
cmsUInt32Number lcms_format = 0;
|
||||
cmsHTRANSFORM transform = NULL;
|
||||
gint *children;
|
||||
gint num_children;
|
||||
|
||||
@ -944,19 +944,6 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
lcms_format = TYPE_RGB_HALF_FLT;
|
||||
iter_format = babl_format ("R'G'B' float");
|
||||
}
|
||||
#else /* ! TYPE_RGB_HALF_FLT */
|
||||
g_printerr ("lcms: half float not supported, falling back to float\n");
|
||||
|
||||
if (has_alpha)
|
||||
{
|
||||
lcms_format = TYPE_RGBA_FLT;
|
||||
iter_format = babl_format ("R'G'B'A float");
|
||||
}
|
||||
else
|
||||
{
|
||||
lcms_format = TYPE_RGB_FLT;
|
||||
iter_format = babl_format ("R'G'B' half");
|
||||
}
|
||||
#endif /* TYPE_RGB_HALF_FLT */
|
||||
}
|
||||
else if (type == babl_type ("float"))
|
||||
@ -980,11 +967,6 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
/* RGBA double not implemented in lcms */
|
||||
lcms_format = TYPE_RGBA_DBL;
|
||||
iter_format = babl_format ("R'G'B'A double");
|
||||
#else /* ! TYPE_RGBA_DBL */
|
||||
g_printerr ("lcms: RGBA double not supported, falling back to float\n");
|
||||
|
||||
lcms_format = TYPE_RGBA_FLT;
|
||||
iter_format = babl_format ("R'G'B'A float");
|
||||
#endif /* TYPE_RGBA_DBL */
|
||||
}
|
||||
else
|
||||
@ -993,9 +975,12 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
iter_format = babl_format ("R'G'B' double");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
if (lcms_format == 0)
|
||||
{
|
||||
g_printerr ("lcms: layer format not supported, falling back to float\n");
|
||||
g_printerr ("lcms: layer format %s not supported, "
|
||||
"falling back to float\n",
|
||||
babl_get_name (layer_format));
|
||||
|
||||
if (has_alpha)
|
||||
{
|
||||
@ -1009,8 +994,6 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
}
|
||||
}
|
||||
|
||||
if (lcms_format != 0)
|
||||
{
|
||||
transform = cmsCreateTransform (src_profile, lcms_format,
|
||||
dest_profile, lcms_format,
|
||||
intent,
|
||||
@ -1076,7 +1059,6 @@ lcms_layers_transform_rgb (gint *layers,
|
||||
cmsDeleteTransform (transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user