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