Files
OpenCellular/firmware/lib/include/bmpblk_font.h
Gabe Black ac8805e7e9 Get rid of some crufty macros.
These were macros that were never used, or that were only set to one thing and
could be substituted up front.

I left in code guarded by the HAVE_ENDIAN_H and HAVE_LITTLE_ENDIAN macros even
though those are never defined because they guard a reportedly significantly
faster implementation of some functionality, at least according to a comment
in the source. It would be a good idea to enable that code path and see if it
really does make a big difference before removing it entirely.

BUG=None
TEST=Built for Link, Daisy, and the host with FEATURES=test. Built depthcharge
for Link and booted in normal mode.
BRANCH=None

Change-Id: I934a4dd0da169ac018ba07350d56924ab88b1acc
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/45687
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
2013-03-19 16:55:44 -07:00

64 lines
2.1 KiB
C

/* 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_ */