18 #ifndef MAGICKCORE_MAGICK_TYPE_H 19 #define MAGICKCORE_MAGICK_TYPE_H 21 #include "magick/magick-config.h" 23 #if defined(MAGICKCORE_HAVE_UINTPTR_T) 27 #if defined(__cplusplus) || defined(c_plusplus) 31 #if !defined(MAGICKCORE_QUANTUM_DEPTH) 32 #define MAGICKCORE_QUANTUM_DEPTH 16 34 #if !defined(MagickPathExtent) 35 #define MagickPathExtent MaxTextExtent 38 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__) 39 # define MagickLLConstant(c) ((MagickOffsetType) (c ## i64)) 40 # define MagickULLConstant(c) ((MagickSizeType) (c ## ui64)) 42 # define MagickLLConstant(c) ((MagickOffsetType) (c ## LL)) 43 # define MagickULLConstant(c) ((MagickSizeType) (c ## ULL)) 46 #if MAGICKCORE_SIZEOF_FLOAT_T == 0 47 typedef float MagickFloatType;
48 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT) 49 typedef float MagickFloatType;
50 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE) 51 typedef double MagickFloatType;
52 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) 53 typedef double MagickFloatType;
55 #error Your MagickFloatType type is neither a float, nor a double, nor a long double 57 #if MAGICKCORE_SIZEOF_DOUBLE_T == 0 58 typedef double MagickDoubleType;
59 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE) 60 typedef double MagickDoubleType;
61 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) 62 typedef long double MagickDoubleType;
64 #error Your MagickDoubleType type is neither a float, nor a double, nor a long double 67 #if (MAGICKCORE_QUANTUM_DEPTH == 8) 68 #define MaxColormapSize 256UL 70 typedef ssize_t SignedQuantum;
71 #if defined(MAGICKCORE_HDRI_SUPPORT) 72 typedef MagickFloatType Quantum;
73 #define QuantumRange ((Quantum) 255.0) 74 #define QuantumFormat "%g" 76 typedef unsigned char Quantum;
77 #define QuantumRange ((Quantum) 255) 78 #define QuantumFormat "%u" 80 #elif (MAGICKCORE_QUANTUM_DEPTH == 16) 81 #define MaxColormapSize 65536UL 82 #define MaxMap 65535UL 83 typedef ssize_t SignedQuantum;
84 #if defined(MAGICKCORE_HDRI_SUPPORT) 85 typedef MagickFloatType Quantum;
86 #define QuantumRange ((Quantum) 65535.0) 87 #define QuantumFormat "%g" 89 typedef unsigned short Quantum;
90 #define QuantumRange ((Quantum) 65535) 91 #define QuantumFormat "%u" 93 #elif (MAGICKCORE_QUANTUM_DEPTH == 32) 94 #define MaxColormapSize 65536UL 95 #define MaxMap 65535UL 96 typedef MagickDoubleType SignedQuantum;
97 #if defined(MAGICKCORE_HDRI_SUPPORT) 98 typedef MagickDoubleType Quantum;
99 #define QuantumRange ((Quantum) 4294967295.0) 100 #define QuantumFormat "%g" 102 typedef unsigned int Quantum;
103 #define QuantumRange ((Quantum) 4294967295) 104 #define QuantumFormat "%u" 106 #elif (MAGICKCORE_QUANTUM_DEPTH == 64) 107 #define MAGICKCORE_HDRI_SUPPORT 1 108 #define MaxColormapSize 65536UL 109 #define MaxMap 65535UL 110 typedef MagickDoubleType SignedQuantum;
111 typedef MagickDoubleType Quantum;
112 #define QuantumRange ((Quantum) 18446744073709551615.0) 113 #define QuantumFormat "%g" 116 # error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64" 119 #define MagickEpsilon (1.0e-12) 120 #define MagickMaximumValue 1.79769313486231570E+308 121 #define MagickMinimumValue 2.22507385850720140E-308 122 #define MagickStringify(macro_or_string) MagickStringifyArg(macro_or_string) 123 #define MagickStringifyArg(contents) #contents 124 #define QuantumScale ((double) 1.0/(double) QuantumRange) 129 typedef MagickDoubleType MagickRealType;
131 typedef unsigned int MagickStatusType;
132 #if !defined(MAGICKCORE_WINDOWS_SUPPORT) 133 #if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8) 134 typedef long long MagickOffsetType;
135 typedef unsigned long long MagickSizeType;
136 #define MagickOffsetFormat "lld" 137 #define MagickSizeFormat "llu" 139 typedef ssize_t MagickOffsetType;
140 typedef size_t MagickSizeType;
141 #define MagickOffsetFormat "ld" 142 #define MagickSizeFormat "lu" 145 typedef __int64 MagickOffsetType;
146 typedef unsigned __int64 MagickSizeType;
147 #define MagickOffsetFormat "I64i" 148 #define MagickSizeFormat "I64u" 151 #if defined(MAGICKCORE_HAVE_UINTPTR_T) || defined(uintptr_t) 152 typedef uintptr_t MagickAddressType;
155 typedef size_t MagickAddressType;
158 #if defined(_MSC_VER) && (_MSC_VER == 1200) 159 typedef MagickOffsetType QuantumAny;
161 typedef MagickSizeType QuantumAny;
164 #if defined(macintosh) 165 #define ExceptionInfo MagickExceptionInfo 172 GrayChannel = 0x0001,
173 CyanChannel = 0x0001,
174 GreenChannel = 0x0002,
175 MagentaChannel = 0x0002,
176 BlueChannel = 0x0004,
177 YellowChannel = 0x0004,
178 AlphaChannel = 0x0008,
179 OpacityChannel = 0x0008,
180 MatteChannel = 0x0008,
181 BlackChannel = 0x0020,
182 IndexChannel = 0x0020,
183 CompositeChannels = 0x002F,
184 AllChannels = 0x7ffffff,
188 TrueAlphaChannel = 0x0040,
189 RGBChannels = 0x0080,
190 GrayChannels = 0x0080,
191 SyncChannels = 0x0100,
192 DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
219 #if defined(MAGICKCORE_HAVE_ISNAN) && !defined(__cplusplus) && !defined(c_plusplus) 220 # define IsNaN(a) isnan(a) 221 #elif defined(_MSC_VER) && (_MSC_VER >= 1310) 223 # define IsNaN(a) _isnan(a) 225 # define IsNaN(a) ((a) != (a)) 227 #if !defined(INFINITY) 228 # define INFINITY ((double) -logf(0f)) 239 #if defined(__cplusplus) || defined(c_plusplus)