Package com.jogamp.opencl
Class CLMemory<B extends Buffer>
- java.lang.Object
-
- com.jogamp.opencl.CLObject
-
- com.jogamp.opencl.CLMemory<B>
-
- All Implemented Interfaces:
AutoCloseable
,CLResource
,AutoCloseable
public abstract class CLMemory<B extends Buffer> extends CLObject
Common superclass for all OpenCL memory types. Represents an OpenCL memory object and wraps an optional NIO buffer.- Author:
- Michael Bien, et al.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CLMemory.GLObjectType
static class
CLMemory.Map
Configures the mapping process.static class
CLMemory.Mem
Memory settings for configuring CLMemory.
-
Field Summary
Fields Modifier and Type Field Description protected int
clCapacity
protected int
elementSize
protected int
FLAGS
protected long
size
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description abstract <T extends Buffer>
CLMemory<T>cloneWith(T directBuffer)
Returns a new instance of CLMemory pointing to the same CLResource but using a different Buffer.void
close()
Deprecated.This method is not intended to be called from client code.boolean
equals(Object obj)
Returns the OpenGL buffer type of this shared buffer.B
getBuffer()
Returns the optional NIO buffer for this memory object.protected static CL
getCL(CLContext context)
int
getCLCapacity()
Returns the size in buffer elements of this memory object.long
getCLSize()
Returns the size of the allocated OpenCL memory in bytes.EnumSet<CLMemory.Mem>
getConfig()
Returns the configuration of this memory object.int
getElementSize()
Returns the size in bytes of a single buffer element.int
getMapCount()
Returns the number of buffer mappings.int
getNIOCapacity()
Returns the capacity of the wrapped direct buffer or 0 if no buffer available.int
getNIOSize()
Returns the size of the wrapped direct buffer in byte or 0 if no buffer available.protected static long
getSizeImpl(CLContext context, long id)
int
hashCode()
protected void
initCLCapacity()
protected static boolean
isHostPointerFlag(int flags)
Returns true if a host pointer must be specified on mem object creation.boolean
isReadOnly()
Returns true if this memory object was created with theCLMemory.Mem.READ_ONLY
flag.boolean
isReadWrite()
Returns true if this memory object was created with theCLMemory.Mem.READ_WRITE
flag.boolean
isReleased()
Returns true ifCLResource.release()
has been called.boolean
isWriteOnly()
Returns true if this memory object was created with theCLMemory.Mem.WRITE_ONLY
flag.void
registerDestructorCallback(CLMemObjectListener listener)
Registers a callback which will be called by the OpenCL implementation when the memory object is released.void
release()
Releases the OpenCL resource.String
toString()
CLMemory<B>
use(B buffer)
-
Methods inherited from class com.jogamp.opencl.CLObject
getContext, getID, getPlatform
-
-
-
-
Method Detail
-
initCLCapacity
protected final void initCLCapacity()
-
isHostPointerFlag
protected static boolean isHostPointerFlag(int flags)
Returns true if a host pointer must be specified on mem object creation.
-
getSizeImpl
protected static long getSizeImpl(CLContext context, long id)
-
registerDestructorCallback
public void registerDestructorCallback(CLMemObjectListener listener)
Registers a callback which will be called by the OpenCL implementation when the memory object is released.
-
cloneWith
public abstract <T extends Buffer> CLMemory<T> cloneWith(T directBuffer)
Returns a new instance of CLMemory pointing to the same CLResource but using a different Buffer.
-
getBuffer
public B getBuffer()
Returns the optional NIO buffer for this memory object.
-
getNIOCapacity
public int getNIOCapacity()
Returns the capacity of the wrapped direct buffer or 0 if no buffer available.
-
getNIOSize
public int getNIOSize()
Returns the size of the wrapped direct buffer in byte or 0 if no buffer available.
-
getCLSize
public long getCLSize()
Returns the size of the allocated OpenCL memory in bytes.
-
getCLCapacity
public int getCLCapacity()
Returns the size in buffer elements of this memory object.
-
getElementSize
public int getElementSize()
Returns the size in bytes of a single buffer element. This method returns 1 if no buffer is available indicating regular byte access.
-
getConfig
public EnumSet<CLMemory.Mem> getConfig()
Returns the configuration of this memory object.
-
getMapCount
public int getMapCount()
Returns the number of buffer mappings. The map count returned should be considered immediately stale. It is unsuitable for general use in applications. This feature is provided for debugging.
-
isReadOnly
public boolean isReadOnly()
Returns true if this memory object was created with theCLMemory.Mem.READ_ONLY
flag.
-
isWriteOnly
public boolean isWriteOnly()
Returns true if this memory object was created with theCLMemory.Mem.WRITE_ONLY
flag.
-
isReadWrite
public boolean isReadWrite()
Returns true if this memory object was created with theCLMemory.Mem.READ_WRITE
flag.
-
release
public void release()
Description copied from interface:CLResource
Releases the OpenCL resource.- Specified by:
release
in interfaceCLResource
-
equals
public boolean equals(Object obj)
Returns the OpenGL buffer type of this shared buffer.
-
close
@Deprecated public final void close()
Deprecated.This method is not intended to be called from client code.Implementation detail, satisfyingAutoCloseable
. Might be remove as soon we have extension methods, but shall validate with Java 1.5 specs.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceAutoCloseable
- See Also:
AutoCloseable
-
isReleased
public boolean isReleased()
Description copied from interface:CLResource
Returns true ifCLResource.release()
has been called.- Specified by:
isReleased
in interfaceCLResource
-
-