public final class BufferUtils extends Object
Constructor and Description |
---|
BufferUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
clear(ByteBuffer buffer,
int numBytes)
Writes the specified number of zeros to the buffer.
|
static void |
copy(Buffer src,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from the current position of src, copying numElements elements (using the data
type of src, no matter the datatype of dst).
|
static void |
copy(byte[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(char[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(char[] src,
int srcOffset,
int numElements,
Buffer dst)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(double[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(double[] src,
int srcOffset,
int numElements,
Buffer dst)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(float[] src,
Buffer dst,
int numFloats,
int offset)
Copies numFloats floats from src starting at offset to dst.
|
static void |
copy(float[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(float[] src,
int srcOffset,
int numElements,
Buffer dst)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(int[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(int[] src,
int srcOffset,
int numElements,
Buffer dst)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(long[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(long[] src,
int srcOffset,
int numElements,
Buffer dst)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
copy(short[] src,
int srcOffset,
Buffer dst,
int numElements)
Copies the contents of src to dst, starting from src[srcOffset], copying numElements elements.
|
static void |
disposeUnsafeByteBuffer(ByteBuffer buffer) |
static long |
findFloats(Buffer vertex,
int strideInBytes,
Buffer vertices,
int numVertices) |
static long |
findFloats(Buffer vertex,
int strideInBytes,
Buffer vertices,
int numVertices,
float epsilon) |
static long |
findFloats(Buffer vertex,
int strideInBytes,
float[] vertices,
int numVertices) |
static long |
findFloats(Buffer vertex,
int strideInBytes,
float[] vertices,
int numVertices,
float epsilon) |
static long |
findFloats(float[] vertex,
int strideInBytes,
Buffer vertices,
int numVertices) |
static long |
findFloats(float[] vertex,
int strideInBytes,
Buffer vertices,
int numVertices,
float epsilon) |
static long |
findFloats(float[] vertex,
int strideInBytes,
float[] vertices,
int numVertices) |
static long |
findFloats(float[] vertex,
int strideInBytes,
float[] vertices,
int numVertices,
float epsilon) |
static int |
getAllocatedBytesUnsafe() |
static long |
getUnsafeBufferAddress(Buffer buffer)
Returns the address of the Buffer, it assumes it is an unsafe buffer.
|
static ByteBuffer |
newByteBuffer(int numBytes) |
static CharBuffer |
newCharBuffer(int numChars) |
static DoubleBuffer |
newDoubleBuffer(int numDoubles) |
static FloatBuffer |
newFloatBuffer(int numFloats) |
static IntBuffer |
newIntBuffer(int numInts) |
static LongBuffer |
newLongBuffer(int numLongs) |
static ShortBuffer |
newShortBuffer(int numShorts) |
static ByteBuffer |
newUnsafeByteBuffer(ByteBuffer buffer)
Registers the given ByteBuffer as an unsafe ByteBuffer.
|
static ByteBuffer |
newUnsafeByteBuffer(int numBytes)
Allocates a new direct ByteBuffer from native heap memory using the native byte order.
|
static void |
transform(Buffer data,
int dimensions,
int strideInBytes,
int count,
Matrix3 matrix)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(Buffer data,
int dimensions,
int strideInBytes,
int count,
Matrix3 matrix,
int offset)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(Buffer data,
int dimensions,
int strideInBytes,
int count,
Matrix4 matrix)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(Buffer data,
int dimensions,
int strideInBytes,
int count,
Matrix4 matrix,
int offset)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(float[] data,
int dimensions,
int strideInBytes,
int count,
Matrix3 matrix)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(float[] data,
int dimensions,
int strideInBytes,
int count,
Matrix3 matrix,
int offset)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(float[] data,
int dimensions,
int strideInBytes,
int count,
Matrix4 matrix)
Multiply float vector components within the buffer with the specified matrix.
|
static void |
transform(float[] data,
int dimensions,
int strideInBytes,
int count,
Matrix4 matrix,
int offset)
Multiply float vector components within the buffer with the specified matrix.
|
public static void copy(float[] src, Buffer dst, int numFloats, int offset)
Buffer
. The method will
crash if that is not the case. The position and limit of the buffer are ignored, the copy is placed at position 0 in the
buffer. After the copying process the position of the buffer is set to 0 and its limit is set to numFloats * 4 if it is a
ByteBuffer and numFloats if it is a FloatBuffer. In case the Buffer is neither a ByteBuffer nor a FloatBuffer the limit is
not set. This is an expert method, use at your own risk.src
- the source arraydst
- the destination buffer, has to be a direct BuffernumFloats
- the number of floats to copyoffset
- the offset in src to start copying frompublic static void copy(byte[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(short[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(char[] src, int srcOffset, int numElements, Buffer dst)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position and limit will stay the same.
The Buffer must be a direct Buffer with native byte order. No error checking is performed.src
- the source array.srcOffset
- the offset into the source array.numElements
- the number of elements to copy.dst
- the destination Buffer, its position is used as an offset.public static void copy(int[] src, int srcOffset, int numElements, Buffer dst)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position and limit will stay the same.
The Buffer must be a direct Buffer with native byte order. No error checking is performed.src
- the source array.srcOffset
- the offset into the source array.numElements
- the number of elements to copy.dst
- the destination Buffer, its position is used as an offset.public static void copy(long[] src, int srcOffset, int numElements, Buffer dst)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position and limit will stay the same.
The Buffer must be a direct Buffer with native byte order. No error checking is performed.src
- the source array.srcOffset
- the offset into the source array.numElements
- the number of elements to copy.dst
- the destination Buffer, its position is used as an offset.public static void copy(float[] src, int srcOffset, int numElements, Buffer dst)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position and limit will stay the same.
The Buffer must be a direct Buffer with native byte order. No error checking is performed.src
- the source array.srcOffset
- the offset into the source array.numElements
- the number of elements to copy.dst
- the destination Buffer, its position is used as an offset.public static void copy(double[] src, int srcOffset, int numElements, Buffer dst)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position and limit will stay the same.
The Buffer must be a direct Buffer with native byte order. No error checking is performed.src
- the source array.srcOffset
- the offset into the source array.numElements
- the number of elements to copy.dst
- the destination Buffer, its position is used as an offset.public static void copy(char[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(int[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(long[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(float[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(double[] src, int srcOffset, Buffer dst, int numElements)
Buffer
instance's
Buffer.position()
is used to define the offset into the Buffer itself. The position will stay the same, the limit
will be set to position + numElements. The Buffer must be a direct Buffer with native byte order. No error checking is
performed.src
- the source array.srcOffset
- the offset into the source array.dst
- the destination Buffer, its position is used as an offset.numElements
- the number of elements to copy.public static void copy(Buffer src, Buffer dst, int numElements)
Buffer.position()
is used as the writing offset. The position
of both Buffers will stay the same. The limit of the src Buffer will stay the same. The limit of the dst Buffer will be set
to dst.position() + numElements, where numElements are translated to the number of elements appropriate for the dst Buffer
data type. The Buffers must be direct Buffers with native byte order. No error checking is performed.src
- the source Buffer.dst
- the destination Buffer.numElements
- the number of elements to copy.public static void transform(Buffer data, int dimensions, int strideInBytes, int count, Matrix4 matrix)
Buffer.position()
is used as the
offset.data
- The buffer to transform.dimensions
- The number of components of the vector (2 for xy, 3 for xyz or 4 for xyzw)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector withpublic static void transform(float[] data, int dimensions, int strideInBytes, int count, Matrix4 matrix)
Buffer.position()
is used as the
offset.data
- The buffer to transform.dimensions
- The number of components of the vector (2 for xy, 3 for xyz or 4 for xyzw)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector withpublic static void transform(Buffer data, int dimensions, int strideInBytes, int count, Matrix4 matrix, int offset)
Buffer.position()
and used as the offset.data
- The buffer to transform.dimensions
- The number of components of the vector (2 for xy, 3 for xyz or 4 for xyzw)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector withoffset
- The offset within the buffer (in bytes relative to the current position) to the vectorpublic static void transform(float[] data, int dimensions, int strideInBytes, int count, Matrix4 matrix, int offset)
Buffer.position()
and used as the offset.data
- The buffer to transform.dimensions
- The number of components of the vector (2 for xy, 3 for xyz or 4 for xyzw)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector withoffset
- The offset within the buffer (in bytes relative to the current position) to the vectorpublic static void transform(Buffer data, int dimensions, int strideInBytes, int count, Matrix3 matrix)
Buffer.position()
is used as the
offset.data
- The buffer to transform.dimensions
- The number of components (x, y, z) of the vector (2 for xy or 3 for xyz)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector withpublic static void transform(float[] data, int dimensions, int strideInBytes, int count, Matrix3 matrix)
Buffer.position()
is used as the
offset.data
- The buffer to transform.dimensions
- The number of components (x, y, z) of the vector (2 for xy or 3 for xyz)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector withpublic static void transform(Buffer data, int dimensions, int strideInBytes, int count, Matrix3 matrix, int offset)
Buffer.position()
and used as the offset.data
- The buffer to transform.dimensions
- The number of components (x, y, z) of the vector (2 for xy or 3 for xyz)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector with,offset
- The offset within the buffer (in bytes relative to the current position) to the vectorpublic static void transform(float[] data, int dimensions, int strideInBytes, int count, Matrix3 matrix, int offset)
Buffer.position()
and used as the offset.data
- The buffer to transform.dimensions
- The number of components (x, y, z) of the vector (2 for xy or 3 for xyz)strideInBytes
- The offset between the first and the second vector to transformcount
- The number of vectors to transformmatrix
- The matrix to multiply the vector with,offset
- The offset within the buffer (in bytes relative to the current position) to the vectorpublic static long findFloats(Buffer vertex, int strideInBytes, Buffer vertices, int numVertices)
public static long findFloats(float[] vertex, int strideInBytes, Buffer vertices, int numVertices)
public static long findFloats(Buffer vertex, int strideInBytes, float[] vertices, int numVertices)
public static long findFloats(float[] vertex, int strideInBytes, float[] vertices, int numVertices)
public static long findFloats(Buffer vertex, int strideInBytes, Buffer vertices, int numVertices, float epsilon)
public static long findFloats(float[] vertex, int strideInBytes, Buffer vertices, int numVertices, float epsilon)
public static long findFloats(Buffer vertex, int strideInBytes, float[] vertices, int numVertices, float epsilon)
public static long findFloats(float[] vertex, int strideInBytes, float[] vertices, int numVertices, float epsilon)
public static FloatBuffer newFloatBuffer(int numFloats)
public static DoubleBuffer newDoubleBuffer(int numDoubles)
public static ByteBuffer newByteBuffer(int numBytes)
public static ShortBuffer newShortBuffer(int numShorts)
public static CharBuffer newCharBuffer(int numChars)
public static IntBuffer newIntBuffer(int numInts)
public static LongBuffer newLongBuffer(int numLongs)
public static void disposeUnsafeByteBuffer(ByteBuffer buffer)
public static ByteBuffer newUnsafeByteBuffer(int numBytes)
freeMemory(ByteBuffer)
.numBytes
- public static long getUnsafeBufferAddress(Buffer buffer)
buffer
- The Buffer to ask the address for.public static ByteBuffer newUnsafeByteBuffer(ByteBuffer buffer)
freeMemory(ByteBuffer)
.buffer
- the ByteBuffer
to registerpublic static int getAllocatedBytesUnsafe()
newUnsafeByteBuffer(int)
public static void clear(ByteBuffer buffer, int numBytes)
Copyright © 2015. All rights reserved.