summaryrefslogtreecommitdiff
path: root/Base/usr/share/man/man5/font.md
diff options
context:
space:
mode:
Diffstat (limited to 'Base/usr/share/man/man5/font.md')
-rw-r--r--Base/usr/share/man/man5/font.md32
1 files changed, 27 insertions, 5 deletions
diff --git a/Base/usr/share/man/man5/font.md b/Base/usr/share/man/man5/font.md
index 272336b111..ed1a2fe008 100644
--- a/Base/usr/share/man/man5/font.md
+++ b/Base/usr/share/man/man5/font.md
@@ -1,17 +1,39 @@
## Name
-font - Bitmap Font File format
+font - Bitmap Font File format (.font)
## Synopsis
-The .font file format stores bitmap fonts in SerenityOS's own binary format.
+Font files contain bitmap definitions of fonts (`Gfx::BitmapFont`).
## Description
-These files contain bitmap definitions of fonts, either varying-width or fixed-width.
+Bitmap fonts can be either varying-width or fixed-width.
+The first four bytes of font files contain the filemagic: `!Fnt` (0x21466e74).
-The first four bytes contain the filemagic: `!Fnt` (0x21466e74).
+In addition, `Gfx::BitmapFont` supports reading from and writing to font files (as well as reading directly from memory)
+and the question mark '?' used as a fallback for unknown glyphs or emojis.
+
+## Structure
+
+The order is big-endian.
+
+| Size | Member name |
+|------------|---------------------|
+| 4 bytes | Filemagic |
+| 1 byte | Glyph width |
+| 1 byte | Glyph height |
+| 2 bytes | Range mask size |
+| 1 byte | Variable width flag |
+| 1 byte | Glyph spacing |
+| 1 byte | Baseline |
+| 1 byte | Mean line |
+| 1 byte | Presentation size |
+| 2 bytes | Weight |
+| 1 byte | Slope |
+| 32 bytes | Name |
+| 32 bytes | Family |
## See also
-- Format header definition in `Gfx::FontFileHeader` in [`Userland/Libraries/LibGfx/Font/BitmapFont.cpp`](../../../../../Userland/Libraries/LibGfx/Font/BitmapFont.cpp).
+- Format header definition in `Gfx::FontFileHeader` in [`Userland/Libraries/LibGfx/Font/BitmapFont.cpp`](../../../../../Userland/Libraries/LibGfx/Font/BitmapFont.cpp)