Castor3D 0.12.0
Multiplatform 3D engine
Classes | Types publics | Fonctions membres publiques | Attributs publics statiques | Liste de tous les membres
Référence de la classe castor3d::InstantiationComponent

#include <InstantiationComponent.hpp>

Graphe d'héritage de castor3d::InstantiationComponent:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::InstantiationComponent:
Collaboration graph
[légende]

Classes

struct  Data
 

Types publics

using InstanceDataMap = std::map< MaterialRPtr, Data >
 

Fonctions membres publiques

C3D_API InstantiationComponent (Submesh &submesh, uint32_t threshold=1u)
 Constructeur. Plus de détails...
 
C3D_API uint32_t ref (MaterialRPtr material)
 Incrémente le compte d'instances. Plus de détails...
 
C3D_API uint32_t unref (MaterialRPtr material)
 Décrémente le compte d'instances. Plus de détails...
 
C3D_API uint32_t getRefCount (MaterialRPtr material) const
 Récupère le nombre d'instances. Plus de détails...
 
C3D_API bool isInstanced (MaterialRPtr material) const
 
C3D_API bool isInstanced () const
 
C3D_API uint32_t getMaxRefCount () const
 
C3D_API void gather (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, TextureFlagsArray const &mask, uint32_t &currentLocation) override
 Récupère les tampons qui doivent aller dans un vertex layout. Plus de détails...
 
C3D_API SubmeshComponentSPtr clone (Submesh &submesh) const override
 
C3D_API ProgramFlags getProgramFlags (MaterialRPtr material) const override
 
uint32_t getThreshold () const
 
InstanceDataMap::const_iterator end () const
 
InstanceDataMap::iterator end ()
 
InstanceDataMap::const_iterator find (MaterialRPtr material) const
 
InstanceDataMap::iterator find (MaterialRPtr material)
 
- Fonctions membres publiques hérités de castor3d::SubmeshComponent
C3D_API SubmeshComponent (Submesh &submesh, castor::String const &type, uint32_t id)
 Constructeur. Plus de détails...
 
virtual C3D_API ~SubmeshComponent () noexcept=default
 Destructeur. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device)
 Initialise le sous-maillage. Plus de détails...
 
C3D_API void cleanup (RenderDevice const &device)
 Nettoie le sous-maillage. Plus de détails...
 
C3D_API void upload ()
 Met les données en VRAM. Plus de détails...
 
virtual C3D_API void gather (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, TextureFlagsArray const &mask, uint32_t &currentLocation)=0
 Récupère les tampons qui doivent aller dans un vertex layout. Plus de détails...
 
virtual C3D_API ProgramFlags getProgramFlags (MaterialRPtr material) const =0
 
virtual C3D_API VkBufferUsageFlags getUsageFlags () const
 
virtual C3D_API SubmeshComponentSPtr clone (Submesh &submesh) const =0
 
castor::String const & getType () const
 
void needsUpdate ()
 Dit que le composant doit être mis à jour. Plus de détails...
 
uint32_t getID ()
 

Attributs publics statiques

static C3D_API castor::String const Name
 
static C3D_API uint32_t constexpr BindingPoint = 2u
 

Documentation des définitions de type membres

◆ InstanceDataMap

using castor3d::InstantiationComponent::InstanceDataMap = std::map< MaterialRPtr, Data >

Documentation des constructeurs et destructeur

◆ InstantiationComponent()

C3D_API castor3d::InstantiationComponent::InstantiationComponent ( Submesh submesh,
uint32_t  threshold = 1u 
)
explicit

Constructeur.

Paramètres
[in]submeshLe sous-maillage parent.
[in]thresholdLe seuil à partir duquel un sous-maillage sera instancié.

Documentation des fonctions membres

◆ clone()

C3D_API SubmeshComponentSPtr castor3d::InstantiationComponent::clone ( Submesh submesh) const
overridevirtual

