summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2010-06-28 03:31:55 +0200
committerMichael Bien <[email protected]>2010-06-28 03:31:55 +0200
commitc5dae5bba63a082fb8eac420b3b70786cdec54e1 (patch)
tree800ab8006fd3fd27260e4f21b74e7c2469ff4533 /src
parent467453f0752f162ce297de0db27d6a4fef67d15f (diff)
image factory methods for CLContext.
Diffstat (limited to 'src')
-rw-r--r--src/com/jogamp/opencl/CLContext.java60
-rw-r--r--src/com/jogamp/opencl/CLImageFormat.java28
2 files changed, 88 insertions, 0 deletions
diff --git a/src/com/jogamp/opencl/CLContext.java b/src/com/jogamp/opencl/CLContext.java
index 34e23786..12d4f991 100644
--- a/src/com/jogamp/opencl/CLContext.java
+++ b/src/com/jogamp/opencl/CLContext.java
@@ -328,6 +328,66 @@ public class CLContext extends CLObject implements CLResource {
return buffer;
}
+ /**
+ * Creates a CLImage2d with the specified format, dimension and flags.
+ */
+ public final CLImage2d<?> createImage2d(int width, int height, CLImageFormat format, Mem... flags) {
+ return createImage2d(null, width, height, 0, format, flags);
+ }
+
+ /**
+ * Creates a CLImage2d with the specified format, dimension and flags.
+ */
+ public final CLImage2d<?> createImage2d(int width, int height, int rowPitch, CLImageFormat format, Mem... flags) {
+ return createImage2d(null, width, height, rowPitch, format, flags);
+ }
+
+ /**
+ * Creates a CLImage2d with the specified format, dimension and flags.
+ */
+ public final <B extends Buffer> CLImage2d<B> createImage2d(B directBuffer, int width, int height, CLImageFormat format, Mem... flags) {
+ return createImage2d(directBuffer, width, height, 0, format, flags);
+ }
+
+ /**
+ * Creates a CLImage2d with the specified format, dimension and flags.
+ */
+ public final <B extends Buffer> CLImage2d<B> createImage2d(B directBuffer, int width, int height, int rowPitch, CLImageFormat format, Mem... flags) {
+ CLImage2d<B> image = CLImage2d.createImage(this, directBuffer, width, height, rowPitch, format, Mem.flagsToInt(flags));
+ memoryObjects.add(image);
+ return image;
+ }
+
+ /**
+ * Creates a CLImage3d with the specified format, dimension and flags.
+ */
+ public final CLImage3d<?> createImage3d(int width, int height, CLImageFormat format, Mem... flags) {
+ return createImage3d(null, width, height, 0, format, flags);
+ }
+
+ /**
+ * Creates a CLImage3d with the specified format, dimension and flags.
+ */
+ public final CLImage3d<?> createImage3d(int width, int height, int depth, int rowPitch, CLImageFormat format, Mem... flags) {
+ return createImage3d(null, width, height, rowPitch, format, flags);
+ }
+
+ /**
+ * Creates a CLImage3d with the specified format, dimension and flags.
+ */
+ public final <B extends Buffer> CLImage3d<B> createImage3d(B directBuffer, int width, int height, int depth, CLImageFormat format, Mem... flags) {
+ return createImage3d(directBuffer, width, height, depth, 0, 0, format, flags);
+ }
+
+ /**
+ * Creates a CLImage3d with the specified format, dimension and flags.
+ */
+ public final <B extends Buffer> CLImage3d<B> createImage3d(B directBuffer, int width, int height, int depth, int rowPitch, int slicePitch, CLImageFormat format, Mem... flags) {
+ CLImage3d<B> image = CLImage3d.createImage(this, directBuffer, width, height, depth, rowPitch, slicePitch, format, Mem.flagsToInt(flags));
+ memoryObjects.add(image);
+ return image;
+ }
+
CLCommandQueue createCommandQueue(CLDevice device, long properties) {
CLCommandQueue queue = CLCommandQueue.create(this, device, properties);
diff --git a/src/com/jogamp/opencl/CLImageFormat.java b/src/com/jogamp/opencl/CLImageFormat.java
index e3eb3667..17b7bb6c 100644
--- a/src/com/jogamp/opencl/CLImageFormat.java
+++ b/src/com/jogamp/opencl/CLImageFormat.java
@@ -7,6 +7,8 @@ import static com.jogamp.opencl.CL.*;
/**
* Represents the OpenCL image format with its channeltype and order.
* @author Michael Bien
+ * @see CLContext#getSupportedImage2dFormats(com.jogamp.opencl.CLMemory.Mem[])
+ * @see CLContext#getSupportedImage3dFormats(com.jogamp.opencl.CLMemory.Mem[])
*/
public final class CLImageFormat {
@@ -56,6 +58,32 @@ public final class CLImageFormat {
return "CLImageFormat["+getImageChannelOrder()+" "+getImageChannelDataType()+"]";
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final CLImageFormat other = (CLImageFormat) obj;
+ if (this.getImageChannelDataType() != other.getImageChannelDataType()) {
+ return false;
+ }
+ if (this.getImageChannelOrder() != other.getImageChannelOrder()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 5;
+ hash = 47 * hash + (this.getImageChannelDataType() != null ? this.getImageChannelDataType().hashCode() : 0);
+ hash = 47 * hash + (this.getImageChannelOrder() != null ? this.getImageChannelOrder().hashCode() : 0);
+ return hash;
+ }
+
/**
* Specifies the number of channels and the channel layout i.e. the memory
* layout in which channels are stored in the image.