Modifier and Type | Field and Description |
---|---|
static int |
SIZEOF_BYTE |
static int |
SIZEOF_CHAR |
static int |
SIZEOF_DOUBLE |
static int |
SIZEOF_FLOAT |
static int |
SIZEOF_INT |
static int |
SIZEOF_LONG |
static int |
SIZEOF_SHORT |
Modifier | Constructor and Description |
---|---|
protected |
Buffers() |
Modifier and Type | Method and Description |
---|---|
static ByteBuffer |
copyByteBuffer(ByteBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed ByteBuffer into
a newly-allocated direct ByteBuffer. |
static FloatBuffer |
copyFloatBuffer(FloatBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed FloatBuffer
into a newly-allocated direct FloatBuffer. |
static ByteBuffer |
copyFloatBufferAsByteBuffer(FloatBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed FloatBuffer
into a newly-allocated direct ByteBuffer. |
static IntBuffer |
copyIntBuffer(IntBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed IntBuffer
into a newly-allocated direct IntBuffer. |
static ByteBuffer |
copyIntBufferAsByteBuffer(IntBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed IntBuffer into
a newly-allocated direct ByteBuffer. |
static ShortBuffer |
copyShortBuffer(ShortBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed ShortBuffer
into a newly-allocated direct ShortBuffer. |
static ByteBuffer |
copyShortBufferAsByteBuffer(ShortBuffer orig)
Copies the remaining elements (as defined by
limit() - position() ) in the passed ShortBuffer
into a newly-allocated direct ByteBuffer. |
static Object |
getArray(Object buf)
Helper routine to return the array backing store reference from
a Buffer object.
|
static int |
getDirectBufferByteOffset(Object buf)
Helper routine to get the Buffer byte offset by taking into
account the Buffer position and the underlying type.
|
static double[] |
getDoubleArray(float[] source,
int soffset,
double[] dest,
int doffset,
int len) |
static DoubleBuffer |
getDoubleBuffer(FloatBuffer source,
DoubleBuffer dest)
No rewind or repositioning is performed.
|
static float[] |
getFloatArray(double[] source,
int soffset,
float[] dest,
int doffset,
int len) |
static FloatBuffer |
getFloatBuffer(DoubleBuffer source,
FloatBuffer dest)
No rewind or repositioning is performed.
|
static int |
getIndirectBufferByteOffset(Object buf)
Helper routine to get the full byte offset from the beginning of
the array that is the storage for the indirect Buffer
object.
|
static boolean |
isDirect(Object buf)
Helper routine to tell whether a buffer is direct or not.
|
static ByteBuffer |
nativeOrder(ByteBuffer buf)
Helper routine to set a ByteBuffer to the native byte order, if
that operation is supported by the underlying NIO
implementation.
|
static ByteBuffer |
newDirectByteBuffer(byte[] values) |
static ByteBuffer |
newDirectByteBuffer(byte[] values,
int offset) |
static ByteBuffer |
newDirectByteBuffer(byte[] values,
int offset,
int lenght) |
static ByteBuffer |
newDirectByteBuffer(int numElements)
Allocates a new direct ByteBuffer with the specified number of
elements.
|
static CharBuffer |
newDirectCharBuffer(char[] values) |
static CharBuffer |
newDirectCharBuffer(char[] values,
int offset) |
static CharBuffer |
newDirectCharBuffer(char[] values,
int offset,
int lenght) |
static CharBuffer |
newDirectCharBuffer(int numElements)
Allocates a new direct CharBuffer with the specified number of
elements.
|
static DoubleBuffer |
newDirectDoubleBuffer(double[] values) |
static DoubleBuffer |
newDirectDoubleBuffer(double[] values,
int offset) |
static DoubleBuffer |
newDirectDoubleBuffer(double[] values,
int offset,
int lenght) |
static DoubleBuffer |
newDirectDoubleBuffer(int numElements)
Allocates a new direct DoubleBuffer with the specified number of
elements.
|
static FloatBuffer |
newDirectFloatBuffer(float[] values) |
static FloatBuffer |
newDirectFloatBuffer(float[] values,
int offset) |
static FloatBuffer |
newDirectFloatBuffer(float[] values,
int offset,
int lenght) |
static FloatBuffer |
newDirectFloatBuffer(int numElements)
Allocates a new direct FloatBuffer with the specified number of
elements.
|
static IntBuffer |
newDirectIntBuffer(int numElements)
Allocates a new direct IntBuffer with the specified number of
elements.
|
static IntBuffer |
newDirectIntBuffer(int[] values) |
static IntBuffer |
newDirectIntBuffer(int[] values,
int offset) |
static IntBuffer |
newDirectIntBuffer(int[] values,
int offset,
int lenght) |
static LongBuffer |
newDirectLongBuffer(int numElements)
Allocates a new direct LongBuffer with the specified number of
elements.
|
static LongBuffer |
newDirectLongBuffer(long[] values) |
static LongBuffer |
newDirectLongBuffer(long[] values,
int offset) |
static LongBuffer |
newDirectLongBuffer(long[] values,
int offset,
int lenght) |
static ShortBuffer |
newDirectShortBuffer(int numElements)
Allocates a new direct ShortBuffer with the specified number of
elements.
|
static ShortBuffer |
newDirectShortBuffer(short[] values) |
static ShortBuffer |
newDirectShortBuffer(short[] values,
int offset) |
static ShortBuffer |
newDirectShortBuffer(short[] values,
int offset,
int lenght) |
static <B extends Buffer> |
put(B dest,
Buffer src) |
static <B extends Buffer> |
putb(B dest,
byte v) |
static <B extends Buffer> |
putd(B dest,
double v) |
static <B extends Buffer> |
putf(B dest,
float v) |
static <B extends Buffer> |
puti(B dest,
int v) |
static <B extends Buffer> |
puts(B dest,
short v) |
static void |
rangeCheck(Buffer buffer,
int minElementsRemaining) |
static void |
rangeCheck(byte[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheck(char[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheck(double[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheck(float[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheck(int[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheck(long[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheck(short[] array,
int offset,
int minElementsRemaining) |
static void |
rangeCheckBytes(Object buffer,
int minBytesRemaining) |
static int |
sizeOfBufferElem(Buffer buffer)
Returns the size of a single element of this buffer in bytes.
|
static <B extends Buffer> |
slice(B buffer)
Calls slice on the specified buffer while maintaining the byteorder.
|
static <B extends Buffer> |
slice(B buffer,
int offset,
int size)
Slices the specified buffer with offset as position and offset+size as limit
while maintaining the byteorder.
|
static FloatBuffer |
slice2Float(Buffer buf,
float[] backing,
int floatPos,
int floatSize)
Slices a ByteBuffer or a primitive float array to a FloatBuffer at the given position with the given size
in float-space.
|
public static final int SIZEOF_BYTE
public static final int SIZEOF_SHORT
public static final int SIZEOF_CHAR
public static final int SIZEOF_INT
public static final int SIZEOF_FLOAT
public static final int SIZEOF_LONG
public static final int SIZEOF_DOUBLE
public static ByteBuffer newDirectByteBuffer(int numElements)
public static ByteBuffer newDirectByteBuffer(byte[] values, int offset, int lenght)
public static ByteBuffer newDirectByteBuffer(byte[] values, int offset)
public static ByteBuffer newDirectByteBuffer(byte[] values)
public static DoubleBuffer newDirectDoubleBuffer(int numElements)
public static DoubleBuffer newDirectDoubleBuffer(double[] values, int offset, int lenght)
public static DoubleBuffer newDirectDoubleBuffer(double[] values, int offset)
public static DoubleBuffer newDirectDoubleBuffer(double[] values)
public static FloatBuffer newDirectFloatBuffer(int numElements)
public static FloatBuffer newDirectFloatBuffer(float[] values, int offset, int lenght)
public static FloatBuffer newDirectFloatBuffer(float[] values, int offset)
public static FloatBuffer newDirectFloatBuffer(float[] values)
public static IntBuffer newDirectIntBuffer(int numElements)
public static IntBuffer newDirectIntBuffer(int[] values, int offset, int lenght)
public static IntBuffer newDirectIntBuffer(int[] values, int offset)
public static IntBuffer newDirectIntBuffer(int[] values)
public static LongBuffer newDirectLongBuffer(int numElements)
public static LongBuffer newDirectLongBuffer(long[] values, int offset, int lenght)
public static LongBuffer newDirectLongBuffer(long[] values, int offset)
public static LongBuffer newDirectLongBuffer(long[] values)
public static ShortBuffer newDirectShortBuffer(int numElements)
public static ShortBuffer newDirectShortBuffer(short[] values, int offset, int lenght)
public static ShortBuffer newDirectShortBuffer(short[] values, int offset)
public static ShortBuffer newDirectShortBuffer(short[] values)
public static CharBuffer newDirectCharBuffer(int numElements)
public static CharBuffer newDirectCharBuffer(char[] values, int offset, int lenght)
public static CharBuffer newDirectCharBuffer(char[] values, int offset)
public static CharBuffer newDirectCharBuffer(char[] values)
public static <B extends Buffer> B slice(B buffer)
slice(java.nio.Buffer, int, int)
public static <B extends Buffer> B slice(B buffer, int offset, int size)
public static final FloatBuffer slice2Float(Buffer buf, float[] backing, int floatPos, int floatSize)
Using a ByteBuffer as the source guarantees keeping the source native order programmatically. This works around Honeycomb / Android 3.0 Issue 16434. This bug is resolved at least in Android 3.2.
buf
- source Buffer, maybe ByteBuffer (recommended) or FloatBuffer or null
.
Buffer's position is ignored and floatPos is being used.backing
- source float array or null
floatPos
- SIZEOF_FLOAT
positionfloatSize
- SIZEOF_FLOAT
sizepublic static ByteBuffer nativeOrder(ByteBuffer buf)
public static int sizeOfBufferElem(Buffer buffer)
public static boolean isDirect(Object buf)
public static int getDirectBufferByteOffset(Object buf)
public static Object getArray(Object buf) throws UnsupportedOperationException, IllegalArgumentException
UnsupportedOperationException
- if the passed Object does not have an array backing storeIllegalArgumentException
- if the passed Object is neither of type Buffer
or NativeBuffer
.public static int getIndirectBufferByteOffset(Object buf)
public static ByteBuffer copyByteBuffer(ByteBuffer orig)
limit() - position()
) in the passed ByteBuffer into
a newly-allocated direct ByteBuffer. The returned buffer will
have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static FloatBuffer copyFloatBuffer(FloatBuffer orig)
limit() - position()
) in the passed FloatBuffer
into a newly-allocated direct FloatBuffer. The returned buffer
will have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static IntBuffer copyIntBuffer(IntBuffer orig)
limit() - position()
) in the passed IntBuffer
into a newly-allocated direct IntBuffer. The returned buffer
will have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static ShortBuffer copyShortBuffer(ShortBuffer orig)
limit() - position()
) in the passed ShortBuffer
into a newly-allocated direct ShortBuffer. The returned buffer
will have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static ByteBuffer copyFloatBufferAsByteBuffer(FloatBuffer orig)
limit() - position()
) in the passed FloatBuffer
into a newly-allocated direct ByteBuffer. The returned buffer
will have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static ByteBuffer copyIntBufferAsByteBuffer(IntBuffer orig)
limit() - position()
) in the passed IntBuffer into
a newly-allocated direct ByteBuffer. The returned buffer will
have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static ByteBuffer copyShortBufferAsByteBuffer(ShortBuffer orig)
limit() - position()
) in the passed ShortBuffer
into a newly-allocated direct ByteBuffer. The returned buffer
will have its byte order set to the host platform's native byte
order. The position of the newly-allocated buffer will be zero,
and the position of the passed buffer is unchanged (though its
mark is changed).public static float[] getFloatArray(double[] source, int soffset, float[] dest, int doffset, int len)
source
- the source arraysoffset
- the offsetdest
- the target array, if null, a new array is being created with size len.doffset
- the offset in the dest arraylen
- the payload of elements to be copied, if len < 0
then len = source.length - soffset
public static FloatBuffer getFloatBuffer(DoubleBuffer source, FloatBuffer dest)
source
- the source buffer, which elements from it's current position and it's limit are being copieddest
- the target buffer, if null, a new buffer is being created with size source.remaining()public static double[] getDoubleArray(float[] source, int soffset, double[] dest, int doffset, int len)
source
- the source arraysoffset
- the offsetdest
- the target array, if null, a new array is being created with size len.doffset
- the offset in the dest arraylen
- the payload of elements to be copied, if len < 0
then len = source.length - soffset
public static DoubleBuffer getDoubleBuffer(FloatBuffer source, DoubleBuffer dest)
source
- the source buffer, which elements from it's current position and it's limit are being copieddest
- the target buffer, if null, a new buffer is being created with size source.remaining()public static <B extends Buffer> B putb(B dest, byte v)
public static <B extends Buffer> B puts(B dest, short v)
public static <B extends Buffer> B puti(B dest, int v)
public static <B extends Buffer> B putf(B dest, float v)
public static <B extends Buffer> B putd(B dest, double v)
public static void rangeCheck(byte[] array, int offset, int minElementsRemaining)
public static void rangeCheck(char[] array, int offset, int minElementsRemaining)
public static void rangeCheck(short[] array, int offset, int minElementsRemaining)
public static void rangeCheck(int[] array, int offset, int minElementsRemaining)
public static void rangeCheck(long[] array, int offset, int minElementsRemaining)
public static void rangeCheck(float[] array, int offset, int minElementsRemaining)
public static void rangeCheck(double[] array, int offset, int minElementsRemaining)
public static void rangeCheck(Buffer buffer, int minElementsRemaining)
public static void rangeCheckBytes(Object buffer, int minBytesRemaining)