magick-type.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _MAGICKCORE_MAGICK_TYPE_H
00019 #define _MAGICKCORE_MAGICK_TYPE_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 #include "magick/magick-config.h"
00026
00027 #if !defined(MAGICKCORE_QUANTUM_DEPTH)
00028 #define MAGICKCORE_QUANTUM_DEPTH 16
00029 #endif
00030
00031 #if defined(__WINDOWS__) && !defined(__MINGW32__)
00032 # define MagickLLConstant(c) (MagickOffsetType) (c ## i64)
00033 # define MagickULLConstant(c) (MagickSizeType) (c ## ui64)
00034 #else
00035 # define MagickLLConstant(c) (MagickOffsetType) (c ## LL)
00036 # define MagickULLConstant(c) (MagickSizeType) (c ## ULL)
00037 #endif
00038
00039 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
00040 #define MagickEpsilon 1.0e-6
00041 #define MagickHuge 1.0e6
00042 #define MaxColormapSize 256UL
00043 #define MaxMap 255UL
00044
00045 typedef double MagickRealType;
00046 #if defined(MAGICKCORE_HDRI_SUPPORT)
00047 typedef float Quantum;
00048 #define QuantumRange 255.0
00049 #define QuantumFormat "%g"
00050 #else
00051 typedef unsigned char Quantum;
00052 #define QuantumRange 255UL
00053 #define QuantumFormat "%u"
00054 #endif
00055 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
00056 #define MagickEpsilon 1.0e-10
00057 #define MagickHuge 1.0e12
00058 #define MaxColormapSize 65536UL
00059 #define MaxMap 65535UL
00060
00061 typedef double MagickRealType;
00062 #if defined(MAGICKCORE_HDRI_SUPPORT)
00063 typedef float Quantum;
00064 #define QuantumRange 65535.0
00065 #define QuantumFormat "%g"
00066 #else
00067 typedef unsigned short Quantum;
00068 #define QuantumRange 65535UL
00069 #define QuantumFormat "%u"
00070 #endif
00071 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
00072 #define MagickEpsilon 1.0e-10
00073 #define MagickHuge 1.0e12
00074 #define MaxColormapSize 65536UL
00075 #define MaxMap 65535UL
00076
00077 typedef double MagickRealType;
00078 #if defined(MAGICKCORE_HDRI_SUPPORT)
00079 typedef float Quantum;
00080 #define QuantumRange 4294967295.0
00081 #define QuantumFormat "%g"
00082 #else
00083 typedef unsigned int Quantum;
00084 #define QuantumRange 4294967295UL
00085 #define QuantumFormat "%u"
00086 #endif
00087 #elif (MAGICKCORE_QUANTUM_DEPTH == 64) && defined(MAGICKCORE_HAVE_LONG_DOUBLE_WIDER)
00088 #define MagickEpsilon 1.0e-10
00089 #define MagickHuge 1.0e12
00090 #define MaxColormapSize 65536UL
00091 #define MaxMap 65535UL
00092
00093 typedef long double MagickRealType;
00094 #if defined(MAGICKCORE_HDRI_SUPPORT)
00095 typedef double Quantum;
00096 #define QuantumRange 18446744073709551615.0
00097 #define QuantumFormat "%g"
00098 #else
00099 typedef unsigned long long Quantum;
00100 #define QuantumRange MagickULLConstant(18446744073709551615)
00101 #define QuantumFormat "%llu"
00102 #endif
00103 #else
00104 #if !defined(_CH_)
00105 # error "Specified value of MAGICKCORE_QUANTUM_DEPTH is not supported"
00106 #endif
00107 #endif
00108 #define MaxRGB QuantumRange
00109
00110
00111
00112
00113 typedef unsigned int MagickStatusType;
00114 #if !defined(__WINDOWS__)
00115 #if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
00116 typedef long long MagickOffsetType;
00117 typedef unsigned long long MagickSizeType;
00118 #define MagickSizeFormat "%10llu"
00119 #else
00120 typedef long MagickOffsetType;
00121 typedef unsigned long MagickSizeType;
00122 #define MagickSizeFormat "%10lu"
00123 #endif
00124 #else
00125 typedef __int64 MagickOffsetType;
00126 typedef unsigned __int64 MagickSizeType;
00127 #define MagickSizeFormat "%10llu"
00128 #endif
00129
00130 #if defined(_MSC_VER) && (_MSC_VER == 1200)
00131 typedef MagickOffsetType QuantumAny;
00132 #else
00133 typedef MagickSizeType QuantumAny;
00134 #endif
00135
00136 #if defined(macintosh)
00137 #define ExceptionInfo MagickExceptionInfo
00138 #endif
00139
00140 typedef enum
00141 {
00142 UndefinedChannel,
00143 RedChannel = 0x0001,
00144 GrayChannel = 0x0001,
00145 CyanChannel = 0x0001,
00146 GreenChannel = 0x0002,
00147 MagentaChannel = 0x0002,
00148 BlueChannel = 0x0004,
00149 YellowChannel = 0x0004,
00150 AlphaChannel = 0x0008,
00151 OpacityChannel = 0x0008,
00152 MatteChannel = 0x0008,
00153
00154 BlackChannel = 0x0020,
00155 IndexChannel = 0x0020,
00156 TrueAlphaChannel = 0x0040,
00157 RGBChannels = 0x0080,
00158 AllChannels = 0x003F,
00159 DefaultChannels = (AllChannels &~ OpacityChannel)
00160 } ChannelType;
00161
00162 typedef enum
00163 {
00164 UndefinedClass,
00165 DirectClass,
00166 PseudoClass
00167 } ClassType;
00168
00169 typedef enum
00170 {
00171 MagickFalse = 0,
00172 MagickTrue = 1
00173 } MagickBooleanType;
00174
00175 typedef struct _BlobInfo BlobInfo;
00176
00177 typedef struct _ExceptionInfo ExceptionInfo;
00178
00179 typedef struct _Image Image;
00180
00181 typedef struct _ImageInfo ImageInfo;
00182
00183 #if defined(__cplusplus) || defined(c_plusplus)
00184 }
00185 #endif
00186
00187 #endif