diff options
author | Michael Bien <[email protected]> | 2010-07-05 00:10:15 +0200 |
---|---|---|
committer | Michael Bien <[email protected]> | 2010-07-05 00:10:15 +0200 |
commit | a81e907b30364b1abc2a75d446772f066fbf74ff (patch) | |
tree | 6b61b193829bb72c3a0432afffc36d469950314c /src/com/jogamp/opencl/CLSubBuffer.java | |
parent | e5208ab035bc454730edc847cad9d5af3ed92e8c (diff) |
finished CLSubBuffer, added junit testcase, perf improvements and cleanup.
CLMemory methods contain now NIO infix for nio buffer specific queries and CL infix for memory object queries.
Diffstat (limited to 'src/com/jogamp/opencl/CLSubBuffer.java')
-rw-r--r-- | src/com/jogamp/opencl/CLSubBuffer.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/com/jogamp/opencl/CLSubBuffer.java b/src/com/jogamp/opencl/CLSubBuffer.java index 614dfa80..165df23f 100644 --- a/src/com/jogamp/opencl/CLSubBuffer.java +++ b/src/com/jogamp/opencl/CLSubBuffer.java @@ -12,18 +12,18 @@ public class CLSubBuffer<B extends Buffer> extends CLBuffer<B> { private CLBuffer<B> parent; private final int offset; - CLSubBuffer(CLBuffer<B> parent, int origin, B directBuffer, long id, int flags) { - super(parent.getContext(), directBuffer, id, flags); + CLSubBuffer(CLBuffer<B> parent, int origin, int size, B directBuffer, long id, int flags) { + super(parent.getContext(), directBuffer, size, id, flags); this.parent = parent; this.offset = origin; } /** * Throws an UnsupportedOperationException since creating sub buffers - * from sub buffers is not allowed. + * from sub buffers is not allowed as of OpenCL 1.1. */ @Override - public CLBuffer<B> createSubBuffer(int origin, int size, Mem... flags) { + public CLSubBuffer<B> createSubBuffer(int origin, int size, Mem... flags) { throw new UnsupportedOperationException("creating sub buffers from sub buffers is not allowed."); } @@ -41,9 +41,17 @@ public class CLSubBuffer<B extends Buffer> extends CLBuffer<B> { } /** - * Returns the offset of this sub buffer to its parent. + * Returns the offset of this sub buffer to its parent in buffer elements. */ public int getOffset() { + int elemSize = buffer==null ? 1 : sizeOfBufferElem(buffer); + return offset/elemSize; + } + + /** + * Returns the offset of this sub buffer to its parent in bytes. + */ + public int getCLOffset() { return offset; } |