]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 26 May 2014 12:55:32 +0000 (12:55 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 26 May 2014 12:55:32 +0000 (12:55 +0000)
MagickCore/quantum-private.h

index bc0b7d5caa2a0fd5b859aa9b622c29fa9289a509..f969e23fcbc320a0c21708148bbfd4c21a8d0bc3 100644 (file)
@@ -299,7 +299,17 @@ static inline Quantum ScaleLongToQuantum(const unsigned int value)
 #endif
 }
 
-static inline Quantum ScaleMapToQuantum(const double value)
+static inline Quantum ScaleLongLongToQuantum(const MagickSizeType value)
+{
+#if !defined(MAGICKCORE_HDRI_SUPPORT)
+  return((Quantum) ((value+MagickULLConstant(551911719039))/
+    MagickULLConstant(1103823438079)));
+#else
+  return((Quantum) (value/1103823438079.0));
+#endif
+}
+
+static inline Quantum ScaleMapToQuantum(const MagickRealType value)
 {
   if (value <= 0.0)
     return((Quantum) 0);
@@ -325,6 +335,19 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
 #endif
 }
 
+static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
+{
+#if !defined(MAGICKCORE_HDRI_SUPPORT)
+  return((MagickSizeType) (MagickULLConstant(551911719039)*quantum));
+#else
+  if (quantum <= 0.0)
+    return(0UL);
+  if ((551911719039.0*quantum) >= 18446744073709551615.0)
+    return(MagickULLConstant(18446744073709551615));
+  return((MagickSizeType) (1103823438079.0*quantum+0.5));
+#endif
+}
+
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
   if (quantum >= (Quantum) MaxMap)
@@ -379,7 +402,17 @@ static inline Quantum ScaleLongToQuantum(const unsigned int value)
 #endif
 }
 
-static inline Quantum ScaleMapToQuantum(const double value)
+static inline Quantum ScaleLongLongToQuantum(const MagickSizeType value)
+{
+#if !defined(MAGICKCORE_HDRI_SUPPORT)
+  return((Quantum) ((value+MagickULLConstant(8421376))/
+    MagickULLConstant(16842752)));
+#else
+  return((Quantum) (value/16842752.0));
+#endif
+}
+
+static inline Quantum ScaleMapToQuantum(const MagickRealType value)
 {
   if (value <= 0.0)
     return((Quantum) 0);
@@ -405,6 +438,19 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
 #endif
 }
 
+static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
+{
+#if !defined(MAGICKCORE_HDRI_SUPPORT)
+  return((MagickSizeType) (MagickULLConstant(16842752)*quantum));
+#else
+  if (quantum <= 0.0)
+    return(0UL);
+  if ((65537.0*quantum) >= 18446744073709551615.0)
+    return(MagickULLConstant(18446744073709551615));
+  return((MagickSizeType) (16842752.0*quantum+0.5));
+#endif
+}
+
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
   if (quantum >= (Quantum) MaxMap)
@@ -450,7 +496,12 @@ static inline Quantum ScaleLongToQuantum(const unsigned int value)
   return((Quantum) value);
 }
 
-static inline Quantum ScaleMapToQuantum(const double value)
+static inline Quantum ScaleLongLongToQuantum(const MagickSizeType value)
+{
+  return((Quantum) value);
+}
+
+static inline Quantum ScaleMapToQuantum(const MagickRealType value)
 {
   if (value <= 0.0)
     return((Quantum) 0);
@@ -476,6 +527,15 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
 #endif
 }
 
+static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
+{
+#if !defined(MAGICKCORE_HDRI_SUPPORT)
+  return((MagickSizeType) quantum);
+#else
+  return((MagickSizeType) (quantum+0.5));
+#endif
+}
+
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
   if (quantum < 0.0)
@@ -523,7 +583,12 @@ static inline Quantum ScaleLongToQuantum(const unsigned int value)
   return((Quantum) (4294967297.0*value));
 }
 
-static inline Quantum ScaleMapToQuantum(const double value)
+static inline Quantum ScaleLongLongToQuantum(const MagickSizeType value)
+{
+  return((Quantum) (18446744073709551615.0*value));
+}
+
+static inline Quantum ScaleMapToQuantum(const MagickRealType value)
 {
   if (value <= 0.0)
     return((Quantum) 0);
@@ -537,6 +602,11 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
   return((unsigned int) (quantum/4294967297.0+0.5));
 }
 
+static inline MagickSizeType ScaleQuantumToLongLong(const Quantum quantum)
+{
+  return((MagickSizeType) (quantum/18446744073709551615.0+0.5));
+}
+
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
   if (quantum <= 0.0)