LifePlay-Revival/Docs/Migration/etat/VQ/VQ2/VQ2-VAL.md
edujiro5972 0f1a61c9fe VQ : qualite video (sous-systeme LPVideoQuality, onglet Reglages, DefaultScalability), lots VQ0 a VQ5 et correctifs (CHG-237 a 242)
LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:40:47 +02:00

3.7 KiB

VQ2-VAL — Validation ULPVideoQualitySubsystem

Fiche : VQ2-T4 Rôle : A-VAL Date : 07 octobre 2026 Entrée : VQ2-IMPL-H.md (VQ2-T2 + T3), VQ2-SPEC.md

Modèle

Modèle
Prévu / attendu claude-sonnet-5-5-high (M2)
Utilisé claude-sonnet-5-5-high (Claude Sonnet 5.5)

Verdict : PASS (avec BLOCKED-UI sur le test manuel Settings)

Preuves

1. Fichiers

Vérification Résultat
Source/LifePlay/LPVideoQualitySubsystem.h présent (modifié 23:21)
Source/LifePlay/LPVideoQualitySubsystem.cpp présent (modifié 23:22)
UnrealEditor-LifePlay.dll 23:23:26, postérieur aux sources (VQ2-IMPL : compile OK, exit 0)

2. CategoryOf (LPSettingsSubsystem.cpp l.140-154)

  • BackButton → TabAlways : OK
  • ShadowQuality, PostProcessQuality, PostProcessAAQuality → TabHidden (-2, constante l.41) : OK
  • Nom commençant par LPColor ou LPVideo → TabVideo : OK
  • ApplyRows (l.599) : bShow = Category == TabAlways || (Category != TabHidden && ActiveTab != TabKeyboard && Category == ActiveTab) : OK
  • Le Tick de ULPSettingsSubsystem rappelle ApplyRows() quand GetChildrenCount() change (l.281-284) : la question Q2 d'IMPL-H est confirmée en statique.

3. Grep symboles (Source/)

Symbole Occurrences
SetLevels .h:59, .cpp:251 (définition), appels l.299, 310, 321, 332, 343, 350
RefreshWidgets .h:61, .cpp:268 (définition), appelé l.264 et l.572
EnsureControls .h:94, .cpp:431 (définition), appelé dans Tick l.140

4. Démarrage runtime (test à blanc)

Commande : UnrealEditor-Cmd.exe LifePlay.uproject -game -nullrhi -nosound -unattended -nosplash -ExecCmds="quit", exit code 0, environ 77 s. Journal : Saved/Logs/VQ2VAL.log.

LogLifePlay: Display: Video : pas de .../Saved/Config/Windows/LPVideoQuality.ini, niveaux lus depuis Scalability (Overall 3, Shadows 3, Textures 3, Effects 3, AA 3)
  • Initialize → Load() s'exécute et logue la lecture depuis Scalability. L'abonnement au ticker n'a pas fait crasher le démarrage.
  • Comme prévu par le drapeau bConfigured : pas d'INI et pas d'action du joueur, donc pas de ligne « qualite appliquee » (état moteur préservé).
  • Pas de Video : controles ajoutes ... : le menu Settings n'a pas été ouvert (attendu en -nullrhi sans interaction).
  • Pas de Warning ni d'Error du sous-système vidéo. Une seule Error dans le journal : LogPlayerController: InputMode:UIOnly - Attempting to focus Non-Focusable widget (l.1468), sans lien avec VQ2 (UI du jeu).

Reste à faire — BLOCKED-UI

Test manuel Settings non automatisable ici. À faire à la main, puis relire le journal :

  1. Ouvrir Settings > onglet vidéo : les 6 lignes LPVideo* doivent apparaître avant les lignes LPColor* ; ShadowQuality, PostProcessQuality, PostProcessAAQuality doivent être masqués. Journal attendu : Video : controles ajoutes avant les reglages de couleur.
  2. Déplacer LPVideoOverall : les 4 sliders suivent (SetLevels(..., true)) ; modifier un slider fait passer Overall à Custom.
  3. Bouton LPVideoRecommended : log Recommended = stub (High).
  4. Quitter et relancer : Saved/Config/Windows/LPVideoQuality.ini relu (Video : relu Overall ...).
  5. Onglets Audio, Lewd et Clavier non perturbés ; BackButton toujours visible.

Synthèse

Critère Statut
Compile OK (VQ2-IMPL) PASS
Code complet (SetLevels, RefreshWidgets, EnsureControls) PASS
CategoryOf (LPVideo*, TabHidden) PASS
Démarrage sans crash + log Load PASS
Test manuel Settings BLOCKED-UI