83 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package kha.arrays;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Maps a byte array over a byte buffer, allowing for mixed-type access of its contents.
							 | 
						||
| 
								 | 
							
								 * This type unifies with all typed array classes, and vice-versa.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								extern class ByteArray {
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Underlying byte buffer.
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									var buffer(get, null): ByteBuffer;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Length in bytes of the byte array.
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									var byteLength(get, null): Int;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Byte offset into the underlying byte buffer.
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									var byteOffset(get, null): Int;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Creates a new array over a byte buffer.
							 | 
						||
| 
								 | 
							
									 * @param buffer underlying byte buffer
							 | 
						||
| 
								 | 
							
									 * @param byteOffset offset of the first byte of the array into the byte buffer, defaults to 0
							 | 
						||
| 
								 | 
							
									 * @param byteLength amount of bytes to map, defaults to entire buffer 
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									function new(buffer: ByteBuffer, ?byteOffset: Int, ?byteLength: Int): Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
									 * Creates a new array from scratch.
							 | 
						||
| 
								 | 
							
									 * @param byteLength number of bytes to create
							 | 
						||
| 
								 | 
							
									 * @return ByteArray
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									static function make(byteLength: Int): ByteArray;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function getInt8(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint8(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getInt16(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint16(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getInt32(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint32(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getFloat32(byteOffset: Int): FastFloat;
							 | 
						||
| 
								 | 
							
									function getFloat64(byteOffset: Int): Float;
							 | 
						||
| 
								 | 
							
									function setInt8(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint8(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setInt16(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint16(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setInt32(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint32(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setFloat32(byteOffset: Int, value: FastFloat): Void;
							 | 
						||
| 
								 | 
							
									function setFloat64(byteOffset: Int, value: Float): Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function getInt16LE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint16LE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getInt32LE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint32LE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getFloat32LE(byteOffset: Int): FastFloat;
							 | 
						||
| 
								 | 
							
									function getFloat64LE(byteOffset: Int): Float;
							 | 
						||
| 
								 | 
							
									function setInt16LE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint16LE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setInt32LE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint32LE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setFloat32LE(byteOffset: Int, value: FastFloat): Void;
							 | 
						||
| 
								 | 
							
									function setFloat64LE(byteOffset: Int, value: Float): Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function getInt16BE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint16BE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getInt32BE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getUint32BE(byteOffset: Int): Int;
							 | 
						||
| 
								 | 
							
									function getFloat32BE(byteOffset: Int): FastFloat;
							 | 
						||
| 
								 | 
							
									function getFloat64BE(byteOffset: Int): Float;
							 | 
						||
| 
								 | 
							
									function setInt16BE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint16BE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setInt32BE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setUint32BE(byteOffset: Int, value: Int): Void;
							 | 
						||
| 
								 | 
							
									function setFloat32BE(byteOffset: Int, value: FastFloat): Void;
							 | 
						||
| 
								 | 
							
									function setFloat64BE(byteOffset: Int, value: Float): Void;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function subarray(start: Int, ?end: Int): ByteArray;
							 | 
						||
| 
								 | 
							
								}
							 |