The SamsaBuffer object is a subclass of the standard JavaScript DataView. Unlike DataView it has a pointer property, p, that is updated when binary structures are read or written.
For highly optimized operations, it may be better to use a Uint8Array view onto the underlying buffer of the SamsaBuffer. In this case, the client must handle the pointer during the optimized operation and update the pointer of the SamsaBuffer afterwards. But be careful of using similar multi-byte arrays such as Uint16Array and Uint32Array: their byte order is “in the platform byte order”, which for x86 and Apple M-series is little-endian, unlike TrueType which is big-endian throughout.
SamsaBuffer()
SamsaBuffer.buffer
The underlying ArrayBuffer which stores the data of the SamsaBuffer.
SamsaBuffer.byteOffset
The offset from the start of the underlying ArrayBuffer to the start of the SamsaBuffer.
SamsaBuffer.byteLength
The length of the SamsaBuffer buffer in bytes. This may be less than the length of the underlying ArrayBuffer.
SamsaBuffer.pSamsaBuffer, where reading and writing will next take place. Attempting to read or write when p is not in the range [0, SamsaBuffer.byteLength - 1] is an error. Clients may update it directly, but there are also tell(), seek() and seekr() methods. Note that SamsaBuffer.byteOffset + SamsaBuffer.p is always <= SamsaBuffer.buffer.byteLength.SamsaBuffer.tell()
Returns the current value of the pointer p.
SamsaBuffer.seek(pos)
Sets the buffer pointer SamsaBuffer.p to pos. No return value.
SamsaBuffer.seekr(rpos)
Increments the buffer pointer SamsaBuffer.p by rpos. Equivalent SamsaBuffer.p += rpos. No return value.
SamsaBuffer.u8
Getter and setter for an unsigned 8-bit integer.
SamsaBuffer.u16
Getter and setter for an unsigned 16-bit integer.
SamsaBuffer.u24
Getter and setter for an unsigned 24-bit integer.
SamsaBuffer.u32
Getter and setter for an unsigned 32-bit integer.
SamsaBuffer.i8
Getter and setter for a signed 8-bit integer.
SamsaBuffer.i16
Getter and setter for a signed 16-bit integer.
SamsaBuffer.i24
Getter and setter for a signed 24-bit integer.
SamsaBuffer.i32
Getter and setter for a signed 32-bit integer.
SamsaBuffer.tag
Getter and setter for an ASCII string of length 4.
SamsaBuffer.decodeGlyph()
Decodes a glyph from the buffer. Returns a SamsaGlyph object.
SamsaBuffer.encodeGlyph()
Encodes a glyph into the buffer. Returns the number of bytes written.
SamsaBuffer.encodeInstance()
Encodes an instance, being an entire static TrueType font, into the buffer. Returns the number of bytes written.