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,
|
GimpColorRenderingIntent intent,
|
||||||
gboolean bpc)
|
gboolean bpc)
|
||||||
{
|
{
|
||||||
cmsHTRANSFORM transform = NULL;
|
|
||||||
cmsUInt32Number lcms_format = 0;
|
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
for (i = 0; i < num_layers; i++)
|
for (i = 0; i < num_layers; i++)
|
||||||
@ -884,6 +882,8 @@ lcms_layers_transform_rgb (gint *layers,
|
|||||||
gboolean has_alpha;
|
gboolean has_alpha;
|
||||||
const Babl *type;
|
const Babl *type;
|
||||||
const Babl *iter_format = NULL;
|
const Babl *iter_format = NULL;
|
||||||
|
cmsUInt32Number lcms_format = 0;
|
||||||
|
cmsHTRANSFORM transform = NULL;
|
||||||
gint *children;
|
gint *children;
|
||||||
gint num_children;
|
gint num_children;
|
||||||
|
|
||||||
@ -944,19 +944,6 @@ lcms_layers_transform_rgb (gint *layers,
|
|||||||
lcms_format = TYPE_RGB_HALF_FLT;
|
lcms_format = TYPE_RGB_HALF_FLT;
|
||||||
iter_format = babl_format ("R'G'B' float");
|
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 */
|
#endif /* TYPE_RGB_HALF_FLT */
|
||||||
}
|
}
|
||||||
else if (type == babl_type ("float"))
|
else if (type == babl_type ("float"))
|
||||||
@ -980,11 +967,6 @@ lcms_layers_transform_rgb (gint *layers,
|
|||||||
/* RGBA double not implemented in lcms */
|
/* RGBA double not implemented in lcms */
|
||||||
lcms_format = TYPE_RGBA_DBL;
|
lcms_format = TYPE_RGBA_DBL;
|
||||||
iter_format = babl_format ("R'G'B'A double");
|
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 */
|
#endif /* TYPE_RGBA_DBL */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -993,9 +975,12 @@ lcms_layers_transform_rgb (gint *layers,
|
|||||||
iter_format = babl_format ("R'G'B' double");
|
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)
|
if (has_alpha)
|
||||||
{
|
{
|
||||||
@ -1009,8 +994,6 @@ lcms_layers_transform_rgb (gint *layers,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lcms_format != 0)
|
|
||||||
{
|
|
||||||
transform = cmsCreateTransform (src_profile, lcms_format,
|
transform = cmsCreateTransform (src_profile, lcms_format,
|
||||||
dest_profile, lcms_format,
|
dest_profile, lcms_format,
|
||||||
intent,
|
intent,
|
||||||
@ -1077,7 +1060,6 @@ lcms_layers_transform_rgb (gint *layers,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
lcms_image_transform_indexed (gint32 image,
|
lcms_image_transform_indexed (gint32 image,
|
||||||
|
Reference in New Issue
Block a user