UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

432 lines • 11.2 kB
/** * Utility for reading/writing binary data * Mostly useful for serialization/deserialization tasks */ export class BinaryBuffer { /** * * @param {EndianType} type * @return {BinaryBuffer} */ static fromEndianness(type: EndianType): BinaryBuffer; /** * * @param {ArrayBuffer} v * @return {BinaryBuffer} */ static fromArrayBuffer(v: ArrayBuffer): BinaryBuffer; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {string} Copied value */ static copyUTF8String(source: BinaryBuffer, target: BinaryBuffer): string; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {number} Copied value */ static copyUintVar(source: BinaryBuffer, target: BinaryBuffer): number; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {number} Copied value */ static copyUint8(source: BinaryBuffer, target: BinaryBuffer): number; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {number} Copied value */ static copyUint16(source: BinaryBuffer, target: BinaryBuffer): number; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {number} Copied value */ static copyUint32(source: BinaryBuffer, target: BinaryBuffer): number; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {number} Copied value */ static copyFloat32(source: BinaryBuffer, target: BinaryBuffer): number; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @returns {number} Copied value */ static copyFloat64(source: BinaryBuffer, target: BinaryBuffer): number; /** * * @param {BinaryBuffer} source * @param {BinaryBuffer} target * @param {number} length */ static copyBytes(source: BinaryBuffer, target: BinaryBuffer, length: number): Uint8Array<ArrayBuffer>; /** * Default is little-endian as most platforms operate in little-endian * The reason this is fixed is to ensure cross-platform compatibility * @type {EndianType|boolean} */ endianness: EndianType | boolean; /** * * @type {number} */ position: number; set length(v: void); get length(): void; /** * * @type {number} */ capacity: number; /** * * @type {ArrayBuffer} * @private */ private data; /** * * @type {DataView} * @private */ private dataView; /** * * @type {Uint8Array} * @private */ private __data_uint8; /** * * @type {number} * @private */ private __growFactor; /** * Access raw underlying bytes attached to the buffer * @return {Uint8Array} */ get raw_bytes(): Uint8Array; /** * @param {ArrayBuffer} data */ fromArrayBuffer(data: ArrayBuffer): void; /** * Set capacity to contain data only up to current position * @returns {BinaryBuffer} */ trim(): BinaryBuffer; /** * * @param {number} capacity */ setCapacity(capacity: number): void; /** * * @param {number} min_capacity */ ensureCapacity(min_capacity: number): void; /** * * @returns {number} */ readFloat16(): number; /** * * @returns {number} */ readFloat32(): number; /** * * @returns {number} */ readFloat64(): number; readInt8(): number; readInt16(): number; /** * * @returns {number} */ readInt32(): number; /** * * @returns {number} */ readUint8(): number; /** * * @returns {number} */ readUint16(): number; /** * * @returns {number} */ readUint16LE(): number; /** * * @returns {number} */ readUint16BE(): number; /** * * @returns {number} */ readUint24(): number; /** * * @returns {number} */ readUint24LE(): number; /** * * @returns {number} */ readUint24BE(): number; /** * * @returns {number} */ readUint32(): number; /** * * @returns {number} */ readUint32LE(): number; /** * * @returns {number} */ readUint32BE(): number; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Uint8Array} destination */ readUint8Array(destination: Uint8Array, destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Uint16Array} destination */ readUint16Array(destination: Uint16Array, destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Uint32Array|number[]|ArrayLike<number>} destination */ readUint32Array(destination: Uint32Array | number[] | ArrayLike<number>, destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Int8Array} destination */ readInt8Array(destination: Int8Array, destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Int16Array} destination */ readInt16Array(destination: Int16Array, destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Int32Array} destination */ readInt32Array(destination: Int32Array, destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Float32Array|number[]} destination */ readFloat32Array(destination: Float32Array | number[], destination_offset: number, length: number): void; /** * * @param {number} destination_offset starting index in the destination array * @param {number} length number of elements to read * @param {Float64Array} destination */ readFloat64Array(destination: Float64Array, destination_offset: number, length: number): void; /** * * @param {number} source_offset starting index in the source array * @param {number} length number of elements to read * @param {Float32Array|number[]} source */ writeFloat32Array(source: Float32Array | number[], source_offset: number, length: number): void; /** * * @param {number} value */ writeFloat16(value: number): void; /** * * @param {number} value */ writeFloat32(value: number): void; /** * * @param {number} value */ writeFloat64(value: number): void; /** * * @param {number} value */ writeInt8(value: number): void; /** * * @param {number} value */ writeInt16(value: number): void; /** * * @param {number} value */ writeInt32(value: number): void; /** * * @param {number} value */ writeUint8(value: number): void; /** * * @param {Uint8Array|number[]} source * @param {number} source_offset * @param {number} length */ writeUint8Array(source: Uint8Array | number[], source_offset: number, length: number): void; /** * * @param {number} value */ writeUint16(value: number): void; /** * * @param {number} value */ writeUint16BE(value: number): void; /** * * @param {number} value */ writeUint16LE(value: number): void; /** * * @param {Uint16Array|number[]} source * @param {number} source_offset * @param {number} length */ writeUint16Array(source: Uint16Array | number[], source_offset: number, length: number): void; /** * * @param {number} value */ writeUint24(value: number): void; /** * * @param {number} value */ writeUint24BE(value: number): void; /** * * @param {number} value */ writeUint24LE(value: number): void; /** * Write Uint of variable length * NOTE: uses 7-bit encoding with 1 bit used for carry-over flag * @param {number} value */ writeUintVar(value: number): void; /** * Read Uint of variable length, a compliment to {@link #writeUintVar} * @returns {number} */ readUintVar(): number; /** * * @param {number} value */ writeUint32(value: number): void; /** * * @param {number} value */ writeUint32BE(value: number): void; /** * * @param {number} value */ writeUint32LE(value: number): void; /** * * @param {Uint32Array|number[]|ArrayLike<number>} source * @param {number} source_offset * @param {number} length */ writeUint32Array(source: Uint32Array | number[] | ArrayLike<number>, source_offset: number, length: number): void; /** * * @param {Uint8Array|Uint8ClampedArray} array * @param {number} source_offset * @param {number} length */ writeBytes(array: Uint8Array | Uint8ClampedArray, source_offset: number, length: number): void; /** * * @param {Uint8Array} destination * @param {number} destination_offset * @param {number} length */ readBytes(destination: Uint8Array, destination_offset: number, length: number): void; /** * Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js * @licence Original license is Apache 2.0 * @param {String} string */ writeUTF8String(string: string): void; /** * Adapted from https://github.com/samthor/fast-text-encoding/blob/master/text.js * @licence Original license is Apache 2.0 * @returns {String} */ readUTF8String(): string; /** * * @param {string} string */ writeASCIIString(string: string): void; /** * * @param {number} length * @param {boolean} [null_terminated] * @returns {string} */ readASCIICharacters(length: number, null_terminated?: boolean): string; /** * @readonly * @type {boolean} */ readonly isBinaryBuffer: boolean; } import { EndianType } from "./EndianType.js"; //# sourceMappingURL=BinaryBuffer.d.ts.map