Castor3D 0.15.0
Multiplatform 3D engine
|
Collection de matériaux, avec des fonctions additionnelles. Plus de détails...
#include <MaterialCache.hpp>
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. | |
C3D_API | ~ResourceCacheT () override=default |
Destructeur. | |
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 () |
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 (ashes::CommandBuffer const &cb) const |
Met à jour tous les tampons GPU en VRAM. | |
C3D_API void | registerSpecificsBuffer (std::string const &name, castor3d::SpecificsBuffer buffer) |
Enregistre un shader buffer de données spécifiques. | |
C3D_API void | unregisterSpecificsBuffer (std::string const &name) |
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, 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. | |
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::TextureCombineID > | getPassTypeDetails (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) |
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::MaterialObs | getDefaultMaterial () const |
castor3d::PassBuffer const & | getPassBuffer () const |
castor3d::SssProfileBuffer const & | getSssProfileBuffer () const |
castor3d::TextureConfigurationBuffer const & | getTexConfigBuffer () const |
castor3d::TextureAnimationBuffer const & | getTexAnimBuffer () const |
Collection de matériaux, avec des fonctions additionnelles.
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementCacheT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT > |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementCacheTraitsT = castor3d::MaterialCacheTraits |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementCleanerT = typename ElementCacheT::ElementCleanerT |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementContT = typename ElementCacheT::ElementContT |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementInitialiserT = typename ElementCacheT::ElementInitialiserT |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementKeyT = String |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementMergerT = typename ElementCacheT::ElementMergerT |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementPtrT = typename ElementCacheT::ElementPtrT |
using castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::ElementT = castor3d::Material |
|
explicit |
Constructeur.
[in] | engine | Le moteur. |
|
overridedefault |
Destructeur.
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é.
[in,out] | bindings | Reçoit les descriptor layout bindings des buffers. |
[in] | shaderStages | Les indicateurs de shader stage. |
[in,out] | index | L'indice de binding. |
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é.
[in,out] | descriptorWrites | Reçoit les descriptor writes des buffers. |
[in,out] | index | L'indice de binding. |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::cleanup | ( | ) |
Met tous les éléments à nettoyer.
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::clear | ( | ) |
Supprime le matériau par défaut, vide la collection.
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.
[in,out] | pass | La frame pass ciblée. |
[in,out] | index | L'indice de binding. |
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.
[in,out] | writer | Le writer de shader. |
[out] | buffers | Reçoit les shader buffers enregistrés. |
[in,out] | binding | L'indice de descripteur. |
[in] | set | L'indice de descriptor set. |
C3D_API uint32_t castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getCurrentPassTypeCount | ( | ) | const |
|
inline |
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).
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::getNames | ( | StringArray & | names | ) |
Remplit la liste des noms de tous les matériaux.
[out] | names | La liste de noms |
|
inline |
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).
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).
|
inline |
|
inline |
|
inline |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::initialise | ( | castor3d::RenderDevice const & | device | ) |
Initialise le matériau par défaut.
[in] | device | Le device GPU. |
C3D_API bool castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerPass | ( | castor3d::Pass & | pass | ) |
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.
[in,out] | name | Le nom du shader buffer. |
[out] | buffer | Le shader buffer. |
C3D_API bool castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerTexture | ( | castor3d::AnimatedTexture const & | texture | ) |
C3D_API bool castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::registerUnit | ( | castor3d::TextureUnit & | unit | ) |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterPass | ( | castor3d::Pass & | pass | ) |
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.
[in,out] | name | Le nom du shader buffer. |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterTexture | ( | castor3d::AnimatedTexture const & | texture | ) |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::unregisterUnit | ( | castor3d::TextureUnit & | unit | ) |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::update | ( | castor3d::CpuUpdater & | updater | ) |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::update | ( | castor3d::GpuUpdater & | updater | ) |
Met à jour la passe de rendu, au niveau GPU.
[in,out] | updater | Les données d'update. |
C3D_API void castor::ResourceCacheT< castor3d::Material, String, castor3d::MaterialCacheTraits >::upload | ( | ashes::CommandBuffer const & | cb | ) | const |
Met à jour tous les tampons GPU en VRAM.
[in] | cb | Le command buffer sur lequel les commandes de transfert sont enregistrées. |