Castor3D 0.16.0
Multiplatform 3D engine
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
 
- Types publics hérités de castor::ResourceCacheBaseT< castor3d::Material, String, castor3d::MaterialCacheTraits >
using ElementT
 
using ElementKeyT
 
using ElementCacheTraitsT
 
using ElementCacheBaseT
 
using ElementCacheT
 
using ElementPtrT
 
using ElementObsT
 
using ElementContT
 
using ElementInitialiserT
 
using ElementCleanerT
 
using ElementMergerT
 

Fonctions membres publiques

C3D_API ResourceCacheT (castor3d::Engine &engine)
 Constructeur.
 
C3D_API void initialise (castor3d::RenderDevice const &device)
 Initialise le matériau par défaut.
 
C3D_API void cleanup ()
 Met tous les éléments à nettoyer.
 
C3D_API void clear () noexcept
 Supprime le matériau par défaut, vide la collection.
 
C3D_API void update (castor3d::CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU.
 
C3D_API void update (castor3d::GpuUpdater &updater)
 Met à jour la passe de rendu, au niveau GPU.
 
C3D_API void upload (castor3d::UploadData &uploader) const
 Met à jour tous les tampons GPU en VRAM.
 
C3D_API void registerSpecificsBuffer (castor::String const &name, castor3d::SpecificsBuffer buffer)
 Enregistre un shader buffer de données spécifiques.
 
C3D_API void unregisterSpecificsBuffer (castor::String const &name) noexcept
 Désenregistre un shader buffer de données spécifiques.
 
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é.
 
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é.
 
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.
 
C3D_API void declareSpecificsShaderBuffers (sdw::ShaderWriter &writer, castor::StringMap< castor3d::shader::BufferBaseUPtr > &buffers, uint32_t &binding, uint32_t set) const
 Déclare dans les shaders les buffers spécifiques enregistrés.
 
C3D_API void getNames (StringArray &names)
 Remplit la liste des noms de tous les matériaux.
 
C3D_API uint32_t getMaxPassTypeCount () const
 Le nombre maximum de types de passes (pour l'utilisation de vibility buffer).
 
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).
 
C3D_API uint32_t getPassTypeIndex (castor3d::PassComponentCombineID passType, castor3d::TextureCombineID textureFlags) const
 L'indice de type de passe (pour l'utilisation de vibility buffer).
 
C3D_API bool registerPass (castor3d::Pass &pass)
 
C3D_API void unregisterPass (castor3d::Pass &pass) noexcept
 
C3D_API bool registerUnit (castor3d::TextureUnit &unit)
 
C3D_API void unregisterUnit (castor3d::TextureUnit &unit) noexcept
 
C3D_API bool registerTexture (castor3d::AnimatedTexture const &texture)
 
C3D_API void unregisterTexture (castor3d::AnimatedTexture const &texture) noexcept
 
C3D_API uint32_t getCurrentPassTypeCount () const
 
castor3d::MaterialObs getDefaultMaterial () const
 
castor3d::PassBuffer const & getPassBuffer () const
 
castor3d::SssProfileBuffer const & getSssProfileBuffer () const
 
castor3d::TextureConfigurationBuffer const & getTexConfigBuffer () const
 
castor3d::TextureAnimationBuffer const & getTexAnimBuffer () const
 
- Fonctions membres publiques hérités de castor::ResourceCacheBaseT< castor3d::Material, String, castor3d::MaterialCacheTraits >
 ResourceCacheBaseT (ResourceCacheBaseT const &)=delete
 
 ResourceCacheBaseT (ResourceCacheBaseT &&) noexcept=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT const &)=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT &&) noexcept=delete
 
void cleanup () noexcept
 Met tous les éléments à nettoyer.
 
void clear () noexcept
 Vide la collection.
 
ElementPtrT create (ElementKeyT const &name, ParametersT &&... parameters) const
 Crée un élément.
 
ElementObsT tryAdd (ElementKeyT const &name, ElementPtrT &element, bool initialise=false)
 Ajoute un élément.
 
ElementObsT tryAdd (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
ElementObsT tryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=false)
 Ajoute un élément.
 
