CHANGELOG fuer truecolor16, starter-Example auf 620x480
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
### 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.
|
||||||
+3
-3
@@ -12,9 +12,9 @@ use pbio::{rgb565, Event, Key, MouseButton, Platform, PlatformConfig};
|
|||||||
fn main() {
|
fn main() {
|
||||||
let mut p = Platform::new(PlatformConfig {
|
let mut p = Platform::new(PlatformConfig {
|
||||||
title: "pbio starter".into(),
|
title: "pbio starter".into(),
|
||||||
window_size: (960, 720),
|
window_size: (1240, 960),
|
||||||
framebuffer_size: (320, 240),
|
framebuffer_size: (620, 480),
|
||||||
aspect_ratio: Some(4.0/3.0),
|
aspect_ratio: Some(620.0/480.0),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user