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 #define QuantumRange  255UL
00045 
00046 typedef float MagickRealType;
00047 #if defined(MAGICKCORE_HDRI_SUPPORT)
00048 typedef float Quantum;
00049 #define QuantumFormat  "%g"
00050 #else
00051 typedef unsigned char Quantum;
00052 #define QuantumFormat  "%u"
00053 #endif
00054 typedef unsigned long QuantumAny;
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 #define QuantumRange  65535UL
00061 
00062 typedef double MagickRealType;
00063 #if defined(MAGICKCORE_HDRI_SUPPORT)
00064 typedef float Quantum;
00065 #define QuantumFormat  "%g"
00066 #else
00067 typedef unsigned short Quantum;
00068 #define QuantumFormat  "%u"
00069 #endif
00070 typedef unsigned long QuantumAny;
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 #define QuantumRange  4294967295UL
00077 
00078 #if defined(MAGICKCORE_HAVE_LONG_DOUBLE)
00079 typedef long double MagickRealType;
00080 #else
00081 typedef double MagickRealType;
00082 #endif
00083 #if defined(MAGICKCORE_HDRI_SUPPORT)
00084 typedef float Quantum;
00085 #define QuantumFormat  "%g"
00086 #else
00087 typedef unsigned int Quantum;
00088 #define QuantumFormat  "%u"
00089 #endif
00090 typedef unsigned long QuantumAny;
00091 #elif (MAGICKCORE_QUANTUM_DEPTH == 64) && defined(MAGICKCORE_HAVE_LONG_DOUBLE)
00092 #define MagickEpsilon  1.0e-10
00093 #define MagickHuge     1.0e12
00094 #define MaxColormapSize  65536UL
00095 #define MaxMap  65535UL
00096 #define QuantumRange  MagickULLConstant(18446744073709551615)
00097 
00098 typedef long double MagickRealType;
00099 #if defined(MAGICKCORE_HDRI_SUPPORT)
00100 typedef double Quantum;
00101 #define QuantumFormat  "%g"
00102 #else
00103 typedef unsigned long long Quantum;
00104 #define QuantumFormat  "%llu"
00105 #endif
00106 typedef unsigned long long QuantumAny;
00107 #else
00108 #if !defined(_CH_)
00109 # error "Specified value of MAGICKCORE_QUANTUM_DEPTH is not supported"
00110 #endif
00111 #endif
00112 #define MaxRGB  QuantumRange  
00113 
00114 
00115 
00116 
00117 typedef unsigned int MagickStatusType;
00118 #if !defined(__WINDOWS__)
00119 #if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
00120 typedef long long MagickOffsetType;
00121 typedef unsigned long long MagickSizeType;
00122 #define MagickSizeFormat  "%10llu"
00123 #else
00124 typedef long MagickOffsetType;
00125 typedef unsigned long MagickSizeType;
00126 #define MagickSizeFormat  "%10lu"
00127 #endif
00128 #else
00129 typedef __int64 MagickOffsetType;
00130 typedef unsigned __int64 MagickSizeType;
00131 #define MagickSizeFormat  "%10llu"
00132 #endif
00133 
00134 #if defined(macintosh)
00135 #define ExceptionInfo  MagickExceptionInfo
00136 #endif
00137 
00138 typedef enum
00139 {
00140   UndefinedChannel,
00141   RedChannel = 0x0001,
00142   GrayChannel = 0x0001,
00143   CyanChannel = 0x0001,
00144   GreenChannel = 0x0002,
00145   MagentaChannel = 0x0002,
00146   BlueChannel = 0x0004,
00147   YellowChannel = 0x0004,
00148   AlphaChannel = 0x0008,
00149   OpacityChannel = 0x0008,
00150   MatteChannel = 0x0008,  
00151   BlackChannel = 0x0020,
00152   IndexChannel = 0x0020,
00153   AllChannels = 0xff,
00154   DefaultChannels = (AllChannels &~ OpacityChannel)
00155 } ChannelType;
00156 
00157 typedef enum
00158 {
00159   UndefinedClass,
00160   DirectClass,
00161   PseudoClass
00162 } ClassType;
00163 
00164 typedef enum
00165 {
00166   MagickFalse = 0,
00167   MagickTrue = 1
00168 } MagickBooleanType;
00169 
00170 typedef struct _BlobInfo BlobInfo;
00171 
00172 typedef struct _ExceptionInfo ExceptionInfo;
00173 
00174 typedef struct _Image Image;
00175 
00176 typedef struct _ImageInfo ImageInfo;
00177 
00178 #if defined(__cplusplus) || defined(c_plusplus)
00179 }
00180 #endif
00181 
00182 #endif