30#if defined(HAVE_OPENCL)
36#if defined(DEBUG_OPENCL) && DEBUG_OPENCL == 1
37#define CL_USE_DEPRECATED_OPENCL_1_0_APIS
40#define CL_TARGET_OPENCL_VERSION 100
43#include <OpenCL/OpenCL.h>
67 cl_command_queue queue;
78 int useUnifiedSrcDensity;
79 int useUnifiedSrcValid;
85 OCLResampAlg resampAlg;
87 cl_channel_type imageFormat;
108 cl_mem *dstRealWorkCL;
118 cl_mem *dstImagWorkCL;
128 unsigned int imgChSize1;
129 cl_channel_order imgChOrder1;
130 unsigned int imgChSize4;
131 cl_channel_order imgChOrder4;
134 cl_mem useBandSrcValidCL;
135 char *useBandSrcValid;
137 cl_mem nBandSrcValidCL;
138 float *nBandSrcValid;
147 unsigned int xyChSize;
148 cl_channel_order xyChOrder;
150 cl_mem fDstNoDataRealCL;
151 float *fDstNoDataReal;
156struct oclWarper* GDALWarpKernelOpenCL_createEnv(
int srcWidth,
int srcHeight,
157 int dstWidth,
int dstHeight,
158 cl_channel_type imageFormat,
159 int numBands,
int coordMult,
160 int useImag,
int useBandSrcValid,
162 double *dfDstNoDataReal,
163 OCLResampAlg resampAlg, cl_int *envErr);
165cl_int GDALWarpKernelOpenCL_setSrcValid(
struct oclWarper *warper,
166 int *bandSrcValid,
int bandNum);
168cl_int GDALWarpKernelOpenCL_setSrcImg(
struct oclWarper *warper,
void *imgData,
171cl_int GDALWarpKernelOpenCL_setDstImg(
struct oclWarper *warper,
void *imgData,
174cl_int GDALWarpKernelOpenCL_setCoordRow(
struct oclWarper *warper,
175 double *rowSrcX,
double *rowSrcY,
176 double srcXOff,
double srcYOff,
177 int *success,
int rowNum);
179cl_int GDALWarpKernelOpenCL_runResamp(
struct oclWarper *warper,
180 float *unifiedSrcDensity,
181 unsigned int *unifiedSrcValid,
183 unsigned int *dstValid,
184 double dfXScale,
double dfYScale,
185 double dfXFilter,
double dfYFilter,
186 int nXRadius,
int nYRadius,
187 int nFiltInitX,
int nFiltInitY);
189cl_int GDALWarpKernelOpenCL_getRow(
struct oclWarper *warper,
190 void **rowReal,
void **rowImag,
191 int rowNum,
int bandNum);
193cl_int GDALWarpKernelOpenCL_deleteEnv(
struct oclWarper *warper);