cache.c File Reference

#include "magick/studio.h"
#include "magick/blob.h"
#include "magick/blob-private.h"
#include "magick/cache.h"
#include "magick/cache-private.h"
#include "magick/color-private.h"
#include "magick/composite-private.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/list.h"
#include "magick/log.h"
#include "magick/magick.h"
#include "magick/memory_.h"
#include "magick/pixel-private.h"
#include "magick/quantum.h"
#include "magick/random_.h"
#include "magick/resource_.h"
#include "magick/semaphore.h"
#include "magick/splay-tree.h"
#include "magick/string_.h"
#include "magick/utility.h"
#include "zlib.h"
#include <pthread.h>

Data Structures

struct  _NexusInfo

Defines

#define DefaultNumberCacheViews   8UL

Functions

static const PixelPacket * AcquirePixelCache (const Image *, const VirtualPixelMethod, const long, const long, const unsigned long, const unsigned long, ExceptionInfo *)
static IndexPacket * GetIndexesFromCache (const Image *)
static MagickBooleanType OpenCache (Image *, const MapMode, ExceptionInfo *)
static MagickBooleanType SyncCache (Image *)
static MagickBooleanType SyncPixelCache (Image *)
static PixelPacket AcquireOnePixelFromCache (const Image *, const VirtualPixelMethod, const long, const long, ExceptionInfo *)
static PixelPacket GetOnePixelFromCache (Image *, const long, const long)
static PixelPacket * GetPixelCache (Image *, const long, const long, const unsigned long, const unsigned long)
static PixelPacket ** GetPixelsFromCache (const Image *)
static PixelPacket *** SetPixelCache (Image *, const long, const long, const unsigned long, const unsigned long)
static void DestroyPixelCache (Image *)
static PixelPacket * SetNexus (const Image *, const RectangleInfo *, const unsigned long)
static MagickBooleanType ReadCacheIndexes (CacheInfo *, const unsigned long, ExceptionInfo *)
static MagickBooleanType ReadCachePixels (CacheInfo *, const unsigned long, ExceptionInfo *)
static MagickBooleanType WriteCacheIndexes (CacheInfo *, const unsigned long, ExceptionInfo *)
static MagickBooleanType WriteCachePixels (CacheInfo *, const unsigned long, ExceptionInfo *)
static long DitherX (const unsigned long columns, const long x)
static long DitherY (const unsigned long rows, const long y)
static long EdgeX (const unsigned long columns, const long x)
static long EdgeY (const unsigned long rows, const long y)
static MagickSizeType MagickMax (const MagickSizeType x, const MagickSizeType y)
static MagickSizeType MagickMin (const MagickSizeType x, const MagickSizeType y)
static long RandomX (const unsigned long columns)
static long RandomY (const unsigned long rows)
static long TileX (const unsigned long columns, const long x)
static long TileY (const unsigned long rows, const long y)
static long MirrorX (const unsigned long columns, const long x)
static long MirrorY (const unsigned long rows, const long y)
static MagickBooleanType IsNexusInCore (const CacheInfo *cache_info, const unsigned long nexus)
MagickExport const PixelPacket * AcquireCacheNexus (const Image *image, const VirtualPixelMethod virtual_pixel_method, const long x, const long y, const unsigned long columns, const unsigned long rows, const unsigned long nexus, ExceptionInfo *exception)
MagickExport const PixelPacket * AcquireImagePixels (const Image *image, const long x, const long y, const unsigned long columns, const unsigned long rows, ExceptionInfo *exception)
MagickExport const IndexPacket * AcquireIndexes (const Image *image)
static const IndexPacket * AcquireIndexesFromCache (const Image *image)
MagickExport const IndexPacket * AcquireNexusIndexes (const Cache cache, const unsigned long nexus)
MagickExport MagickPixelPacket AcquireOneMagickPixel (const Image *image, const long x, const long y, ExceptionInfo *exception)
MagickExport PixelPacket AcquireOnePixel (const Image *image, const long x, const long y, ExceptionInfo *exception)
MagickExport PixelPacket AcquireOneVirtualPixel (const Image *image, const VirtualPixelMethod virtual_pixel_method, const long x, const long y, ExceptionInfo *exception)
static MagickBooleanType ClipCacheNexus (Image *image, const unsigned long nexus)
static void AcquireNexusPixels (NexusInfo *nexus_info)
static MagickBooleanType CloneCacheNexus (CacheInfo *destination, CacheInfo *source, const unsigned long nexus)
static MagickBooleanType CloseDiskCache (CacheInfo *cache_info)
static unsigned long GetCacheThreadId (void)
static void LimitOpenCacheDescriptors (void)
static MagickBooleanType OpenDiskCache (CacheInfo *cache_info, MapMode mode)
static MagickOffsetType ReadCacheRegion (int file, unsigned char *buffer, MagickSizeType length, MagickOffsetType offset)
static MagickOffsetType WriteCacheRegion (int file, const unsigned char *buffer, MagickSizeType length, MagickOffsetType offset)
static MagickBooleanType CloneDiskToDiskPixels (CacheInfo *cache_info, CacheInfo *source_info, ExceptionInfo *exception)
static MagickBooleanType CloneDiskToMemoryPixels (CacheInfo *cache_info, CacheInfo *source_info, ExceptionInfo *exception)
static MagickBooleanType CloneMemoryToDiskPixels (CacheInfo *cache_info, CacheInfo *source_info, ExceptionInfo *exception)
static MagickBooleanType CloneMemoryToMemoryPixels (CacheInfo *cache_info, CacheInfo *source_info, ExceptionInfo *magick_unused(exception))
static MagickBooleanType ClonePixelCache (CacheInfo *cache_info, CacheInfo *source_info, ExceptionInfo *exception)
MagickExport void CloneCacheMethods (Cache clone, const Cache cache)
static void RelinquishCachePixels (CacheInfo *cache_info)
MagickExport Cache DestroyCacheInfo (Cache cache)
static void RelinquishNexusPixels (NexusInfo *nexus_info)
MagickExport void DestroyCacheNexus (Cache cache, const unsigned long nexus)
MagickExport void DestroyCacheResources (void)
MagickExport void DestroyImagePixels (Image *image)
MagickExport ClassType GetCacheClass (const Cache cache)
MagickExport ColorspaceType GetCacheColorspace (const Cache cache)
MagickExport MagickBooleanType GetCacheInfo (Cache *cache)
MagickExport void GetCacheMethods (CacheMethods *cache_methods)
MagickExport PixelPacket * GetCacheNexus (Image *image, const long x, const long y, const unsigned long columns, const unsigned long rows, const unsigned long nexus)
MagickExport VirtualPixelMethod GetCacheVirtualPixelMethod (const Image *image)
MagickExport PixelPacket * GetImagePixels (Image *image, const long x, const long y, const unsigned long columns, const unsigned long rows)
MagickExport IndexPacket * GetIndexes (const Image *image)
MagickExport unsigned long GetNexus (Cache cache)
MagickExport IndexPacket * GetNexusIndexes (const Cache cache, const unsigned long nexus)
MagickExport PixelPacket * GetNexusPixels (const Cache cache, const unsigned long nexus)
MagickExport PixelPacket GetOnePixel (Image *image, const long x, const long y)
MagickExport PixelPacket * GetPixels (const Image *image)
MagickExport MagickSizeType GetPixelCacheArea (const Image *image)
static void MagickPixelCompositeMask (const MagickPixelPacket *p, const MagickRealType alpha, const MagickPixelPacket *q, const MagickRealType beta, MagickPixelPacket *composite)
static MagickBooleanType MaskCacheNexus (Image *image, const unsigned long nexus)
static MagickBooleanType ModifyCache (Image *image, const unsigned long nexus)
static void AcquireCachePixels (CacheInfo *cache_info)
static MagickBooleanType ExtendCache (Image *image, MagickSizeType length)
MagickExport MagickBooleanType PersistCache (Image *image, const char *filename, const MagickBooleanType attach, MagickOffsetType *offset, ExceptionInfo *exception)
MagickExport Cache ReferenceCache (Cache cache)
MagickExport void SetCacheMethods (Cache cache, CacheMethods *cache_methods)
MagickExport PixelPacket * SetCacheNexus (Image *image, const long x, const long y, const unsigned long columns, const unsigned long rows, const unsigned long nexus)
MagickExport VirtualPixelMethod SetCacheVirtualPixelMethod (const Image *image, const VirtualPixelMethod virtual_pixel_method)
MagickExport PixelPacket * SetImagePixels (Image *image, const long x, const long y, const unsigned long columns, const unsigned long rows)
MagickExport MagickBooleanType SyncCacheNexus (Image *image, const unsigned long nexus)
MagickExport MagickBooleanType SyncImagePixels (Image *image)

