MagickCore  6.8.9
magick-type.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  http://www.imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore types.
17 */
18 #ifndef _MAGICKCORE_MAGICK_TYPE_H
19 #define _MAGICKCORE_MAGICK_TYPE_H
20 
21 #include "magick/magick-config.h"
22 
23 #if defined(__cplusplus) || defined(c_plusplus)
24 extern "C" {
25 #endif
26 
27 #if !defined(MAGICKCORE_QUANTUM_DEPTH)
28 #define MAGICKCORE_QUANTUM_DEPTH 16
29 #endif
30 #if !defined(MagickPathExtent)
31 #define MagickPathExtent MaxTextExtent
32 #endif
33 
34 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__) && !defined(__MINGW64__)
35 # define MagickLLConstant(c) (MagickOffsetType) (c ## i64)
36 # define MagickULLConstant(c) (MagickSizeType) (c ## ui64)
37 #else
38 # define MagickLLConstant(c) (MagickOffsetType) (c ## LL)
39 # define MagickULLConstant(c) (MagickSizeType) (c ## ULL)
40 #endif
41 
42 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
43 #define MaxColormapSize 256UL
44 #define MaxMap 255UL
45 
46 /*
47  Float_t is not an ABI type.
48 */
49 #if MAGICKCORE_SIZEOF_FLOAT_T == 0
50 typedef float MagickRealType;
51 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT)
52 typedef float MagickRealType;
53 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE)
54 typedef double MagickRealType;
55 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
56 typedef long double MagickRealType;
57 #else
58 # error Your float_t type is neither a float, nor a double, nor a long double
59 #endif
60 
61 typedef ssize_t SignedQuantum;
62 #if defined(MAGICKCORE_HDRI_SUPPORT)
63 typedef float Quantum;
64 #define QuantumRange 255.0
65 #define QuantumFormat "%g"
66 #else
67 typedef unsigned char Quantum;
68 #define QuantumRange ((Quantum) 255)
69 #define QuantumFormat "%u"
70 #endif
71 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
72 #define MaxColormapSize 65536UL
73 #define MaxMap 65535UL
74 
75 /*
76  Float_t is not an ABI type.
77 */
78 #if MAGICKCORE_SIZEOF_FLOAT_T == 0
79 typedef float MagickRealType;
80 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT)
81 typedef float MagickRealType;
82 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE)
83 typedef double MagickRealType;
84 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
85 typedef long double MagickRealType;
86 #else
87 # error Your float_t type is neither a float, nor a double, nor a long double
88 #endif
89 
90 typedef ssize_t SignedQuantum;
91 #if defined(MAGICKCORE_HDRI_SUPPORT)
92 typedef float Quantum;
93 #define QuantumRange 65535.0
94 #define QuantumFormat "%g"
95 #else
96 typedef unsigned short Quantum;
97 #define QuantumRange ((Quantum) 65535)
98 #define QuantumFormat "%u"
99 #endif
100 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
101 #define MaxColormapSize 65536UL
102 #define MaxMap 65535UL
103 
104 /*
105  Double_t is not an ABI type.
106 */
107 #if MAGICKCORE_SIZEOF_DOUBLE_T == 0
108 typedef double MagickRealType;
109 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
110 typedef double MagickRealType;
111 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
112 typedef long double MagickRealType;
113 #else
114 # error Your double_t type is neither a float, nor a double, nor a long double
115 #endif
116 
117 typedef double SignedQuantum;
118 #if defined(MAGICKCORE_HDRI_SUPPORT)
119 typedef double Quantum;
120 #define QuantumRange 4294967295.0
121 #define QuantumFormat "%g"
122 #else
123 typedef unsigned int Quantum;
124 #define QuantumRange ((Quantum) 4294967295)
125 #define QuantumFormat "%u"
126 #endif
127 #elif (MAGICKCORE_QUANTUM_DEPTH == 64)
128 #define MAGICKCORE_HDRI_SUPPORT
129 #define MaxColormapSize 65536UL
130 #define MaxMap 65535UL
131 
132 typedef long double MagickRealType;
133 typedef long double SignedQuantum;
134 typedef long double Quantum;
135 #define QuantumRange 18446744073709551615.0
136 #define QuantumFormat "%g"
137 #else
138 #if !defined(_CH_)
139 # error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64"
140 #endif
141 #endif
142 #define MagickEpsilon (1.0e-15)
143 #define MagickMaximumValue 1.79769313486231570E+308
144 #define MagickMinimumValue 2.22507385850720140E-308
145 #define QuantumScale ((double) 1.0/(double) QuantumRange)
146 
147 /*
148  Typedef declarations.
149 */
150 typedef unsigned int MagickStatusType;
151 #if !defined(MAGICKCORE_WINDOWS_SUPPORT)
152 #if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
153 typedef long long MagickOffsetType;
154 typedef unsigned long long MagickSizeType;
155 #define MagickOffsetFormat "lld"
156 #define MagickSizeFormat "llu"
157 #else
158 typedef ssize_t MagickOffsetType;
159 typedef size_t MagickSizeType;
160 #define MagickOffsetFormat "ld"
161 #define MagickSizeFormat "lu"
162 #endif
163 #else
164 typedef __int64 MagickOffsetType;
165 typedef unsigned __int64 MagickSizeType;
166 #define MagickOffsetFormat "I64i"
167 #define MagickSizeFormat "I64u"
168 #endif
169 
170 #if defined(_MSC_VER) && (_MSC_VER == 1200)
171 typedef MagickOffsetType QuantumAny;
172 #else
173 typedef MagickSizeType QuantumAny;
174 #endif
175 
176 #if defined(macintosh)
177 #define ExceptionInfo MagickExceptionInfo
178 #endif
179 
180 typedef enum
181 {
183  RedChannel = 0x0001,
184  GrayChannel = 0x0001,
185  CyanChannel = 0x0001,
186  GreenChannel = 0x0002,
187  MagentaChannel = 0x0002,
188  BlueChannel = 0x0004,
189  YellowChannel = 0x0004,
190  AlphaChannel = 0x0008,
191  OpacityChannel = 0x0008,
192  MatteChannel = 0x0008, /* deprecated */
193  BlackChannel = 0x0020,
194  IndexChannel = 0x0020,
196  AllChannels = 0x7ffffff,
197  /*
198  Special purpose channel types.
199  */
200  TrueAlphaChannel = 0x0040, /* extract actual alpha channel from opacity */
201  RGBChannels = 0x0080, /* set alpha from grayscale mask in RGB */
202  GrayChannels = 0x0080,
203  SyncChannels = 0x0100, /* channels should be modified equally */
205 } ChannelType;
206 
207 typedef enum
208 {
212 } ClassType;
213 
214 typedef enum
215 {
219 
220 typedef struct _BlobInfo BlobInfo;
221 
223 
224 typedef struct _Image Image;
225 
226 typedef struct _ImageInfo ImageInfo;
227 
228 #if defined(__cplusplus) || defined(c_plusplus)
229 }
230 #endif
231 
232 #endif
Definition: magick-type.h:201
Definition: exception.h:102
Definition: magick-type.h:190
Definition: magick-type.h:196
Definition: magick-type.h:185
Definition: image.h:358
Definition: magick-type.h:210
float MagickRealType
Definition: magick-type.h:79
Definition: blob.c:111
ssize_t SignedQuantum
Definition: magick-type.h:90
Definition: magick-type.h:191
ssize_t MagickOffsetType
Definition: magick-type.h:158
Definition: image.h:152
Definition: magick-type.h:203
MagickBooleanType
Definition: magick-type.h:214
unsigned int MagickStatusType
Definition: magick-type.h:150
ClassType
Definition: magick-type.h:207
Definition: magick-type.h:187
Definition: magick-type.h:217
size_t MagickSizeType
Definition: magick-type.h:159
Definition: magick-type.h:189
Definition: magick-type.h:204
Definition: magick-type.h:184
Definition: magick-type.h:193
Definition: magick-type.h:192
Definition: magick-type.h:200
ChannelType
Definition: magick-type.h:180
Definition: magick-type.h:186
Definition: magick-type.h:216
unsigned short Quantum
Definition: magick-type.h:96
Definition: magick-type.h:182
Definition: magick-type.h:209
Definition: magick-type.h:188
Definition: magick-type.h:195
Definition: magick-type.h:183
Definition: magick-type.h:211
Definition: magick-type.h:202
MagickSizeType QuantumAny
Definition: magick-type.h:173
Definition: magick-type.h:194