|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires des ombres du plan physique (LOT-55, EX-REN-045). More...
#include <optional>#include <gtest/gtest.h>#include "Core/Ecs/Components/Transform.h"#include "Core/Ecs/World.h"#include "Core/Levels/TileMap.h"#include "Core/Levels/TileType.h"#include "HMI/Graphics/PreviousPosition.h"#include "HMI/Graphics/QuadRecorder.h"#include "HMI/Graphics/ShadowRenderer.h"#include "HMI/Graphics/TileSilhouette.h"#include "HMI/Graphics/TileSkinTag.h"#include "HMI/Graphics/TileVisuals.h"Functions | |
| TEST (ShadowRenderTest, TuilePleineProjetteUnQuadDecaleSurShadow) | |
| Une tuile pleine (Solid) projette un quad d'ombre, decale, sur RenderLayer::Shadow. | |
| TEST (ShadowRenderTest, DouzeSilhouettesMemeRegionQueRegionForTile) | |
| Chacun des douze types a silhouette projette une ombre echantillonnant EXACTEMENT la meme region d'atlas que hmi::regionForTile — la meme forme que la silhouette affichee, sans reimplementer la geometrie (LOT-42). | |
| TEST (ShadowRenderTest, BlocPoussableEnMouvementOmbreInterpolee) | |
| Un bloc poussable en mouvement (PreviousPosition distincte de la position courante) voit son ombre interpolee exactement comme son propre sprite (EX-ARCH-031). | |
| TEST (ShadowRenderTest, PorteSuitLEtatCourantDeLaGrilleDeCollision) | |
| Une porte suit l'etat COURANT de la grille de collision des mecanismes, pas son type statique (toujours TileType::Door) : fermee (solide) elle projette une ombre, ouverte elle n'en projette plus ; sans grille fournie, jamais d'ombre. | |
Tests unitaires des ombres du plan physique (LOT-55, EX-REN-045).
| TEST | ( | ShadowRenderTest | , |
| BlocPoussableEnMouvementOmbreInterpolee | ) |
Un bloc poussable en mouvement (PreviousPosition distincte de la position courante) voit son ombre interpolee exactement comme son propre sprite (EX-ARCH-031).
Cas de test : Bloc poussable en mouvement : ombre interpolee.
Categorie : Unitaire · Ombres du plan physique
Criticite : Majeur
Etapes :
1. Peupler un Block avec une PreviousPosition distincte.
2. Composer a interpolationAlpha = 0.5.
Resultat attendu : Le quad d'ombre est a mi-chemin entre les deux positions, plus l'offset.
| TEST | ( | ShadowRenderTest | , |
| DouzeSilhouettesMemeRegionQueRegionForTile | ) |
Chacun des douze types a silhouette projette une ombre echantillonnant EXACTEMENT la meme region d'atlas que hmi::regionForTile — la meme forme que la silhouette affichee, sans reimplementer la geometrie (LOT-42).
Cas de test : Silhouettes : ombre a la meme region d'atlas que la tuile.
Categorie : Unitaire · Ombres du plan physique
Criticite : Critique
Etapes :
1. Peupler chacun des douze types a silhouette.
2. Composer les ombres.
Resultat attendu : Les UV du quad d'ombre correspondent a hmi::regionForTile(type).
| TEST | ( | ShadowRenderTest | , |
| PorteSuitLEtatCourantDeLaGrilleDeCollision | ) |
Une porte suit l'etat COURANT de la grille de collision des mecanismes, pas son type statique (toujours TileType::Door) : fermee (solide) elle projette une ombre, ouverte elle n'en projette plus ; sans grille fournie, jamais d'ombre.
Cas de test : Porte : ombre selon l'etat courant de la grille de collision.
Categorie : Unitaire · Ombres du plan physique
Criticite : Critique
Etapes :
1. Peupler une porte.
2. Composer sans grille, puis avec une grille ou elle est fermee, puis ouverte.
Resultat attendu : Aucune ombre sans grille ; une ombre fermee ; aucune ouverte.
| TEST | ( | ShadowRenderTest | , |
| TuilePleineProjetteUnQuadDecaleSurShadow | ) |
Une tuile pleine (Solid) projette un quad d'ombre, decale, sur RenderLayer::Shadow.
Cas de test : Tuile pleine : quad d'ombre decale sur Shadow.
Categorie : Unitaire · Ombres du plan physique
Criticite : Critique
Etapes :
1. Peupler une tuile Solid.
2. Composer les ombres en mode Texture.
Resultat attendu : Un quad est emis sur RenderLayer::Shadow, decale de l'offset attendu.