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