]> granicus.if.org Git - imagemagick/blob - MagickWand/MagickWand.h
(no commit message)
[imagemagick] / MagickWand / MagickWand.h
1 /*
2   Copyright 1999-2013 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   MagickWand Application Programming Interface declarations.
17 */
18
19 #ifndef _MAGICKWAND_MAGICKWAND_H
20 #define _MAGICKWAND_MAGICKWAND_H
21
22 #if defined(__cplusplus) || defined(c_plusplus)
23 extern "C" {
24 #endif
25
26 #if !defined(_MAGICKWAND_CONFIG_H)
27 # define _MAGICKWAND_CONFIG_H
28 # if !defined(vms) && !defined(macintosh)
29 #  include "MagickCore/magick-config.h"
30 # else
31 #  include "magick-config.h"
32 # endif
33 #if defined(_magickcore_const) && !defined(const)
34 # define const _magickcore_const
35 #endif
36 #if defined(_magickcore_inline) && !defined(inline)
37 # define inline _magickcore_inline
38 #endif
39 #if defined(_magickcore_restrict) && !defined(restrict)
40 # define restrict  _magickcore_restrict
41 #endif
42 # if defined(__cplusplus) || defined(c_plusplus)
43 #  undef inline
44 # endif
45 #endif
46
47 #include <stdio.h>
48 #include <stdarg.h>
49 #include <stdlib.h>
50 #include <math.h>
51 #include <sys/types.h>
52
53 #if defined(WIN32) || defined(WIN64)
54 #  define MAGICKCORE_WINDOWS_SUPPORT
55 #else
56 #  define MAGICKCORE_POSIX_SUPPORT
57 #endif 
58
59 #if defined(__BORLANDC__) && defined(_DLL)
60 #  pragma message("BCBMagick lib DLL export interface")
61 #  define _MAGICKDLL_
62 #  define _MAGICKLIB_
63 #endif
64
65 #include "MagickWand/method-attribute.h"
66
67 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
68 # define WandPrivate
69 # if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
70 #  define _MAGICKDLL_
71 # endif
72 # if defined(_MAGICKDLL_)
73 #  if defined(_VISUALC_)
74 #   pragma warning( disable: 4273 )  /* Disable the dll linkage warnings */
75 #  endif
76 #  if !defined(_MAGICKLIB_)
77 #   if defined(__GNUC__)
78 #    define WandExport __attribute__ ((__dllimport__))
79 #   else
80 #    define WandExport __declspec(dllimport)
81 #   endif
82 #   if defined(_VISUALC_)
83 #    pragma message( "MagickWand lib DLL import interface" )
84 #   endif
85 #  else
86 #   if defined(__GNUC__)
87 #    define WandExport __attribute__ ((__dllexport__))
88 #   else
89 #    define WandExport __declspec(dllexport)
90 #   endif
91 #   if defined(_VISUALC_)
92 #    pragma message( "MagickWand lib DLL export interface" )
93 #   endif
94 #  endif
95 # else
96 #  define WandExport
97 #  if defined(_VISUALC_)
98 #   pragma message( "MagickWand lib static interface" )
99 #  endif
100 # endif
101
102 # define WandGlobal __declspec(thread)
103 # if defined(_VISUALC_)
104 #  pragma warning(disable : 4018)
105 #  pragma warning(disable : 4244)
106 #  pragma warning(disable : 4142)
107 #  pragma warning(disable : 4800)
108 #  pragma warning(disable : 4786)
109 #  pragma warning(disable : 4996)
110 # endif
111 #else
112 # if __GNUC__ >= 4
113 #  define WandExport __attribute__ ((__visibility__ ("default")))
114 #  define WandPrivate  __attribute__ ((__visibility__ ("hidden")))
115 # else
116 #   define WandExport
117 #   define WandPrivate
118 # endif
119 # define WandGlobal
120 #endif
121
122 #if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
123 #  define wand_aligned(x)  __attribute__((__aligned__(x)))
124 #  define wand_attribute  __attribute__
125 #  define wand_unused(x)  wand_unused_ ## x __attribute__((__unused__))
126 #else
127 #  define wand_aligned(x)  /* nothing */
128 #  define wand_attribute(x)  /* nothing */
129 #  define wand_unused(x) x
130 #endif
131
132 #if defined(MAGICKCORE_HAVE___ALLOC_SIZE__)
133 #  define wand_alloc_size(x)  __attribute__((__alloc_size__(x)))
134 #  define wand_alloc_sizes(x,y)  __attribute__((__alloc_size__(x,y)))
135 #  define wand_cold  __attribute__((__cold__))
136 #  define wand_hot  __attribute__((__hot__))
137 #else
138 #  define wand_alloc_size(x)  /* nothing */
139 #  define wand_alloc_sizes(x,y)  /* nothing */
140 #  define wand_cold
141 #  define wand_hot
142 #endif
143
144 typedef struct _MagickWand
145   MagickWand;
146
147 #include "MagickCore/MagickCore.h"
148 #include "MagickWand/animate.h"
149 #include "MagickWand/compare.h"
150 #include "MagickWand/composite.h"
151 #include "MagickWand/conjure.h"
152 #include "MagickWand/convert.h"
153 #include "MagickWand/deprecate.h"
154 #include "MagickWand/display.h"
155 #include "MagickWand/drawing-wand.h"
156 #include "MagickWand/identify.h"
157 #include "MagickWand/import.h"
158 #include "MagickWand/wandcli.h"
159 #include "MagickWand/operation.h"
160 #include "MagickWand/magick-cli.h"
161 #include "MagickWand/magick-property.h"
162 #include "MagickWand/magick-image.h"
163 #include "MagickWand/mogrify.h"
164 #include "MagickWand/montage.h"
165 #include "MagickWand/pixel-iterator.h"
166 #include "MagickWand/pixel-wand.h"
167 #include "MagickWand/stream.h"
168 #include "MagickWand/wand-view.h"
169
170 extern WandExport char
171   *MagickGetException(const MagickWand *,ExceptionType *);
172
173 extern WandExport ExceptionType
174   MagickGetExceptionType(const MagickWand *);
175
176 extern WandExport MagickBooleanType
177   IsMagickWand(const MagickWand *),
178   MagickClearException(MagickWand *),
179   MagickSetIteratorIndex(MagickWand *,const ssize_t);
180
181 extern WandExport MagickWand
182   *CloneMagickWand(const MagickWand *),
183   *DestroyMagickWand(MagickWand *),
184   *NewMagickWand(void),
185   *NewMagickWandFromImage(const Image *);
186
187 extern WandExport ssize_t
188   MagickGetIteratorIndex(MagickWand *);
189
190 extern WandExport void
191   ClearMagickWand(MagickWand *),
192   MagickWandGenesis(void),
193   MagickWandTerminus(void),
194   *MagickRelinquishMemory(void *),
195   MagickResetIterator(MagickWand *),
196   MagickSetFirstIterator(MagickWand *),
197   MagickSetLastIterator(MagickWand *);
198
199 #if defined(__cplusplus) || defined(c_plusplus)
200 }
201 #endif
202
203 #endif