Added clSetKernelArg support for CLObject and __local arguments.

This commit is contained in:
Ioannis Tsakpinis 2010-12-06 15:58:11 +00:00
parent 1b6a2e866c
commit c7152449c2
3 changed files with 45 additions and 12 deletions

View file

@ -31,8 +31,6 @@
*/
package org.lwjgl.opencl;
import org.lwjgl.PointerWrapper;
/**
* This class is a wrapper around a cl_kernel pointer.
*
@ -145,11 +143,24 @@ public final class CLKernel extends CLObjectChild<CLProgram> {
*
* @return this CLKernel object
*/
public CLKernel setArg(final int index, final PointerWrapper value) {
public CLKernel setArg(final int index, final CLObject value) {
util.setArg(this, index, value);
return this;
}
/**
* Sets the size of a __local kernel argument at the specified index.
*
* @param index the argument index
* @param size the argument size
*
* @return this CLKernel object
*/
public CLKernel setArgSize(final int index, final long size) {
util.setArgSize(this, index, size);
return this;
}
// clGetKernelInfo methods
/**
@ -225,7 +236,9 @@ public final class CLKernel extends CLObjectChild<CLProgram> {
void setArg(CLKernel kernel, int index, double value);
void setArg(CLKernel kernel, int index, PointerWrapper pointer);
void setArg(CLKernel kernel, int index, CLObject pointer);
void setArgSize(CLKernel kernel, int index, long size);
long getWorkGroupInfoSize(CLKernel kernel, CLDevice device, int param_name);

View file

@ -230,8 +230,12 @@ final class InfoUtilFactory {
clSetKernelArg(kernel, index, 8, APIUtil.getBufferDouble().put(0, value));
}
public void setArg(final CLKernel kernel, final int index, final PointerWrapper pointer) {
clSetKernelArg(kernel, index, PointerBuffer.getPointerSize(), APIUtil.getBufferPointer().put(0, pointer).getBuffer());
public void setArg(final CLKernel kernel, final int index, final CLObject value) {
clSetKernelArg(kernel, index, value);
}
public void setArgSize(final CLKernel kernel, final int index, final long size) {
clSetKernelArg(kernel, index, size);
}
protected int getInfo(final CLKernel kernel, final int param_name, final ByteBuffer param_value, final PointerBuffer param_value_size_ret) {