18#ifndef MAGICKCORE_RESAMPLE_PRIVATE_H
19#define MAGICKCORE_RESAMPLE_PRIVATE_H
21#include "MagickCore/thread-private.h"
23#if defined(__cplusplus) || defined(c_plusplus)
27static inline ResampleFilter **DestroyResampleFilterTLS(ResampleFilter **filter)
32 for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++)
33 if (filter[i] != (ResampleFilter *) NULL)
34 filter[i]=DestroyResampleFilter(filter[i]);
35 filter=(ResampleFilter **) RelinquishMagickMemory(filter);
39static inline ResampleFilter **AcquireResampleFilterTLS(
const Image *image,
40 const VirtualPixelMethod method,
const MagickBooleanType interpolate,
41 ExceptionInfo *exception)
52 number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
53 filter=(ResampleFilter **) AcquireQuantumMemory(number_threads,
55 if (filter == (ResampleFilter **) NULL)
56 ThrowFatalException(ResourceLimitFatalError,
"MemoryAllocationFailed");
57 (void) memset(filter,0,number_threads*
sizeof(*filter));
58 for (i=0; i < (ssize_t) number_threads; i++)
60 filter[i]=AcquireResampleFilter(image,exception);
61 if (method != UndefinedVirtualPixelMethod)
62 (void) SetResampleFilterVirtualPixelMethod(filter[i],method);
63 if (interpolate != MagickFalse)
64 SetResampleFilter(filter[i],PointFilter);
69#if defined(__cplusplus) || defined(c_plusplus)