13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                      CCCC   AAA    CCCC  H   H  EEEEE                       %
73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                     C      A   A  C      H   H  E                           %
83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                     C      AAAAA  C      HHHHH  EEE                         %
93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                     C      A   A  C      H   H  E                           %
103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                      CCCC  A   A   CCCC  H   H  EEEEE                       %
113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                        V   V  IIIII  EEEEE  W   W                           %
133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                        V   V    I    E      W   W                           %
143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                        V   V    I    EEE    W W W                           %
153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                         V V     I    E      WW WW                           %
163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                          V    IIIII  EEEEE  W   W                           %
173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                        MagickCore Cache View Methods                        %
203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                              Software Design                                %
22de984cdc3631106b1cbbb8d3972b76a0fc27e8e8cristy%                                   Cristy                                    %
233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                               February 2000                                 %
243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
267ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy%  Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization      %
273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  dedicated to making software imaging solutions freely available.           %
283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  You may not use this file except in compliance with the License.  You may  %
303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  obtain a copy of the License at                                            %
313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    http://www.imagemagick.org/script/license.php                            %
333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  Unless required by applicable law or agreed to in writing, software        %
353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  distributed under the License is distributed on an "AS IS" BASIS,          %
363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   %
373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  See the License for the specific language governing permissions and        %
383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  limitations under the License.                                             %
393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  Include declarations.
483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
494c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/studio.h"
504c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/cache.h"
514c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/cache-private.h"
524c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/cache-view.h"
534c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/memory_.h"
54e42639a7b750e7b86ae59f3ba8f5972fee9e85d3cristy#include "MagickCore/memory-private.h"
554c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/exception.h"
564c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/exception-private.h"
574c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/pixel-accessor.h"
58ac245f8a51ea65b085d751c41d8ca4b426bdfe5bcristy#include "MagickCore/resource_.h"
594c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/string_.h"
604c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/thread-private.h"
613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  Typedef declarations.
643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
653ed852eea50f9d4cd633efb8c2b054b8e33c253cristystruct _CacheView
663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  Image
683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *image;
693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  VirtualPixelMethod
713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    virtual_pixel_method;
723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
73bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  size_t
743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    number_threads;
753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  NexusInfo
773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    **nexus_info;
783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  MagickBooleanType
803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    debug;
813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
82bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  size_t
833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    signature;
843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy};
853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
91db070957cf6bf959df9283a482377e8854c3d4d2cristy%   A c q u i r e A u t h e n t i c C a c h e V i e w                         %
923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
97db070957cf6bf959df9283a482377e8854c3d4d2cristy%  AcquireAuthenticCacheView() acquires an authentic view into the pixel cache.
9846ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy%  It always succeeds but may return a warning or informational exception.
993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
100db070957cf6bf959df9283a482377e8854c3d4d2cristy%  The format of the AcquireAuthenticCacheView method is:
1013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10246ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy%      CacheView *AcquireAuthenticCacheView(const Image *image,
10346ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy%        ExceptionInfo *exception)
1043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
1053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
1063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
1073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o image: the image.
1083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
109db070957cf6bf959df9283a482377e8854c3d4d2cristy%    o exception: return any errors or warnings in this structure.
110db070957cf6bf959df9283a482377e8854c3d4d2cristy%
1113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
11246ff2676b1044ea4101ac7a59b83289cd8f6cfdacristyMagickExport CacheView *AcquireAuthenticCacheView(const Image *image,
11346ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy  ExceptionInfo *exception)
114db070957cf6bf959df9283a482377e8854c3d4d2cristy{
115db070957cf6bf959df9283a482377e8854c3d4d2cristy  CacheView
11605d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict cache_view;
117db070957cf6bf959df9283a482377e8854c3d4d2cristy
11846ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy  cache_view=AcquireVirtualCacheView(image,exception);
119db070957cf6bf959df9283a482377e8854c3d4d2cristy  return(cache_view);
120db070957cf6bf959df9283a482377e8854c3d4d2cristy}
121db070957cf6bf959df9283a482377e8854c3d4d2cristy
122db070957cf6bf959df9283a482377e8854c3d4d2cristy/*
123db070957cf6bf959df9283a482377e8854c3d4d2cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124db070957cf6bf959df9283a482377e8854c3d4d2cristy%                                                                             %
125db070957cf6bf959df9283a482377e8854c3d4d2cristy%                                                                             %
126db070957cf6bf959df9283a482377e8854c3d4d2cristy%                                                                             %
127db070957cf6bf959df9283a482377e8854c3d4d2cristy%   A c q u i r e V i r t u a l C a c h e V i e w                             %
128db070957cf6bf959df9283a482377e8854c3d4d2cristy%                                                                             %
129db070957cf6bf959df9283a482377e8854c3d4d2cristy%                                                                             %
130db070957cf6bf959df9283a482377e8854c3d4d2cristy%                                                                             %
131db070957cf6bf959df9283a482377e8854c3d4d2cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
132db070957cf6bf959df9283a482377e8854c3d4d2cristy%
133db070957cf6bf959df9283a482377e8854c3d4d2cristy%  AcquireVirtualCacheView() acquires a virtual view into the pixel cache,
134db070957cf6bf959df9283a482377e8854c3d4d2cristy%  using the VirtualPixelMethod that is defined within the given image itself.
13546ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy%  It always succeeds but may return a warning or informational exception.
136db070957cf6bf959df9283a482377e8854c3d4d2cristy%
137db070957cf6bf959df9283a482377e8854c3d4d2cristy%  The format of the AcquireVirtualCacheView method is:
138db070957cf6bf959df9283a482377e8854c3d4d2cristy%
139db070957cf6bf959df9283a482377e8854c3d4d2cristy%      CacheView *AcquireVirtualCacheView(const Image *image,
140db070957cf6bf959df9283a482377e8854c3d4d2cristy%        ExceptionInfo *exception)
141db070957cf6bf959df9283a482377e8854c3d4d2cristy%
142db070957cf6bf959df9283a482377e8854c3d4d2cristy%  A description of each parameter follows:
143db070957cf6bf959df9283a482377e8854c3d4d2cristy%
144db070957cf6bf959df9283a482377e8854c3d4d2cristy%    o image: the image.
145db070957cf6bf959df9283a482377e8854c3d4d2cristy%
14646ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy%    o exception: return any errors or warnings in this structure.
14746ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy%
148db070957cf6bf959df9283a482377e8854c3d4d2cristy*/
14946ff2676b1044ea4101ac7a59b83289cd8f6cfdacristyMagickExport CacheView *AcquireVirtualCacheView(const Image *image,
15046ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy  ExceptionInfo *exception)
1513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
1523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  CacheView
15305d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict cache_view;
1543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
15521dc0310cdaa5cc6034a1e100746706f5ec089ebdirk  magick_unreferenced(exception);
1563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(image != (Image *) NULL);
157e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(image->signature == MagickCoreSignature);
1583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (image->debug != MagickFalse)
1593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
16021dc0310cdaa5cc6034a1e100746706f5ec089ebdirk#if defined(MAGICKCORE_OPENCL_SUPPORT)
16121dc0310cdaa5cc6034a1e100746706f5ec089ebdirk  SyncAuthenticOpenCLBuffer(image);
16221dc0310cdaa5cc6034a1e100746706f5ec089ebdirk#endif
163e42639a7b750e7b86ae59f3ba8f5972fee9e85d3cristy  cache_view=(CacheView *) MagickAssumeAligned(AcquireAlignedMemory(1,
164e42639a7b750e7b86ae59f3ba8f5972fee9e85d3cristy    sizeof(*cache_view)));
1653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view == (CacheView *) NULL)
1663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
1673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  (void) ResetMagickMemory(cache_view,0,sizeof(*cache_view));
1683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  cache_view->image=ReferenceImage((Image *) image);
169d99b5a5526a4481588b645a4a701117c34145041cristy  cache_view->number_threads=GetOpenMPMaximumThreads();
170d99b5a5526a4481588b645a4a701117c34145041cristy  if (GetMagickResourceLimit(ThreadResource) > cache_view->number_threads)
171d99b5a5526a4481588b645a4a701117c34145041cristy    cache_view->number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
172d99b5a5526a4481588b645a4a701117c34145041cristy  if (cache_view->number_threads == 0)
173d99b5a5526a4481588b645a4a701117c34145041cristy    cache_view->number_threads=1;
1743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  cache_view->nexus_info=AcquirePixelCacheNexus(cache_view->number_threads);
1753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  cache_view->virtual_pixel_method=GetImageVirtualPixelMethod(image);
1763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  cache_view->debug=IsEventLogging();
177e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  cache_view->signature=MagickCoreSignature;
1783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->nexus_info == (NexusInfo **) NULL)
1793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    ThrowFatalException(CacheFatalError,"UnableToAcquireCacheView");
1803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(cache_view);
1813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
1823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
1833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
1843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
1863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
1873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
1883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   C l o n e C a c h e V i e w                                               %
1893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
1903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
1913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
1923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
1943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  CloneCacheView()  makes an exact copy of the specified cache view.
1953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
1963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the CloneCacheView method is:
1973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
1983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      CacheView *CloneCacheView(const CacheView *cache_view)
1993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
2013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
2033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
2053ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport CacheView *CloneCacheView(const CacheView *cache_view)
2063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
2073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  CacheView
20805d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict clone_view;
2093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
2103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
211e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
2123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->debug != MagickFalse)
2133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
2143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      cache_view->image->filename);
215e42639a7b750e7b86ae59f3ba8f5972fee9e85d3cristy  clone_view=(CacheView *) MagickAssumeAligned(AcquireAlignedMemory(1,
216e42639a7b750e7b86ae59f3ba8f5972fee9e85d3cristy    sizeof(*clone_view)));
2173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (clone_view == (CacheView *) NULL)
2183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
2193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  (void) ResetMagickMemory(clone_view,0,sizeof(*clone_view));
2203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  clone_view->image=ReferenceImage(cache_view->image);
2213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  clone_view->number_threads=cache_view->number_threads;
2223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  clone_view->nexus_info=AcquirePixelCacheNexus(cache_view->number_threads);
2233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  clone_view->virtual_pixel_method=cache_view->virtual_pixel_method;
2243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  clone_view->debug=cache_view->debug;
225e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  clone_view->signature=MagickCoreSignature;
2263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(clone_view);
2273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
2283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
2293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
2303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   D e s t r o y C a c h e V i e w                                           %
2353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  DestroyCacheView() destroys the specified view returned by a previous call
2413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  to AcquireCacheView().
2423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the DestroyCacheView method is:
2443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      CacheView *DestroyCacheView(CacheView *cache_view)
2463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
2483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
2503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
2523ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport CacheView *DestroyCacheView(CacheView *cache_view)
2533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
2543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
255e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
2563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->debug != MagickFalse)
2573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
2583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      cache_view->image->filename);
2593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->nexus_info != (NexusInfo **) NULL)
2603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    cache_view->nexus_info=DestroyPixelCacheNexus(cache_view->nexus_info,
2613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      cache_view->number_threads);
2623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  cache_view->image=DestroyImage(cache_view->image);
263e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  cache_view->signature=(~MagickCoreSignature);
26427d53d6693941cf35348f714bd847bc187fd281fcristy  cache_view=(CacheView *) RelinquishAlignedMemory(cache_view);
2653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(cache_view);
2663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
2673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
2683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
2693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
273e751662f8175c76e55da86bbf90d1a7d02425b9acristy%   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                     %
2743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
2773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
279e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewAuthenticPixels() gets pixels from the in-memory or disk pixel
280e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  cache as defined by the geometry parameters.   A pointer to the pixels is
281e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  returned if the pixels are transferred, otherwise a NULL is returned.
2823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
283e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewAuthenticPixels method is:
2843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
285e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
286e751662f8175c76e55da86bbf90d1a7d02425b9acristy%        const ssize_t x,const ssize_t y,const size_t columns,
287e751662f8175c76e55da86bbf90d1a7d02425b9acristy%        const size_t rows,ExceptionInfo *exception)
2883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
2903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
2913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
2923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
293e751662f8175c76e55da86bbf90d1a7d02425b9acristy%    o x,y,columns,rows:  These values define the perimeter of a region of
294e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      pixels.
295e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
296e751662f8175c76e55da86bbf90d1a7d02425b9acristy%    o exception: return any errors or warnings in this structure.
297e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
2983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
299e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport Quantum *GetCacheViewAuthenticPixels(CacheView *cache_view,
300e751662f8175c76e55da86bbf90d1a7d02425b9acristy  const ssize_t x,const ssize_t y,const size_t columns,const size_t rows,
301e751662f8175c76e55da86bbf90d1a7d02425b9acristy  ExceptionInfo *exception)
3023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
303e751662f8175c76e55da86bbf90d1a7d02425b9acristy  const int
304e751662f8175c76e55da86bbf90d1a7d02425b9acristy    id = GetOpenMPThreadId();
305e751662f8175c76e55da86bbf90d1a7d02425b9acristy
306e751662f8175c76e55da86bbf90d1a7d02425b9acristy  Quantum
30705d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict pixels;
308e751662f8175c76e55da86bbf90d1a7d02425b9acristy
3093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
310e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
311e751662f8175c76e55da86bbf90d1a7d02425b9acristy  assert(id < (int) cache_view->number_threads);
312e751662f8175c76e55da86bbf90d1a7d02425b9acristy  pixels=GetAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows,
313e751662f8175c76e55da86bbf90d1a7d02425b9acristy    cache_view->nexus_info[id],exception);
314e751662f8175c76e55da86bbf90d1a7d02425b9acristy  return(pixels);
3153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
3163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
3173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
3183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
322e751662f8175c76e55da86bbf90d1a7d02425b9acristy%   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           %
3233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
328e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewAuthenticMetacontent() returns the meta-content corresponding
329e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  with the last call to SetCacheViewIndexes() or
330e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewAuthenticMetacontent().  The meta-content are authentic and can
331e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  be updated.
332e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
333e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewAuthenticMetacontent() method is:
334e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
335e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      void *GetCacheViewAuthenticMetacontent(CacheView *cache_view)
336e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
337e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  A description of each parameter follows:
338e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
339e751662f8175c76e55da86bbf90d1a7d02425b9acristy%    o cache_view: the cache view.
340e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
341e751662f8175c76e55da86bbf90d1a7d02425b9acristy*/
342e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport void *GetCacheViewAuthenticMetacontent(CacheView *cache_view)
343e751662f8175c76e55da86bbf90d1a7d02425b9acristy{
344e751662f8175c76e55da86bbf90d1a7d02425b9acristy  const int
345e751662f8175c76e55da86bbf90d1a7d02425b9acristy    id = GetOpenMPThreadId();
346e751662f8175c76e55da86bbf90d1a7d02425b9acristy
347e751662f8175c76e55da86bbf90d1a7d02425b9acristy  assert(cache_view != (CacheView *) NULL);
348e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
349e751662f8175c76e55da86bbf90d1a7d02425b9acristy  assert(cache_view->image->cache != (Cache) NULL);
350e751662f8175c76e55da86bbf90d1a7d02425b9acristy  assert(id < (int) cache_view->number_threads);
351ffaf87e2e4e5508769578770d7dc1e5dfee1743fcristy  return(cache_view->nexus_info[id]->metacontent);
352e751662f8175c76e55da86bbf90d1a7d02425b9acristy}
353e751662f8175c76e55da86bbf90d1a7d02425b9acristy
354e751662f8175c76e55da86bbf90d1a7d02425b9acristy/*
355e751662f8175c76e55da86bbf90d1a7d02425b9acristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356e751662f8175c76e55da86bbf90d1a7d02425b9acristy%                                                                             %
357e751662f8175c76e55da86bbf90d1a7d02425b9acristy%                                                                             %
358e751662f8175c76e55da86bbf90d1a7d02425b9acristy%                                                                             %
359e751662f8175c76e55da86bbf90d1a7d02425b9acristy%   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             %
360e751662f8175c76e55da86bbf90d1a7d02425b9acristy%                                                                             %
361e751662f8175c76e55da86bbf90d1a7d02425b9acristy%                                                                             %
362e751662f8175c76e55da86bbf90d1a7d02425b9acristy%                                                                             %
363e751662f8175c76e55da86bbf90d1a7d02425b9acristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
364e751662f8175c76e55da86bbf90d1a7d02425b9acristy%
365e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewAuthenticPixelQueue() returns the pixels associated with the
3663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  last call to QueueCacheViewAuthenticPixels() or
367e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewAuthenticPixels().  The pixels are authentic and therefore can be
368e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  updated.
3693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
370e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewAuthenticPixelQueue() method is:
3713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
372e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
3733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
3743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
3753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
3763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
3773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
3783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
379e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport Quantum *GetCacheViewAuthenticPixelQueue(CacheView *cache_view)
3803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
3815c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
3825c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
3834205a3c2a1ff3e011d062af266ff4fd476f93078cristy
3843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
385e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
3863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view->image->cache != (Cache) NULL);
3874205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
388ffaf87e2e4e5508769578770d7dc1e5dfee1743fcristy  return(cache_view->nexus_info[id]->pixels);
3893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
3903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
3913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
3923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
396e751662f8175c76e55da86bbf90d1a7d02425b9acristy%   G e t C a c h e V i e w C o l o r s p a c e                               %
3973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
3993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
402e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewColorspace() returns the image colorspace associated with the
403e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  specified view.
4043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
405e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewColorspace method is:
4063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
407e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
4083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
4103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
4123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
414e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport ColorspaceType GetCacheViewColorspace(const CacheView *cache_view)
4153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
4163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
417e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
4183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->debug != MagickFalse)
4193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
4203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      cache_view->image->filename);
421e751662f8175c76e55da86bbf90d1a7d02425b9acristy  return(GetPixelCacheColorspace(cache_view->image->cache));
4223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
4233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
4243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
4253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
429e751662f8175c76e55da86bbf90d1a7d02425b9acristy+   G e t C a c h e V i e w E x t e n t                                       %
4303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
435e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewExtent() returns the extent of the pixels associated with the
436e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  last call to QueueCacheViewAuthenticPixels() or
437e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewAuthenticPixels().
4383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
439e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewExtent() method is:
4403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
441e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
4423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
4443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
4463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
448e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport MagickSizeType GetCacheViewExtent(const CacheView *cache_view)
4493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
4505c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
4515c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
4524205a3c2a1ff3e011d062af266ff4fd476f93078cristy
453e751662f8175c76e55da86bbf90d1a7d02425b9acristy  MagickSizeType
454e751662f8175c76e55da86bbf90d1a7d02425b9acristy    extent;
4553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
4563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
457e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
458e751662f8175c76e55da86bbf90d1a7d02425b9acristy  if (cache_view->debug != MagickFalse)
459e751662f8175c76e55da86bbf90d1a7d02425b9acristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
460e751662f8175c76e55da86bbf90d1a7d02425b9acristy      cache_view->image->filename);
461e751662f8175c76e55da86bbf90d1a7d02425b9acristy  assert(cache_view->image->cache != (Cache) NULL);
4624205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
463e751662f8175c76e55da86bbf90d1a7d02425b9acristy  extent=GetPixelCacheNexusExtent(cache_view->image->cache,
464e751662f8175c76e55da86bbf90d1a7d02425b9acristy    cache_view->nexus_info[id]);
465e751662f8175c76e55da86bbf90d1a7d02425b9acristy  return(extent);
4663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
4673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
4683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
4693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
473e751662f8175c76e55da86bbf90d1a7d02425b9acristy%   G e t C a c h e V i e w I m a g e                                         %
4743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
4773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
479e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewImage() returns the image associated with the specified view.
4803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
481e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewImage method is:
4823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
483e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      const Image *GetCacheViewImage(const CacheView *cache_view)
4843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
4863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
4883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
4893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
490e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport const Image *GetCacheViewImage(const CacheView *cache_view)
4913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
4923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
493e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
494e751662f8175c76e55da86bbf90d1a7d02425b9acristy  if (cache_view->debug != MagickFalse)
495e751662f8175c76e55da86bbf90d1a7d02425b9acristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
496e751662f8175c76e55da86bbf90d1a7d02425b9acristy      cache_view->image->filename);
497e751662f8175c76e55da86bbf90d1a7d02425b9acristy  return(cache_view->image);
4983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
4993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
5003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
5013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
505e751662f8175c76e55da86bbf90d1a7d02425b9acristy%   G e t C a c h e V i e w S t o r a g e C l a s s                           %
5063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
511e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  GetCacheViewStorageClass() returns the image storage class associated with
512e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  the specified view.
5133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
514e751662f8175c76e55da86bbf90d1a7d02425b9acristy%  The format of the GetCacheViewStorageClass method is:
5153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
516e751662f8175c76e55da86bbf90d1a7d02425b9acristy%      ClassType GetCacheViewStorageClass(const CacheView *cache_view)
5173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
5193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
5213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
523e751662f8175c76e55da86bbf90d1a7d02425b9acristyMagickExport ClassType GetCacheViewStorageClass(const CacheView *cache_view)
5243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
5253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
526e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
527e751662f8175c76e55da86bbf90d1a7d02425b9acristy  if (cache_view->debug != MagickFalse)
528e751662f8175c76e55da86bbf90d1a7d02425b9acristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
529e751662f8175c76e55da86bbf90d1a7d02425b9acristy      cache_view->image->filename);
530e751662f8175c76e55da86bbf90d1a7d02425b9acristy  return(GetPixelCacheStorageClass(cache_view->image->cache));
5313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
5323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
5333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
5343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5384c08aed51c5899665ade97263692328eea4af106cristy%   G e t C a c h e V i e w V i r t u a l M e t a c o n t e n t               %
5393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5444c08aed51c5899665ade97263692328eea4af106cristy%  GetCacheViewVirtualMetacontent() returns the meta-content corresponding
5454c08aed51c5899665ade97263692328eea4af106cristy%  with the last call to GetCacheViewVirtualMetacontent().  The meta-content
5464c08aed51c5899665ade97263692328eea4af106cristy%  is virtual and therefore cannot be updated.
5473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5484c08aed51c5899665ade97263692328eea4af106cristy%  The format of the GetCacheViewVirtualMetacontent() method is:
5493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5504c08aed51c5899665ade97263692328eea4af106cristy%      const void *GetCacheViewVirtualMetacontent(
5513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%        const CacheView *cache_view)
5523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
5543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
5563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
5584c08aed51c5899665ade97263692328eea4af106cristyMagickExport const void *GetCacheViewVirtualMetacontent(
5593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  const CacheView *cache_view)
5603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
5615c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
5625c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
5633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
5644c08aed51c5899665ade97263692328eea4af106cristy  const void
56505d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict metacontent;
5664c08aed51c5899665ade97263692328eea4af106cristy
5673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (const CacheView *) NULL);
568e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
5693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view->image->cache != (Cache) NULL);
5704205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
5714c08aed51c5899665ade97263692328eea4af106cristy  metacontent=GetVirtualMetacontentFromNexus(cache_view->image->cache,
5724c08aed51c5899665ade97263692328eea4af106cristy    cache_view->nexus_info[id]);
5734c08aed51c5899665ade97263692328eea4af106cristy  return(metacontent);
5743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
5753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
5763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
5773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   G e t C a c h e V i e w V i r t u a l P i x e l Q u e u e                 %
5823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
5853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  GetCacheViewVirtualPixelQueue() returns the the pixels associated with
5883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  the last call to GetCacheViewVirtualPixels().  The pixels are virtual
5893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  and therefore cannot be updated.
5903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the GetCacheViewVirtualPixelQueue() method is:
5923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5934c08aed51c5899665ade97263692328eea4af106cristy%      const Quantum *GetCacheViewVirtualPixelQueue(
5943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%        const CacheView *cache_view)
5953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
5973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
5983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
5993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
6014c08aed51c5899665ade97263692328eea4af106cristyMagickExport const Quantum *GetCacheViewVirtualPixelQueue(
6023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  const CacheView *cache_view)
6033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
6045c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
6055c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
6065c9e6f2ec2e7738ede83902931da0f80db60f565cristy
6074c08aed51c5899665ade97263692328eea4af106cristy  const Quantum
60805d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict pixels;
6094c08aed51c5899665ade97263692328eea4af106cristy
6103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (const CacheView *) NULL);
611e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
6123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view->image->cache != (Cache) NULL);
6134205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
6144c08aed51c5899665ade97263692328eea4af106cristy  pixels=GetVirtualPixelsNexus(cache_view->image->cache,
6154c08aed51c5899665ade97263692328eea4af106cristy    cache_view->nexus_info[id]);
6164c08aed51c5899665ade97263692328eea4af106cristy  return(pixels);
6173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
6183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
6193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
6203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
6223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
6233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
6243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   G e t C a c h e V i e w V i r t u a l P i x e l s                         %
6253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
6263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
6273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
6283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  GetCacheViewVirtualPixels() gets virtual pixels from the in-memory or
6313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  disk pixel cache as defined by the geometry parameters.   A pointer to the
6323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  pixels is returned if the pixels are transferred, otherwise a NULL is
6333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  returned.
6343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the GetCacheViewVirtualPixels method is:
6363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6374c08aed51c5899665ade97263692328eea4af106cristy%      const Quantum *GetCacheViewVirtualPixels(
638bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy%        const CacheView *cache_view,const ssize_t x,const ssize_t y,
639e076a6ebdc2b3bffd9b5c84931ee6ce6a0b9fa59cristy%        const size_t columns,const size_t rows,ExceptionInfo *exception)
6403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
6423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
6443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o x,y,columns,rows:  These values define the perimeter of a region of
6463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      pixels.
6473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o exception: return any errors or warnings in this structure.
6493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
6503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
6514c08aed51c5899665ade97263692328eea4af106cristyMagickExport const Quantum *GetCacheViewVirtualPixels(
652bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  const CacheView *cache_view,const ssize_t x,const ssize_t y,
653bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  const size_t columns,const size_t rows,ExceptionInfo *exception)
6543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
6555c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
6565c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
6575c9e6f2ec2e7738ede83902931da0f80db60f565cristy
6584c08aed51c5899665ade97263692328eea4af106cristy  const Quantum
65905d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict pixels;
6604c08aed51c5899665ade97263692328eea4af106cristy
6613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
662e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
6634205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
6644c08aed51c5899665ade97263692328eea4af106cristy  pixels=GetVirtualPixelsFromNexus(cache_view->image,
6653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    cache_view->virtual_pixel_method,x,y,columns,rows,
6664c08aed51c5899665ade97263692328eea4af106cristy    cache_view->nexus_info[id],exception);
6674c08aed51c5899665ade97263692328eea4af106cristy  return(pixels);
6684c08aed51c5899665ade97263692328eea4af106cristy}
6694c08aed51c5899665ade97263692328eea4af106cristy
6704c08aed51c5899665ade97263692328eea4af106cristy/*
6714c08aed51c5899665ade97263692328eea4af106cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6724c08aed51c5899665ade97263692328eea4af106cristy%                                                                             %
6734c08aed51c5899665ade97263692328eea4af106cristy%                                                                             %
6744c08aed51c5899665ade97263692328eea4af106cristy%                                                                             %
6754c08aed51c5899665ade97263692328eea4af106cristy%   G e t O n e C a c h e V i e w A u t h e n t i c P i x e l                 %
6764c08aed51c5899665ade97263692328eea4af106cristy%                                                                             %
6774c08aed51c5899665ade97263692328eea4af106cristy%                                                                             %
6784c08aed51c5899665ade97263692328eea4af106cristy%                                                                             %
6794c08aed51c5899665ade97263692328eea4af106cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6804c08aed51c5899665ade97263692328eea4af106cristy%
6814c08aed51c5899665ade97263692328eea4af106cristy%  GetOneCacheViewAuthenticPixel() returns a single pixel at the specified (x,y)
6824c08aed51c5899665ade97263692328eea4af106cristy%  location.  The image background color is returned if an error occurs.
6834c08aed51c5899665ade97263692328eea4af106cristy%
6844c08aed51c5899665ade97263692328eea4af106cristy%  The format of the GetOneCacheViewAuthenticPixel method is:
6854c08aed51c5899665ade97263692328eea4af106cristy%
6864c08aed51c5899665ade97263692328eea4af106cristy%      MagickBooleaNType GetOneCacheViewAuthenticPixel(
6874c08aed51c5899665ade97263692328eea4af106cristy%        const CacheView *cache_view,const ssize_t x,const ssize_t y,
6882ed42f6d7c2245432767ea446742977ee87e963ccristy%        Quantum *pixel,ExceptionInfo *exception)
6894c08aed51c5899665ade97263692328eea4af106cristy%
6904c08aed51c5899665ade97263692328eea4af106cristy%  A description of each parameter follows:
6914c08aed51c5899665ade97263692328eea4af106cristy%
6924c08aed51c5899665ade97263692328eea4af106cristy%    o cache_view: the cache view.
6934c08aed51c5899665ade97263692328eea4af106cristy%
6944c08aed51c5899665ade97263692328eea4af106cristy%    o x,y:  These values define the offset of the pixel.
6954c08aed51c5899665ade97263692328eea4af106cristy%
6964c08aed51c5899665ade97263692328eea4af106cristy%    o pixel: return a pixel at the specified (x,y) location.
6974c08aed51c5899665ade97263692328eea4af106cristy%
6984c08aed51c5899665ade97263692328eea4af106cristy%    o exception: return any errors or warnings in this structure.
6994c08aed51c5899665ade97263692328eea4af106cristy%
7004c08aed51c5899665ade97263692328eea4af106cristy*/
7014c08aed51c5899665ade97263692328eea4af106cristyMagickExport MagickBooleanType GetOneCacheViewAuthenticPixel(
7022ed42f6d7c2245432767ea446742977ee87e963ccristy  const CacheView *cache_view,const ssize_t x,const ssize_t y,Quantum *pixel,
7032ed42f6d7c2245432767ea446742977ee87e963ccristy  ExceptionInfo *exception)
7044c08aed51c5899665ade97263692328eea4af106cristy{
7054c08aed51c5899665ade97263692328eea4af106cristy  const int
7064c08aed51c5899665ade97263692328eea4af106cristy    id = GetOpenMPThreadId();
7074c08aed51c5899665ade97263692328eea4af106cristy
7084c08aed51c5899665ade97263692328eea4af106cristy  Quantum
70905d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict q;
7104c08aed51c5899665ade97263692328eea4af106cristy
7112ed42f6d7c2245432767ea446742977ee87e963ccristy  register ssize_t
7122ed42f6d7c2245432767ea446742977ee87e963ccristy    i;
7132ed42f6d7c2245432767ea446742977ee87e963ccristy
7144c08aed51c5899665ade97263692328eea4af106cristy  assert(cache_view != (CacheView *) NULL);
715e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
7164c08aed51c5899665ade97263692328eea4af106cristy  assert(id < (int) cache_view->number_threads);
7172ed42f6d7c2245432767ea446742977ee87e963ccristy  (void) memset(pixel,0,MaxPixelChannels*sizeof(*pixel));
718584cbf8a52cb9ab43975e2ec1de8f4a2680b5142cristy  q=GetAuthenticPixelCacheNexus(cache_view->image,x,y,1,1,
7194c08aed51c5899665ade97263692328eea4af106cristy    cache_view->nexus_info[id],exception);
720584cbf8a52cb9ab43975e2ec1de8f4a2680b5142cristy  if (q == (const Quantum *) NULL)
7212ed42f6d7c2245432767ea446742977ee87e963ccristy    {
722d09f880db9ae231429495434fc7f908bdce240f4cristy      PixelInfo
723d09f880db9ae231429495434fc7f908bdce240f4cristy        background_color;
724d09f880db9ae231429495434fc7f908bdce240f4cristy
725d09f880db9ae231429495434fc7f908bdce240f4cristy      background_color=cache_view->image->background_color;
726d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[RedPixelChannel]=ClampToQuantum(background_color.red);
727d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[GreenPixelChannel]=ClampToQuantum(background_color.green);
728d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[BluePixelChannel]=ClampToQuantum(background_color.blue);
729d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[BlackPixelChannel]=ClampToQuantum(background_color.black);
730d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[AlphaPixelChannel]=ClampToQuantum(background_color.alpha);
7312ed42f6d7c2245432767ea446742977ee87e963ccristy      return(MagickFalse);
7322ed42f6d7c2245432767ea446742977ee87e963ccristy    }
7332ed42f6d7c2245432767ea446742977ee87e963ccristy  for (i=0; i < (ssize_t) GetPixelChannels(cache_view->image); i++)
7342ed42f6d7c2245432767ea446742977ee87e963ccristy  {
7355a23c55ddcfdf6ae717dd42d8a1c1a2ff8c6305fcristy    PixelChannel channel=GetPixelChannelChannel(cache_view->image,i);
736584cbf8a52cb9ab43975e2ec1de8f4a2680b5142cristy    pixel[channel]=q[i];
7372ed42f6d7c2245432767ea446742977ee87e963ccristy  }
7384c08aed51c5899665ade97263692328eea4af106cristy  return(MagickTrue);
7393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
7403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
7413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
7423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
7443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
7453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
7463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   G e t O n e C a c h e V i e w V i r t u a l P i x e l                     %
7473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
7483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
7493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
7503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  GetOneCacheViewVirtualPixel() returns a single pixel at the specified (x,y)
7533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  location.  The image background color is returned if an error occurs.  If
7543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.
7553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the GetOneCacheViewVirtualPixel method is:
7573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      MagickBooleanType GetOneCacheViewVirtualPixel(
759bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy%        const CacheView *cache_view,const ssize_t x,const ssize_t y,
7602ed42f6d7c2245432767ea446742977ee87e963ccristy%        Quantum *pixel,ExceptionInfo *exception)
7613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
7633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
7653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o x,y:  These values define the offset of the pixel.
7673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o pixel: return a pixel at the specified (x,y) location.
7693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o exception: return any errors or warnings in this structure.
7713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
7723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
7733ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickBooleanType GetOneCacheViewVirtualPixel(
7742ed42f6d7c2245432767ea446742977ee87e963ccristy  const CacheView *cache_view,const ssize_t x,const ssize_t y,Quantum *pixel,
7752ed42f6d7c2245432767ea446742977ee87e963ccristy  ExceptionInfo *exception)
7763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
7775c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
7785c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
7795c9e6f2ec2e7738ede83902931da0f80db60f565cristy
780f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  register const Quantum
78105d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict p;
7823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
7832ed42f6d7c2245432767ea446742977ee87e963ccristy  register ssize_t
7842ed42f6d7c2245432767ea446742977ee87e963ccristy    i;
7852ed42f6d7c2245432767ea446742977ee87e963ccristy
7863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
787e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
7884205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
7892ed42f6d7c2245432767ea446742977ee87e963ccristy  (void) memset(pixel,0,MaxPixelChannels*sizeof(*pixel));
7904c08aed51c5899665ade97263692328eea4af106cristy  p=GetVirtualPixelsFromNexus(cache_view->image,
7913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    cache_view->virtual_pixel_method,x,y,1,1,cache_view->nexus_info[id],
7923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    exception);
7934c08aed51c5899665ade97263692328eea4af106cristy  if (p == (const Quantum *) NULL)
7942ed42f6d7c2245432767ea446742977ee87e963ccristy    {
795d09f880db9ae231429495434fc7f908bdce240f4cristy      PixelInfo
796d09f880db9ae231429495434fc7f908bdce240f4cristy        background_color;
797d09f880db9ae231429495434fc7f908bdce240f4cristy
798d09f880db9ae231429495434fc7f908bdce240f4cristy      background_color=cache_view->image->background_color;
799d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[RedPixelChannel]=ClampToQuantum(background_color.red);
800d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[GreenPixelChannel]=ClampToQuantum(background_color.green);
801d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[BluePixelChannel]=ClampToQuantum(background_color.blue);
802d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[BlackPixelChannel]=ClampToQuantum(background_color.black);
803d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[AlphaPixelChannel]=ClampToQuantum(background_color.alpha);
8042ed42f6d7c2245432767ea446742977ee87e963ccristy      return(MagickFalse);
8052ed42f6d7c2245432767ea446742977ee87e963ccristy    }
8062ed42f6d7c2245432767ea446742977ee87e963ccristy  for (i=0; i < (ssize_t) GetPixelChannels(cache_view->image); i++)
8072ed42f6d7c2245432767ea446742977ee87e963ccristy  {
8085a23c55ddcfdf6ae717dd42d8a1c1a2ff8c6305fcristy    PixelChannel channel=GetPixelChannelChannel(cache_view->image,i);
8092ed42f6d7c2245432767ea446742977ee87e963ccristy    pixel[channel]=p[i];
8102ed42f6d7c2245432767ea446742977ee87e963ccristy  }
8113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(MagickTrue);
8123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
8133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
8143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
8153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
8173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
8183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
819f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%   G e t O n e C a c h e V i e w V i r t u a l P i x e l I n f o             %
820f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%                                                                             %
821f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%                                                                             %
822f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%                                                                             %
823f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
824f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
825f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%  GetOneCacheViewVirtualPixelInfo() returns a single pixel at the specified
826f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%  (x,y) location.  The image background color is returned if an error occurs.
827f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%  If you plan to modify the pixel, use GetOneCacheViewAuthenticPixel() instead.
828f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
829f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%  The format of the GetOneCacheViewVirtualPixelInfo method is:
830f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
831f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%      MagickBooleanType GetOneCacheViewVirtualPixelInfo(
832f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%        const CacheView *cache_view,const ssize_t x,const ssize_t y,
833f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%        PixelInfo *pixel,ExceptionInfo *exception)
834f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
835f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%  A description of each parameter follows:
836f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
837f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%    o cache_view: the cache view.
838f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
839f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%    o x,y:  These values define the offset of the pixel.
840f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
841f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%    o pixel: return a pixel at the specified (x,y) location.
842f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
843f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%    o exception: return any errors or warnings in this structure.
844f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%
845f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy*/
846f05d4947caf1bc27fbec041eb37c474a80c83c0bcristyMagickExport MagickBooleanType GetOneCacheViewVirtualPixelInfo(
847f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  const CacheView *cache_view,const ssize_t x,const ssize_t y,PixelInfo *pixel,
848f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  ExceptionInfo *exception)
849f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy{
850f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  const int
851f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy    id = GetOpenMPThreadId();
852f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy
853f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  register const Quantum
85405d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict p;
855f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy
856f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  assert(cache_view != (CacheView *) NULL);
857e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
858f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  assert(id < (int) cache_view->number_threads);
859f82cff8bd8a29cec9b2682c2bc8f0d14bbaa0875cristy  GetPixelInfo(cache_view->image,pixel);
860f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  p=GetVirtualPixelsFromNexus(cache_view->image,
861f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy    cache_view->virtual_pixel_method,x,y,1,1,cache_view->nexus_info[id],
862f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy    exception);
863f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  if (p == (const Quantum *) NULL)
864f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy    return(MagickFalse);
865f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  GetPixelInfoPixel(cache_view->image,p,pixel);
866f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  return(MagickTrue);
867f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy}
868f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy
869f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy/*
870f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
871f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%                                                                             %
872f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%                                                                             %
873f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy%                                                                             %
8743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   G e t O n e C a c h e V i e w V i r t u a l P i x e l                     %
8753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
8763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
8773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
8783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  GetOneCacheViewVirtualMethodPixel() returns a single virtual pixel at
8813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  the specified (x,y) location.  The image background color is returned if an
8823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  error occurs.  If you plan to modify the pixel, use
8833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  GetOneCacheViewAuthenticPixel() instead.
8843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the GetOneCacheViewVirtualPixel method is:
8863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      MagickBooleanType GetOneCacheViewVirtualMethodPixel(
8883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%        const CacheView *cache_view,
889bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy%        const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
8902ed42f6d7c2245432767ea446742977ee87e963ccristy%        const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
8913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
8933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
8953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o virtual_pixel_method: the virtual pixel method.
8973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
8983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o x,y:  These values define the offset of the pixel.
8993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o pixel: return a pixel at the specified (x,y) location.
9013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o exception: return any errors or warnings in this structure.
9033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
9053ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickBooleanType GetOneCacheViewVirtualMethodPixel(
9063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  const CacheView *cache_view,const VirtualPixelMethod virtual_pixel_method,
9072ed42f6d7c2245432767ea446742977ee87e963ccristy  const ssize_t x,const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
9083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
9095c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
9105c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
9115c9e6f2ec2e7738ede83902931da0f80db60f565cristy
9124c08aed51c5899665ade97263692328eea4af106cristy  const Quantum
91305d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict p;
9143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
9152ed42f6d7c2245432767ea446742977ee87e963ccristy  register ssize_t
9162ed42f6d7c2245432767ea446742977ee87e963ccristy    i;
9172ed42f6d7c2245432767ea446742977ee87e963ccristy
9183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
919e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
9204205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
9212ed42f6d7c2245432767ea446742977ee87e963ccristy  (void) memset(pixel,0,MaxPixelChannels*sizeof(*pixel));
9224c08aed51c5899665ade97263692328eea4af106cristy  p=GetVirtualPixelsFromNexus(cache_view->image,virtual_pixel_method,x,y,1,1,
9234c08aed51c5899665ade97263692328eea4af106cristy    cache_view->nexus_info[id],exception);
9244c08aed51c5899665ade97263692328eea4af106cristy  if (p == (const Quantum *) NULL)
9252ed42f6d7c2245432767ea446742977ee87e963ccristy    {
926d09f880db9ae231429495434fc7f908bdce240f4cristy      PixelInfo
927d09f880db9ae231429495434fc7f908bdce240f4cristy        background_color;
928d09f880db9ae231429495434fc7f908bdce240f4cristy
929d09f880db9ae231429495434fc7f908bdce240f4cristy      background_color=cache_view->image->background_color;
930d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[RedPixelChannel]=ClampToQuantum(background_color.red);
931d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[GreenPixelChannel]=ClampToQuantum(background_color.green);
932d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[BluePixelChannel]=ClampToQuantum(background_color.blue);
933d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[BlackPixelChannel]=ClampToQuantum(background_color.black);
934d09f880db9ae231429495434fc7f908bdce240f4cristy      pixel[AlphaPixelChannel]=ClampToQuantum(background_color.alpha);
9352ed42f6d7c2245432767ea446742977ee87e963ccristy      return(MagickFalse);
9362ed42f6d7c2245432767ea446742977ee87e963ccristy    }
9372ed42f6d7c2245432767ea446742977ee87e963ccristy  for (i=0; i < (ssize_t) GetPixelChannels(cache_view->image); i++)
9382ed42f6d7c2245432767ea446742977ee87e963ccristy  {
9395a23c55ddcfdf6ae717dd42d8a1c1a2ff8c6305fcristy    PixelChannel channel=GetPixelChannelChannel(cache_view->image,i);
9402ed42f6d7c2245432767ea446742977ee87e963ccristy    pixel[channel]=p[i];
9412ed42f6d7c2245432767ea446742977ee87e963ccristy  }
9423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(MagickTrue);
9433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
9443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
9453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
9463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   Q u e u e C a c h e V i e w A u t h e n t i c P i x e l s                 %
9513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  QueueCacheViewAuthenticPixels() queues authentic pixels from the in-memory or
9573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  disk pixel cache as defined by the geometry parameters.   A pointer to the
9583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  pixels is returned if the pixels are transferred, otherwise a NULL is
9593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  returned.
9603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the QueueCacheViewAuthenticPixels method is:
9623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9634c08aed51c5899665ade97263692328eea4af106cristy%      Quantum *QueueCacheViewAuthenticPixels(CacheView *cache_view,
964bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy%        const ssize_t x,const ssize_t y,const size_t columns,
965bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy%        const size_t rows,ExceptionInfo *exception)
9663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
9683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
9703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o x,y,columns,rows:  These values define the perimeter of a region of
9723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      pixels.
9733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o exception: return any errors or warnings in this structure.
9753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
9763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
9774c08aed51c5899665ade97263692328eea4af106cristyMagickExport Quantum *QueueCacheViewAuthenticPixels(CacheView *cache_view,
978300972328f43f2260d08f986a14e7224e257bfa6cristy  const ssize_t x,const ssize_t y,const size_t columns,const size_t rows,
979300972328f43f2260d08f986a14e7224e257bfa6cristy  ExceptionInfo *exception)
9803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
9815c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
9825c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
9834205a3c2a1ff3e011d062af266ff4fd476f93078cristy
9844c08aed51c5899665ade97263692328eea4af106cristy  Quantum
98505d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    *magick_restrict pixels;
9864c08aed51c5899665ade97263692328eea4af106cristy
9873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
988e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
9894205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
990c11dacef705c151ed54ef04628d7ef800086e081cristy  pixels=QueueAuthenticPixelCacheNexus(cache_view->image,x,y,columns,rows,
991c11dacef705c151ed54ef04628d7ef800086e081cristy    MagickFalse,cache_view->nexus_info[id],exception);
9924c08aed51c5899665ade97263692328eea4af106cristy  return(pixels);
9933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
9943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
9953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
9963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
9993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   S e t C a c h e V i e w S t o r a g e C l a s s                           %
10013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  SetCacheViewStorageClass() sets the image storage class associated with
10073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  the specified view.
10083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the SetCacheViewStorageClass method is:
10103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      MagickBooleanType SetCacheViewStorageClass(CacheView *cache_view,
1012c82a27bb8e3138ff9bbf0f696663bdf3e704cedecristy%        const ClassType storage_class,ExceptionInfo *exception)
10133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
10153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
10173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o storage_class: the image storage class: PseudoClass or DirectClass.
10193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
1020c82a27bb8e3138ff9bbf0f696663bdf3e704cedecristy%    o exception: return any errors or warnings in this structure.
1021c82a27bb8e3138ff9bbf0f696663bdf3e704cedecristy%
10223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
10233ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickBooleanType SetCacheViewStorageClass(CacheView *cache_view,
1024c82a27bb8e3138ff9bbf0f696663bdf3e704cedecristy  const ClassType storage_class,ExceptionInfo *exception)
10253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
10263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
1027e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
10283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->debug != MagickFalse)
10293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
10303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      cache_view->image->filename);
1031c82a27bb8e3138ff9bbf0f696663bdf3e704cedecristy  return(SetImageStorageClass(cache_view->image,storage_class,exception));
10323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
10333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
10343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
10353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   S e t C a c h e V i e w V i r t u a l P i x e l M e t h o d               %
10403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  SetCacheViewVirtualPixelMethod() sets the virtual pixel method associated
10463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  with the specified cache view.
10473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the SetCacheViewVirtualPixelMethod method is:
10493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      MagickBooleanType SetCacheViewVirtualPixelMethod(CacheView *cache_view,
10513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%        const VirtualPixelMethod virtual_pixel_method)
10523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
10543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
10563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o virtual_pixel_method: the virtual pixel method.
10583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
10603ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickBooleanType SetCacheViewVirtualPixelMethod(
106105d2ff7ebf21f659f5b11e45afb294e152f4330cdirk  CacheView *magick_restrict cache_view,
106205d2ff7ebf21f659f5b11e45afb294e152f4330cdirk  const VirtualPixelMethod virtual_pixel_method)
10633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
10643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
1065e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
10663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (cache_view->debug != MagickFalse)
10673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
10683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      cache_view->image->filename);
10693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  cache_view->virtual_pixel_method=virtual_pixel_method;
10703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(MagickTrue);
10713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
10723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
10733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
10743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%   S y n c C a c h e V i e w A u t h e n t i c P i x e l s                   %
10793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%                                                                             %
10823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  SyncCacheViewAuthenticPixels() saves the cache view pixels to the in-memory
10853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  or disk cache.  It returns MagickTrue if the pixel region is flushed,
10863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  otherwise MagickFalse.
10873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  The format of the SyncCacheViewAuthenticPixels method is:
10893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%      MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *cache_view,
10913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%        ExceptionInfo *exception)
10923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%  A description of each parameter follows:
10943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o cache_view: the cache view.
10963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%    o exception: return any errors or warnings in this structure.
10983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%
10993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
11003ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickBooleanType SyncCacheViewAuthenticPixels(
110105d2ff7ebf21f659f5b11e45afb294e152f4330cdirk  CacheView *magick_restrict cache_view,ExceptionInfo *exception)
11023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
11035c9e6f2ec2e7738ede83902931da0f80db60f565cristy  const int
11045c9e6f2ec2e7738ede83902931da0f80db60f565cristy    id = GetOpenMPThreadId();
11054205a3c2a1ff3e011d062af266ff4fd476f93078cristy
11064c08aed51c5899665ade97263692328eea4af106cristy  MagickBooleanType
11074c08aed51c5899665ade97263692328eea4af106cristy    status;
11084c08aed51c5899665ade97263692328eea4af106cristy
11093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  assert(cache_view != (CacheView *) NULL);
1110e1c94d9d25db6b0dd7a5028ffee31d1057855d73cristy  assert(cache_view->signature == MagickCoreSignature);
11114205a3c2a1ff3e011d062af266ff4fd476f93078cristy  assert(id < (int) cache_view->number_threads);
11124c08aed51c5899665ade97263692328eea4af106cristy  status=SyncAuthenticPixelCacheNexus(cache_view->image,
11134c08aed51c5899665ade97263692328eea4af106cristy    cache_view->nexus_info[id],exception);
11144c08aed51c5899665ade97263692328eea4af106cristy  return(status);
11153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
1116