Renvoie
Clone ce composant dans le submesh donné.
Paramètres
[in,out]submeshReçoit le composant cloné.

Implémente castor3d::SubmeshComponent.

◆ end() [1/2]

InstanceDataMap::iterator castor3d::InstantiationComponent::end ( )
inline

◆ end() [2/2]

InstanceDataMap::const_iterator castor3d::InstantiationComponent::end ( ) const
inline

◆ find() [1/2]

InstanceDataMap::iterator castor3d::InstantiationComponent::find ( MaterialRPtr  material)
inline

Références castor3d::SubmeshComponent::needsUpdate().

Voici le graphe d'appel pour cette fonction :

◆ find() [2/2]

InstanceDataMap::const_iterator castor3d::InstantiationComponent::find ( MaterialRPtr  material) const
inline

◆ gather()

C3D_API void castor3d::InstantiationComponent::gather ( ShaderFlags const &  shaderFlags,
ProgramFlags const &  programFlags,
MaterialRPtr  material,
ashes::BufferCRefArray &  buffers,
std::vector< uint64_t > &  offsets,
ashes::PipelineVertexInputStateCreateInfoCRefArray &  layouts,
TextureFlagsArray const &  mask,
uint32_t &  currentLocation 
)
overridevirtual

Récupère les tampons qui doivent aller dans un vertex layout.

Paramètres
[in]shaderFlagsLes shader flags.
[in]programFlagsLes program flags.
[in]materialLes matériau.
[in,out]buffersReçoit les buffers.
[in,out]offsetsReçoit les offsets dans les buffers.
[in,out]layoutsReçoit les vertex layouts.
[in]maskLe masque de textures.
[in,out]currentLocationLa position actuelle des attributs.

Implémente castor3d::SubmeshComponent.

◆ getMaxRefCount()

C3D_API uint32_t castor3d::InstantiationComponent::getMaxRefCount ( ) const
Renvoie
Le nombre moximum d'instances, tous matériaux confondus,

◆ getProgramFlags()

C3D_API ProgramFlags castor3d::InstantiationComponent::getProgramFlags ( MaterialRPtr  material) const
overridevirtual

name Accesseurs.

Implémente castor3d::SubmeshComponent.

◆ getRefCount()

C3D_API uint32_t castor3d::InstantiationComponent::getRefCount ( MaterialRPtr  material) const

Récupère le nombre d'instances.

Paramètres
[in]materialLe matériau pour lequel le compte est récupéré
Renvoie
La valeur

◆ getThreshold()

uint32_t castor3d::InstantiationComponent::getThreshold ( ) const
inline

◆ isInstanced() [1/2]

C3D_API bool castor3d::InstantiationComponent::isInstanced ( ) const
Renvoie
true si le nombre d'instances max est plus grand que le seuil.

◆ isInstanced() [2/2]

C3D_API bool castor3d::InstantiationComponent::isInstanced ( MaterialRPtr  material) const
Paramètres
[in]materialLe matériau.
Renvoie
true si le nombre d'instances pour le matériau donné est plus grand que le seuil.

◆ ref()

C3D_API uint32_t castor3d::InstantiationComponent::ref ( MaterialRPtr  material)

Incrémente le compte d'instances.

Paramètres
[in]materialLe matériau pour lequel le compte est incrémenté.
Renvoie
Le compte précédent.

◆ unref()

C3D_API uint32_t castor3d::InstantiationComponent::unref ( MaterialRPtr  material)

Décrémente le compte d'instances.

Paramètres
[in]materialLe matériau pour lequel le compte est décrémenté.
Renvoie
Le compte précédent.

Documentation des données membres

◆ BindingPoint

C3D_API uint32_t constexpr castor3d::InstantiationComponent::BindingPoint = 2u
staticconstexpr

◆ Name

C3D_API castor::String const castor3d::InstantiationComponent::Name
static

La documentation de cette classe a été générée à partir du fichier suivant :