JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
TextureAtlas.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 <memory>
7
11
12class QRhiTexture;
13
18
19namespace hmi {
20
21struct RhiContext;
22
41public:
43 static constexpr const char* ATLAS_FILE_NAME = "atlas.png";
44
46 static constexpr int TILE_SIZE = 16;
51 static constexpr int TILES_PER_SIDE = 6;
54 static constexpr int PLAYER_FRAME_SIZE = TILE_SIZE;
57 static constexpr int PLAYER_FRAME_COLUMNS = TILES_PER_SIDE;
58
63 explicit TextureAtlas(const RhiContext& context);
64
66 [[nodiscard]] TextureHandle textureHandle() const {
67 return _texture.get();
68 }
69
71 [[nodiscard]] int width() const {
72 return _width;
73 }
74
76 [[nodiscard]] int height() const {
77 return _height;
78 }
79
89 [[nodiscard]] static core::AtlasRegion tile(int column, int row);
90
100 [[nodiscard]] static core::AtlasRegion playerFrameRegion(PlayerClipKind clip, int frameIndex);
101
102private:
104 bool loadFromFile(const RhiContext& context);
106 void generateProcedural(const RhiContext& context);
107
108 int _width = 0;
109 int _height = 0;
110 std::shared_ptr<QRhiTexture> _texture;
111};
112
113} // namespace hmi
Génération procédurale (CPU, sans GPU) des pixels de l'atlas de repli.
Ordonnancement de calques unique et explicite du rendu (EX-REN-014).
Composant d'apparence 2D d'une entité (données pures).
void generateProcedural(const RhiContext &context)
Génère l'atlas procédural (hmi::buildProceduralAtlasImage) et crée la texture associée.
Definition TextureAtlas.cpp:53
bool loadFromFile(const RhiContext &context)
Essaie de charger Assets/atlas.png.
Definition TextureAtlas.cpp:29
static constexpr const char * ATLAS_FILE_NAME
Nom du fichier d'atlas attendu dans le dossier d'assets (Assets/atlas.png).
Definition TextureAtlas.h:43
TextureAtlas(const RhiContext &context)
Charge l'atlas (fichier, avec repli procédural) et crée la texture GPU associée.
Definition TextureAtlas.cpp:21
int height() const
Definition TextureAtlas.h:76
int width() const
Definition TextureAtlas.h:71
static core::AtlasRegion playerFrameRegion(PlayerClipKind clip, int frameIndex)
Région (en pixels) d'une image d'animation du personnage, sous la grille de tuiles.
Definition TextureAtlasRegions.cpp:27
static constexpr int PLAYER_FRAME_SIZE
Côté d'une image d'animation du personnage, en pixels.
Definition TextureAtlas.h:54
static constexpr int PLAYER_FRAME_COLUMNS
Nombre de colonnes de la grille d'images du personnage (largeur de la grille de tuiles,...
Definition TextureAtlas.h:57
TextureHandle textureHandle() const
Definition TextureAtlas.h:66
static core::AtlasRegion tile(int column, int row)
Région (en pixels) de la tuile à une position de la grille.
Definition TextureAtlasRegions.cpp:21
static constexpr int TILE_SIZE
Côté d'une tuile, en pixels (EX-ARCH-021).
Definition TextureAtlas.h:46
int _height
Definition TextureAtlas.h:109
int _width
Definition TextureAtlas.h:108
std::shared_ptr< QRhiTexture > _texture
Definition TextureAtlas.h:110
static constexpr int TILES_PER_SIDE
Nombre de tuiles par ligne et par colonne dans la grille de tuiles générée.
Definition TextureAtlas.h:51
Definition AudioEngine.cpp:15
PlayerClipKind
Identité des trois clips historiques du personnage, côté présentation seulement.
Definition ProceduralAtlas.h:27
void * TextureHandle
Identité opaque d'une texture liée, du point de vue de la composition.
Definition RenderLayer.h:107
Région source dans l'atlas de textures, en pixels (origine haut-gauche).
Definition Sprite.h:22
Le QRhi courant et le lot de téléversements de l'image en cours.
Definition RhiContext.h:34