|
|
@@ -0,0 +1,60 @@ |
|
|
|
/* |
|
|
|
* libcucul Canvas for ultrafast compositing of Unicode letters |
|
|
|
* Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org> |
|
|
|
* All Rights Reserved |
|
|
|
* |
|
|
|
* This library is free software; you can redistribute it and/or |
|
|
|
* modify it under the terms of the Do What The Fuck You Want To |
|
|
|
* Public License, Version 2, as published by Sam Hocevar. See |
|
|
|
* http://sam.zoy.org/wtfpl/COPYING for more details. |
|
|
|
*/ |
|
|
|
|
|
|
|
/** \file font.c |
|
|
|
* \version \$Id$ |
|
|
|
* \author Sam Hocevar <sam@zoy.org> |
|
|
|
* \brief Colour handling |
|
|
|
* |
|
|
|
* This file contains font handling functions. |
|
|
|
*/ |
|
|
|
|
|
|
|
/* |
|
|
|
* The libcaca font format |
|
|
|
* ----------------------- |
|
|
|
* |
|
|
|
* All types are big endian. |
|
|
|
* |
|
|
|
* struct |
|
|
|
* { |
|
|
|
* uint8_t caca_header[4]; // "CACA" |
|
|
|
* uint8_t caca_file_type[4]; // "FONT" |
|
|
|
* |
|
|
|
* header: |
|
|
|
* uint32_t header_size; // size of the header (data - header) |
|
|
|
* uint16_t version; // font format version (= 1) |
|
|
|
* |
|
|
|
* uint16_t glyphs; // total number of glyphs in the font |
|
|
|
* uint16_t width; // glyph width |
|
|
|
* uint16_t height; // glyph height |
|
|
|
* uint16_t bytes; // bytes used to code each character, |
|
|
|
* // rounded up to a multiple of 2. |
|
|
|
* |
|
|
|
* uint16_t blocks; // number of blocks in the font |
|
|
|
* |
|
|
|
* struct |
|
|
|
* { |
|
|
|
* uint32_t start; // Unicode index of the first character |
|
|
|
* uint32_t end; // Unicode index of the last character + 1 |
|
|
|
* uint32_t offset; // Offset (starting from data) to the data |
|
|
|
* // for the first character |
|
|
|
* } |
|
|
|
* block_list[blocks]; |
|
|
|
* |
|
|
|
* padding: |
|
|
|
* ... // reserved for future use |
|
|
|
* |
|
|
|
* data: |
|
|
|
* uint4_t[glyphs * bytes]; // glyph data |
|
|
|
* }; |
|
|
|
* |
|
|
|
*/ |
|
|
|
|