Class Buffer
Buffer stores the raw byte array and can be used to access image data.
In the Java API, you can get the buffer from Image and then copy data to a Java byte array.
In all versions of EasyAR Sense, you can access image data. Refer to Image.
Buffer
Methods
wrap
Wraps a raw memory block of specified length. When the Buffer is completely released, the deleter callback will be called to execute user-defined memory destruction behavior. The deleter must be thread-safe.
void easyar_Buffer_wrap(void * ptr, int size, easyar_FunctorOfVoid deleter, easyar_Buffer * * Return)
static std::shared_ptr<Buffer> wrap(void * ptr, int size, std::function<void()> deleter)
public static @Nonnull Buffer wrap(long ptr, int size, @Nonnull FunctorOfVoid deleter)
companion object fun wrap(ptr: Long, size: Int, deleter: FunctorOfVoid): Buffer
+ (easyar_Buffer *)wrap:(void *)ptr size:(int)size deleter:(void (^)())deleter
public static func wrap(_ ptr: OpaquePointer?, _ size: Int32, _ deleter: @escaping () -> Void) -> Buffer
public static Buffer wrap(IntPtr ptr, int size, Action deleter)
Parameters
| Name |
Type |
Description |
| ptr |
IntPtr |
|
| size |
Int32 |
|
| deleter |
Action |
|
Returns
create
Creates a Buffer of specified byte length.
void easyar_Buffer_create(int size, easyar_Buffer * * Return)
static std::shared_ptr<Buffer> create(int size)
public static @Nonnull Buffer create(int size)
companion object fun create(size: Int): Buffer
+ (easyar_Buffer *)create:(int)size
public static func create(_ size: Int32) -> Buffer
public static Buffer create(int size)
Parameters
| Name |
Type |
Description |
| size |
Int32 |
|
Returns
data
Returns the raw memory address.
void * easyar_Buffer_data(const easyar_Buffer * This)
public func data() -> OpaquePointer?
public virtual IntPtr data()
Returns
size
The byte length of the Buffer.
int easyar_Buffer_size(const easyar_Buffer * This)
public func size() -> Int32
public virtual int size()
Returns
memoryCopy
Copies raw memory. Mainly used for languages or environments with imperfect memory operations.
void easyar_Buffer_memoryCopy(void * src, void * dest, int length)
static void memoryCopy(void * src, void * dest, int length)
public static void memoryCopy(long src, long dest, int length)
companion object fun memoryCopy(src: Long, dest: Long, length: Int): Unit
+ (void)memoryCopy:(void *)src dest:(void *)dest length:(int)length
public static func memoryCopy(_ src: OpaquePointer?, _ dest: OpaquePointer?, _ length: Int32) -> Void
public static void memoryCopy(IntPtr src, IntPtr dest, int length)
Parameters
| Name |
Type |
Description |
| src |
IntPtr |
|
| dest |
IntPtr |
|
| length |
Int32 |
|
Returns
tryCopyFrom
Attempts to copy data from a raw memory address to the Buffer. Returns true if the copy is successful, otherwise false. Reasons for failure include: source data range or target data range exceeding available range.
bool easyar_Buffer_tryCopyFrom(easyar_Buffer * This, void * src, int srcIndex, int index, int length)
bool tryCopyFrom(void * src, int srcIndex, int index, int length)
public boolean tryCopyFrom(long src, int srcIndex, int index, int length)
fun tryCopyFrom(src: Long, srcIndex: Int, index: Int, length: Int): Boolean
- (bool)tryCopyFrom:(void *)src srcIndex:(int)srcIndex index:(int)index length:(int)length
public func tryCopyFrom(_ src: OpaquePointer?, _ srcIndex: Int32, _ index: Int32, _ length: Int32) -> Bool
public virtual bool tryCopyFrom(IntPtr src, int srcIndex, int index, int length)
Parameters
| Name |
Type |
Description |
| src |
IntPtr |
|
| srcIndex |
Int32 |
|
| index |
Int32 |
|
| length |
Int32 |
|
Returns
tryCopyTo
Attempts to copy data from the Buffer to a raw memory address. Returns true if the copy is successful, otherwise false. Reasons for failure include: source data range or target data range exceeding available range.
bool easyar_Buffer_tryCopyTo(easyar_Buffer * This, int index, void * dest, int destIndex, int length)
bool tryCopyTo(int index, void * dest, int destIndex, int length)
public boolean tryCopyTo(int index, long dest, int destIndex, int length)
fun tryCopyTo(index: Int, dest: Long, destIndex: Int, length: Int): Boolean
- (bool)tryCopyTo:(int)index dest:(void *)dest destIndex:(int)destIndex length:(int)length
public func tryCopyTo(_ index: Int32, _ dest: OpaquePointer?, _ destIndex: Int32, _ length: Int32) -> Bool
public virtual bool tryCopyTo(int index, IntPtr dest, int destIndex, int length)
Parameters
| Name |
Type |
Description |
| index |
Int32 |
|
| dest |
IntPtr |
|
| destIndex |
Int32 |
|
| length |
Int32 |
|
Returns
partition
Creates a sub-Buffer that references the original Buffer. A Buffer is only released after all its sub-Buffers are released.
void easyar_Buffer_partition(easyar_Buffer * This, int index, int length, easyar_Buffer * * Return)
std::shared_ptr<Buffer> partition(int index, int length)
public @Nonnull Buffer partition(int index, int length)
fun partition(index: Int, length: Int): Buffer
- (easyar_Buffer *)partition:(int)index length:(int)length
public func partition(_ index: Int32, _ length: Int32) -> Buffer
public virtual Buffer partition(int index, int length)
Parameters
| Name |
Type |
Description |
| index |
Int32 |
|
| length |
Int32 |
|
Returns
wrapByteArray
public static @Nonnull Buffer wrapByteArray(byte @Nonnull[] bytes)
companion object fun wrapByteArray(bytes: Array<Byte>): Buffer
public static Buffer wrapByteArray(byte[] bytes)
Parameters
| Name |
Type |
Description |
| bytes |
|
|
Returns
wrapByteArray
Wraps a byte array. You can specify the start position and length, and whether the Buffer is read-only or read-write (read-only Buffer may be released faster). You can specify a deleter callback, which will be called when the Buffer is completely released to execute user-defined memory destruction behavior. The deleter must be thread-safe.
public static @Nonnull Buffer wrapByteArray(byte @Nonnull[] bytes, int index, int length, boolean readOnly, @Nonnull FunctorOfVoid deleter)
companion object fun wrapByteArray(bytes: Array<Byte>, index: Int, length: Int, readOnly: Boolean, deleter: FunctorOfVoid): Buffer
Parameters
| Name |
Type |
Description |
| bytes |
|
|
| index |
Int32 |
|
| length |
Int32 |
|
| readOnly |
Boolean |
|
| deleter |
Action |
|
Returns
wrapByteArray
Wraps a byte array. You can specify the start position and length.
public static Buffer wrapByteArray(byte[] bytes, int index, int length)
Parameters
| Name |
Type |
Description |
| bytes |
|
|
| index |
Int32 |
|
| length |
Int32 |
|
Returns
wrapByteArray
Wraps a byte array. You can specify the start position and length. You can specify a deleter callback, which will be called when the Buffer is completely released to execute user-defined memory destruction behavior. The deleter must be thread-safe.
public static Buffer wrapByteArray(byte[] bytes, int index, int length, Action deleter)
Parameters
| Name |
Type |
Description |
| bytes |
|
|
| index |
Int32 |
|
| length |
Int32 |
|
| deleter |
Action |
|
Returns
wrapBuffer
public static @Nonnull Buffer wrapBuffer(java.nio.@Nonnull Buffer directBuffer)
companion object fun wrapBuffer(directBuffer: java.nio.Buffer): Buffer
Parameters
| Name |
Type |
Description |
| directBuffer |
|
|
Returns
wrapBuffer
Wraps a java.nio.Buffer. You can specify a deleter callback, which will be called when the Buffer is completely released to execute user-defined memory destruction behavior. The deleter must be thread-safe.
public static @Nonnull Buffer wrapBuffer(java.nio.@Nonnull Buffer directBuffer, @Nonnull FunctorOfVoid deleter)
companion object fun wrapBuffer(directBuffer: java.nio.Buffer, deleter: Action): Buffer
Parameters
| Name |
Type |
Description |
| directBuffer |
|
|
| deleter |
Action |
|
Returns
copyFromByteArray
Copies data from a byte array to the Buffer. If the copy fails, an exception is thrown. Reasons for failure include: source data range or target data range exceeding available range.
public void copyFromByteArray(byte @Nonnull[] src)
fun copyFromByteArray(src: Array<Byte>): Unit
public void copyFromByteArray(byte[] src)
Parameters
| Name |
Type |
Description |
| src |
|
|
copyFromByteArray
Copies data from a byte array to the Buffer. If the copy fails, an exception is thrown. Reasons for failure include: source data range or target data range exceeding available range.
public void copyFromByteArray(byte @Nonnull[] src, int srcIndex, int index, int length)
fun copyFromByteArray(src: Array<Byte>, srcIndex: Int, index: Int, length: Int): Unit
public void copyFromByteArray(byte[] src, int srcIndex, int index, int length)
Parameters
| Name |
Type |
Description |
| src |
|
|
| srcIndex |
Int32 |
|
| index |
Int32 |
|
| length |
Int32 |
|
copyToByteArray
Copies data from the Buffer to a byte array. If the copy fails, an exception is thrown. Reasons for failure include: source data range or target data range exceeding available range.
public void copyToByteArray(byte @Nonnull[] dest)
fun copyToByteArray(dest: Array<Byte>): Unit
public void copyToByteArray(byte[] dest)
Parameters
| Name |
Type |
Description |
| dest |
|
|
copyToByteArray
Copies data from the Buffer to a byte array. If the copy fails, an exception is thrown. Reasons for failure include: source data range or target data range exceeding available range.
public void copyToByteArray(int index, byte @Nonnull[] dest, int destIndex, int length)
fun copyToByteArray(index: Int, dest: Array<Byte>, destIndex: Int, length: Int): Unit
public void copyToByteArray(int index, byte[] dest, int destIndex, int length)
Parameters
| Name |
Type |
Description |
| index |
Int32 |
|
| dest |
|
|
| destIndex |
Int32 |
|
| length |
Int32 |
|
tryCopyFromByteArray
Copies data from a byte array to the Buffer. Returns true if successful, false otherwise. Reasons for failure include: source data range or target data range exceeding available range.
public func tryCopyFromByteArray(_ src: [UInt8]) -> Bool
Parameters
| Name |
Type |
Description |
| src |
|
|
Returns
tryCopyFromByteArray
Copies data from a byte array to the Buffer. Returns true if successful, false otherwise. Reasons for failure include: source data range or target data range exceeding available range.
public func tryCopyFromByteArray(_ src: [UInt8], _ srcIndex: Int32, _ index: Int32, _ length: Int32) -> Bool
Parameters
| Name |
Type |
Description |
| src |
|
|
| srcIndex |
Int32 |
|
| index |
Int32 |
|
| length |
Int32 |
|
Returns
tryCopyToByteArray
Copies data from the Buffer to a byte array. Returns true if successful, false otherwise. Reasons for failure include: source data range or target data range exceeding available range.
public func tryCopyToByteArray(_ dest: [UInt8]) -> Bool
Parameters
| Name |
Type |
Description |
| dest |
|
|
Returns
tryCopyToByteArray
Copies data from the Buffer to a byte array. Returns true if successful, false otherwise. Reasons for failure include: source data range or target data range exceeding available range.
public func tryCopyToByteArray(_ index: Int32, _ dest: [UInt8], _ destIndex: Int32, _ length: Int32) -> Bool
Parameters
| Name |
Type |
Description |
| index |
Int32 |
|
| dest |
|
|
| destIndex |
Int32 |
|
| length |
Int32 |
|
Returns