Buffer Class¶
Description¶
Buffer stores a raw byte array, which can be used to access image data.
To access image data in Java API, get buffer from Image and copy to a Java byte array.
You can always access image data since the first version of EasyAR Sense. Refer to Image .
wrap¶
Wraps a raw memory block. When Buffer is released by all holders, deleter callback will be invoked to execute user-defined memory destruction. deleter must be thread-safe.
- C
void easyar_Buffer_wrap(void * ptr, int size, easyar_FunctorOfVoid deleter, easyar_Buffer * * Return)
- C++
static std::shared_ptr<Buffer> wrap(void * ptr, int size, std::function<void()> deleter)
- Java
public static @Nonnull Buffer wrap(long ptr, int size, @Nonnull FunctorOfVoid deleter)
- Kotlin
companion object fun wrap(ptr: Long, size: Int, deleter: FunctorOfVoid): Buffer
- Objective-C
+ (easyar_Buffer *)wrap:(void *)ptr size:(int)size deleter:(void (^)())deleter
- Swift
public static func wrap(_ ptr: OpaquePointer?, _ size: Int32, _ deleter: @escaping () -> Void) -> Buffer
- C#
public static Buffer wrap(IntPtr ptr, int size, Action deleter)
create¶
Creates a Buffer of specified byte size.
- C
void easyar_Buffer_create(int size, easyar_Buffer * * Return)
- C++
static std::shared_ptr<Buffer> create(int size)
- Java
public static @Nonnull Buffer create(int size)
- Kotlin
companion object fun create(size: Int): Buffer
- Objective-C
+ (easyar_Buffer *)create:(int)size
- Swift
public static func create(_ size: Int32) -> Buffer
- C#
public static Buffer create(int size)
data¶
Returns raw data address.
- C
void * easyar_Buffer_data(const easyar_Buffer * This)
- C++
void * data()
- Java
public long data()
- Kotlin
fun data(): Long
- Objective-C
- (void *)data
- Swift
public func data() -> OpaquePointer?
- C#
public virtual IntPtr data()
size¶
Byte size of raw data.
- C
int easyar_Buffer_size(const easyar_Buffer * This)
- C++
int size()
- Java
public int size()
- Kotlin
fun size(): Int
- Objective-C
- (int)size
- Swift
public func size() -> Int32
- C#
public virtual int size()
memoryCopy¶
Copies raw memory. It can be used in languages or platforms without complete support for memory operations.
- C
void easyar_Buffer_memoryCopy(void * src, void * dest, int length)
- C++
static void memoryCopy(void * src, void * dest, int length)
- Java
public static void memoryCopy(long src, long dest, int length)
- Kotlin
companion object fun memoryCopy(src: Long, dest: Long, length: Int): Unit
- Objective-C
+ (void)memoryCopy:(void *)src dest:(void *)dest length:(int)length
- Swift
public static func memoryCopy(_ src: OpaquePointer?, _ dest: OpaquePointer?, _ length: Int32) -> Void
- C#
public static void memoryCopy(IntPtr src, IntPtr dest, int length)
tryCopyFrom¶
Tries to copy data from a raw memory address into Buffer. If copy succeeds, it returns true, or else it returns false. Possible failure causes includes: source or destination data range overflow.
- C
bool easyar_Buffer_tryCopyFrom(easyar_Buffer * This, void * src, int srcIndex, int index, int length)
- C++
bool tryCopyFrom(void * src, int srcIndex, int index, int length)
- Java
public boolean tryCopyFrom(long src, int srcIndex, int index, int length)
- Kotlin
fun tryCopyFrom(src: Long, srcIndex: Int, index: Int, length: Int): Boolean
- Objective-C
- (bool)tryCopyFrom:(void *)src srcIndex:(int)srcIndex index:(int)index length:(int)length
- Swift
public func tryCopyFrom(_ src: OpaquePointer?, _ srcIndex: Int32, _ index: Int32, _ length: Int32) -> Bool
- C#
public virtual bool tryCopyFrom(IntPtr src, int srcIndex, int index, int length)
tryCopyTo¶
Tries to copy data from Buffer to user array. If copy succeeds, it returns true, or else it returns false. Possible failure causes includes: source or destination data range overflow.
- C
bool easyar_Buffer_tryCopyTo(easyar_Buffer * This, int index, void * dest, int destIndex, int length)
- C++
bool tryCopyTo(int index, void * dest, int destIndex, int length)
- Java
public boolean tryCopyTo(int index, long dest, int destIndex, int length)
- Kotlin
fun tryCopyTo(index: Int, dest: Long, destIndex: Int, length: Int): Boolean
- Objective-C
- (bool)tryCopyTo:(int)index dest:(void *)dest destIndex:(int)destIndex length:(int)length
- Swift
public func tryCopyTo(_ index: Int32, _ dest: OpaquePointer?, _ destIndex: Int32, _ length: Int32) -> Bool
- C#
public virtual bool tryCopyTo(int index, IntPtr dest, int destIndex, int length)
partition¶
Creates a sub-buffer with a reference to the original Buffer. A Buffer will only be released after all its sub-buffers are released.
- C
void easyar_Buffer_partition(easyar_Buffer * This, int index, int length, easyar_Buffer * * Return)
- C++
std::shared_ptr<Buffer> partition(int index, int length)
- Java
public @Nonnull Buffer partition(int index, int length)
- Kotlin
fun partition(index: Int, length: Int): Buffer
- Objective-C
- (easyar_Buffer *)partition:(int)index length:(int)length
- Swift
public func partition(_ index: Int32, _ length: Int32) -> Buffer
- C#
public virtual Buffer partition(int index, int length)
wrapByteArray¶
Wraps a byte array. The start position and length can be specified. Read-only or read-write can be specified. (Read-only Buffer may be faster on release.) A deleter callback can be specified. When Buffer is released by all holders, deleter callback will be invoked to execute user-defined memory destruction. deleter must be thread-safe.
- Java
public static @Nonnull Buffer wrapByteArray(byte @Nonnull[] bytes)
public static @Nonnull Buffer wrapByteArray(byte @Nonnull[] bytes, int index, int length, boolean readOnly, @Nonnull FunctorOfVoid deleter)
- Kotlin
companion object fun wrapByteArray(bytes: Array<Byte>): Buffer
companion object fun wrapByteArray(bytes: Array<Byte>, index: Int, length: Int, readOnly: Boolean, deleter: FunctorOfVoid): Buffer
- C#
public static Buffer wrapByteArray(byte[] bytes)
public static Buffer wrapByteArray(byte[] bytes, int index, int length)
public static Buffer wrapByteArray(byte[] bytes, int index, int length, Action deleter)
wrapBuffer¶
Wraps a java.nio.Buffer. A deleter callback can be specified. When Buffer is released by all holders, deleter callback will be invoked to execute user-defined memory destruction. deleter must be thread-safe.
- Java
public static @Nonnull Buffer wrapBuffer(java.nio.@Nonnull Buffer directBuffer)
public static @Nonnull Buffer wrapBuffer(java.nio.@Nonnull Buffer directBuffer, @Nonnull FunctorOfVoid deleter)
- Kotlin
companion object fun wrapBuffer(directBuffer: java.nio.Buffer): Buffer
companion object fun wrapBuffer(directBuffer: java.nio.Buffer, deleter: FunctorOfVoid): Buffer
copyFromByteArray¶
Copies data from a byte array into Buffer. If copy failed, an exception will be thrown. Possible failure causes includes: source or destination data range overflow.
- Java
public void copyFromByteArray(byte @Nonnull[] src)
public void copyFromByteArray(byte @Nonnull[] src, int srcIndex, int index, int length)
- Kotlin
fun copyFromByteArray(src: Array<Byte>): Unit
fun copyFromByteArray(src: Array<Byte>, srcIndex: Int, index: Int, length: Int): Unit
- C#
public void copyFromByteArray(byte[] src)
public void copyFromByteArray(byte[] src, int srcIndex, int index, int length)
copyToByteArray¶
Copies data from Buffer to a byte array. If copy failed, an exception will be thrown. Possible failure causes includes: source or destination data range overflow.
- Java
public void copyToByteArray(byte @Nonnull[] dest)
public void copyToByteArray(int index, byte @Nonnull[] dest, int destIndex, int length)
- Kotlin
fun copyToByteArray(dest: Array<Byte>): Unit
fun copyToByteArray(index: Int, dest: Array<Byte>, destIndex: Int, length: Int): Unit
- C#
public void copyToByteArray(byte[] dest)
public void copyToByteArray(int index, byte[] dest, int destIndex, int length)
tryCopyFromByteArray¶
Tries to copy data from a byte array into Buffer. If copy succeeds, it returns true, or else it returns false. Possible failure causes includes: source or destination data range overflow.
- Swift
public func tryCopyFromByteArray(_ src: [UInt8]) -> Bool
public func tryCopyFromByteArray(_ src: [UInt8], _ srcIndex: Int32, _ index: Int32, _ length: Int32) -> Bool
tryCopyToByteArray¶
Tries to copy data from Buffer to a byte array. If copy succeeds, it returns true, or else it returns false. Possible failure causes includes: source or destination data range overflow.
- Swift
public func tryCopyToByteArray(_ dest: [UInt8]) -> Bool
public func tryCopyToByteArray(_ index: Int32, _ dest: [UInt8], _ destIndex: Int32, _ length: Int32) -> Bool