#include "MagickCore/cache-private.h"
#include "MagickCore/cache-view.h"
#include "MagickCore/memory_.h"
+#include "MagickCore/memory-private.h"
#include "MagickCore/exception.h"
#include "MagickCore/exception-private.h"
#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/resource_.h"
#include "MagickCore/string_.h"
#include "MagickCore/thread-private.h"
\f
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
(void) exception;
- cache_view=(CacheView *) AcquireQuantumMemory(1,sizeof(*cache_view));
+ cache_view=(CacheView *) MagickAssumeAligned(AcquireAlignedMemory(1,
+ sizeof(*cache_view)));
if (cache_view == (CacheView *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(cache_view,0,sizeof(*cache_view));
cache_view->image=ReferenceImage((Image *) image);
- cache_view->number_threads=GetOpenMPMaximumThreads();
+ cache_view->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
cache_view->nexus_info=AcquirePixelCacheNexus(cache_view->number_threads);
cache_view->virtual_pixel_method=GetImageVirtualPixelMethod(image);
cache_view->debug=IsEventLogging();
if (cache_view->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
cache_view->image->filename);
- clone_view=(CacheView *) AcquireQuantumMemory(1,sizeof(*clone_view));
+ clone_view=(CacheView *) MagickAssumeAligned(AcquireAlignedMemory(1,
+ sizeof(*clone_view)));
if (clone_view == (CacheView *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(clone_view,0,sizeof(*clone_view));
cache_view->number_threads);
cache_view->image=DestroyImage(cache_view->image);
cache_view->signature=(~MagickSignature);
- cache_view=(CacheView *) RelinquishMagickMemory(cache_view);
+ cache_view=(CacheView *) RelinquishAlignedMemory(cache_view);
return(cache_view);
}
\f
% %
% %
% %
-% G e t C a c h e V i e w C o l o r s p a c e %
+% G e t C a c h e V i e w A u t h e n t i c P i x e l s %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetCacheViewColorspace() returns the image colorspace associated with the
-% specified view.
+% GetCacheViewAuthenticPixels() gets pixels from the in-memory or disk pixel
+% cache as defined by the geometry parameters. A pointer to the pixels is
+% returned if the pixels are transferred, otherwise a NULL is returned.
%
-% The format of the GetCacheViewColorspace method is:
+% The format of the GetCacheViewAuthenticPixels method is:
%
-% ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
+% Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
+% const ssize_t x,const ssize_t y,const size_t columns,
+% const size_t rows,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o cache_view: the cache view.
%
+% o x,y,columns,rows: These values define the perimeter of a region of
+% pixels.
+%
+% o exception: return any errors or warnings in this structure.
+%
*/
-MagickExport ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
+MagickExport Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
+ const ssize_t x,const ssize_t y,const size_t columns,const size_t rows,
+ ExceptionInfo *exception)
{
+ const int
+ id = GetOpenMPThreadId();
+
+ Quantum
+ *pixels;
+
assert(cache_view != (CacheView *) NULL);
assert(cache_view->signature == MagickSignature);
- if (cache_view->debug != MagickFalse)
- (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
- cache_view->image->filename);
- return(GetPixelCacheColorspace(cache_view->image->cache));
+ assert(id < (int) cache_view->number_threads);
+ pixels=GetAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows,
+ cache_view->nexus_info[id],exception);
+ return(pixels);
}
\f
/*
% %
% %
% %
-+ G e t C a c h e V i e w E x t e n t %
+% G e t C a c h e V i e w A u t h e n t i c M e t a c o n t e n t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetCacheViewExtent() returns the extent of the pixels associated with the
+% GetCacheViewAuthenticMetacontent() returns the meta-content corresponding
+% with the last call to SetCacheViewIndexes() or
+% GetCacheViewAuthenticMetacontent(). The meta-content are authentic and can
+% be updated.
+%
+% The format of the GetCacheViewAuthenticMetacontent() method is:
+%
+% void *GetCacheViewAuthenticMetacontent(CacheView *cache_view)
+%
+% A description of each parameter follows:
+%
+% o cache_view: the cache view.
+%
+*/
+MagickExport void *GetCacheViewAuthenticMetacontent(CacheView *cache_view)
+{
+ const int
+ id = GetOpenMPThreadId();
+
+ void
+ *metacontent;
+
+ assert(cache_view != (CacheView *) NULL);
+ assert(cache_view->signature == MagickSignature);
+ assert(cache_view->image->cache != (Cache) NULL);
+ assert(id < (int) cache_view->number_threads);
+ metacontent=GetPixelCacheNexusMetacontent(cache_view->image->cache,
+ cache_view->nexus_info[id]);
+ return(metacontent);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% G e t C a c h e V i e w A u t h e n t i c P i x e l Q u e u e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% GetCacheViewAuthenticPixelQueue() returns the pixels associated with the
% last call to QueueCacheViewAuthenticPixels() or
-% GetCacheViewAuthenticPixels().
+% GetCacheViewAuthenticPixels(). The pixels are authentic and therefore can be
+% updated.
%
-% The format of the GetCacheViewExtent() method is:
+% The format of the GetCacheViewAuthenticPixelQueue() method is:
%
-% MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
+% Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
%
% A description of each parameter follows:
%
% o cache_view: the cache view.
%
*/
-MagickExport MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
+MagickExport Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
{
const int
id = GetOpenMPThreadId();
- MagickSizeType
- extent;
+ Quantum
+ *pixels;
assert(cache_view != (CacheView *) NULL);
assert(cache_view->signature == MagickSignature);
- if (cache_view->debug != MagickFalse)
- (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
- cache_view->image->filename);
assert(cache_view->image->cache != (Cache) NULL);
assert(id < (int) cache_view->number_threads);
- extent=GetPixelCacheNexusExtent(cache_view->image->cache,
+ pixels=GetPixelCacheNexusPixels(cache_view->image->cache,
cache_view->nexus_info[id]);
- return(extent);
+ return(pixels);
}
\f
/*
% %
% %
% %
-% G e t C a c h e V i e w S t o r a g e C l a s s %
+% G e t C a c h e V i e w C o l o r s p a c e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetCacheViewStorageClass() returns the image storage class associated with
-% the specified view.
+% GetCacheViewColorspace() returns the image colorspace associated with the
+% specified view.
%
-% The format of the GetCacheViewStorageClass method is:
+% The format of the GetCacheViewColorspace method is:
%
-% ClassType GetCacheViewStorageClass(const CacheView *cache_view)
+% ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
%
% A description of each parameter follows:
%
% o cache_view: the cache view.
%
*/
-MagickExport ClassType GetCacheViewStorageClass(const CacheView *cache_view)
+MagickExport ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
{
assert(cache_view != (CacheView *) NULL);
assert(cache_view->signature == MagickSignature);
if (cache_view->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
cache_view->image->filename);
- return(GetPixelCacheStorageClass(cache_view->image->cache));
+ return(GetPixelCacheColorspace(cache_view->image->cache));
}
\f
/*
% %
% %
% %
-% G e t C a c h e V i e w A u t h e n t i c P i x e l s %
++ G e t C a c h e V i e w E x t e n t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetCacheViewAuthenticPixels() gets pixels from the in-memory or disk pixel
-% cache as defined by the geometry parameters. A pointer to the pixels is
-% returned if the pixels are transferred, otherwise a NULL is returned.
+% GetCacheViewExtent() returns the extent of the pixels associated with the
+% last call to QueueCacheViewAuthenticPixels() or
+% GetCacheViewAuthenticPixels().
%
-% The format of the GetCacheViewAuthenticPixels method is:
+% The format of the GetCacheViewExtent() method is:
%
-% Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
-% const ssize_t x,const ssize_t y,const size_t columns,
-% const size_t rows,ExceptionInfo *exception)
+% MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
%
% A description of each parameter follows:
%
% o cache_view: the cache view.
%
-% o x,y,columns,rows: These values define the perimeter of a region of
-% pixels.
-%
-% o exception: return any errors or warnings in this structure.
-%
*/
-MagickExport Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
- const ssize_t x,const ssize_t y,const size_t columns,const size_t rows,
- ExceptionInfo *exception)
+MagickExport MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
{
const int
id = GetOpenMPThreadId();
- Quantum
- *pixels;
+ MagickSizeType
+ extent;
assert(cache_view != (CacheView *) NULL);
assert(cache_view->signature == MagickSignature);
+ if (cache_view->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+ cache_view->image->filename);
+ assert(cache_view->image->cache != (Cache) NULL);
assert(id < (int) cache_view->number_threads);
- pixels=GetAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows,
- cache_view->nexus_info[id],exception);
- return(pixels);
+ extent=GetPixelCacheNexusExtent(cache_view->image->cache,
+ cache_view->nexus_info[id]);
+ return(extent);
}
\f
/*
% %
% %
% %
-% G e t C a c h e V i e w A u t h e n t i c M e t a c o n t e n t %
+% G e t C a c h e V i e w I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetCacheViewAuthenticMetacontent() returns the meta-content corresponding
-% with the last call to SetCacheViewIndexes() or
-% GetCacheViewAuthenticMetacontent(). The meta-content are authentic and can
-% be updated.
+% GetCacheViewImage() returns the image associated with the specified view.
%
-% The format of the GetCacheViewAuthenticMetacontent() method is:
+% The format of the GetCacheViewImage method is:
%
-% void *GetCacheViewAuthenticMetacontent(CacheView *cache_view)
+% const Image *GetCacheViewImage(const CacheView *cache_view)
%
% A description of each parameter follows:
%
% o cache_view: the cache view.
%
*/
-MagickExport void *GetCacheViewAuthenticMetacontent(
- CacheView *cache_view)
+MagickExport const Image *GetCacheViewImage(const CacheView *cache_view)
{
- const int
- id = GetOpenMPThreadId();
-
- void
- *metacontent;
-
assert(cache_view != (CacheView *) NULL);
assert(cache_view->signature == MagickSignature);
- assert(cache_view->image->cache != (Cache) NULL);
- assert(id < (int) cache_view->number_threads);
- metacontent=GetPixelCacheNexusMetacontent(cache_view->image->cache,
- cache_view->nexus_info[id]);
- return(metacontent);
+ if (cache_view->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+ cache_view->image->filename);
+ return(cache_view->image);
}
\f
/*
% %
% %
% %
-% G e t C a c h e V i e w A u t h e n t i c P i x e l Q u e u e %
+% G e t C a c h e V i e w S t o r a g e C l a s s %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% GetCacheViewAuthenticPixelQueue() returns the pixels associated with the
-% last call to QueueCacheViewAuthenticPixels() or
-% GetCacheViewAuthenticPixels(). The pixels are authentic and therefore can be
-% updated.
+% GetCacheViewStorageClass() returns the image storage class associated with
+% the specified view.
%
-% The format of the GetCacheViewAuthenticPixelQueue() method is:
+% The format of the GetCacheViewStorageClass method is:
%
-% Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
+% ClassType GetCacheViewStorageClass(const CacheView *cache_view)
%
% A description of each parameter follows:
%
% o cache_view: the cache view.
%
*/
-MagickExport Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
+MagickExport ClassType GetCacheViewStorageClass(const CacheView *cache_view)
{
- const int
- id = GetOpenMPThreadId();
-
- Quantum
- *pixels;
-
assert(cache_view != (CacheView *) NULL);
assert(cache_view->signature == MagickSignature);
- assert(cache_view->image->cache != (Cache) NULL);
- assert(id < (int) cache_view->number_threads);
- pixels=GetPixelCacheNexusPixels(cache_view->image->cache,
- cache_view->nexus_info[id]);
- return(pixels);
+ if (cache_view->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+ cache_view->image->filename);
+ return(GetPixelCacheStorageClass(cache_view->image->cache));
}
\f
/*