图像对象类型有1维图像、1维图像缓冲、1维图像阵列、2维图像、2维图像阵列以及3维图像对象,可以使用如下函数来创建这些类型:
cl_mem clCreateImage(cl_context context,
cl_mem_flags flags,
const cl_image_format *image_format,
const cl_image_desc *image_desc,
void *host_ptr,
cl_int *errcode_ret)
- 参数context为即将要创建的图像对象所属的OpenCL上下文。
- 参数f lag是一个位域,用来指明如何分配及使用将要创建的图像对象,见表5-1。
- 参数image_format是指向cl_image_format结构的指针,描述了将要创建图像的格式属性。在随后章节中我们会详细讲解cl_imag_format结构的用法。
- 参数image_desc值指向cl_iamge_desc结构的指针,描述了将要创建图像的类型和维度。
- 参数host_ptr指向应用可能已分配好空间的图像数据空间。
- 参数errcode_ret返回函数执行的错误码。
针对不同的图像对象类型,host_ptr所指向的缓冲大小也有最低限制。下表列出了几种图像类型下,host_ptr所指缓冲大小的最低要求。
下表是不同图像类型下host_ptr所指缓冲大小要求。