magick-type.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization
00003   dedicated to making software imaging solutions freely available.
00004   
00005   You may not use this file except in compliance with the License.
00006   obtain a copy of the License at
00007   
00008     http://www.imagemagick.org/script/license.php
00009   
00010   Unless required by applicable law or agreed to in writing, software
00011   distributed under the License is distributed on an "AS IS" BASIS,
00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013   See the License for the specific language governing permissions and
00014   limitations under the License.
00015 
00016   MagickCore types.
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  /* deprecated */
00109 
00110 /*
00111   Typedef declarations.
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,  /* deprecated */
00153   /* unused = 0x0010 except in 'AllChannels' */
00154   BlackChannel = 0x0020,
00155   IndexChannel = 0x0020,
00156   TrueAlphaChannel = 0x0040, /* special use, Separate Images */
00157   RGBChannels = 0x0080,      /* special use, Separate Images */
00158   AllChannels = 0x003F,      /* RGBA or CMYKA channels (plus 0x10) */
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

Generated on Thu Jul 2 12:03:20 2009 for MagickCore by  doxygen 1.5.8