emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 1170c2f: Fix MS-Windows build broken by recent chan


From: Eli Zaretskii
Subject: [Emacs-diffs] master 1170c2f: Fix MS-Windows build broken by recent changes in lcms.c
Date: Sat, 16 Sep 2017 03:43:03 -0400 (EDT)

branch: master
commit 1170c2f37158282d3f4a322586b2aa67001a287e
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix MS-Windows build broken by recent changes in lcms.c
    
    * src/lcms.c [WINDOWSNT]: Define types for cmsWhitePointFromTemp
    and cmsxyY2XYZ function pointers.
    (init_lcms_functions) [WINDOWSNT]: Load cmsWhitePointFromTemp and
    cmsxyY2XYZ from liblcms2.
    (cmsWhitePointFromTemp, cmsxyY2XYZ) [WINDOWSNT]: Redirect to the
    corresponding function pointers.
    (Flcms_temp_to_white_point): Minor stylistic changes.  Doc fix.
    (syms_of_lcms2): Defsubr Slcms_temp_to_white_point.
---
 src/lcms.c | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/lcms.c b/src/lcms.c
index 974fcd4..1f3ace3 100644
--- a/src/lcms.c
+++ b/src/lcms.c
@@ -37,6 +37,9 @@ DEF_DLL_FN (cmsHANDLE, cmsCIECAM02Init,
 DEF_DLL_FN (void, cmsCIECAM02Forward,
            (cmsHANDLE hModel, const cmsCIEXYZ* pIn, cmsJCh* pOut));
 DEF_DLL_FN (void, cmsCIECAM02Done, (cmsHANDLE hModel));
+DEF_DLL_FN (cmsBool, cmsWhitePointFromTemp,
+           (cmsCIExyY* WhitePoint, cmsFloat64Number TempK));
+DEF_DLL_FN (void, cmsxyY2XYZ, (cmsCIEXYZ* Dest, const cmsCIExyY* Source));
 
 static bool lcms_initialized;
 
@@ -52,6 +55,8 @@ init_lcms_functions (void)
   LOAD_DLL_FN (library, cmsCIECAM02Init);
   LOAD_DLL_FN (library, cmsCIECAM02Forward);
   LOAD_DLL_FN (library, cmsCIECAM02Done);
+  LOAD_DLL_FN (library, cmsWhitePointFromTemp);
+  LOAD_DLL_FN (library, cmsxyY2XYZ);
   return true;
 }
 
@@ -59,11 +64,15 @@ init_lcms_functions (void)
 # undef cmsCIECAM02Init
 # undef cmsCIECAM02Forward
 # undef cmsCIECAM02Done
+# undef cmsWhitePointFromTemp
+# undef cmsxyY2XYZ
 
-# define cmsCIE2000DeltaE   fn_cmsCIE2000DeltaE
-# define cmsCIECAM02Init    fn_cmsCIECAM02Init
-# define cmsCIECAM02Forward fn_cmsCIECAM02Forward
-# define cmsCIECAM02Done    fn_cmsCIECAM02Done
+# define cmsCIE2000DeltaE      fn_cmsCIE2000DeltaE
+# define cmsCIECAM02Init       fn_cmsCIECAM02Init
+# define cmsCIECAM02Forward    fn_cmsCIECAM02Forward
+# define cmsCIECAM02Done       fn_cmsCIECAM02Done
+# define cmsWhitePointFromTemp fn_cmsWhitePointFromTemp
+# define cmsxyY2XYZ            fn_cmsxyY2XYZ
 
 #endif /* WINDOWSNT */
 
@@ -184,7 +193,7 @@ Optional argument is the XYZ white point, which defaults to 
illuminant D65. */)
       xyzw.Y = 100.0;
       xyzw.Z = 108.883;
     }
-  else if (!(CONSP (whitepoint) && parse_xyz_list(whitepoint, &xyzw)))
+  else if (!(CONSP (whitepoint) && parse_xyz_list (whitepoint, &xyzw)))
     signal_error("Invalid white point", whitepoint);
 
   vc.whitePoint.X = xyzw.X;
@@ -234,7 +243,7 @@ Optional argument is the XYZ white point, which defaults to 
illuminant D65. */)
 
 DEFUN ("lcms-temp->white-point", Flcms_temp_to_white_point, 
Slcms_temp_to_white_point, 1, 1, 0,
        doc: /* Return XYZ black body chromaticity from TEMPERATURE given in K.
-Valid range is 4000K to 25000K. */)
+Valid range of TEMPERATURE is from 4000K to 25000K. */)
   (Lisp_Object temperature)
 {
   cmsFloat64Number tempK;
@@ -251,12 +260,12 @@ Valid range is 4000K to 25000K. */)
     }
 #endif
 
-  CHECK_NUMBER_OR_FLOAT(temperature);
+  CHECK_NUMBER_OR_FLOAT (temperature);
 
-  tempK = XFLOATINT(temperature);
-  if (!(cmsWhitePointFromTemp(&whitepoint, tempK)))
+  tempK = XFLOATINT (temperature);
+  if (!(cmsWhitePointFromTemp (&whitepoint, tempK)))
     signal_error("Invalid temperature", temperature);
-  cmsxyY2XYZ(&wp, &whitepoint);
+  cmsxyY2XYZ (&wp, &whitepoint);
   return list3 (make_float (wp.X), make_float (wp.Y), make_float (wp.Z));
 }
 
@@ -289,6 +298,7 @@ syms_of_lcms2 (void)
   defsubr (&Slcms_cie_de2000);
   defsubr (&Slcms_cam02_ucs);
   defsubr (&Slcms2_available_p);
+  defsubr (&Slcms_temp_to_white_point);
 
   Fprovide (intern_c_string ("lcms2"), Qnil);
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]