]> granicus.if.org Git - imagemagick/blobdiff - magick/cache-view.c
(no commit message)
[imagemagick] / magick / cache-view.c
index 09f35167f9aa150d6b28525e7371667e7f6ead28..83e843e9896a505a0069f575d29a515c6491a94a 100644 (file)
@@ -23,7 +23,7 @@
 %                               February 2000                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -112,7 +112,7 @@ MagickExport CacheView *AcquireCacheView(const Image *image)
   assert(image->signature == MagickSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  cache_view=(CacheView *) AcquireAlignedMemory(1,sizeof(*cache_view));
+  cache_view=(CacheView *) AcquireMagickMemory(sizeof(*cache_view));
   if (cache_view == (CacheView *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   (void) ResetMagickMemory(cache_view,0,sizeof(*cache_view));
@@ -159,7 +159,7 @@ MagickExport CacheView *CloneCacheView(const CacheView *cache_view)
   if (cache_view->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
       cache_view->image->filename);
-  clone_view=(CacheView *) AcquireAlignedMemory(1,sizeof(*clone_view));
+  clone_view=(CacheView *) AcquireMagickMemory(sizeof(*clone_view));
   if (clone_view == (CacheView *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   (void) ResetMagickMemory(clone_view,0,sizeof(*clone_view));
@@ -207,7 +207,7 @@ MagickExport CacheView *DestroyCacheView(CacheView *cache_view)
       cache_view->number_threads);
   cache_view->image=DestroyImage(cache_view->image);
   cache_view->signature=(~MagickSignature);
-  cache_view=(CacheView *) RelinquishAlignedMemory(cache_view);
+  cache_view=(CacheView *) RelinquishMagickMemory(cache_view);
   return(cache_view);
 }
 \f
@@ -216,6 +216,39 @@ MagickExport CacheView *DestroyCacheView(CacheView *cache_view)
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   G e t C a c h e V i e w C h a n n e l s                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  GetCacheViewChannels() returns the image pixel channels associated with
+%  the specified view.
+%
+%  The format of the GetCacheViewChannels method is:
+%
+%      size_t GetCacheViewChannels(const CacheView *cache_view)
+%
+%  A description of each parameter follows:
+%
+%    o cache_view: the cache view.
+%
+*/
+MagickExport size_t GetCacheViewChannels(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(GetPixelCacheChannels(cache_view->image->cache));
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   G e t C a c h e V i e w C o l o r s p a c e                               %
 %                                                                             %
 %                                                                             %
@@ -241,7 +274,7 @@ MagickExport ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
   if (cache_view->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
       cache_view->image->filename);
-  return(cache_view->image->colorspace);
+  return(GetPixelCacheColorspace(cache_view->image->cache));
 }
 \f
 /*
@@ -303,11 +336,8 @@ MagickExport ExceptionInfo *GetCacheViewException(const CacheView *cache_view)
 */
 MagickExport MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
 {
-  int
-    id;
-
-  MagickSizeType
-    extent;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
@@ -315,11 +345,9 @@ MagickExport MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
       cache_view->image->filename);
   assert(cache_view->image->cache != (Cache) NULL);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  extent=GetPixelCacheNexusExtent(cache_view->image->cache,
-    cache_view->nexus_info[id]);
-  return(extent);
+  return(GetPixelCacheNexusExtent(cache_view->image->cache,
+    cache_view->nexus_info[id]));
 }
 \f
 /*
@@ -352,7 +380,7 @@ MagickExport ClassType GetCacheViewStorageClass(const CacheView *cache_view)
   if (cache_view->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
       cache_view->image->filename);
-  return(cache_view->image->storage_class);
+  return(GetPixelCacheStorageClass(cache_view->image->cache));
 }
 \f
 /*
@@ -388,19 +416,14 @@ MagickExport PixelPacket *GetCacheViewAuthenticPixels(CacheView *cache_view,
   const ssize_t x,const ssize_t y,const size_t columns,const size_t rows,
   ExceptionInfo *exception)
 {
-  int
-    id;
-
-  PixelPacket
-    *pixels;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  pixels=GetAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows,
-    cache_view->nexus_info[id],exception);
-  return(pixels);
+  return(GetAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows,
+    cache_view->nexus_info[id],exception));
 }
 \f
 /*
@@ -438,8 +461,8 @@ MagickExport MagickBooleanType GetOneCacheViewAuthenticPixel(
   const CacheView *cache_view,const ssize_t x,const ssize_t y,
   PixelPacket *pixel,ExceptionInfo *exception)
 {
-  int
-    id;
+  const int
+    id = GetOpenMPThreadId();
 
   PixelPacket
     *pixels;
@@ -447,7 +470,6 @@ MagickExport MagickBooleanType GetOneCacheViewAuthenticPixel(
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   *pixel=cache_view->image->background_color;
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
   pixels=GetAuthenticPixelCacheNexus(cache_view->image,x,y,1,1,
     cache_view->nexus_info[id],exception);
@@ -483,20 +505,15 @@ MagickExport MagickBooleanType GetOneCacheViewAuthenticPixel(
 */
 MagickExport IndexPacket *GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
 {
-  IndexPacket
-    *indexes;
-
-  int
-    id;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   assert(cache_view->image->cache != (Cache) NULL);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  indexes=GetPixelCacheNexusIndexes(cache_view->image->cache,
-    cache_view->nexus_info[id]);
-  return(indexes);
+  return(GetPixelCacheNexusIndexes(cache_view->image->cache,
+    cache_view->nexus_info[id]));
 }
 \f
 /*
@@ -526,20 +543,15 @@ MagickExport IndexPacket *GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
 */
 MagickExport PixelPacket *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
 {
-  int
-    id;
-
-  PixelPacket
-    *pixels;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   assert(cache_view->image->cache != (Cache) NULL);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  pixels=GetPixelCacheNexusPixels(cache_view->image->cache,
-    cache_view->nexus_info[id]);
-  return(pixels);
+  return(GetPixelCacheNexusPixels(cache_view->image->cache,
+    cache_view->nexus_info[id]));
 }
 \f
 /*
@@ -570,20 +582,15 @@ MagickExport PixelPacket *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
 MagickExport const IndexPacket *GetCacheViewVirtualIndexQueue(
   const CacheView *cache_view)
 {
-  const IndexPacket
-    *indexes;
-
-  int
-    id;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (const CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   assert(cache_view->image->cache != (Cache) NULL);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  indexes=GetVirtualIndexesFromNexus(cache_view->image->cache,
-    cache_view->nexus_info[id]);
-  return(indexes);
+  return(GetVirtualIndexesFromNexus(cache_view->image->cache,
+    cache_view->nexus_info[id]));
 }
 \f
 /*
@@ -614,20 +621,15 @@ MagickExport const IndexPacket *GetCacheViewVirtualIndexQueue(
 MagickExport const PixelPacket *GetCacheViewVirtualPixelQueue(
   const CacheView *cache_view)
 {
-  const PixelPacket
-    *pixels;
-
-  int
-    id;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (const CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   assert(cache_view->image->cache != (Cache) NULL);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  pixels=GetVirtualPixelsNexus(cache_view->image->cache,
-    cache_view->nexus_info[id]);
-  return(pixels);
+  return(GetVirtualPixelsNexus(cache_view->image->cache,
+    cache_view->nexus_info[id]));
 }
 \f
 /*
@@ -666,20 +668,15 @@ MagickExport const PixelPacket *GetCacheViewVirtualPixels(
   const CacheView *cache_view,const ssize_t x,const ssize_t y,
   const size_t columns,const size_t rows,ExceptionInfo *exception)
 {
-  const PixelPacket
-    *pixels;
-
-  int
-    id;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  pixels=GetVirtualPixelsFromNexus(cache_view->image,
+  return(GetVirtualPixelsFromNexus(cache_view->image,
     cache_view->virtual_pixel_method,x,y,columns,rows,
-    cache_view->nexus_info[id],exception);
-  return(pixels);
+    cache_view->nexus_info[id],exception));
 }
 \f
 /*
@@ -718,16 +715,15 @@ MagickExport MagickBooleanType GetOneCacheViewVirtualPixel(
   const CacheView *cache_view,const ssize_t x,const ssize_t y,
   PixelPacket *pixel,ExceptionInfo *exception)
 {
+  const int
+    id = GetOpenMPThreadId();
+
   const PixelPacket
     *pixels;
 
-  int
-    id;
-
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   *pixel=cache_view->image->background_color;
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
   pixels=GetVirtualPixelsFromNexus(cache_view->image,
     cache_view->virtual_pixel_method,x,y,1,1,cache_view->nexus_info[id],
@@ -778,16 +774,15 @@ MagickExport MagickBooleanType GetOneCacheViewVirtualMethodPixel(
   const CacheView *cache_view,const VirtualPixelMethod virtual_pixel_method,
   const ssize_t x,const ssize_t y,PixelPacket *pixel,ExceptionInfo *exception)
 {
+  const int
+    id = GetOpenMPThreadId();
+
   const PixelPacket
     *pixels;
 
-  int
-    id;
-
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
   *pixel=cache_view->image->background_color;
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
   pixels=GetVirtualPixelsFromNexus(cache_view->image,virtual_pixel_method,x,y,1,
     1,cache_view->nexus_info[id],exception);
@@ -833,19 +828,14 @@ MagickExport PixelPacket *QueueCacheViewAuthenticPixels(CacheView *cache_view,
   const ssize_t x,const ssize_t y,const size_t columns,const size_t rows,
   ExceptionInfo *exception)
 {
-  int
-    id;
-
-  PixelPacket
-    *pixels;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  pixels=QueueAuthenticNexus(cache_view->image,x,y,columns,rows,
-    cache_view->nexus_info[id],exception);
-  return(pixels);
+  return(QueueAuthenticNexus(cache_view->image,x,y,columns,rows,
+    cache_view->nexus_info[id],exception));
 }
 \f
 /*
@@ -953,17 +943,12 @@ MagickExport MagickBooleanType SetCacheViewVirtualPixelMethod(
 MagickExport MagickBooleanType SyncCacheViewAuthenticPixels(
   CacheView *cache_view,ExceptionInfo *exception)
 {
-  int
-    id;
-
-  MagickBooleanType
-    status;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(cache_view != (CacheView *) NULL);
   assert(cache_view->signature == MagickSignature);
-  id=GetOpenMPThreadId();
   assert(id < (int) cache_view->number_threads);
-  status=SyncAuthenticPixelCacheNexus(cache_view->image,
-    cache_view->nexus_info[id],exception);
-  return(status);
+  return(SyncAuthenticPixelCacheNexus(cache_view->image,
+    cache_view->nexus_info[id],exception));
 }