| /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| * |
| * This describes the internal format used to pack a set of character glpyhs so |
| * we can render strings by drawing one character at a time. |
| * |
| * The format is this: |
| * |
| * +-------------------------+ |
| * | FontArrayHeader | |
| * +-------------------------+ |
| * | FontArrayEntryHeader[0] | |
| * +-------------------------+ |
| * | raw image data[0] | |
| * +-------------------------+ |
| * | FontArrayEntryHeader[1] | |
| * +-------------------------+ |
| * | raw image data[1] | |
| * +-------------------------+ |
| * | FontArrayEntryHeader[2] | |
| * +-------------------------+ |
| * | raw image data[2] | |
| * +-------------------------+ |
| * ... |
| * +-------------------------+ |
| * | FontArrayEntryHeader[n] | |
| * +-------------------------+ |
| * | raw image data[n] | |
| * +-------------------------+ |
| * |
| * The FontArrayHeader describes how many characters will be encoded. |
| * Each character encoding consists of a FontArrayEntryHeader followed |
| * immediately by the raw image data for that character. |
| */ |
| |
| #ifndef VBOOT_REFERENCE_BMPBLK_FONT_H_ |
| #define VBOOT_REFERENCE_BMPBLK_FONT_H_ |
| |
| #include "bmpblk_header.h" |
| |
| #define FONT_SIGNATURE "FONT" |
| #define FONT_SIGNATURE_SIZE 4 |
| |
| typedef struct FontArrayHeader { |
| uint8_t signature[FONT_SIGNATURE_SIZE]; |
| uint32_t num_entries; /* Number of chars encoded here. */ |
| } __attribute__((packed)) FontArrayHeader; |
| |
| typedef struct FontArrayEntryHeader { |
| uint32_t ascii; /* What to show. Could even be UTF? */ |
| ImageInfo info; /* Describes the bitmap. */ |
| |
| /* |
| * The image to use follows immediately, NOT compressed. It's |
| * uncompressed because each glyph is only a few hundred bytes, but |
| * they have much in common (colormaps, for example). When we add the |
| * whole font blob to the bmpblk, it will be compressed as a single |
| * item there. |
| */ |
| } __attribute__((packed)) FontArrayEntryHeader; |
| |
| #endif /* VBOOT_REFERENCE_BMPBLK_FONT_H_ */ |