feat(A.5 T22.5): QualityPreset schema + tests (commit 1/2)

Add QualityPreset enum + QualitySettings readonly record struct with
From(preset) table and WithEnvOverrides() env-var override layer.
Four presets (Low/Medium/High/Ultra) drive NearRadius, FarRadius,
MsaaSamples, AnisotropicLevel, AlphaToCoverage, MaxCompletionsPerFrame.
Env vars (ACDREAM_NEAR_RADIUS, ACDREAM_FAR_RADIUS, ACDREAM_MSAA_SAMPLES,
ACDREAM_ANISOTROPIC, ACDREAM_A2C, ACDREAM_MAX_COMPLETIONS_PER_FRAME)
override individual preset fields for dev spot-testing.

DisplaySettings gains a Quality: QualityPreset field (default High);
SettingsStore persists/loads it under display."quality" as an enum
name string with Enum.TryParse fallback. 12 new QualityPresetTests
cover the preset table (radii, msaa, aniso, a2c, completions) and all
six env-var override paths. 415 UI.Abstractions tests passing.

Wiring into GameWindow / WbDrawDispatcher / TerrainAtlas follows in
commit 2 of this task.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-05-10 08:37:17 +02:00
parent c473feedb3
commit afa4200107
5 changed files with 272 additions and 9 deletions

View file

@ -44,7 +44,8 @@ public sealed class SettingsStoreTests : System.IDisposable
VSync: false,
FieldOfView: 100f,
Gamma: 1.4f,
ShowFps: true);
ShowFps: true,
Quality: AcDream.UI.Abstractions.Settings.QualityPreset.Ultra);
store.SaveDisplay(original);
var loaded = store.LoadDisplay();