Files
pbio/CHANGELOG.md
T

55 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## Branch `truecolor16` — 16-Bit-Truecolor (RGB565)
Abzweig von `master` (nach `2d81471 poll_event`). Ersetzt den 8-Bit-Paletten-Renderer
durch direktes RGB565-Truecolor. Beide Varianten bleiben unabhängig nutzbar:
`master` = 8 Bit indiziert, `truecolor16` = 16 Bit direkt.
### Geändert
- **Framebuffer**: `framebuffer_mut()` liefert `&mut [u16]` statt `&mut [u8]`.
Jeder Wert ist ein RGB565-Pixel (Bits `RRRRRGGGGGGBBBBB`), keine Palettenindizes mehr.
- **GPU-Pfad**: Die Pixel-Textur ist jetzt `R16Uint` (vorher `R8Uint`); der
Fragment-Shader dekodiert die 5/6/5-Bitfelder direkt, statt in einer
Paletten-Textur nachzuschlagen. Upload pro Frame: `w * h * 2` Byte.
- **Example** `starter.rs`: schreibt RGB565-Werte via `rgb565()`.
### Neu
- `pbio::rgb565(r: u8, g: u8, b: u8) -> u16` (const fn) — packt 8-Bit-Kanäle
in einen RGB565-Pixelwert.
- `Key::CapsLock` als Tasten-Event (X11, Wayland, Windows — winit 0.30 meldet
Capslock auf macOS nicht als `KeyboardInput`).
- `Platform::caps_lock() -> Option<bool>` — Capslock-Zustand, heuristisch
abgeleitet, da winit ihn nicht plattformübergreifend liefert: `CapsLock`-Druck
toggelt, ein getippter Buchstabe (A–Z-Taste ohne Modifier) setzt ihn anhand
von Groß-/Kleinschreibung. `None`, bis der erste Buchstabe getippt wurde.
### Entfernt
- `PlatformConfig::palette` sowie `palette()` / `palette_mut()` und das
Dirty-Flag-Handling in `present()`.
- Modul `pbio::palette` inkl. Preset `RGB332`.
- Paletten-Textur und deren Shader-Binding (`@binding(2)`).
- `generate_gimp_palette.py` (Paletten-Tooling, nur auf `master` relevant).
### Migration von `master`
| 8 Bit (`master`) | 16 Bit (`truecolor16`) |
|---|---|
| `fb[i] = index` | `fb[i] = rgb565(r, g, b)` |
| `p.palette_mut()[i] = [r, g, b]` | entfällt — Farbe direkt ins Pixel schreiben |
| `PlatformConfig { palette: …, .. }` | Feld entfernt |
Paletten-Effekte (Color-Cycling, Fades über `palette_mut()`) gibt es hier
nicht — die entsprechenden Farbwerte müssen pro Frame in den Framebuffer
geschrieben werden.
### Unverändert
Events (`poll_event`/`drain_events`), Letterbox/`aspect_ratio`,
Cursor-Modi (`set_mouse_visible`/`set_mouse_capture`), `mouse_delta()`,
VSync-Handling, Fenster-/Surface-Verwaltung.