Viewing file: cache.h (4.42 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* ImageMagick Cache Methods. */ #ifndef _MAGICK_CACHE_H #define _MAGICK_CACHE_H
#if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif
#include "blob.h"
/* Enum declaractions. */ typedef enum { UndefinedCache, MemoryCache, DiskCache, MapCache } CacheType;
typedef enum { UndefinedVirtualPixelMethod, ConstantVirtualPixelMethod, EdgeVirtualPixelMethod, MirrorVirtualPixelMethod, TileVirtualPixelMethod } VirtualPixelMethod;
/* Typedef declaractions. */ typedef void *Cache;
typedef IndexPacket *(*GetIndexesFromHandler)(const Image *);
typedef const PixelPacket *(*AcquirePixelHandler)(const Image *,const long,const long, const unsigned long,const unsigned long,ExceptionInfo *);
typedef PixelPacket (*AcquireOnePixelFromHandler)(const Image *,const long,const long, ExceptionInfo *);
typedef PixelPacket (*GetOnePixelFromHandler)(Image *,const long,const long);
typedef PixelPacket *(*GetPixelHandler)(Image *,const long,const long,const unsigned long, const unsigned long);
typedef PixelPacket *(*GetPixelsFromHandler)(const Image *);
typedef PixelPacket *(*SetPixelHandler)(Image *,const long,const long,const unsigned long, const unsigned long);
typedef unsigned int (*SyncPixelHandler)(Image *);
typedef void (*DestroyPixelHandler)(Image *);
typedef struct _CacheMethods { AcquireOnePixelFromHandler acquire_one_pixel_from_handler;
AcquirePixelHandler acquire_pixel_handler;
DestroyPixelHandler destroy_pixel_handler;
GetIndexesFromHandler get_indexes_from_handler;
GetOnePixelFromHandler get_one_pixel_from_handler;
GetPixelHandler get_pixel_handler;
GetPixelsFromHandler get_pixels_from_handler;
SetPixelHandler set_pixel_handler;
SyncPixelHandler sync_pixel_handler; } CacheMethods;
typedef struct _NexusInfo { long x, y;
ExtendedSignedIntegralType length;
PixelPacket *staging, *pixels;
IndexPacket *indexes;
unsigned long columns, rows;
unsigned int available; } NexusInfo;
typedef struct _CacheInfo { unsigned long id;
NexusInfo *nexus_info;
ClassType storage_class;
ColorspaceType colorspace;
CacheType type;
unsigned long columns, rows;
ExtendedSignedIntegralType offset, length;
PixelPacket *pixels;
IndexPacket *indexes;
VirtualPixelMethod virtual_pixel_method;
PixelPacket virtual_pixel;
int file;
char filename[MaxTextExtent], cache_filename[MaxTextExtent];
CacheMethods methods;
long reference_count;
SemaphoreInfo *semaphore;
unsigned long signature; } CacheInfo;
/* MagickExported interfaces. */ extern MagickExport Cache ReferenceCache(Cache);
extern MagickExport ClassType GetCacheClass(const Cache);
extern MagickExport ColorspaceType GetCacheColorspace(const Cache);
extern MagickExport const PixelPacket *AcquireCacheNexus(const Image *,const long,const long,const unsigned long, const unsigned long,const unsigned long,ExceptionInfo *);
extern MagickExport ExtendedSignedIntegralType GetPixelCacheArea(const Image *);
extern MagickExport IndexPacket *GetNexusIndexes(const Cache,const unsigned long);
extern MagickExport PixelPacket *GetCacheNexus(Image *,const long,const long,const unsigned long, const unsigned long,const unsigned long), *GetNexusPixels(const Cache,const unsigned long), *SetCacheNexus(Image *,const long,const long,const unsigned long, const unsigned long,const unsigned long);
extern MagickExport unsigned int OpenCache(Image *,const MapMode), PersistCache(Image *,const char *,const unsigned int, ExtendedSignedIntegralType *,ExceptionInfo *), SyncCacheNexus(Image *,const unsigned long);
extern MagickExport unsigned long GetNexus(Cache);
extern MagickExport VirtualPixelMethod GetImageVirtualPixelMethod(const Image *);
extern MagickExport void AllocateCacheNexus(CacheInfo *), ClonePixelCacheMethods(Cache,const Cache), DestroyCacheInfo(Cache), DestroyCacheNexus(Cache,const unsigned long), GetCacheInfo(Cache *), SetImageVirtualPixelMethod(const Image *,const VirtualPixelMethod), SetPixelCacheMethods(Cache,AcquirePixelHandler,GetPixelHandler, SetPixelHandler,SyncPixelHandler,GetPixelsFromHandler,GetIndexesFromHandler, AcquireOnePixelFromHandler,GetOnePixelFromHandler,DestroyPixelHandler);
#if defined(__cplusplus) || defined(c_plusplus) } #endif
#endif
|