Variables

static MagickSizeType serial_number = 0
static SemaphoreInfo * cache_semaphore = (SemaphoreInfo *) NULL
static SplayTreeInfo * cache_resources = (SplayTreeInfo *) NULL
static long DitherMatrix [64]


Define Documentation

#define DefaultNumberCacheViews   8UL


Function Documentation

MagickExport const PixelPacket* AcquireCacheNexus ( const Image *  image,
const VirtualPixelMethod  virtual_pixel_method,
const long  x,
const long  y,
const unsigned long  columns,
const unsigned long  rows,
const unsigned long  nexus,
ExceptionInfo *  exception 
)

static void AcquireCachePixels ( CacheInfo *  cache_info  )  [inline, static]

MagickExport const PixelPacket* AcquireImagePixels ( const Image *  image,
const long  x,
const long  y,
const unsigned long  columns,
const unsigned long  rows,
ExceptionInfo *  exception 
)

MagickExport const IndexPacket* AcquireIndexes ( const Image *  image  ) 

static const IndexPacket* AcquireIndexesFromCache ( const Image *  image  )  [static]

MagickExport const IndexPacket* AcquireNexusIndexes ( const Cache  cache,
const unsigned long  nexus 
)

static void AcquireNexusPixels ( NexusInfo *  nexus_info  )  [inline, static]

