8c647d3700
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
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 (BitsRRRRRGGGGGGBBBBB), keine Palettenindizes mehr. - GPU-Pfad: Die Pixel-Textur ist jetzt
R16Uint(vorherR8Uint); der Fragment-Shader dekodiert die 5/6/5-Bitfelder direkt, statt in einer Paletten-Textur nachzuschlagen. Upload pro Frame:w * h * 2Byte. - Example
starter.rs: schreibt RGB565-Werte viargb565().
Neu
pbio::rgb565(r: u8, g: u8, b: u8) -> u16(const fn) — packt 8-Bit-Kanäle in einen RGB565-Pixelwert.
Entfernt
PlatformConfig::palettesowiepalette()/palette_mut()und das Dirty-Flag-Handling inpresent().- Modul
pbio::paletteinkl. PresetRGB332. - Paletten-Textur und deren Shader-Binding (
@binding(2)). generate_gimp_palette.py(Paletten-Tooling, nur aufmasterrelevant).
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.