将包含size_t的结构从Java传递给OpenCL

时间:2013-01-07 19:59:58

标签: java struct opencl lwjgl

CL12.clCreateImage()的一个论点是包含此structByteBuffer。我将使用OpenCL kernel arguments中描述的方法传递结构但不确定对size_t类型的参数使用什么。从Java中,当我将参数放入ByteBuffer时,如果我使用的是32位系统或int(带符号的64位),我应该使用long(带符号的32位) )如果我使用的是64位?

1 个答案:

答案 0 :(得分:-1)

size_t类型是“unsigned int”。你绝对可以使用int类型,但要确保它不是负数,否则没有意义。

考虑到上述情况时,您不必担心32位和64位系统,您不需要使用长

所以你可以做点什么

int param = value; //this is the value to pass
if (param >= 0) {
  pclFunc((size_t)param)
} else {
  //see how you want to handle this
}