Castor3D 0.14.0
Multiplatform 3D engine
Classes | Types publics | Fonctions membres publiques | Liste de tous les membres
Référence de la classe castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >final

Collection de matériaux, avec des fonctions additionnelles. Plus de détails...

#include <MaterialCache.hpp>

Graphe d'héritage de castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >:
Inheritance graph
[légende]
Graphe de collaboration de castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >:
Collaboration graph
[légende]

Types publics

using ElementT = castor3d::Material
 
using ElementKeyT = String
 
using ElementCacheTraitsT = castor3d::MaterialCacheTraits
 
using ElementCacheT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementPtrT = typename ElementCacheT::ElementPtrT
 
using ElementContT = typename ElementCacheT::ElementContT
 
using ElementInitialiserT = typename ElementCacheT::ElementInitialiserT
 
using ElementCleanerT = typename ElementCacheT::ElementCleanerT
 
using ElementMergerT = typename ElementCacheT::ElementMergerT
 

Fonctions membres publiques

C3D_API ResourceCacheT (castor3d::Engine &engine)
 Constructeur. Plus de détails...
 
C3D_API ~ResourceCacheT () override=default
 Destructeur. Plus de détails...
 
C3D_API void initialise (castor3d::RenderDevice const &device, castor3d::PassTypeID passType)
 Initialise le matériau par défaut. Plus de détails...
 
C3D_API void cleanup ()
 Met tous les éléments à nettoyer. Plus de détails...
 
C3D_API void clear ()
 Supprime le matériau par défaut, vide la collection. Plus de détails...
 
C3D_API void update (castor3d::CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU. Plus de détails...
 
C3D_API void update (castor3d::GpuUpdater &updater)
 Met à jour la passe de rendu, au niveau GPU. Plus de détails...
 
C3D_API void upload (ashes::CommandBuffer const &cb) const
 Met à jour tous les tampons GPU en VRAM. Plus de détails...
 
C3D_API void registerSpecificsBuffer (std::string const &name, castor3d::SpecificsBuffer buffer)
 Enregistre un shader buffer de données spécifiques. Plus de détails...
 
C3D_API void unregisterSpecificsBuffer (std::string const &name)
 Désenregistre un shader buffer de données spécifiques. Plus de détails...
 
C3D_API void addSpecificsBuffersBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index) const
 Ecrit les shader buffers de données spécifiques dans le tableau de descriptor layout bindings donné. Plus de détails...
 
C3D_API void addSpecificsBuffersDescriptors (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const
 Ecrit les shader buffers de données spécifiques dans le tableau de descriptor writes donné. Plus de détails...
 
C3D_API void createSpecificsBuffersPassBindings (crg::FramePass &pass, uint32_t &index) const
 Ecrit les bindings des shader buffers de données spécifiques dans la frame pass donnée. Plus de détails...
 
C3D_API void declareSpecificsShaderBuffers (sdw::ShaderWriter &writer, std::map< std::string, castor3d::shader::BufferBaseUPtr > &buffers, uint32_t &binding, uint32_t set) const
 Déclare dans les shaders les buffers spécifiques enregistrés. Plus de détails...
 
C3D_API void getNames (StringArray &names)
 Remplit la liste des noms de tous les matériaux. Plus de détails...
 
C3D_API uint32_t getMaxPassTypeCount () const
 Le nombre maximum de types de passes (pour l'utilisation de vibility buffer). Plus de détails...
 
C3D_API std::tuple< castor3d::PassComponentCombineID, castor3d::TextureCombineIDgetPassTypeDetails (uint32_t passTypeIndex) const
 Les détails du type de passe pour l'index donné (pour l'utilisation de vibility buffer). Plus de détails...
 
C3D_API uint32_t getPassTypeIndex (castor3d::PassComponentCombineID passType, castor3d::TextureCombineID textureFlags) const
 L'indice de type de passe (pour l'utilisation de vibility buffer). Plus de détails...
 
