JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
PlaneVisuals.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <cstddef>
7#include <filesystem>
8#include <string>
9#include <vector>
10
11#include "Core/Levels/Plane.h"
12#include "Core/Math/Rect.h"
16
22
23namespace hmi {
24
25class TextureCache;
26
29inline const std::string PLANES_SUBDIRECTORY = "Plans/";
30
42[[nodiscard]] RenderLayer planeRenderLayer(core::PlaneDepth depth) noexcept;
43
56 int width = 0;
58 int height = 0;
59};
60
72[[nodiscard]] std::vector<PlaneTexture> resolvePlaneTextures(
73 TextureCache& cache, const std::filesystem::path& directory,
74 const std::vector<core::Plane>& planes);
75
86 bool active = false;
90 float pixelsPerWorldUnit = 0.0f;
91};
92
126void composePlanes(ComposedScene& scene, const std::vector<core::Plane>& planes,
127 const std::vector<PlaneTexture>& textures, int levelWidth, int levelHeight,
128 RenderMode mode, const PlaneVisibility& visibility = PlaneVisibility{},
129 const PlaneParallax& parallax = PlaneParallax{});
130
132inline constexpr std::size_t PLANE_TEXTURE_BYTES_PER_PIXEL = 4;
133
151[[nodiscard]] std::size_t planeTextureMemoryBytes(const core::Plane& plane, int levelWidth,
152 int levelHeight) noexcept;
153
161[[nodiscard]] std::size_t planesTextureMemoryBytes(const std::vector<core::Plane>& planes,
162 int levelWidth, int levelHeight) noexcept;
163
164} // namespace hmi
Composition du rendu : liste ordonnée des primitives d'une image, sans GPU (EX-NFR-004,...
Visibilité par rang de plan dans l'éditeur (EX-DEC-045, LOT-69 TACHE-05).
Plan pictural d'un niveau : image couvrant le niveau entier (EX-DEC-040, LOT-69).
Rectangle aligné sur les axes en coordonnées monde, propre à Core.
Mode de rendu Physique/Texture et sa persistance (EX-REN-046).
Liste ordonnée des primitives d'une image, indépendante de Direct3D.
Definition ComposedScene.h:134
Jeu de visibilités des plans picturaux d'un niveau, adressé par rang.
Definition PlaneVisibility.h:39
Charge, valide et met en cache des textures GPU désignées par leur nom de fichier logique.
Definition TextureCache.h:60
PlaneDepth
Position d'un plan dans l'ordonnancement de rendu, relativement au personnage (EX-DEC-042).
Definition Plane.h:28
Definition AudioEngine.cpp:15
const std::string PLANES_SUBDIRECTORY
Sous-dossier des images de plans, relatif au dossier des niveaux — un plan est une donnée de niveau,...
Definition PlaneVisuals.h:29
void composePlanes(ComposedScene &scene, const std::vector< core::Plane > &planes, const std::vector< PlaneTexture > &textures, int levelWidth, int levelHeight, RenderMode mode, const PlaneVisibility &visibility, const PlaneParallax &parallax)
Compose les plans picturaux d'un niveau, dans l'ordre déclaré.
Definition PlaneVisuals.cpp:27
std::size_t planeTextureMemoryBytes(const core::Plane &plane, int levelWidth, int levelHeight) noexcept
Mémoire de texture qu'un plan exige du format, en octets (EX-NFR-043).
Definition PlaneVisuals.cpp:93
void * TextureHandle
Identité opaque d'une texture liée, du point de vue de la composition.
Definition RenderLayer.h:107
RenderLayer
Calques de dessin, du plus arrière au plus avant (EX-REN-014, EX-DEC-002).
Definition RenderLayer.h:42
RenderLayer planeRenderLayer(core::PlaneDepth depth) noexcept
Projette la profondeur d'un plan sur le calque de rendu correspondant.
Definition PlaneVisuals.cpp:16
RenderMode
Mode de rendu de la scène : lecture directe des collisions, ou habillage.
Definition RenderMode.h:23
constexpr std::size_t PLANE_TEXTURE_BYTES_PER_PIXEL
Octets par texel d'une texture de plan : R8G8B8A8_UNORM, comme toute texture du projet.
Definition PlaneVisuals.h:132
std::vector< PlaneTexture > resolvePlaneTextures(TextureCache &cache, const std::filesystem::path &directory, const std::vector< core::Plane > &planes)
Résout les images des plans d'un niveau (accès disque/GPU), dans l'ordre de la liste.
Definition SpriteRenderer.cpp:58
std::size_t planesTextureMemoryBytes(const std::vector< core::Plane > &planes, int levelWidth, int levelHeight) noexcept
Somme de hmi::planeTextureMemoryBytes sur tous les plans d'un niveau.
Definition PlaneVisuals.cpp:101
Plan pictural : image couvrant tout le niveau, avec sa densité, sa parallaxe et sa profondeur (EX-DEC...
Definition Plane.h:53
Rectangle aligné sur les axes (AABB) en unités monde.
Definition Rect.h:23
Cadrage courant et échelle, pour le décalage de parallaxe des plans (EX-DEC-043).
Definition PlaneVisuals.h:84
bool active
La parallaxe s'applique-t-elle ? Décidé par hmi::planeParallaxActive.
Definition PlaneVisuals.h:86
core::Rect cameraBounds
Rectangle cadré par la caméra (hmi::Camera2D::visibleBounds), en unités monde.
Definition PlaneVisuals.h:88
float pixelsPerWorldUnit
Échelle courante (hmi::Camera2D::PIXELS_PER_UNIT * zoom), pour l'arrondi au pixel écran.
Definition PlaneVisuals.h:90
Texture d'un plan déjà résolue, prête à être composée.
Definition PlaneVisuals.h:51
TextureHandle texture
Texture à lier : l'image du plan si elle est chargeable, le damier de repli sinon (EX-NFR-040).
Definition PlaneVisuals.h:54
int width
Largeur de la texture, en pixels.
Definition PlaneVisuals.h:56
int height
Hauteur de la texture, en pixels.
Definition PlaneVisuals.h:58