18 #ifndef MAGICKCORE_CACHE_PRIVATE_H 19 #define MAGICKCORE_CACHE_PRIVATE_H 22 #include "magick/cache.h" 23 #include "magick/distribute-cache.h" 24 #include "magick/opencl-private.h" 25 #include "magick/random_.h" 26 #include "magick/thread-private.h" 27 #include "magick/semaphore.h" 29 #if defined(__cplusplus) || defined(c_plusplus) 36 typedef const IndexPacket
37 *(*GetVirtualIndexesFromHandler)(
const Image *);
40 *(*GetAuthenticIndexesFromHandler)(
const Image *);
42 typedef MagickBooleanType
43 (*GetOneAuthenticPixelFromHandler)(
Image *,
const ssize_t,
const ssize_t,
45 (*GetOneVirtualPixelFromHandler)(
const Image *,
const VirtualPixelMethod,
50 *(*GetVirtualPixelHandler)(
const Image *,
const VirtualPixelMethod,
51 const ssize_t,
const ssize_t,
const size_t,
const size_t,
ExceptionInfo *),
52 *(*GetVirtualPixelsHandler)(
const Image *);
55 *(*GetAuthenticPixelsHandler)(
Image *,
const ssize_t,
const ssize_t,
59 *(*GetAuthenticPixelsFromHandler)(
const Image *);
62 *(*QueueAuthenticPixelsHandler)(
Image *,
const ssize_t,
const ssize_t,
66 (*DestroyPixelHandler)(
Image *);
70 GetVirtualPixelHandler
71 get_virtual_pixel_handler;
73 GetVirtualPixelsHandler
74 get_virtual_pixels_handler;
76 GetVirtualIndexesFromHandler
77 get_virtual_indexes_from_handler;
79 GetOneVirtualPixelFromHandler
80 get_one_virtual_pixel_from_handler;
82 GetAuthenticPixelsHandler
83 get_authentic_pixels_handler;
85 GetAuthenticIndexesFromHandler
86 get_authentic_indexes_from_handler;
88 GetOneAuthenticPixelFromHandler
89 get_one_authentic_pixel_from_handler;
91 GetAuthenticPixelsFromHandler
92 get_authentic_pixels_from_handler;
94 QueueAuthenticPixelsHandler
95 queue_authentic_pixels_handler;
97 SyncAuthenticPixelsHandler
98 sync_authentic_pixels_handler;
101 destroy_pixel_handler;
120 authentic_pixel_cache;
185 virtual_pixel_method;
203 active_index_channel;
209 filename[MaxTextExtent],
210 cache_filename[MaxTextExtent];
252 static inline MagickBooleanType IsValidPixelOffset(
const ssize_t x,
257 if ((x >= (MAGICK_SSIZE_MAX/(ssize_t) extent)) ||
258 (x <= (MAGICK_SSIZE_MIN/(ssize_t) extent)))
263 extern MagickExport Cache
264 AcquirePixelCache(
const size_t),
265 ClonePixelCache(
const Cache),
266 DestroyPixelCache(Cache),
267 ReferencePixelCache(Cache);
269 extern MagickExport CacheType
270 GetPixelCacheType(
const Image *);
272 extern MagickExport ClassType
273 GetPixelCacheStorageClass(
const Cache);
275 extern MagickExport ColorspaceType
276 GetPixelCacheColorspace(
const Cache);
278 extern MagickExport
const IndexPacket
279 *GetVirtualIndexesFromNexus(
const Cache,
NexusInfo *);
282 *GetVirtualPixelCacheNexus(
const Image *,
const VirtualPixelMethod,
283 const ssize_t,
const ssize_t,
const size_t,
const size_t,
NexusInfo *,
285 *GetVirtualPixelsNexus(
const Cache,
NexusInfo *);
287 extern MagickExport MagickBooleanType
291 extern MagickExport MagickSizeType
292 GetPixelCacheNexusExtent(
const Cache,
NexusInfo *);
295 **AcquirePixelCacheNexus(
const size_t),
296 **DestroyPixelCacheNexus(
NexusInfo **,
const size_t);
299 *GetAuthenticPixelCacheNexus(
Image *,
const ssize_t,
const ssize_t,
301 *QueueAuthenticPixel(
Image *,
const ssize_t,
const ssize_t,
const size_t,
303 *QueueAuthenticPixelCacheNexus(
Image *,
const ssize_t,
const ssize_t,
304 const size_t,
const size_t,
const MagickBooleanType,
NexusInfo *,
307 extern MagickExport
size_t 308 GetPixelCacheChannels(
const Cache);
310 extern MagickExport
void 311 ClonePixelCacheMethods(Cache,
const Cache),
312 GetPixelCacheTileSize(
const Image *,
size_t *,
size_t *),
316 extern MagickPrivate
void 317 ResetCacheAnonymousMemory(
void),
318 ResetPixelCacheEpoch(
void);
320 extern MagickPrivate MagickBooleanType
323 #if defined(MAGICKCORE_OPENCL_SUPPORT) 324 extern MagickPrivate cl_event
325 *GetOpenCLEvents(
const Image *,cl_uint *);
327 extern MagickPrivate cl_mem
330 extern MagickPrivate
void 331 AddOpenCLEvent(
const Image *,cl_event),
332 SyncAuthenticOpenCLBuffer(
const Image *);
335 #if defined(__cplusplus) || defined(c_plusplus)