LifePlay.uproject : SupportedTargetPlatforms Win64 sur LPAnimCore, origine non revendiquee, range ici. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
76 lines
3.7 KiB
Markdown
76 lines
3.7 KiB
Markdown
# 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 |
|