MagickCore  7.0.7
Convert, Edit, Or Compose Bitmap Images
cache-private.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2018 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  https://www.imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore cache private methods.
17 */
18 #ifndef MAGICKCORE_CACHE_PRIVATE_H
19 #define MAGICKCORE_CACHE_PRIVATE_H
20 
21 #include "MagickCore/cache.h"
24 #include "MagickCore/pixel.h"
25 #include "MagickCore/random_.h"
27 #include "MagickCore/semaphore.h"
28 
29 #if defined(__cplusplus) || defined(c_plusplus)
30 extern "C" {
31 #endif
32 
33 typedef void
35 
36 typedef MagickBooleanType
37  (*GetOneAuthenticPixelFromHandler)(Image *,const ssize_t,const ssize_t,
40  const ssize_t,const ssize_t,Quantum *,ExceptionInfo *),
42 
43 typedef const Quantum
44  *(*GetVirtualPixelHandler)(const Image *,const VirtualPixelMethod,
45  const ssize_t,const ssize_t,const size_t,const size_t,ExceptionInfo *),
46  *(*GetVirtualPixelsHandler)(const Image *);
47 
48 typedef const void
49  *(*GetVirtualMetacontentFromHandler)(const Image *);
50 
51 typedef Quantum
52  *(*GetAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
53  const size_t,const size_t,ExceptionInfo *);
54 
55 typedef Quantum
56  *(*GetAuthenticPixelsFromHandler)(const Image *);
57 
58 typedef Quantum
59  *(*QueueAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
60  const size_t,const size_t,ExceptionInfo *);
61 
62 typedef void
63  (*DestroyPixelHandler)(Image *);
64 
65 typedef void
66  *(*GetAuthenticMetacontentFromHandler)(const Image *);
67 
68 typedef struct _CacheMethods
69 {
72 
75 
78 
81 
84 
87 
90 
93 
96 
99 
102 } CacheMethods;
103 
104 typedef struct _NexusInfo
105 {
108 
111 
114 
115  Quantum
116  *cache,
117  *pixels;
118 
121 
122  void
124 
125  size_t
127 } NexusInfo;
128 
129 typedef struct _CacheInfo
130 {
131  ClassType
133 
136 
137  PixelTrait
139 
141  read_mask,
142  write_mask;
143 
144  size_t
145  columns,
146  rows;
147 
148  size_t
149  metacontent_extent,
151 
153  channel_map[MaxPixelChannels];
154 
155  CacheType
157 
158  MapMode
160  disk_mode;
161 
164 
167 
170 
171  VirtualPixelMethod
173 
174  PixelInfo
176 
177  size_t
179 
180  NexusInfo
182 
183  Quantum
185 
186  void
188 
189  int
191 
192  char
193  filename[MagickPathExtent],
194  cache_filename[MagickPathExtent];
195 
198 
199  RandomInfo
201 
202  void
204 
207  debug;
208 
210  id;
211 
212  ssize_t
214 
217  *file_semaphore;
218 
219  time_t
221 
222  size_t
224 
227 } CacheInfo;
228 
229 extern MagickPrivate Cache
230  AcquirePixelCache(const size_t),
231  ClonePixelCache(const Cache),
234 
237 
240 
241 extern MagickPrivate const Quantum
242  *GetVirtualPixelsFromNexus(const Image *,const VirtualPixelMethod,
243  const ssize_t,const ssize_t,const size_t,const size_t,NexusInfo *,
246 
247 extern MagickPrivate const void
250 
252  CacheComponentGenesis(void),
256 
259 
261  **AcquirePixelCacheNexus(const size_t),
262  **DestroyPixelCacheNexus(NexusInfo **,const size_t);
263 
264 extern MagickPrivate Quantum
265  *GetAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
266  const size_t,const size_t,NexusInfo *,ExceptionInfo *) magick_hot_spot,
267  *QueueAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
268  const size_t,const size_t,const MagickBooleanType,NexusInfo *,
270 
271 extern MagickPrivate size_t
273 
274 extern MagickPrivate VirtualPixelMethod
275  GetPixelCacheVirtualMethod(const Image *),
276  SetPixelCacheVirtualMethod(Image *,const VirtualPixelMethod,ExceptionInfo *);
277 
278 extern MagickPrivate void
281  GetPixelCacheTileSize(const Image *,size_t *,size_t *),
283  ResetPixelCacheEpoch(void),
284  ResetPixelCacheChannels(Image *),
286 
287 #if defined(MAGICKCORE_OPENCL_SUPPORT)
288 extern MagickPrivate cl_mem
289  GetAuthenticOpenCLBuffer(const Image *,MagickCLDevice,ExceptionInfo *);
290 
291 extern MagickPrivate void
292  SyncAuthenticOpenCLBuffer(const Image *);
293 #endif
294 
295 #if defined(__cplusplus) || defined(c_plusplus)
296 }
297 #endif
298 
299 #endif
#define magick_restrict
Definition: MagickCore.h:41
MagickPrivate Cache DestroyPixelCache(Cache)
struct _CacheMethods CacheMethods
MagickSizeType length
struct _MagickCLDevice * MagickCLDevice
Definition: opencl.h:44
GetVirtualPixelsHandler get_virtual_pixels_handler
Definition: cache-private.h:74
MagickPrivate const void * AcquirePixelCachePixels(const Image *, MagickSizeType *, ExceptionInfo *)
MagickOffsetType offset
size_t signature
const void *(* GetVirtualMetacontentFromHandler)(const Image *)
Definition: cache-private.h:49
void * metacontent
MagickPrivate MagickBooleanType CacheComponentGenesis(void)
MagickPrivate Quantum * GetAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
GetVirtualPixelHandler get_virtual_pixel_handler
Definition: cache-private.h:71
MagickPrivate void GetPixelCacheMethods(CacheMethods *)
const Quantum *(*) *(* GetVirtualPixelsHandler)(const Image *)
Definition: cache-private.h:46
MapMode mode
MagickPrivate void GetPixelCacheTileSize(const Image *, size_t *, size_t *)
SyncAuthenticPixelsHandler sync_authentic_pixels_handler
Definition: cache-private.h:98
MagickPrivate MagickBooleanType SyncImagePixelCache(Image *, ExceptionInfo *)
Definition: cache.c:5261
VirtualPixelMethod
Definition: cache-view.h:27
MagickPrivate const Quantum * GetVirtualPixelsFromNexus(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
MagickPrivate Cache ReferencePixelCache(Cache)
Definition: cache.c:4528
PixelInfo virtual_pixel_color
MagickThreadType id
MagickBooleanType authentic_pixel_cache
GetOneVirtualPixelFromHandler get_one_virtual_pixel_from_handler
Definition: cache-private.h:80
MagickCLCacheInfo opencl
MagickPrivate VirtualPixelMethod GetPixelCacheVirtualMethod(const Image *)
struct _CacheInfo CacheInfo
void * MagickCLCacheInfo
MagickBooleanType(* GetOneAuthenticPixelFromHandler)(Image *, const ssize_t, const ssize_t, Quantum *, ExceptionInfo *)
Definition: cache-private.h:37
MagickPrivate NexusInfo ** DestroyPixelCacheNexus(NexusInfo **, const size_t)
Definition: cache.c:1015
MagickPrivate Cache ClonePixelCache(const Cache)
ssize_t MagickOffsetType
Definition: magick-type.h:127
MagickBooleanType mapped
Definition: image.h:151
MagickBooleanType synchronize
MagickBooleanType write_mask
size_t number_channels
RandomInfo * random_info
GetAuthenticPixelsHandler get_authentic_pixels_handler
Definition: cache-private.h:83
Quantum * pixels
MagickBooleanType(*)(*)(* SyncAuthenticPixelsHandler)(Image *, ExceptionInfo *)
Definition: cache-private.h:41
MagickPrivate ClassType GetPixelCacheStorageClass(const Cache)
Definition: cache.c:2257
struct _NexusInfo NexusInfo
MagickBooleanType
Definition: magick-type.h:156
MagickPrivate void ClonePixelCacheMethods(Cache, const Cache)
ClassType
Definition: magick-type.h:149
pid_t MagickThreadType
Definition: thread_.h:34
MagickPrivate const void * GetVirtualMetacontentFromNexus(const Cache, NexusInfo *magick_restrict)
const Quantum *(* GetVirtualPixelHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:44
void * server_info
time_t timestamp
GetAuthenticPixelsFromHandler get_authentic_pixels_from_handler
Definition: cache-private.h:92
CacheMethods methods
#define magick_hot_spot
QueueAuthenticPixelsHandler queue_authentic_pixels_handler
Definition: cache-private.h:95
RectangleInfo region
size_t MagickSizeType
Definition: magick-type.h:128
MagickBooleanType(*)(* GetOneVirtualPixelFromHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, Quantum *, ExceptionInfo *)
Definition: cache-private.h:39
#define MagickPathExtent
void(* DestroyPixelHandler)(Image *)
Definition: cache-private.h:63
DestroyPixelHandler destroy_pixel_handler
CacheType type
Quantum *(* GetAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:52
Quantum * pixels
MagickPrivate const Quantum * GetVirtualPixelsNexus(const Cache, NexusInfo *magick_restrict)
SemaphoreInfo * semaphore
ColorspaceType colorspace
Quantum *(* QueueAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:59
void * metacontent
MagickBooleanType mapped
MagickPrivate void CacheComponentTerminus(void)
GetVirtualMetacontentFromHandler get_virtual_metacontent_from_handler
Definition: cache-private.h:77
size_t signature
GetAuthenticMetacontentFromHandler get_authentic_metacontent_from_handler
Definition: cache-private.h:86
MagickPrivate MagickSizeType GetPixelCacheNexusExtent(const Cache, NexusInfo *magick_restrict)
VirtualPixelMethod virtual_pixel_method
MagickPrivate Quantum * QueueAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *) magick_hot_spot
Definition: cache.c:3925
size_t number_threads
PixelTrait alpha_trait
MagickPrivate size_t GetPixelCacheChannels(const Cache)
MagickSizeType length
unsigned short Quantum
Definition: magick-type.h:82
MagickPrivate void ResetPixelCacheChannels(Image *)
MagickPrivate ColorspaceType GetPixelCacheColorspace(const Cache)
Definition: cache.c:2051
ClassType storage_class
CacheType
Definition: cache.h:27
MagickPrivate VirtualPixelMethod SetPixelCacheVirtualMethod(Image *, const VirtualPixelMethod, ExceptionInfo *)
Definition: cache.c:4969
NexusInfo ** nexus_info
GetOneAuthenticPixelFromHandler get_one_authentic_pixel_from_handler
Definition: cache-private.h:89
MagickPrivate NexusInfo ** AcquirePixelCacheNexus(const size_t)
Quantum *(* GetAuthenticPixelsFromHandler)(const Image *)
Definition: cache-private.h:56
MapMode
Definition: blob.h:27
ColorspaceType
Definition: colorspace.h:25
MagickPrivate void ResetPixelCacheEpoch(void)
#define MaxPixelChannels
Definition: pixel.h:27
MagickPrivate MagickBooleanType SyncAuthenticPixelCacheNexus(Image *, NexusInfo *magick_restrict, ExceptionInfo *) magick_hot_spot
#define MagickPrivate
void * Cache
Definition: cache-private.h:34
PixelTrait
Definition: pixel.h:132
void *(* GetAuthenticMetacontentFromHandler)(const Image *)
Definition: cache-private.h:66
MagickPrivate void SetPixelCacheMethods(Cache, CacheMethods *)
Definition: cache.c:4624
MagickPrivate Cache AcquirePixelCache(const size_t)
ssize_t reference_count