87[[nodiscard]] std::int32_t
depthSortOrder(
float footWorldY)
noexcept;
145 void clear() noexcept;
212 [[nodiscard]] std::size_t
size() const noexcept {
217 [[nodiscard]]
int batchCount() const noexcept;
226 [[nodiscard]]
bool isVisible(const
core::Rect& bounds) const;
Jeu de visibilités par calque du mode d'inspection de l'éditeur (LOT-51, EX-EDIT-044).
Primitives de dessin 2D (quads texturés), indépendantes de Direct3D.
Rectangle aligné sur les axes en coordonnées monde, propre à Core.
Ordonnancement de calques unique et explicite du rendu (EX-REN-014).
Mode de rendu Physique/Texture et sa persistance (EX-REN-046).
Point de résolution unique de l'apparence d'une entité affichée (EX-REN-046).
Point d'entrée unique de la simulation : possède les entités, les composants et les systèmes.
Definition World.h:35
Liste ordonnée des primitives d'une image, indépendante de Direct3D.
Definition ComposedScene.h:134
core::Rect cullingBounds() const noexcept
Rectangle réellement utilisé pour le culling : le cadrage élargi de la marge.
Definition ComposedScene.cpp:51
bool addSprite(RenderLayer layer, TextureHandle texture, std::int32_t sortOrder, const SpriteQuad &quad)
Ajoute un rectangle texturé à la scène, s'il est visible.
Definition ComposedScene.cpp:77
int _considered
Definition ComposedScene.h:233
SceneStatistics statistics() const noexcept
Definition ComposedScene.cpp:166
void setVisibleBounds(const core::Rect &worldBounds) noexcept
Restreint la composition aux primitives visibles dans un cadrage donné (EX-NFR-005).
Definition ComposedScene.cpp:38
bool isCullingEnabled() const noexcept
Definition ComposedScene.h:159
void sort()
Ordonne la scène (calque, puis texture, puis sortOrder), de façon stable.
Definition ComposedScene.cpp:121
void clearVisibleBounds() noexcept
Désactive le culling : toutes les primitives ajoutées sont conservées.
Definition ComposedScene.cpp:46
int batchCount() const noexcept
Definition ComposedScene.cpp:153
bool addLine(RenderLayer layer, TextureHandle texture, std::int32_t sortOrder, const LineQuad &quad)
Ajoute un segment épais à la scène, s'il est visible.
Definition ComposedScene.cpp:97
int textureRank(TextureHandle texture)
Rang de première apparition d'une texture, ajoutée à la table si elle est nouvelle.
Definition ComposedScene.cpp:58
std::size_t _textureBytes
Definition ComposedScene.h:235
int _culled
Definition ComposedScene.h:234
std::vector< TextureHandle > _textureOrder
Definition ComposedScene.h:229
std::vector< ComposedQuad > _quads
Definition ComposedScene.h:228
void clear() noexcept
Vide la scène (capacité conservée) et remet les compteurs à zéro. Le cadrage est conservé.
Definition ComposedScene.cpp:22
std::size_t size() const noexcept
Definition ComposedScene.h:212
const std::vector< ComposedQuad > & quads() const noexcept
Definition ComposedScene.h:207
bool isVisible(const core::Rect &bounds) const
Definition ComposedScene.cpp:68
static constexpr float CULLING_MARGIN_UNITS
Marge de culling, en unités monde, ajoutée de chaque côté du cadrage visible.
Definition ComposedScene.h:142
std::optional< core::Rect > _visibleBounds
Cadrage marge comprise, calculé une fois par setVisibleBounds : c'est le rectangle comparé à chaque p...
Definition ComposedScene.h:232
void addTextureBytes(std::size_t bytes) noexcept
Déclare la mémoire de texture d'une primitive déjà ajoutée (EX-NFR-043).
Definition ComposedScene.cpp:32
Jeu de visibilités par calque, pour le mode d'inspection « définition des textures » (LOT-51).
Definition LayerVisibility.h:48
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
Definition AudioEngine.cpp:15
constexpr float DEPTH_SUBDIVISIONS_PER_UNIT
Sous-divisions de profondeur par unité monde, pour la quantification du tri par Y.
Definition ComposedScene.h:73
std::int32_t depthSortOrder(float footWorldY) noexcept
Ordre de profondeur d'une primitive, à partir du pied de son quad.
Definition ComposedScene.cpp:116
void composeWorldSprites(ComposedScene &scene, core::World &world, RenderMode mode, const SceneTextures &textures, float interpolationAlpha, const LayerVisibility &visibility)
Compose les entités affichables d'un monde ECS en primitives.
Definition ComposedScene.cpp:292
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
QuadKind
Nature d'une primitive composée : rectangle aligné aux axes, ou segment épais orienté.
Definition ComposedScene.h:32
@ Line
hmi::LineQuad : segment épais, orienté librement.
Definition ComposedScene.h:36
@ Sprite
hmi::SpriteQuad : rectangle aligné sur les axes.
Definition ComposedScene.h:34
std::string formatSceneStatistics(const SceneStatistics &statistics)
Résumé des compteurs d'une image, pour la journalisation de diagnostic (EX-NFR-005).
Definition ComposedScene.cpp:177
constexpr RenderLayer DEFAULT_RENDER_LAYER
Calque appliqué à une entité dépourvue de hmi::RenderLayerTag.
Definition RenderLayer.h:123
RenderMode
Mode de rendu de la scène : lecture directe des collisions, ou habillage.
Definition RenderMode.h:23
core::Rect lineQuadBounds(const LineQuad &quad) noexcept
Boîte englobante d'un segment épais, en unités monde.
Definition ComposedScene.cpp:206
core::Rect spriteQuadBounds(const SpriteQuad &quad) noexcept
Boîte englobante d'un rectangle texturé, en unités monde.
Definition ComposedScene.cpp:189
Rectangle aligné sur les axes (AABB) en unités monde.
Definition Rect.h:23
Une primitive prête à soumettre, avec tout ce qui détermine quand la dessiner.
Definition ComposedScene.h:48
QuadKind kind
Laquelle des deux primitives ci-dessous est valide.
Definition ComposedScene.h:58
SpriteQuad sprite
Primitive rectangle, valide si kind == QuadKind::Sprite.
Definition ComposedScene.h:60
LineQuad line
Primitive segment, valide si kind == QuadKind::Line.
Definition ComposedScene.h:62
int textureRank
Rang de première apparition de la texture dans la scène (critère de regroupement).
Definition ComposedScene.h:54
TextureHandle texture
Texture liée (identité opaque) ; nullptr = primitive non dessinable.
Definition ComposedScene.h:52
std::int32_t sortOrder
Tri fin à l'intérieur d'un calque et d'une texture (core::Sprite::layer).
Definition ComposedScene.h:56
RenderLayer layer
Calque de dessin (critère de tri prioritaire, EX-REN-014).
Definition ComposedScene.h:50
Un segment épais à dessiner : deux extrémités en unités monde, une épaisseur (perpendiculaire au segm...
Definition Quad.h:53
Compteurs d'une image composée, pour l'observabilité du volume soumis (EX-NFR-005).
Definition ComposedScene.h:92
int culled
Primitives écartées parce qu'invisibles (culling).
Definition ComposedScene.h:96
std::size_t textureBytes
Mémoire de texture des plans picturaux liés par cette image, en octets (EX-NFR-043,...
Definition ComposedScene.h:108
int submitted
Primitives conservées, donc soumises au GPU.
Definition ComposedScene.h:98
int considered
Primitives examinées par la composition (avant culling).
Definition ComposedScene.h:94
int batches
Passes begin/end nécessaires : nombre de groupes contigus de même texture.
Definition ComposedScene.h:100
Textures liables par la composition d'une scène, et de quoi choisir laquelle lier.
Definition TileAppearance.h:85
Un quad texturé à dessiner : rectangle en unités monde, région de texture (coordonnées normalisées) e...
Definition Quad.h:29