libcaca-font(3caca)
NAME
libcaca-font - The libcaca font format (version 1) All types are big
endian.
- struct
{
magic: - uint8_t caca_header[2]; // ''
uint8_t caca_file_type[2]; // 'FT' - font_header:
- uint32_t control_size; // Control size (font_data - font_header) uint32_t data_size; // Data size (EOF - font_data)
- uint16_t version; // Font format version
// bit 0: set to 1 if font is compatible // with version 1 of the format
// bits 1-15: unused yet, must be 0 - uint16_t blocks; // Number of blocks in the font
uint32_t glyphs; // Total number of glyphs in the font - uint16_t bpp; // Bits per pixel for glyph data (valid
- // Values are 1, 2, 4 and 8)
- uint16_t width; // Standard glyph width
uint16_t height; // Standard glyph height
uint16_t maxwidth; // Maximum glyph width
uint16_t maxheight; // Maximum glyph height - uint16_t flags; // Feature flags
- // bit 0: set to 1 if font is fixed width // bits 1-15: unused yet, must be 0
- block_info:
- struct
{uint32_t start; // Unicode index of the first glyph
uint32_t stop; // Unicode index of the last glyph + 1
uint32_t index; // Glyph info index of the first glyph - }
block_list[blocks]; - glyph_info:
- struct
{uint16_t width; // Glyph width in pixels
uint16_t height; // Glyph height in pixels
uint32_t data_offset; // Offset (starting from data) to the data// for the first character}
glyph_list[glyphs]; - control_extension_1:
control_extension_2:... - control_extension_N:
... // reserved for future use
- font_data:
uint8_t data[data_size]; // glyph data
- data_extension_1:
data_extension_2:... - data_extension_N:
... // reserved for future use
- };