UNPKG

@pixi/core

Version:
59 lines (58 loc) 2.23 kB
class ViewableBuffer { constructor(sizeOrBuffer) { typeof sizeOrBuffer == "number" ? this.rawBinaryData = new ArrayBuffer(sizeOrBuffer) : sizeOrBuffer instanceof Uint8Array ? this.rawBinaryData = sizeOrBuffer.buffer : this.rawBinaryData = sizeOrBuffer, this.uint32View = new Uint32Array(this.rawBinaryData), this.float32View = new Float32Array(this.rawBinaryData); } /** View on the raw binary data as a `Int8Array`. */ get int8View() { return this._int8View || (this._int8View = new Int8Array(this.rawBinaryData)), this._int8View; } /** View on the raw binary data as a `Uint8Array`. */ get uint8View() { return this._uint8View || (this._uint8View = new Uint8Array(this.rawBinaryData)), this._uint8View; } /** View on the raw binary data as a `Int16Array`. */ get int16View() { return this._int16View || (this._int16View = new Int16Array(this.rawBinaryData)), this._int16View; } /** View on the raw binary data as a `Uint16Array`. */ get uint16View() { return this._uint16View || (this._uint16View = new Uint16Array(this.rawBinaryData)), this._uint16View; } /** View on the raw binary data as a `Int32Array`. */ get int32View() { return this._int32View || (this._int32View = new Int32Array(this.rawBinaryData)), this._int32View; } /** * Returns the view of the given type. * @param type - One of `int8`, `uint8`, `int16`, * `uint16`, `int32`, `uint32`, and `float32`. * @returns - typed array of given type */ view(type) { return this[`${type}View`]; } /** Destroys all buffer references. Do not use after calling this. */ destroy() { this.rawBinaryData = null, this._int8View = null, this._uint8View = null, this._int16View = null, this._uint16View = null, this._int32View = null, this.uint32View = null, this.float32View = null; } static sizeOf(type) { switch (type) { case "int8": case "uint8": return 1; case "int16": case "uint16": return 2; case "int32": case "uint32": case "float32": return 4; default: throw new Error(`${type} isn't a valid view type`); } } } export { ViewableBuffer }; //# sourceMappingURL=ViewableBuffer.mjs.map