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