MagickCore  6.7.5
cache.c File Reference
Include dependency graph for cache.c:

Go to the source code of this file.

Data Structures

struct  _MagickModulo
struct  _NexusInfo

Defines

#define CacheTick(offset, extent)   QuantumTick((MagickOffsetType) offset,extent)
#define IsFileDescriptorLimitExceeded()

Typedefs

typedef struct _MagickModulo MagickModulo

Functions

static const QuantumGetVirtualPixelCache (const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
static const QuantumGetVirtualPixelsCache (const Image *)
static const void * GetVirtualMetacontentFromCache (const Image *)
static MagickBooleanType GetOneAuthenticPixelFromCache (Image *, const ssize_t, const ssize_t, Quantum *, ExceptionInfo *)
static MagickBooleanType GetOneVirtualPixelFromCache (const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, Quantum *, ExceptionInfo *)
static MagickBooleanType OpenPixelCache (Image *, const MapMode, ExceptionInfo *)
static MagickBooleanType ReadPixelCacheMetacontent (CacheInfo *, NexusInfo *, ExceptionInfo *)
static MagickBooleanType ReadPixelCachePixels (CacheInfo *, NexusInfo *, ExceptionInfo *)
static MagickBooleanType SyncAuthenticPixelsCache (Image *, ExceptionInfo *)
static MagickBooleanType WritePixelCacheMetacontent (CacheInfo *, NexusInfo *, ExceptionInfo *)
static MagickBooleanType WritePixelCachePixels (CacheInfo *, NexusInfo *, ExceptionInfo *)
static QuantumGetAuthenticPixelsCache (Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
static QuantumQueueAuthenticPixelsCache (Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
static QuantumSetPixelCacheNexusPixels (const Image *, const RectangleInfo *, NexusInfo *, ExceptionInfo *)
MagickPrivate Cache AcquirePixelCache (const size_t number_threads)
MagickPrivate NexusInfo ** AcquirePixelCacheNexus (const size_t number_threads)
MagickPrivate const void * AcquirePixelCachePixels (const Image *image, MagickSizeType *length, ExceptionInfo *exception)
MagickPrivate MagickBooleanType CacheComponentGenesis (void)
MagickPrivate void CacheComponentTerminus (void)
MagickPrivate Cache ClonePixelCache (const Cache cache)
static MagickBooleanType ClosePixelCacheOnDisk (CacheInfo *cache_info)
static MagickSizeType MagickMax (const MagickSizeType x, const MagickSizeType y)
static MagickSizeType MagickMin (const MagickSizeType x, const MagickSizeType y)
static MagickBooleanType OpenPixelCacheOnDisk (CacheInfo *cache_info, const MapMode mode)
static MagickOffsetType ReadPixelCacheRegion (CacheInfo *cache_info, const MagickOffsetType offset, const MagickSizeType length, unsigned char *restrict buffer)
static MagickOffsetType WritePixelCacheRegion (CacheInfo *cache_info, const MagickOffsetType offset, const MagickSizeType length, const unsigned char *restrict buffer)
static MagickBooleanType DiskToDiskPixelCacheClone (CacheInfo *clone_info, CacheInfo *cache_info, ExceptionInfo *exception)
static MagickBooleanType PixelCacheCloneOptimized (CacheInfo *clone_info, CacheInfo *cache_info, ExceptionInfo *exception)
static MagickBooleanType PixelCacheCloneUnoptimized (CacheInfo *clone_info, CacheInfo *cache_info, ExceptionInfo *exception)
static MagickBooleanType ClonePixelCachePixels (CacheInfo *clone_info, CacheInfo *cache_info, ExceptionInfo *exception)
MagickPrivate void ClonePixelCacheMethods (Cache clone, const Cache cache)
static void DestroyImagePixelCache (Image *image)
MagickExport void DestroyImagePixels (Image *image)
static void RelinquishPixelCachePixels (CacheInfo *cache_info)
MagickPrivate Cache DestroyPixelCache (Cache cache)
static void RelinquishCacheNexusPixels (NexusInfo *nexus_info)
MagickPrivate NexusInfo ** DestroyPixelCacheNexus (NexusInfo **nexus_info, const size_t number_threads)
MagickExport void * GetAuthenticMetacontent (const Image *image)
static void * GetAuthenticMetacontentFromCache (const Image *image)
static MagickBooleanType IsPixelAuthentic (const CacheInfo *cache_info, NexusInfo *nexus_info)
MagickPrivate QuantumGetAuthenticPixelCacheNexus (Image *image, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, NexusInfo *nexus_info, ExceptionInfo *exception)
static QuantumGetAuthenticPixelsFromCache (const Image *image)
MagickExport QuantumGetAuthenticPixelQueue (const Image *image)
MagickExport QuantumGetAuthenticPixels (Image *image, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
MagickExport MagickSizeType GetImageExtent (const Image *image)
static MagickBooleanType ValidatePixelCacheMorphology (const Image *image)
static Cache GetImagePixelCache (Image *image, const MagickBooleanType clone, ExceptionInfo *exception)
MagickExport MagickBooleanType GetOneAuthenticPixel (Image *image, const ssize_t x, const ssize_t y, Quantum *pixel, ExceptionInfo *exception)
MagickExport MagickBooleanType GetOneVirtualPixel (const Image *image, const ssize_t x, const ssize_t y, Quantum *pixel, ExceptionInfo *exception)
MagickExport MagickBooleanType GetOneVirtualPixelInfo (const Image *image, const VirtualPixelMethod virtual_pixel_method, const ssize_t x, const ssize_t y, PixelInfo *pixel, ExceptionInfo *exception)
MagickPrivate ColorspaceType GetPixelCacheColorspace (const Cache cache)
MagickPrivate void GetPixelCacheMethods (CacheMethods *cache_methods)
MagickPrivate MagickSizeType GetPixelCacheNexusExtent (const Cache cache, NexusInfo *nexus_info)
MagickPrivate void * GetPixelCacheNexusMetacontent (const Cache cache, NexusInfo *nexus_info)
MagickPrivate QuantumGetPixelCacheNexusPixels (const Cache cache, NexusInfo *nexus_info)
MagickPrivate void * GetPixelCachePixels (Image *image, MagickSizeType *length, ExceptionInfo *exception)
MagickPrivate ClassType GetPixelCacheStorageClass (const Cache cache)
MagickPrivate void GetPixelCacheTileSize (const Image *image, size_t *width, size_t *height)
MagickPrivate CacheType GetPixelCacheType (const Image *image)
MagickPrivate VirtualPixelMethod GetPixelCacheVirtualMethod (const Image *image)
MagickPrivate const void * GetVirtualMetacontentFromNexus (const Cache cache, NexusInfo *nexus_info)
MagickExport const void * GetVirtualMetacontent (const Image *image)
static ssize_t DitherX (const ssize_t x, const size_t columns)
static ssize_t DitherY (const ssize_t y, const size_t rows)
static ssize_t EdgeX (const ssize_t x, const size_t columns)
static ssize_t EdgeY (const ssize_t y, const size_t rows)
static ssize_t RandomX (RandomInfo *random_info, const size_t columns)
static ssize_t RandomY (RandomInfo *random_info, const size_t rows)
static MagickModulo VirtualPixelModulo (const ssize_t offset, const size_t extent)
MagickPrivate const QuantumGetVirtualPixelsFromNexus (const Image *image, const VirtualPixelMethod virtual_pixel_method, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, NexusInfo *nexus_info, ExceptionInfo *exception)
MagickExport const QuantumGetVirtualPixelQueue (const Image *image)
MagickExport const QuantumGetVirtualPixels (const Image *image, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
MagickPrivate const QuantumGetVirtualPixelsNexus (const Cache cache, NexusInfo *nexus_info)
static void AllocatePixelCachePixels (CacheInfo *cache_info)
static MagickBooleanType ExtendCache (Image *image, MagickSizeType length)
MagickExport MagickBooleanType PersistPixelCache (Image *image, const char *filename, const MagickBooleanType attach, MagickOffsetType *offset, ExceptionInfo *exception)
MagickPrivate QuantumQueueAuthenticPixelCacheNexus (Image *image, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, const MagickBooleanType clone, NexusInfo *nexus_info, ExceptionInfo *exception)
MagickExport QuantumQueueAuthenticPixels (Image *image, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
MagickPrivate Cache ReferencePixelCache (Cache cache)
MagickPrivate void SetPixelCacheMethods (Cache cache, CacheMethods *cache_methods)
static MagickBooleanType AcquireCacheNexusPixels (CacheInfo *cache_info, NexusInfo *nexus_info, ExceptionInfo *exception)
MagickPrivate VirtualPixelMethod SetPixelCacheVirtualMethod (const Image *image, const VirtualPixelMethod virtual_pixel_method)
MagickPrivate MagickBooleanType SyncAuthenticPixelCacheNexus (Image *image, NexusInfo *nexus_info, ExceptionInfo *exception)
MagickExport MagickBooleanType SyncAuthenticPixels (Image *image, ExceptionInfo *exception)
MagickPrivate MagickBooleanType SyncImagePixelCache (Image *image, ExceptionInfo *exception)

Variables

static volatile MagickBooleanType instantiate_cache = MagickFalse
static SemaphoreInfocache_semaphore = (SemaphoreInfo *) NULL
static ssize_t DitherMatrix [64]

Define Documentation

#define CacheTick (   offset,
  extent 
)    QuantumTick((MagickOffsetType) offset,extent)
#define IsFileDescriptorLimitExceeded ( )

Typedef Documentation

typedef struct _MagickModulo MagickModulo

Function Documentation

static MagickBooleanType AcquireCacheNexusPixels ( CacheInfo cache_info,
NexusInfo nexus_info,
ExceptionInfo exception 
) [inline, static]
MagickPrivate NexusInfo** AcquirePixelCacheNexus ( const size_t  number_threads)
MagickPrivate const void* AcquirePixelCachePixels ( const Image image,
MagickSizeType length,
ExceptionInfo exception 
)
static void AllocatePixelCachePixels ( CacheInfo cache_info) [inline, static]
MagickPrivate MagickBooleanType CacheComponentGenesis ( void  )

Definition at line 322 of file cache.c.

References AcquireSemaphoreInfo(), cache_semaphore, and MagickTrue.

MagickPrivate void CacheComponentTerminus ( void  )
MagickPrivate void ClonePixelCacheMethods ( Cache  clone,
const Cache  cache 
)
static void DestroyImagePixelCache ( Image image) [static]
MagickPrivate NexusInfo** DestroyPixelCacheNexus ( NexusInfo **  nexus_info,
const size_t  number_threads 
)
static ssize_t DitherX ( const ssize_t  x,
const size_t  columns 
) [inline, static]

Definition at line 2923 of file cache.c.

References DitherMatrix.

Referenced by GetVirtualPixelsFromNexus().

static ssize_t DitherY ( const ssize_t  y,
const size_t  rows 
) [inline, static]

Definition at line 2936 of file cache.c.

References DitherMatrix.

Referenced by GetVirtualPixelsFromNexus().

static ssize_t EdgeX ( const ssize_t  x,
const size_t  columns 
) [inline, static]

Definition at line 2949 of file cache.c.

Referenced by GetVirtualPixelsFromNexus().

static ssize_t EdgeY ( const ssize_t  y,
const size_t  rows 
) [inline, static]

Definition at line 2958 of file cache.c.

Referenced by GetVirtualPixelsFromNexus().

static void* GetAuthenticMetacontentFromCache ( const Image image) [static]
MagickPrivate Quantum* GetAuthenticPixelCacheNexus ( Image image,
const ssize_t  x,
const ssize_t  y,
const size_t  columns,
const size_t  rows,
NexusInfo nexus_info,
ExceptionInfo exception 
)
static Quantum * GetAuthenticPixelsCache ( Image image,
const ssize_t  x,
const ssize_t  y,
const size_t  columns,
const size_t  rows,
ExceptionInfo exception 
) [static]
static Quantum* GetAuthenticPixelsFromCache ( const Image image) [static]
MagickExport MagickBooleanType GetOneVirtualPixelInfo ( const Image image,
const VirtualPixelMethod  virtual_pixel_method,
const ssize_t  x,
const ssize_t  y,
PixelInfo pixel,
ExceptionInfo exception 
)
MagickPrivate MagickSizeType GetPixelCacheNexusExtent ( const Cache  cache,
NexusInfo nexus_info 
)
MagickPrivate void* GetPixelCacheNexusMetacontent ( const Cache  cache,
NexusInfo nexus_info 
)
MagickPrivate Quantum* GetPixelCacheNexusPixels ( const Cache  cache,
NexusInfo nexus_info 
)
MagickPrivate void* GetPixelCachePixels ( Image image,
MagickSizeType length,
ExceptionInfo exception 
)
MagickPrivate void GetPixelCacheTileSize ( const Image image,
size_t *  width,
size_t *  height 
)
MagickPrivate CacheType GetPixelCacheType ( const Image image)
MagickPrivate VirtualPixelMethod GetPixelCacheVirtualMethod ( const Image image)
static const void * GetVirtualMetacontentFromCache ( const Image image) [static]
MagickPrivate const void* GetVirtualMetacontentFromNexus ( const Cache  cache,
NexusInfo nexus_info 
)
static const Quantum * GetVirtualPixelCache ( const Image image,
const VirtualPixelMethod  virtual_pixel_method,
const ssize_t  x,
const ssize_t  y,
const size_t  columns,
const size_t  rows,
ExceptionInfo exception 
) [static]
static const Quantum * GetVirtualPixelsCache ( const Image image)
MagickPrivate const Quantum* GetVirtualPixelsFromNexus ( const Image image,
const VirtualPixelMethod  virtual_pixel_method,
const ssize_t  x,
const ssize_t  y,
const size_t  columns,
const size_t  rows,
NexusInfo nexus_info,
ExceptionInfo exception 
)

Definition at line 2997 of file cache.c.

References CompositePixelChannel, _Image::signature, MagickSignature, _Image::cache, _CacheInfo::signature, _CacheInfo::type, UndefinedCache, _RectangleInfo::x, _RectangleInfo::y, _RectangleInfo::width, _RectangleInfo::height, SetPixelCacheNexusPixels(), _NexusInfo::region, _CacheInfo::columns, _CacheInfo::rows, IsPixelAuthentic(), MagickFalse, ReadPixelCachePixels(), _CacheInfo::metacontent_extent, ReadPixelCacheMetacontent(), GetPixelCacheNexusMetacontent(), AcquirePixelCacheNexus(), DestroyPixelCacheNexus(), ThrowMagickException(), GetMagickModule, CacheError, _Image::filename, ResetMagickMemory(), _CacheInfo::number_channels, BackgroundVirtualPixelMethod, BlackVirtualPixelMethod, GrayVirtualPixelMethod, TransparentVirtualPixelMethod, MaskVirtualPixelMethod, WhiteVirtualPixelMethod, EdgeVirtualPixelMethod, CheckerTileVirtualPixelMethod, HorizontalTileVirtualPixelMethod, VerticalTileVirtualPixelMethod, AcquireQuantumMemory(), SetPixelChannel(), SetPixelAlpha(), OpaqueAlpha, QuantumRange, TransparentAlpha, SetPixelRed(), ClampToQuantum(), _Image::background_color, _PixelInfo::red, SetPixelGreen(), _PixelInfo::green, SetPixelBlue(), _PixelInfo::blue, _Image::colorspace, CMYKColorspace, SetPixelBlack(), _PixelInfo::black, _PixelInfo::alpha, MagickMin(), GetVirtualPixelsFromNexus(), EdgeX(), EdgeY(), GetVirtualMetacontentFromNexus(), RandomVirtualPixelMethod, _CacheInfo::random_info, AcquireRandomInfo(), RandomX(), RandomY(), DitherVirtualPixelMethod, DitherX(), DitherY(), TileVirtualPixelMethod, VirtualPixelModulo(), _MagickModulo::remainder, MirrorVirtualPixelMethod, _MagickModulo::quotient, HorizontalTileEdgeVirtualPixelMethod, VerticalTileEdgeVirtualPixelMethod, and RelinquishMagickMemory().

MagickPrivate const Quantum* GetVirtualPixelsNexus ( const Cache  cache,
NexusInfo nexus_info 
)
static MagickSizeType MagickMax ( const MagickSizeType  x,
const MagickSizeType  y 
) [inline, static]

Definition at line 444 of file cache.c.

Referenced by PixelCacheCloneUnoptimized().

static MagickSizeType MagickMin ( const MagickSizeType  x,
const MagickSizeType  y 
) [inline, static]
static MagickBooleanType OpenPixelCache ( Image image,
const MapMode  mode,
ExceptionInfo exception 
)
MagickExport Quantum* QueueAuthenticPixels ( Image image,
const ssize_t  x,
const ssize_t  y,
const size_t  columns,
const size_t  rows,
ExceptionInfo exception 
)
static Quantum * QueueAuthenticPixelsCache ( Image image,
const ssize_t  x,
const ssize_t  y,
const size_t  columns,
const size_t  rows,
ExceptionInfo exception 
)
static ssize_t RandomX ( RandomInfo random_info,
const size_t  columns 
) [inline, static]

Definition at line 2967 of file cache.c.

References GetPseudoRandomValue().

Referenced by GetVirtualPixelsFromNexus().

static ssize_t RandomY ( RandomInfo random_info,
const size_t  rows 
) [inline, static]

Definition at line 2972 of file cache.c.

References GetPseudoRandomValue().

Referenced by GetVirtualPixelsFromNexus().

static MagickOffsetType ReadPixelCacheRegion ( CacheInfo cache_info,
const MagickOffsetType  offset,
const MagickSizeType  length,
unsigned char *restrict  buffer 
) [inline, static]
MagickPrivate Cache ReferencePixelCache ( Cache  cache)
static void RelinquishCacheNexusPixels ( NexusInfo nexus_info) [inline, static]
MagickPrivate VirtualPixelMethod SetPixelCacheVirtualMethod ( const Image image,
const VirtualPixelMethod  virtual_pixel_method 
)
MagickPrivate MagickBooleanType SyncImagePixelCache ( Image image,
ExceptionInfo exception 
)
static MagickModulo VirtualPixelModulo ( const ssize_t  offset,
const size_t  extent 
) [inline, static]

Definition at line 2977 of file cache.c.

References _MagickModulo::quotient, and _MagickModulo::remainder.

Referenced by GetVirtualPixelsFromNexus().

static MagickOffsetType WritePixelCacheRegion ( CacheInfo cache_info,
const MagickOffsetType  offset,
const MagickSizeType  length,
const unsigned char *restrict  buffer 
) [inline, static]

Variable Documentation

Definition at line 159 of file cache.c.

Referenced by CacheComponentGenesis(), and CacheComponentTerminus().

ssize_t 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
  }

Definition at line 2911 of file cache.c.

Referenced by DitherX(), and DitherY().

volatile MagickBooleanType instantiate_cache = MagickFalse [static]

Definition at line 156 of file cache.c.

Referenced by CacheComponentTerminus().