ElementObsT tryAddNoLock (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
ElementObsT add (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
ElementObsT add (ElementKeyT const &name, ParametersT &&... parameters)
 Version journalisante de tryAdd.
 
ElementObsT addNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
ElementObsT addNoLock (ElementKeyT const &name, ParametersT &&... parameters)
 Version journalisante de tryAdd.
 
ElementPtrT tryRemove (ElementKeyT const &name, bool cleanup=false) noexcept
 Retire un élément à partir d'un nom.
 
ElementPtrT tryRemoveNoLock (ElementKeyT const &name, bool cleanup=false) noexcept
 Retire un élément à partir d'un nom.
 
ElementPtrT remove (ElementKeyT const &name, bool cleanup=false) noexcept
 Version journalisante de tryAdd.
 
ElementPtrT removeNoLock (ElementKeyT const &name, bool cleanup=false) noexcept
 Version journalisante de tryAdd.
 
void rename (ElementKeyT const &oldName, ElementKeyT const &newName)
 Renomme une ressource.
 
ElementObsT tryFind (ElementKeyT const &name) const noexcept
 Cherche un élément par son nom.
 
ElementObsT tryFindNoLock (ElementKeyT const &name) const noexcept
 Cherche un élément par son nom.
 
ElementObsT find (ElementKeyT const &name) const
 Version journalisante de tryAdd.
 
ElementObsT findNoLock (ElementKeyT const &name) const
 Version journalisante de tryAdd.
 
void mergeInto (ElementCacheBaseT &destination)
 Met les éléments de ce cache dans ceux de celui donné.
 
void forEach (FuncType func) const
 
void forEach (FuncType func)
 
uint32_t getObjectCount () const noexcept
 
uint32_t getObjectCountNoLock () const noexcept
 
String const & getObjectTypeName () const noexcept
 
bool has (ElementKeyT const &name) const noexcept
 
bool hasNoLock (ElementKeyT const &name) const noexcept
 
bool isEmpty () const noexcept
 
bool isEmptyNoLock () const noexcept
 
void lock () const
 
void unlock () const noexcept
 
auto begin () noexcept
 
auto begin () const noexcept
 
auto end () noexcept
 
auto end () const noexcept
 
void reportCreation (String const &name) const
 
void reportAdded (String const &name) const
 
void reportDuplicate (String const &name) const
 
void reportNull () const
 
void reportUnknown (String const &name) const
 

Membres hérités additionnels

- Types protégés hérités de castor::ResourceCacheBaseT< castor3d::Material, String, castor3d::MaterialCacheTraits >
using MutexT
 
- Fonctions membres protégées hérités de castor::ResourceCacheBaseT< castor3d::Material, String, castor3d::MaterialCacheTraits >
void doCleanupNoLock () const noexcept
 
void doClearNoLock () noexcept
 
ElementPtrT doCreateT (ElementKeyT const &name, ParametersT &&... parameters) const
 
ElementObsT doTryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 
ElementObsT doAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 
ElementObsT doTryAddNoLockT (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 
ElementObsT doAddNoLockT (ElementKeyT const &name, ParametersT &&... parameters)
 
ElementPtrT doTryRemoveNoLock (ElementKeyT const &name, bool cleanup=false) noexcept
 
ElementObsT doTryFindNoLock (ElementKeyT const &name) const noexcept
 
 ResourceCacheBaseT (LoggerInstance &logger, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{})
 
virtual ~ResourceCacheBaseT () noexcept=default
 
- Attributs protégés hérités de castor::ResourceCacheBaseT< castor3d::Material, String, castor3d::MaterialCacheTraits >
LoggerInstancem_logger
 
CheckedMutexT< MutexTm_mutex
 
ElementContT m_resources
 
ElementInitialiserT m_initialise
 
ElementCleanerT m_clean
 
ElementMergerT m_merge
 

Description détaillée

Collection de matériaux, avec des fonctions additionnelles.

Documentation des définitions de type membres

◆ ElementCacheT

◆ ElementCacheTraitsT

◆ ElementCleanerT

◆ ElementContT

◆ ElementInitialiserT

◆ ElementKeyT

◆ ElementMergerT

◆ ElementPtrT

◆ ElementT

Documentation des constructeurs et destructeur

◆ ResourceCacheT()

Constructeur.

Paramètres
[in]engineLe moteur.

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()

Met tous les éléments à nettoyer.

◆ 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,
castor::StringMap< 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()

◆ getMaxPassTypeCount()

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

◆ getNames()

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

Paramètres
[out]namesLa liste de noms

◆ getPassBuffer()

Références CU_Require.

◆ getPassTypeDetails()

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

◆ getPassTypeIndex()

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

◆ getSssProfileBuffer()

Références CU_Require.

◆ getTexAnimBuffer()

Références CU_Require.

◆ getTexConfigBuffer()

Références CU_Require.

◆ initialise()

Initialise le matériau par défaut.

Paramètres
[in]deviceLe device GPU.

◆ registerPass()

◆ registerSpecificsBuffer()

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

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

◆ registerTexture()

◆ registerUnit()

◆ unregisterPass()

◆ unregisterSpecificsBuffer()

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

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

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

◆ unregisterTexture()

◆ unregisterUnit()

◆ update() [1/2]

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

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

◆ update() [2/2]

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

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

◆ upload()

Met à jour tous les tampons GPU en VRAM.

Paramètres
[in]uploaderReçoit les requêtes d'upload.

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