Resumed to project. INIT

This commit is contained in:
2026-06-17 08:23:13 +02:00
commit fd02ed6d8b
51 changed files with 5067 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# Text Renderer
## Current state
No text rendering exists yet. No font loading or glyph blitting code exists.
## Goal
Draw ASCII text into the `u8` framebuffer using a bitmap font, respecting the palette-index
color model (one u8 per pixel, no RGBA).
## Design notes
- A bitmap font is the right fit: each glyph is a small tile of palette indices, blitted
directly into the framebuffer using the existing blit primitive in `pixelhelper.rs`.
- Likely approach: a fixed 8×8 or similar glyph grid packed into a TGA or raw binary,
one glyph per ASCII codepoint starting at 0x20 (space).
- The font image itself should be indexed: foreground pixels carry a nonzero palette index
(caller supplies the color), background pixels are index 0 (transparent/skip).
- API sketch:
```rust
fn draw_text(frame: &mut [u8], font: &Font, x: i32, y: i32, color: u8, text: &str);
```
- `Font` holds the glyph sheet as an `Image` plus glyph width/height.
## Open questions
- How do we handle proportional spacing of different characters?
- How do we store font data in memory?
- How do we handle font color rendering?
- How do we handle special characters like Ä, Ö, Ü, ß, etc.?