C3D_API bool registerPass (castor3d::Pass &pass)
 
C3D_API void unregisterPass (castor3d::Pass &pass)
 
C3D_API bool registerUnit (castor3d::TextureUnit &unit)
 
C3D_API void unregisterUnit (castor3d::TextureUnit &unit)
 
C3D_API bool registerTexture (castor3d::AnimatedTexture const &texture)
 
C3D_API void unregisterTexture (castor3d::AnimatedTexture const &texture)
 
C3D_API uint32_t getCurrentPassTypeCount () const
 
castor3d::MaterialRPtr getDefaultMaterial () const
 
castor3d::PassBuffer const & getPassBuffer () const
 
castor3d::SssProfileBuffer const & getSssProfileBuffer () const
 
castor3d::TextureConfigurationBuffer const & getTexConfigBuffer () const
 
castor3d::TextureAnimationBuffer const & getTexAnimBuffer () const
 

Description détaillée

Collection de matériaux, avec des fonctions additionnelles.

Documentation des définitions de type membres

◆ ElementCacheT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementCacheT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >

◆ ElementCacheTraitsT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementCacheTraitsT = castor3d::MaterialCacheTraits

◆ ElementCleanerT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementCleanerT = typename ElementCacheT::ElementCleanerT

◆ ElementContT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementContT = typename ElementCacheT::ElementContT

◆ ElementInitialiserT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementInitialiserT = typename ElementCacheT::ElementInitialiserT

◆ ElementKeyT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementKeyT = String

◆ ElementMergerT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementMergerT = typename ElementCacheT::ElementMergerT

◆ ElementPtrT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementPtrT = typename ElementCacheT::ElementPtrT

◆ ElementT

using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementT = castor3d::Material

Documentation des constructeurs et destructeur

◆ ResourceCacheT()

C3D_API castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ResourceCacheT ( castor3d::Engine engine)
explicit

Constructeur.

Paramètres
[in]engineLe moteur.

◆ ~ResourceCacheT()

C3D_API castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::~ResourceCacheT ( )
overridedefault

Destructeur.

Documentation des fonctions membres

◆ addSpecificsBuffersBindings()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::addSpecificsBuffersBindings ( ashes::VkDescriptorSetLayoutBindingArray &  bindings,
VkShaderStageFlags  shaderStages,
uint32_t &  index 
) const

Ecrit les shader buffers de données spécifiques dans le tableau de descriptor layout bindings donné.

Paramètres
[in,out]bindingsReçoit les descriptor layout bindings des buffers.
[in]shaderStagesLes indicateurs de shader stage.
[in,out]indexL'indice de binding.

◆ addSpecificsBuffersDescriptors()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::addSpecificsBuffersDescriptors ( ashes::WriteDescriptorSetArray &  descriptorWrites,
uint32_t &  index 
) const

Ecrit les shader buffers de données spécifiques dans le tableau de descriptor writes donné.

Paramètres
[in,out]descriptorWritesReçoit les descriptor writes des buffers.
[in,out]indexL'indice de binding.

◆ cleanup()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::cleanup ( )

Met tous les éléments à nettoyer.

◆ clear()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::clear ( )

Supprime le matériau par défaut, vide la collection.

◆ createSpecificsBuffersPassBindings()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::createSpecificsBuffersPassBindings ( crg::FramePass &  pass,
uint32_t &  index 
) const

Ecrit les bindings des shader buffers de données spécifiques dans la frame pass donnée.

Paramètres
[in,out]passLa frame pass ciblée.
[in,out]indexL'indice de binding.

◆ declareSpecificsShaderBuffers()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::declareSpecificsShaderBuffers ( sdw::ShaderWriter &  writer,
std::map< std::string, castor3d::shader::BufferBaseUPtr > &  buffers,
uint32_t &  binding,
uint32_t  set 
) const

