JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
hmi::RhiContext Struct Reference

Le QRhi courant et le lot de téléversements de l'image en cours. More...

#include <RhiContext.h>

Public Member Functions

bool ready () const noexcept

Public Attributes

QRhi * rhi = nullptr
 Interface de rendu courante, ou nullptr avant la première initialisation.
QRhiResourceUpdateBatch * updates = nullptr
 Lot de mises à jour de l'image en cours, ou nullptr hors d'une image.

Detailed Description

Le QRhi courant et le lot de téléversements de l'image en cours.

Deux contraintes de QRhi rendent cette indirection nécessaire, là où Direct3D 11 se contentait d'un ID3D11Device* passé une fois :

  • Un téléversement ne se déclare pas n'importe quand. Créer une texture ne suffit pas : ses pixels transitent par un QRhiResourceUpdateBatch, qui ne peut être soumis qu'en dehors d'une passe de rendu. Or les textures se chargent paresseusement, en pleine composition (hmi::TextureCache::get). Le lot courant est donc exposé ici, rempli au fil de la composition, et soumis d'un bloc avant l'ouverture de la passe.
  • Le QRhi peut changer. QRhiWidget recrée ses ressources quand le widget change de fenêtre de haut niveau. Les propriétaires de textures comparent donc le QRhi qu'ils ont servi à celui du contexte, plutôt que de supposer qu'il ne bouge jamais.

L'instance est possédée par le viewport et référencée (jamais copiée) par les objets qui créent des textures : hmi::TextureAtlas, hmi::TextureCache, hmi::BitmapFont.

Member Function Documentation

◆ ready()

bool hmi::RhiContext::ready ( ) const
inlinenodiscardnoexcept
Returns
true si une texture peut être créée et téléversée maintenant.

Member Data Documentation

◆ rhi

QRhi* hmi::RhiContext::rhi = nullptr

Interface de rendu courante, ou nullptr avant la première initialisation.

◆ updates

QRhiResourceUpdateBatch* hmi::RhiContext::updates = nullptr

Lot de mises à jour de l'image en cours, ou nullptr hors d'une image.


The documentation for this struct was generated from the following file:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Graphics/RhiContext.h