本文整理汇总了Java中com.nativelibs4java.opencl.CLQueue.release方法的典型用法代码示例。如果您正苦于以下问题:Java CLQueue.release方法的具体用法?Java CLQueue.release怎么用?Java CLQueue.release使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.nativelibs4java.opencl.CLQueue
的用法示例。
在下文中一共展示了CLQueue.release方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: add
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
/**
* Add two images, returning a new image with the result
*
* @param <I> The type of image
*
* @param in1 the first image to add
* @param in2 the second image to add
* @return the event
*/
public <I extends Image<?, I>> I add(I in1, I in2) {
CLQueue queue = context.createDefaultQueue();
CLImage2D clin1 = CLImageConversion.convert(context, in1);
CLImage2D clin2 = CLImageConversion.convert(context, in2);
CLImage2D clout = context.createImage2D(CLMem.Usage.Output, clin1.getFormat(), clin1.getWidth(), clin1.getHeight());
CLEvent evt = process(addImage, queue, clin1, clin2, clout);
I out = CLImageConversion.convert(queue, evt, clout, in1.newInstance(in1.getWidth(), in1.getHeight()));
clin1.release();
clin2.release();
clout.release();
queue.release();
return out;
}
示例2: subtract
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
/**
* Subtract two images, returning a new image with the result
*
* @param <I> The type of image
*
* @param in1 the first image to subtract
* @param in2 the second image to subtract
* @return the event
*/
public <I extends Image<?, I>> I subtract(I in1, I in2) {
CLQueue queue = context.createDefaultQueue();
CLImage2D clin1 = CLImageConversion.convert(context, in1);
CLImage2D clin2 = CLImageConversion.convert(context, in2);
CLImage2D clout = context.createImage2D(CLMem.Usage.Output, clin1.getFormat(), clin1.getWidth(), clin1.getHeight());
CLEvent evt = process(subtractImage, queue, clin1, clin2, clout);
I out = CLImageConversion.convert(queue, evt, clout, in1.newInstance(in1.getWidth(), in1.getHeight()));
clin1.release();
clin2.release();
clout.release();
queue.release();
return out;
}
示例3: multiply
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
/**
* Multiply two images, returning a new image with the result
*
* @param <I> The type of image
*
* @param in1 the first image to multiply
* @param in2 the second image to multiply
* @return the event
*/
public <I extends Image<?, I>> I multiply(I in1, I in2) {
CLQueue queue = context.createDefaultQueue();
CLImage2D clin1 = CLImageConversion.convert(context, in1);
CLImage2D clin2 = CLImageConversion.convert(context, in2);
CLImage2D clout = context.createImage2D(CLMem.Usage.Output, clin1.getFormat(), clin1.getWidth(), clin1.getHeight());
CLEvent evt = process(multiplyImage, queue, clin1, clin2, clout);
I out = CLImageConversion.convert(queue, evt, clout, in1.newInstance(in1.getWidth(), in1.getHeight()));
clin1.release();
clin2.release();
clout.release();
queue.release();
return out;
}
示例4: divide
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
/**
* Divide two images, returning a new image with the result
*
* @param <I> The type of image
*
* @param in1 the first image to divide
* @param in2 the second image to divide
* @return the event
*/
public <I extends Image<?, I>> I divide(I in1, I in2) {
CLQueue queue = context.createDefaultQueue();
CLImage2D clin1 = CLImageConversion.convert(context, in1);
CLImage2D clin2 = CLImageConversion.convert(context, in2);
CLImage2D clout = context.createImage2D(CLMem.Usage.Output, clin1.getFormat(), clin1.getWidth(), clin1.getHeight());
CLEvent evt = process(divideImage, queue, clin1, clin2, clout);
I out = CLImageConversion.convert(queue, evt, clout, in1.newInstance(in1.getWidth(), in1.getHeight()));
clin1.release();
clin2.release();
clout.release();
queue.release();
return out;
}
示例5: processImage
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
@Override
public void processImage(I image) {
CLQueue queue = context.createDefaultQueue();
CLImage2D in = CLImageConversion.convert(context, image);
CLImage2D out = context.createImage2D(CLMem.Usage.Output, in.getFormat(), in.getWidth(), in.getHeight());
kernel.setArgs(in, out);
CLEvent evt = kernel.enqueueNDRange(queue, new int[] {(int) in.getWidth(), (int) in.getHeight()});
CLImageConversion.convert(queue, evt, out, image);
in.release();
out.release();
queue.release();
}
示例6: analyseImage
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
@Override
public void analyseImage(FImage image) {
CLQueue queue = context.createDefaultQueue();
CLImage2D in = CLImageConversion.convert(context, image);
CLImageFormat outFmt = new CLImageFormat(ChannelOrder.RGBA, ChannelDataType.Float);
CLImage2D out = context.createImage2D(CLMem.Usage.Output, outFmt, in.getWidth(), in.getHeight());
kernel.setArgs(in, out);
CLEvent evt = kernel.enqueueNDRange(queue, new int[] {(int) in.getWidth(), (int) in.getHeight()});
MBFImage res = CLImageConversion.convert(queue, evt, out, new MBFImage(image.width, image.height, 4));
this.magnitude = res.bands.get(0);
this.orientation = res.bands.get(1);
this.gradientX = res.bands.get(2);
this.gradientY = res.bands.get(3);
in.release();
out.release();
queue.release();
}
示例7: process
import com.nativelibs4java.opencl.CLQueue; //导入方法依赖的package包/类
private synchronized CLImage2D process(CLKernel kernel, CLImage2D in1, CLImage2D in2) {
CLQueue queue = context.createDefaultQueue();
CLImage2D out = context.createImage2D(CLMem.Usage.Output, in1.getFormat(), in1.getWidth(), in1.getHeight());
process(kernel, queue, in1, in2, out).waitFor();
queue.release();
return out;
}