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:
Michael Natterer
2014-04-02 00:14:24 +02:00
parent 173c916eb8
commit 59f59726e3

View File

@ -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,