MagickExport MagickPixelPacket AcquireOneMagickPixel ( const Image *  image,
const long  x,
const long  y,
ExceptionInfo *  exception 
)

MagickExport PixelPacket AcquireOnePixel ( const Image *  image,
const long  x,
const long  y,
ExceptionInfo *  exception 
)

static PixelPacket AcquireOnePixelFromCache ( const Image *  image,
const   VirtualPixelMethod,
const   long,
const   long,
ExceptionInfo *  exception 
) [static]

MagickExport PixelPacket AcquireOneVirtualPixel ( const Image *  image,
const VirtualPixelMethod  virtual_pixel_method,
const long  x,
const long  y,
ExceptionInfo *  exception 
)

static const PixelPacket * AcquirePixelCache ( const Image *  image,
const   VirtualPixelMethod,
const   long,
const   long,
const unsigned long  columns,
const unsigned long  rows,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType ClipCacheNexus ( Image *  image,
const unsigned long  nexus 
) [static]

MagickExport void CloneCacheMethods ( Cache  clone,
const Cache  cache 
)

static MagickBooleanType CloneCacheNexus ( CacheInfo *  destination,
CacheInfo *  source,
const unsigned long  nexus 
) [static]

static MagickBooleanType CloneDiskToDiskPixels ( CacheInfo *  cache_info,
CacheInfo *  source_info,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType CloneDiskToMemoryPixels ( CacheInfo *  cache_info,
CacheInfo *  source_info,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType CloneMemoryToDiskPixels ( CacheInfo *  cache_info,
CacheInfo *  source_info,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType CloneMemoryToMemoryPixels ( CacheInfo *  cache_info,
CacheInfo *  source_info,
ExceptionInfo *  magick_unused(exception) 
) [static]

static MagickBooleanType ClonePixelCache ( CacheInfo *  cache_info,
CacheInfo *  source_info,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType CloseDiskCache ( CacheInfo *  cache_info  )  [static]

MagickExport Cache DestroyCacheInfo ( Cache  cache  ) 

MagickExport void DestroyCacheNexus ( Cache  cache,
const unsigned long  nexus 
)

MagickExport void DestroyCacheResources ( void   ) 

MagickExport void DestroyImagePixels ( Image *  image  ) 

static void DestroyPixelCache ( Image *  image  )  [static]

static long DitherX ( const unsigned long  columns,
const long  x 
) [inline, static]

static long DitherY ( const unsigned long  rows,
const long  y 
) [inline, static]

static long EdgeX ( const unsigned long  columns,
const long  x 
) [inline, static]

static long EdgeY ( const unsigned long  rows,
const long  y 
) [inline, static]

static MagickBooleanType ExtendCache ( Image *  image,
MagickSizeType  length 
) [static]

MagickExport ClassType GetCacheClass ( const Cache  cache  ) 

MagickExport ColorspaceType GetCacheColorspace ( const Cache  cache  ) 

MagickExport MagickBooleanType GetCacheInfo ( Cache *  cache  ) 

MagickExport void GetCacheMethods ( CacheMethods *  cache_methods  ) 

MagickExport PixelPacket* GetCacheNexus ( Image *  image,
const long  x,
const long  y,
const unsigned long  columns,
const unsigned long  rows,
const unsigned long  nexus 
)

static unsigned long GetCacheThreadId ( void   )  [static]

MagickExport VirtualPixelMethod GetCacheVirtualPixelMethod ( const Image *  image  ) 

MagickExport PixelPacket* GetImagePixels ( Image *  image,
const long  x,
const long  y,
const unsigned long  columns,
const unsigned long  rows 
)

MagickExport IndexPacket* GetIndexes ( const Image *  image  ) 

static IndexPacket * GetIndexesFromCache ( const Image *  image  )  [static]

MagickExport unsigned long GetNexus ( Cache  cache  ) 

MagickExport IndexPacket* GetNexusIndexes ( const Cache  cache,
const unsigned long  nexus 
)

MagickExport PixelPacket* GetNexusPixels ( const Cache  cache,
const unsigned long  nexus 
)

MagickExport PixelPacket GetOnePixel ( Image *  image,
const long  x,
const long  y 
)

static PixelPacket GetOnePixelFromCache ( Image *  image,
const   long,
const   long 
)

static PixelPacket * GetPixelCache ( Image *  image,
const   long,
const   long,
const unsigned long  columns,
const unsigned long  rows 
)

MagickExport MagickSizeType GetPixelCacheArea ( const Image *  image  ) 

MagickExport PixelPacket* GetPixels ( const Image *  image  ) 

static PixelPacket * GetPixelsFromCache ( const Image *  image  ) 

static MagickBooleanType IsNexusInCore ( const CacheInfo *  cache_info,
const unsigned long  nexus 
) [inline, static]

static void LimitOpenCacheDescriptors ( void   )  [static]

static MagickSizeType MagickMax ( const MagickSizeType  x,
const MagickSizeType  y 
) [inline, static]

static MagickSizeType MagickMin ( const MagickSizeType  x,
const MagickSizeType  y 
) [inline, static]

static void MagickPixelCompositeMask ( const MagickPixelPacket *  p,
const MagickRealType  alpha,
const MagickPixelPacket *  q,
const MagickRealType  beta,
MagickPixelPacket *  composite 
) [inline, static]

static MagickBooleanType MaskCacheNexus ( Image *  image,
const unsigned long  nexus 
) [static]

static long MirrorX ( const unsigned long  columns,
const long  x 
) [inline, static]

static long MirrorY ( const unsigned long  rows,
const long  y 
) [inline, static]

static MagickBooleanType ModifyCache ( Image *  image,
const unsigned long  nexus 
) [static]

static MagickBooleanType OpenCache ( Image *  image,
const   MapMode,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType OpenDiskCache ( CacheInfo *  cache_info,
MapMode  mode 
) [static]

MagickExport MagickBooleanType PersistCache ( Image *  image,
const char *  filename,
const MagickBooleanType  attach,
MagickOffsetType *  offset,
ExceptionInfo *  exception 
)

static long RandomX ( const unsigned long  columns  )  [inline, static]

static long RandomY ( const unsigned long  rows  )  [inline, static]

static MagickBooleanType ReadCacheIndexes ( CacheInfo *  cache_info,
const unsigned long  nexus,
ExceptionInfo *  exception 
) [static]

static MagickBooleanType ReadCachePixels ( CacheInfo *  cache_info,
const unsigned long  nexus,
ExceptionInfo *  exception 
)

static MagickOffsetType ReadCacheRegion ( int  file,
unsigned char *  buffer,
MagickSizeType  length,
MagickOffsetType  offset 
) [inline, static]

MagickExport Cache ReferenceCache ( Cache  cache  ) 

static void RelinquishCachePixels ( CacheInfo *  cache_info  )  [inline, static]

static void RelinquishNexusPixels ( NexusInfo *  nexus_info  )  [inline, static]

MagickExport void SetCacheMethods ( Cache  cache,
CacheMethods *  cache_methods 
)

MagickExport PixelPacket* SetCacheNexus ( Image *  image,
const long  x,
const long  y,
const unsigned long  columns,
const unsigned long  rows,
const unsigned long  nexus 
)

MagickExport VirtualPixelMethod SetCacheVirtualPixelMethod ( const Image *  image,
const VirtualPixelMethod  virtual_pixel_method 
)

MagickExport PixelPacket* SetImagePixels ( Image *  image,
const long  x,
const long  y,
const unsigned long  columns,
const unsigned long  rows 
)

static PixelPacket * SetNexus ( const Image *  image,
const RectangleInfo *  region,
const unsigned long  nexus 
) [static]

static PixelPacket * SetPixelCache ( Image *  image,
const   long,
const   long,
const unsigned long  columns,
const unsigned long  rows 
)

static MagickBooleanType SyncCache ( Image *  image  ) 

MagickExport MagickBooleanType SyncCacheNexus ( Image *  image,
const unsigned long  nexus 
)

MagickExport MagickBooleanType SyncImagePixels ( Image *  image  ) 

static MagickBooleanType SyncPixelCache ( Image *  image  ) 

static long TileX ( const unsigned long  columns,
const long  x 
) [inline, static]

static long TileY ( const unsigned long  rows,
const long  y 
) [inline, static]

static MagickBooleanType WriteCacheIndexes ( CacheInfo *  cache_info,
const unsigned long  nexus,
ExceptionInfo *  exception 
)

static MagickBooleanType WriteCachePixels ( CacheInfo *  cache_info,
const unsigned long  nexus,
ExceptionInfo *  exception 
)

static MagickOffsetType WriteCacheRegion ( int  file,
const unsigned char *  buffer,
MagickSizeType  length,
MagickOffsetType  offset 
) [inline, static]


Variable Documentation

SplayTreeInfo* cache_resources = (SplayTreeInfo *) NULL [static]

SemaphoreInfo* cache_semaphore = (SemaphoreInfo *) NULL [static]

long DitherMatrix[64] [static]

Initial value:

  {
     0,  48,  12,  60,   3,  51,  15,  63,
    32,  16,  44,  28,  35,  19,  47,  31,
     8,  56,   4,  52,  11,  59,   7,  55,
    40,  24,  36,  20,  43,  27,  39,  23,
     2,  50,  14,  62,   1,  49,  13,  61,
    34,  18,  46,  30,  33,  17,  45,  29,
    10,  58,   6,  54,   9,  57,   5,  53,
    42,  26,  38,  22,  41,  25,  37,  21
  }

MagickSizeType serial_number = 0 [static]


Generated on Sat Jan 26 14:50:29 2008 for MagickCore by  doxygen 1.5.4