Castor3D 0.15.0
Multiplatform 3D engine
|
#include <InstantiationComponent.hpp>
Classes | |
struct | Data |
Types publics | |
using | InstanceDataMap = std::map< Material const *, Data > |
Fonctions membres publiques | |
C3D_API | InstantiationComponent (Submesh &submesh, uint32_t threshold=1u) |
Constructeur. | |
C3D_API bool | ref (MaterialObs material) |
Incrémente le compte d'instances. | |
C3D_API void | unref (MaterialObs material) |
Décrémente le compte d'instances. | |
C3D_API uint32_t | getRefCount (MaterialObs material) const |
Récupère le nombre d'instances. | |
C3D_API bool | isInstanced (MaterialObs material) const |
C3D_API bool | isInstanced () const |
C3D_API uint32_t | getMaxRefCount () const |
C3D_API void | gather (PipelineFlags const &flags, MaterialObs material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, uint32_t ¤tBinding, uint32_t ¤tLocation) override |
Récupère les tampons qui doivent aller dans un vertex layout. | |
C3D_API SubmeshComponentUPtr | clone (Submesh &submesh) const override |
C3D_API ProgramFlags | getProgramFlags (Material const &material) const override |
uint32_t | getThreshold () const |
InstanceDataMap::const_iterator | end () const |
InstanceDataMap::iterator | end () |
InstanceDataMap::const_iterator | find (Material const &material) const |
InstanceDataMap::iterator | find (Material const &material) |
Fonctions membres publiques hérités de castor3d::SubmeshComponent | |
C3D_API | SubmeshComponent (Submesh &submesh, castor::String const &type, uint32_t id) |
Constructeur. | |
virtual C3D_API | ~SubmeshComponent () noexcept=default |
Destructeur. | |
C3D_API bool | initialise (RenderDevice const &device) |
Initialise le sous-maillage. | |
C3D_API void | cleanup (RenderDevice const &device) |
Nettoie le sous-maillage. | |
C3D_API void | upload () |
Met les données en VRAM. | |
virtual C3D_API void | gather (PipelineFlags const &flags, MaterialObs material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, uint32_t ¤tBinding, uint32_t ¤tLocation)=0 |
Récupère les tampons qui doivent aller dans un vertex layout. | |
virtual C3D_API ProgramFlags | getProgramFlags (Material const &material) const |
virtual C3D_API SubmeshFlags | getSubmeshFlags (Pass const *pass) const |
virtual C3D_API VkBufferUsageFlags | getUsageFlags () const |
virtual C3D_API SubmeshComponentUPtr | clone (Submesh &submesh) const =0 |
castor::String const & | getType () const |
void | needsUpdate () |
Dit que le composant doit être mis à jour. | |
uint32_t | getID () |
Attributs publics statiques | |
static C3D_API castor::String const | Name |
using castor3d::InstantiationComponent::InstanceDataMap = std::map< Material const *, Data > |
|
explicit |
Constructeur.
[in] | submesh | Le sous-maillage parent. |
[in] | threshold | Le seuil à partir duquel un sous-maillage sera instancié. |
|
overridevirtual |
[in,out] | submesh | Reçoit le composant cloné. |
Implémente castor3d::SubmeshComponent.
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Récupère les tampons qui doivent aller dans un vertex layout.
[in] | flags | Les flags de pipeline. |
[in] | material | Les matériau. |
[in,out] | buffers | Reçoit les buffers. |
[in,out] | offsets | Reçoit les offsets dans les buffers. |
[in,out] | layouts | Reçoit les vertex layouts. |
[in,out] | currentBinding | L'index de binging actuel des buffers. |
[in,out] | currentLocation | La position actuelle des attributs. |
Implémente castor3d::SubmeshComponent.
C3D_API uint32_t castor3d::InstantiationComponent::getMaxRefCount | ( | ) | const |
|
overridevirtual |
[in] | material | Les matériau. |
Réimplémentée à partir de castor3d::SubmeshComponent.
C3D_API uint32_t castor3d::InstantiationComponent::getRefCount | ( | MaterialObs | material | ) | const |
Récupère le nombre d'instances.
[in] | material | Le matériau pour lequel le compte est récupéré |
|
inline |
name Accesseurs.
C3D_API bool castor3d::InstantiationComponent::isInstanced | ( | ) | const |
true
si le nombre d'instances max est plus grand que le seuil. C3D_API bool castor3d::InstantiationComponent::isInstanced | ( | MaterialObs | material | ) | const |
[in] | material | Le matériau. |
true
si le nombre d'instances pour le matériau donné est plus grand que le seuil. C3D_API bool castor3d::InstantiationComponent::ref | ( | MaterialObs | material | ) |
Incrémente le compte d'instances.
[in] | material | Le matériau pour lequel le compte est incrémenté. |
true
Si le buffer d'instances a changé. C3D_API void castor3d::InstantiationComponent::unref | ( | MaterialObs | material | ) |
Décrémente le compte d'instances.
[in] | material | Le matériau pour lequel le compte est décrémenté. |
|
static |