diff options
Diffstat (limited to 'src/com/jogamp/opencl')
-rw-r--r-- | src/com/jogamp/opencl/AutoCloseable.java | 6 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLCommandQueue.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLContext.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLDevice.java | 10 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLEvent.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLEventList.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLKernel.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLMemory.java | 7 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLObject.java | 15 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLProgram.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLResource.java | 8 | ||||
-rw-r--r-- | src/com/jogamp/opencl/CLSampler.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/opencl/Disposable.java | 21 |
13 files changed, 30 insertions, 65 deletions
diff --git a/src/com/jogamp/opencl/AutoCloseable.java b/src/com/jogamp/opencl/AutoCloseable.java new file mode 100644 index 00000000..6c84ae48 --- /dev/null +++ b/src/com/jogamp/opencl/AutoCloseable.java @@ -0,0 +1,6 @@ +package com.jogamp.opencl; + +// early import of JDK7's ARM interface for JDK6 backwards compatibility. +public interface AutoCloseable { + void close() throws Exception; +} diff --git a/src/com/jogamp/opencl/CLCommandQueue.java b/src/com/jogamp/opencl/CLCommandQueue.java index ad561747..d7fc7748 100644 --- a/src/com/jogamp/opencl/CLCommandQueue.java +++ b/src/com/jogamp/opencl/CLCommandQueue.java @@ -1662,10 +1662,6 @@ public class CLCommandQueue extends CLObject implements CLResource { } } - public void close() { - release(); - } - private static PointerBuffer copy2NIO(PointerBuffer buffer, long a) { return (PointerBuffer) buffer.put(0, a); } diff --git a/src/com/jogamp/opencl/CLContext.java b/src/com/jogamp/opencl/CLContext.java index 12d4f991..7db6e4e5 100644 --- a/src/com/jogamp/opencl/CLContext.java +++ b/src/com/jogamp/opencl/CLContext.java @@ -468,10 +468,6 @@ public class CLContext extends CLObject implements CLResource { } - public void close() { - release(); - } - protected void overrideContext(CLDevice device) { device.setContext(this); } diff --git a/src/com/jogamp/opencl/CLDevice.java b/src/com/jogamp/opencl/CLDevice.java index 99ef3fe9..22fc7fcf 100644 --- a/src/com/jogamp/opencl/CLDevice.java +++ b/src/com/jogamp/opencl/CLDevice.java @@ -27,7 +27,7 @@ import static com.jogamp.opencl.CL.*; public final class CLDevice extends CLObject { private Set<String> extensions; - + private final CLDeviceInfoAccessor deviceInfo; CLDevice(CL cl, long id) { @@ -57,13 +57,13 @@ public final class CLDevice extends CLObject { } return createCommandQueue(flags); } - + public CLCommandQueue createCommandQueue(long properties) { if(context == null) throw new IllegalStateException("this device is not associated with a context"); return context.createCommandQueue(this, properties); } - + /*keep this package private*/ void setContext(CLContext context) { this.context = context; @@ -535,7 +535,7 @@ public final class CLDevice extends CLObject { } } buffer.rewind(); - + return array; } @@ -759,7 +759,7 @@ public final class CLDevice extends CLObject { * Read-write cache. */ READ_WRITE(CL_READ_WRITE_CACHE); - + /** * Value of wrapped OpenCL value. diff --git a/src/com/jogamp/opencl/CLEvent.java b/src/com/jogamp/opencl/CLEvent.java index 5b71cc29..b7df1465 100644 --- a/src/com/jogamp/opencl/CLEvent.java +++ b/src/com/jogamp/opencl/CLEvent.java @@ -30,10 +30,6 @@ public class CLEvent extends CLObject implements CLResource { checkForError(ret, "can not release event"); } - public void close() { - release(); - } - /** * Returns the execution status of the command which triggers this event. */ diff --git a/src/com/jogamp/opencl/CLEventList.java b/src/com/jogamp/opencl/CLEventList.java index 43f2b36b..a1ee5035 100644 --- a/src/com/jogamp/opencl/CLEventList.java +++ b/src/com/jogamp/opencl/CLEventList.java @@ -7,7 +7,7 @@ import java.util.Iterator; * Fixed size list for storing CLEvents. * @author Michael Bien */ -public final class CLEventList implements CLResource, Iterable<CLEvent> { +public final class CLEventList implements CLResource, AutoCloseable, Iterable<CLEvent> { private final CLEvent[] events; @@ -50,7 +50,7 @@ public final class CLEventList implements CLResource, Iterable<CLEvent> { IDs.rewind(); } - public void close() { + public final void close() throws Exception { release(); } diff --git a/src/com/jogamp/opencl/CLKernel.java b/src/com/jogamp/opencl/CLKernel.java index 785fbc78..598d43d1 100644 --- a/src/com/jogamp/opencl/CLKernel.java +++ b/src/com/jogamp/opencl/CLKernel.java @@ -272,10 +272,6 @@ public class CLKernel extends CLObject implements CLResource, Cloneable { } } - public void close() { - release(); - } - @Override public String toString() { return "CLKernel [id: " + ID diff --git a/src/com/jogamp/opencl/CLMemory.java b/src/com/jogamp/opencl/CLMemory.java index aac76790..e973fbab 100644 --- a/src/com/jogamp/opencl/CLMemory.java +++ b/src/com/jogamp/opencl/CLMemory.java @@ -152,14 +152,11 @@ public abstract class CLMemory <B extends Buffer> extends CLObject implements CL } } - public void close() { - release(); - } - - // kept only for debugging purposes + // TODO kept only temporary for debugging purposes /** * Returns the OpenGL buffer type of this shared buffer. */ + @Deprecated /*public*/ final GLObjectType _getGLObjectType() { int[] array = new int[1]; int ret = ((CLGLI)cl).clGetGLObjectInfo(ID, array, 0, null, 0); diff --git a/src/com/jogamp/opencl/CLObject.java b/src/com/jogamp/opencl/CLObject.java index ec17a518..3bd7b14b 100644 --- a/src/com/jogamp/opencl/CLObject.java +++ b/src/com/jogamp/opencl/CLObject.java @@ -4,7 +4,7 @@ package com.jogamp.opencl; * Common superclass for all OpenCL objects. * @author Michael Bien */ -abstract class CLObject { +abstract class CLObject implements AutoCloseable { /** * The OpenCL object handle. @@ -28,6 +28,19 @@ abstract class CLObject { } /** + * Implementation detail. + * TODO remove as soon we have extension methods. + * @deprecated This method is not intended to be called from client code. + * @see java.lang.AutoCloseable + */ + @Deprecated + public final void close() { + if(this instanceof CLResource) { + ((CLResource)this).release(); + } + } + + /** * Returns the context for this OpenCL object. */ public CLContext getContext() { diff --git a/src/com/jogamp/opencl/CLProgram.java b/src/com/jogamp/opencl/CLProgram.java index 7991b9d6..700446e5 100644 --- a/src/com/jogamp/opencl/CLProgram.java +++ b/src/com/jogamp/opencl/CLProgram.java @@ -430,10 +430,6 @@ public class CLProgram extends CLObject implements CLResource { } } - public void close() { - release(); - } - private void releaseKernels() { if(!kernels.isEmpty()) { // copy to array to prevent concurrent modification exception diff --git a/src/com/jogamp/opencl/CLResource.java b/src/com/jogamp/opencl/CLResource.java index 63b4749e..1ec9e76a 100644 --- a/src/com/jogamp/opencl/CLResource.java +++ b/src/com/jogamp/opencl/CLResource.java @@ -4,17 +4,11 @@ package com.jogamp.opencl; * Releasable OpenCL resource. * @author Michael Bien */ -public interface CLResource extends Disposable<CLException> { +public interface CLResource { /** * Releases the OpenCL resource. */ public void release(); - /** - * Calls {@link #release()}; - * @see #release() - */ - @Override public void close(); - } diff --git a/src/com/jogamp/opencl/CLSampler.java b/src/com/jogamp/opencl/CLSampler.java index cd5001bf..3ef7520b 100644 --- a/src/com/jogamp/opencl/CLSampler.java +++ b/src/com/jogamp/opencl/CLSampler.java @@ -53,10 +53,6 @@ public class CLSampler extends CLObject implements CLResource { } } - public void close() { - release(); - } - private class CLSamplerInfoAccessor extends CLInfoAccessor { @Override diff --git a/src/com/jogamp/opencl/Disposable.java b/src/com/jogamp/opencl/Disposable.java deleted file mode 100644 index 2cd1784b..00000000 --- a/src/com/jogamp/opencl/Disposable.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.jogamp.opencl; - -/* - * JDK7 ARM proposal, cypied to be forward compatible with java 7 automatic resource managment blocks. - * @author Michael Bien - */ - -//package java.lang; - -/** - * A resource that must be closed when it is no longer needed. - * - * @param X the type of exception thrown by the close method (or - * {@link RuntimeException} if the close method is not permitted - * to throw any checked exceptions). - */ -/*public*/ interface Disposable<X extends Throwable> { - - void close() throws X; - -} |