summaryrefslogtreecommitdiff
path: root/base/gsicc_manage.c
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2019-07-18 15:47:54 +0100
committerRobin Watts <Robin.Watts@artifex.com>2019-07-18 19:38:09 +0100
commite5faf407dcb7c9679537313cebd55a747098f6f8 (patch)
treec960b197903e1032aba602f6143b5348c81db5b5 /base/gsicc_manage.c
parentc0e588f679fca92d92045049fd60846b57da899c (diff)
downloadghostpdl-e5faf407dcb7c9679537313cebd55a747098f6f8.tar.gz
Bug 701296: Fix Interpolation in Indexed spaces with UseFastColor
The get_color_handler logic was being called with pcs = Indexed, and so doing pcs = pcs->base_space. Then it was checking that pcs == the concrete space, seeing that it was, and deciding it could then use the device colors direct. The problem is that pcs->base_space is a greyscale space, so when running to (say) an rgb output, we have the wrong color data. We now check for the number of components being as we expect, and for the space being one of our 'default' ones before choosing to take the 'fast' route.
Diffstat (limited to 'base/gsicc_manage.c')
-rw-r--r--base/gsicc_manage.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/base/gsicc_manage.c b/base/gsicc_manage.c
index f977b649d..9de2a5218 100644
--- a/base/gsicc_manage.c
+++ b/base/gsicc_manage.c
@@ -497,6 +497,19 @@ gsicc_get_default_type(cmm_profile_t *profile_data)
}
bool
+gsicc_is_default_profile(cmm_profile_t *profile_data)
+{
+ switch (profile_data->default_match) {
+ case DEFAULT_GRAY:
+ case DEFAULT_RGB:
+ case DEFAULT_CMYK:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool
gsicc_profile_from_ps(cmm_profile_t *profile_data)
{
switch ( profile_data->default_match ) {