magick-type.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2009 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   BlackChannel = 0x0020,
00154   IndexChannel = 0x0020,
00155   AllChannels = 0x002F,
00156   /* special channel types */
00157   TrueAlphaChannel = 0x0040, /* extract actual alpha channel from opacity */
00158   RGBChannels = 0x0080,      /* set alpha from  grayscale mask in RGB */
00159   GrayChannels = 0x0080,
00160   SyncChannels = 0x0100,     /* channels should be modified equally */
00161   DefaultChannels = ( (AllChannels | SyncChannels) &~ OpacityChannel)
00162 } ChannelType;
00163 
00164 typedef enum
00165 {
00166   UndefinedClass,
00167   DirectClass,
00168   PseudoClass
00169 } ClassType;
00170 
00171 typedef enum
00172 {
00173   MagickFalse = 0,
00174   MagickTrue = 1
00175 } MagickBooleanType;
00176 
00177 typedef struct _BlobInfo BlobInfo;
00178 
00179 typedef struct _ExceptionInfo ExceptionInfo;
00180 
00181 typedef struct _Image Image;
00182 
00183 typedef struct _ImageInfo ImageInfo;
00184 
00185 #if defined(__cplusplus) || defined(c_plusplus)
00186 }
00187 #endif
00188 
00189 #endif

Generated on 19 Nov 2009 for MagickCore by  doxygen 1.6.1