Verify MVP UI resolution scaling
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user