|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /** \page libcaca-font The libcaca font format (version 1)
-
- All types are big endian.
-
- \code
- struct
- {
- magic:
- uint8_t caca_header[2]; // "\xCA\xCA"
- 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
- };
- \endcode
-
- */
|