MagickWand.h revision 544a7f0eebd134ec2f3622c6b41194e8263bc6c1
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 _MAGICK_WAND_H 20#define _MAGICK_WAND_H 21 22#if defined(__cplusplus) || defined(c_plusplus) 23extern "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#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__) 65# define WandPrivate 66# if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB) 67# define _MAGICKDLL_ 68# endif 69# if defined(_MAGICKDLL_) 70# if defined(_VISUALC_) 71# pragma warning( disable: 4273 ) /* Disable the dll linkage warnings */ 72# endif 73# if !defined(_MAGICKLIB_) 74# if defined(__GNUC__) 75# define WandExport __attribute__ ((__dllimport__)) 76# else 77# define WandExport __declspec(dllimport) 78# endif 79# if defined(_VISUALC_) 80# pragma message( "MagickWand lib DLL import interface" ) 81# endif 82# else 83# if defined(__GNUC__) 84# define WandExport __attribute__ ((__dllexport__)) 85# else 86# define WandExport __declspec(dllexport) 87# endif 88# if defined(_VISUALC_) 89# pragma message( "MagickWand lib DLL export interface" ) 90# endif 91# endif 92# else 93# define WandExport 94# if defined(_VISUALC_) 95# pragma message( "MagickWand lib static interface" ) 96# endif 97# endif 98 99# define WandGlobal __declspec(thread) 100# if defined(_VISUALC_) 101# pragma warning(disable : 4018) 102# pragma warning(disable : 4244) 103# pragma warning(disable : 4142) 104# pragma warning(disable : 4800) 105# pragma warning(disable : 4786) 106# pragma warning(disable : 4996) 107# endif 108#else 109# if __GNUC__ >= 4 110# define WandExport __attribute__ ((__visibility__ ("default"))) 111# define WandPrivate __attribute__ ((__visibility__ ("hidden"))) 112# else 113# define WandExport 114# define WandPrivate 115# endif 116# define WandGlobal 117#endif 118 119#if !defined(MaxTextExtent) 120# define MaxTextExtent 4096 121#endif 122#define WandSignature 0xabacadabUL 123 124#if defined(MAGICKCORE_HAVE___ATTRIBUTE__) 125# define wand_aligned(x) __attribute__((__aligned__(x))) 126# define wand_attribute __attribute__ 127# define wand_unused(x) wand_unused_ ## x __attribute__((__unused__)) 128#else 129# define wand_aligned(x) /* nothing */ 130# define wand_attribute(x) /* nothing */ 131# define wand_unused(x) x 132#endif 133 134#if defined(MAGICKCORE_HAVE___ALLOC_SIZE__) 135# define wand_alloc_size(x) __attribute__((__alloc_size__(x))) 136# define wand_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y))) 137# define wand_cold __attribute__((__cold__)) 138# define wand_hot __attribute__((__hot__)) 139#else 140# define wand_alloc_size(x) /* nothing */ 141# define wand_alloc_sizes(x,y) /* nothing */ 142# define wand_cold 143# define wand_hot 144#endif 145 146typedef struct _MagickWand 147 MagickWand; 148 149#include "MagickCore/MagickCore.h" 150#include "MagickWand/animate.h" 151#include "MagickWand/compare.h" 152#include "MagickWand/composite.h" 153#include "MagickWand/conjure.h" 154#include "MagickWand/convert.h" 155#include "MagickWand/deprecate.h" 156#include "MagickWand/display.h" 157#include "MagickWand/drawing-wand.h" 158#include "MagickWand/identify.h" 159#include "MagickWand/import.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 170extern WandExport char 171 *MagickGetException(const MagickWand *,ExceptionType *); 172 173extern WandExport ExceptionType 174 MagickGetExceptionType(const MagickWand *); 175 176extern WandExport MagickBooleanType 177 IsMagickWand(const MagickWand *), 178 MagickClearException(MagickWand *), 179 MagickSetIteratorIndex(MagickWand *,const ssize_t); 180 181extern WandExport MagickWand 182 *CloneMagickWand(const MagickWand *), 183 *DestroyMagickWand(MagickWand *), 184 *NewMagickWand(void), 185 *NewMagickWandFromImage(const Image *); 186 187extern WandExport ssize_t 188 MagickGetIteratorIndex(MagickWand *); 189 190extern 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 204