Verify MVP UI resolution scaling

This commit is contained in:
2026-05-18 21:20:57 -07:00
parent 2adc683044
commit 485dd61f7a
3 changed files with 69 additions and 3 deletions
@@ -0,0 +1,60 @@
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
FRONTEND_CPP = ROOT / "Source" / "AgrarianGame" / "AgrarianMvpFrontendWidget.cpp"
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
COMMON_RESOLUTIONS = [
(1280, 720),
(1366, 768),
(1600, 900),
(1920, 1080),
(2560, 1440),
]
SUPPORTED_SCALES = [0.75, 1.0, 1.25, 1.5]
def panel_size(width, height, scale):
minimum_margin = 24.0
preferred_width = 780.0
preferred_height = 430.0
available_width = max(320.0, width - (minimum_margin * 2.0))
available_height = max(240.0, height - (minimum_margin * 2.0))
return min(available_width, preferred_width * scale), min(available_height, preferred_height * scale)
def main():
frontend_text = FRONTEND_CPP.read_text(encoding="utf-8")
roadmap_text = ROADMAP.read_text(encoding="utf-8")
expected_source = [
"MinimumPanelMargin = 24.0f",
"PreferredPanelWidth = 780.0f",
"PreferredPanelHeight = 430.0f",
"AvailablePanelSize",
"FMath::Clamp(UiScale, 0.75f, 1.5f)",
]
missing = [snippet for snippet in expected_source if snippet not in frontend_text]
for width, height in COMMON_RESOLUTIONS:
for scale in SUPPORTED_SCALES:
panel_width, panel_height = panel_size(width, height, scale)
if panel_width > width - 48.0:
missing.append(f"panel overflows width at {width}x{height} scale {scale}")
if panel_height > height - 48.0:
missing.append(f"panel overflows height at {width}x{height} scale {scale}")
if panel_width < 320.0 or panel_height < 240.0:
missing.append(f"panel below minimum at {width}x{height} scale {scale}")
if "[x] Ensure UI scales on common resolutions." not in roadmap_text:
missing.append("roadmap item not complete")
if missing:
raise RuntimeError("MVP UI common resolution scaling verification failed: " + "; ".join(missing))
print("Agrarian MVP UI common resolution scaling verification complete.")
if __name__ == "__main__":
main()