babl: use an enum to internally differentiate rgb, cmyk or gray type spaces
authorØyvind Kolås <pippin@gimp.org>
Sun, 18 Aug 2019 19:06:33 +0000 (21:06 +0200)
committerØyvind Kolås <pippin@gimp.org>
Sun, 18 Aug 2019 22:01:55 +0000 (00:01 +0200)
babl/babl-icc.c
babl/babl-space.c
babl/babl-space.h

index 9df1954bb23e9a8d0fa1cd0630adbd4f9b43d3c0..e37197718c172ce381328709f51793c9e9a8d88d 100644 (file)
@@ -840,9 +840,9 @@ babl_space_from_icc (const char   *icc_data,
     if (!strcmp (color_space.str, "CMYK"))
     {
        ret = _babl_space_for_lcms (icc_data, icc_length);
-       if (ret->space.cmyk.is_cmyk)
+       if (ret->space.icc_type == BablICCTypeCMYK)
          return ret;
-       ret->space.cmyk.is_cmyk = 1;
+       ret->space.icc_type = BablICCTypeCMYK;
        ret->space.icc_length = icc_length;
        ret->space.icc_profile = malloc (icc_length);
        memcpy (ret->space.icc_profile, icc_data, icc_length);
index d531017e36dcc5b6d392f7000f886fbd7fabac9d..7a8d7b1f70d7e2a827155314834ed431f6bf21df 100644 (file)
@@ -1232,7 +1232,7 @@ babl_space_match_trc_matrix (const Babl *trc_red,
   for (i = 0; space_db[i].instance.class_type; i++)
   {
     BablSpace *space = &space_db[i];
-    if (space->cmyk.is_cmyk == 0 &&
+    if (space->icc_type == BablICCTypeRGB &&
         trc_red == space->trc[0] &&
         trc_green == space->trc[1] &&
         trc_blue == space->trc[2] &&
@@ -1306,7 +1306,7 @@ babl_space_get (const Babl *babl,
 int
 babl_space_is_cmyk (const Babl *space)
 {
-  return space?space->space.cmyk.is_cmyk:0;
+  return space?space->space.icc_type == BablICCTypeCMYK:0;
 }
 
 /* Trademarks:
index 7a905e2148f6f620ed7fbafc7f5229377f1fc5de..1d9934a202c0c197755f3cfb13d485312d7ebd3a 100644 (file)
@@ -33,12 +33,13 @@ BABL_CLASS_DECLARE (space);
 
 typedef struct
 {
-  int           is_cmyk;
+  //int           is_cmyk;
 #ifdef HAVE_LCMS
   cmsHPROFILE   lcms_profile;
   cmsHTRANSFORM lcms_to_rgba;
   cmsHTRANSFORM lcms_from_rgba;
 #endif
+  int  filler;
 } BablCMYK;
 
 #if 0  // draft datastructures for spectral spaces
@@ -89,6 +90,12 @@ typedef struct
 } BablProcessSpace;
 #endif
 
+typedef enum {
+  BablICCTypeRGB = 0,
+  BablICCTypeGray = 2,
+  BablICCTypeCMYK = 3,
+} BablICCType;
+
 typedef struct
 {
   BablInstance     instance;
@@ -124,6 +131,7 @@ typedef struct
    */
   char *icc_profile;
   int   icc_length;
+  BablICCType icc_type;
   BablCMYK cmyk;
 } BablSpace;