JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
TextureLoader.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 <cstdint>
7#include <filesystem>
8#include <memory>
9#include <optional>
10#include <vector>
11
13
14class QRhiTexture;
15
20
21namespace hmi {
22
23struct RhiContext;
24
28 int width = 0;
29 int height = 0;
30 std::vector<std::uint32_t> pixels;
31};
32
41 std::shared_ptr<QRhiTexture> texture;
42 int width = 0;
43 int height = 0;
44
46 [[nodiscard]] TextureHandle handle() const noexcept {
47 return texture.get();
48 }
49};
50
57[[nodiscard]] std::optional<DecodedImage> decodeImageFile(const std::filesystem::path& path);
58
78[[nodiscard]] bool encodeImageFile(const std::filesystem::path& path, const DecodedImage& image);
79
93[[nodiscard]] std::optional<LoadedTexture> createTexture(const RhiContext& context, int width,
94 int height,
95 const std::vector<std::uint32_t>& pixels);
96
103[[nodiscard]] std::optional<LoadedTexture> loadTextureFromFile(const RhiContext& context,
104 const std::filesystem::path& path);
105
106} // namespace hmi
Ordonnancement de calques unique et explicite du rendu (EX-REN-014).
Definition AudioEngine.cpp:15
std::optional< DecodedImage > decodeImageFile(const std::filesystem::path &path)
Décode un fichier image (PNG au minimum) en pixels RGBA.
Definition TextureLoader.cpp:19
std::optional< LoadedTexture > createTexture(const RhiContext &context, int width, int height, const std::vector< std::uint32_t > &pixels)
Crée une texture GPU à partir de pixels RGBA déjà décodés.
Definition TextureLoader.cpp:90
void * TextureHandle
Identité opaque d'une texture liée, du point de vue de la composition.
Definition RenderLayer.h:107
std::optional< LoadedTexture > loadTextureFromFile(const RhiContext &context, const std::filesystem::path &path)
Décode un fichier image puis crée la texture GPU correspondante.
Definition TextureLoader.cpp:129
bool encodeImageFile(const std::filesystem::path &path, const DecodedImage &image)
Écrit un fichier PNG depuis des pixels RGBA déjà en mémoire — symétrique de decodeImageFile.
Definition TextureLoader.cpp:45
Pixels RGBA décodés d'un fichier image, alpha non prémultiplié (cohérent avec le mélange du pipeline ...
Definition TextureLoader.h:27
int height
Definition TextureLoader.h:29
std::vector< std::uint32_t > pixels
Definition TextureLoader.h:30
int width
Definition TextureLoader.h:28
Texture GPU chargée (RAII).
Definition TextureLoader.h:40
int width
Definition TextureLoader.h:42
int height
Definition TextureLoader.h:43
std::shared_ptr< QRhiTexture > texture
Definition TextureLoader.h:41
TextureHandle handle() const noexcept
Definition TextureLoader.h:46
Le QRhi courant et le lot de téléversements de l'image en cours.
Definition RhiContext.h:34