Déclare dans les shaders les buffers spécifiques enregistrés.

Paramètres
[in,out]writerLe writer de shader.
[out]buffersReçoit les shader buffers enregistrés.
[in,out]bindingL'indice de descripteur.
[in]setL'indice de descriptor set.

◆ getCurrentPassTypeCount()

C3D_API uint32_t castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getCurrentPassTypeCount ( ) const

◆ getDefaultMaterial()

castor3d::MaterialRPtr castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getDefaultMaterial ( ) const
inline

◆ getMaxPassTypeCount()

C3D_API uint32_t castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getMaxPassTypeCount ( ) const

Le nombre maximum de types de passes (pour l'utilisation de vibility buffer).

◆ getNames()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getNames ( StringArray &  names)

Remplit la liste des noms de tous les matériaux.

Paramètres
[out]namesLa liste de noms

◆ getPassBuffer()

castor3d::PassBuffer const & castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getPassBuffer ( ) const
inline

◆ getPassTypeDetails()

C3D_API std::tuple< castor3d::PassComponentCombineID, castor3d::TextureCombineID > castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getPassTypeDetails ( uint32_t  passTypeIndex) const

Les détails du type de passe pour l'index donné (pour l'utilisation de vibility buffer).

◆ getPassTypeIndex()

C3D_API uint32_t castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getPassTypeIndex ( castor3d::PassComponentCombineID  passType,
castor3d::TextureCombineID  textureFlags 
) const

L'indice de type de passe (pour l'utilisation de vibility buffer).

◆ getSssProfileBuffer()

castor3d::SssProfileBuffer const & castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getSssProfileBuffer ( ) const
inline

◆ getTexAnimBuffer()

castor3d::TextureAnimationBuffer const & castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getTexAnimBuffer ( ) const
inline

◆ getTexConfigBuffer()

castor3d::TextureConfigurationBuffer const & castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getTexConfigBuffer ( ) const
inline

◆ initialise()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::initialise ( castor3d::RenderDevice const &  device,
castor3d::PassTypeID  passType 
)

Initialise le matériau par défaut.

Paramètres
[in]deviceLe device GPU.
[in]passTypeLe type des matériaux.

◆ registerPass()

C3D_API bool castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerPass ( castor3d::Pass pass)

◆ registerSpecificsBuffer()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerSpecificsBuffer ( std::string const &  name,
castor3d::SpecificsBuffer  buffer 
)

Enregistre un shader buffer de données spécifiques.

Paramètres
[in,out]nameLe nom du shader buffer.
[out]bufferLe shader buffer.

◆ registerTexture()

C3D_API bool castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerTexture ( castor3d::AnimatedTexture const &  texture)

◆ registerUnit()

C3D_API bool castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerUnit ( castor3d::TextureUnit unit)

◆ unregisterPass()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterPass ( castor3d::Pass pass)

◆ unregisterSpecificsBuffer()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterSpecificsBuffer ( std::string const &  name)

Désenregistre un shader buffer de données spécifiques.

Paramètres
[in,out]nameLe nom du shader buffer.

◆ unregisterTexture()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterTexture ( castor3d::AnimatedTexture const &  texture)

◆ unregisterUnit()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterUnit ( castor3d::TextureUnit unit)

◆ update() [1/2]

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::update ( castor3d::CpuUpdater updater)

Met à jour la passe de rendu, au niveau CPU.

Paramètres
[in,out]updaterLes données d'update.

◆ update() [2/2]

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::update ( castor3d::GpuUpdater updater)

Met à jour la passe de rendu, au niveau GPU.

Paramètres
[in,out]updaterLes données d'update.

◆ upload()

C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::upload ( ashes::CommandBuffer const &  cb) const

Met à jour tous les tampons GPU en VRAM.

Paramètres
[in]cbLe command buffer sur lequel les commandes de transfert sont enregistrées.

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