640×480 (VGA) intern, UI auf EGA 8×14

Text-getrieben → 80-Spalten-Textmodus-Look; RGB555+Dither bleiben.
Menü-/Dialog-Metriken an die Fonthöhe angepasst, CGA bleibt fürs HUD.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 20:37:18 +02:00
co-authored by Claude Fable 5
parent 9db3929750
commit 186ee9a817
4 changed files with 16 additions and 10 deletions
+7 -3
View File
@@ -1,10 +1,14 @@
//! wgpu-Zustand: Surface, Device und der zweistufige Render-Pfad
//! aus dem Renderer-Plan:
//!
//! Pass 1 (intern): 320×240 RGBA8 + Depth — hier entsteht das Bild
//! Pass 1 (intern): 640×480 RGBA8 + Depth — hier entsteht das Bild
//! ([`ScenePass`], PS1-Shader).
//! Pass 2 (Fenster): Nearest-Upscale des internen Targets mit
//! 4:3-Letterbox (via Viewport) auf die Surface.
//!
//! 640×480 (VGA) statt 320×240: das Spiel ist text-getrieben — die höhere
//! Auflösung trägt den 80-Spalten-Textmodus-Look (EGA 8×14), der Lo-Fi-Rest
//! (RGB555 + Bayer-Dither, affines Mapping) bleibt.
use std::sync::Arc;
@@ -16,8 +20,8 @@ use crate::render::scene::{Mesh, ScenePass};
use crate::render::sprite::SpritePass;
use crate::render::ui::Ui;
pub const INTERNAL_W: u32 = 320;
pub const INTERNAL_H: u32 = 240;
pub const INTERNAL_W: u32 = 640;
pub const INTERNAL_H: u32 = 480;
/// D16 reicht für PS1-Geometrieskalen und ist das älteste, überall
/// (auch GL-Fallback) unterstützte Depth-Format.