Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Liste de tous les membres
Référence de la classe castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >

Cache de Light. Plus de détails...

#include <LightCache.hpp>

Graphe d'héritage de castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >:
Collaboration graph
[légende]

Types publics

using ElementT = Light
 
using ElementKeyT = castor::String
 
using ElementCacheTraitsT = LightCacheTraits
 
using ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementPtrT = typename ElementObjectCacheT::ElementPtrT
 
using ElementContT = typename ElementObjectCacheT::ElementContT
 
using ElementInitialiserT = typename ElementObjectCacheT::ElementInitialiserT
 
using ElementCleanerT = typename ElementObjectCacheT::ElementCleanerT
 
using ElementMergerT = typename ElementObjectCacheT::ElementMergerT
 
using ElementAttacherT = typename ElementObjectCacheT::ElementAttacherT
 
using ElementDetacherT = typename ElementObjectCacheT::ElementDetacherT
 
- Types publics hérités de castor3d::ObjectCacheBaseT< Light, castor::String, LightCacheTraits >
using OnChangedFunction
 
using OnChanged
 
- Types publics hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
using ElementT = ResT
 
using ElementKeyT = KeyT
 
using ElementCacheTraitsT = TraitsT
 
using ElementCacheBaseT = ResourceCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT >
 
using ElementCacheT = typename ElementCacheTraitsT::ElementCacheT
 
using ElementPtrT = typename ElementCacheTraitsT::ElementPtrT
 
using ElementObsT = typename ElementCacheTraitsT::ElementObsT
 
using ElementContT = typename ElementCacheTraitsT::ElementContT
 
using ElementInitialiserT = typename ElementCacheTraitsT::ElementInitialiserT
 
using ElementCleanerT = typename ElementCacheTraitsT::ElementCleanerT
 
using ElementMergerT = typename ElementCacheTraitsT::ElementMergerT
 

Fonctions membres publiques

C3D_API ObjectCacheT (Scene &scene, SceneNodeRPtr rootNode, SceneNodeRPtr rootCameraNode, SceneNodeRPtr rootObjectNode)
 Constructeur.
 
C3D_API void initialise (castor3d::RenderDevice const &device)
 Initialise le buffer GPU.
 
C3D_API void cleanup ()
 Met tous les éléments à nettoyer.
 
C3D_API void update (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU.
 
C3D_API void upload (UploadData &uploader) const
 Met à jour tous les tampons GPU en VRAM.
 
C3D_API LightsArray getLights (LightType type) const
 Récupère les lumières du type donné.
 
C3D_API void createPassBinding (crg::FramePass &pass, uint32_t binding) const
 Crée une attache de frame pass.
 
C3D_API VkDescriptorSetLayoutBinding createLayoutBinding (VkShaderStageFlags stages, uint32_t index) const
 Crée une attache de layout de set de descripteurs au point donné.
 
C3D_API void addLayoutBinding (ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags stages, uint32_t &index) const
 Ajoute une attache de layout de set de descripteurs au point donné.
 
C3D_API ashes::WriteDescriptorSet getBinding (uint32_t binding) const
 Crée le descriptor write pour le buffer de sources lumineuses.
 
C3D_API void addBinding (ashes::WriteDescriptorSetArray &writes, uint32_t &binding) const
 Crée le descriptor write pour le buffer de sources lumineuses.
 
C3D_API ashes::WriteDescriptorSet getBinding (uint32_t binding, VkDeviceSize offset, VkDeviceSize size) const
 Crée le descriptor write pour le buffer de sources lumineuses.
 
C3D_API uint32_t getLightsBufferCount (LightType type) const noexcept
 Crée le descriptor write pour le buffer de sources lumineuses.
 
uint32_t getLightsCount (LightType type) const
 
bool isDirty () const noexcept
 
bool hasClusteredLights () const noexcept
 
- Fonctions membres publiques hérités de castor3d::ObjectCacheBaseT< Light, castor::String, LightCacheTraits >
void mergeInto (ElementObjectCacheT &destination)
 Met les éléments de ce cache dans ceux de celui donné.
 
EnginegetEngine () const noexcept
 
castor::String const & getObjectTypeName () const noexcept
 
- Fonctions membres publiques hérités de castor::OwnedBy< Scene >
Scene * getOwner () const
 L'objet propriétaire.
 
- Fonctions membres publiques hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
 ResourceCacheBaseT (ResourceCacheBaseT const &)=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT const &)=delete
 
 ResourceCacheBaseT (ResourceCacheBaseT &&) noexcept=delete
 
ResourceCacheBaseToperator= (ResourceCacheBaseT &&) noexcept=delete
 
void cleanup () noexcept
 Met tous les éléments à nettoyer.
 
void clear () noexcept
 Vide la collection.
 
template<typename ... ParametersT>
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 tryAddNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=false)
 Ajoute un élément.
 
ElementObsT add (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
ElementObsT addNoLock (ElementKeyT const &name, ElementPtrT &element, bool initialise=true)
 Version journalisante de tryAdd.
 
template<typename ... ParametersT>
ElementObsT tryAdd (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
template<typename ... ParametersT>
ElementObsT tryAddNoLock (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 Ajoute un élément, construict sur place.
 
template<typename ... ParametersT>
ElementObsT add (ElementKeyT const &name, ParametersT &&... parameters)
 Version journalisante de tryAdd.
 
template<typename ... ParametersT>
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é.
 
template<typename FuncType >
void forEach (FuncType func) const
 
template<typename FuncType >
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

- Attributs publics hérités de castor3d::ObjectCacheBaseT< Light, castor::String, LightCacheTraits >
OnChanged onChanged
 
- Types protégés hérités de castor3d::ObjectCacheBaseT< Light, castor::String, LightCacheTraits >
using ElementT
 
using ElementKeyT
 
using ElementCacheTraitsT
 
using ElementCacheT
 
using ElementCacheBaseT
 
using ElementObjectCacheT
 
using ElementPtrT
 
using ElementObsT
 
using ElementContT
 
using ElementInitialiserT
 
using ElementCleanerT
 
using ElementMergerT
 
using ElementAttacherT
 
using ElementDetacherT
 
- Types protégés hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
using MutexT = castor::RecursiveMutex
 
- Fonctions membres protégées hérités de castor3d::ObjectCacheBaseT< Light, castor::String, LightCacheTraits >
 ObjectCacheBaseT (Scene &scene, SceneNodeRPtr rootNode, SceneNodeRPtr rootCameraNode, SceneNodeRPtr rootObjectNode, ElementInitialiserT initialise=ElementInitialiserT{}, ElementCleanerT clean=ElementCleanerT{}, ElementMergerT merge=ElementMergerT{}, ElementAttacherT attach=ElementAttacherT{}, ElementDetacherT detach=ElementDetacherT{})
 Constructeur.
 
- Fonctions membres protégées hérités de castor::OwnedBy< Scene >
 OwnedBy (Scene &owner)
 Constructeur.
 
- Fonctions membres protégées hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
void doCleanupNoLock () const noexcept
 
void doClearNoLock () noexcept
 
template<typename ... ParametersT>
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)
 
template<typename ... ParametersT>
ElementObsT doTryAddNoLockT (ElementKeyT const &name, bool initialise, ElementObsT &created, ParametersT &&... parameters)
 
template<typename ... ParametersT>
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 castor3d::ObjectCacheBaseT< Light, castor::String, LightCacheTraits >
Enginem_engine
 
SceneNodeRPtr m_rootNode
 
SceneNodeRPtr m_rootCameraNode
 
SceneNodeRPtr m_rootObjectNode
 
ElementMergerT m_merge
 
ElementAttacherT m_attach
 
ElementDetacherT m_detach
 
- Attributs protégés hérités de castor::ResourceCacheBaseT< ResT, KeyT, TraitsT >
LoggerInstancem_logger
 
CheckedMutexT< MutexTm_mutex
 
ElementContT m_resources
 
ElementInitialiserT m_initialise
 
ElementCleanerT m_clean
 
ElementMergerT m_merge
 

Description détaillée

Cache de Light.

Documentation des définitions de type membres

◆ ElementAttacherT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementAttacherT = typename ElementObjectCacheT::ElementAttacherT

◆ ElementCacheTraitsT

◆ ElementCleanerT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementCleanerT = typename ElementObjectCacheT::ElementCleanerT

◆ ElementContT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementContT = typename ElementObjectCacheT::ElementContT

◆ ElementDetacherT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementDetacherT = typename ElementObjectCacheT::ElementDetacherT

◆ ElementInitialiserT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementInitialiserT = typename ElementObjectCacheT::ElementInitialiserT

◆ ElementKeyT

◆ ElementMergerT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementMergerT = typename ElementObjectCacheT::ElementMergerT

◆ ElementObjectCacheT

◆ ElementPtrT

using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementPtrT = typename ElementObjectCacheT::ElementPtrT

◆ ElementT

Documentation des constructeurs et destructeur

◆ ObjectCacheT()

C3D_API castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ObjectCacheT ( Scene & scene,
SceneNodeRPtr rootNode,
SceneNodeRPtr rootCameraNode,
SceneNodeRPtr rootObjectNode )

Constructeur.

Paramètres
[in]sceneLa scène.
[in]rootNodeLe noeud racine.
[in]rootCameraNodeLe noeud racine des caméras.
[in]rootObjectNodeLe noeud racine des objets.

Documentation des fonctions membres

◆ addBinding()

C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::addBinding ( ashes::WriteDescriptorSetArray & writes,
uint32_t & binding ) const

Crée le descriptor write pour le buffer de sources lumineuses.

◆ addLayoutBinding()

C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::addLayoutBinding ( ashes::VkDescriptorSetLayoutBindingArray & bindings,
VkShaderStageFlags stages,
uint32_t & index ) const

Ajoute une attache de layout de set de descripteurs au point donné.

Paramètres
[in,out]bindingsReçoit l'attache.
[in]stagesLes shader stages impactés.
[in,out]indexL'indice du point d'attache.

◆ cleanup()

Met tous les éléments à nettoyer.

◆ createLayoutBinding()

C3D_API VkDescriptorSetLayoutBinding castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::createLayoutBinding ( VkShaderStageFlags stages,
uint32_t index ) const

Crée une attache de layout de set de descripteurs au point donné.

Paramètres
[in]stagesLes shader stages impactés.
[in]indexL'indice du point d'attache.

◆ createPassBinding()

C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::createPassBinding ( crg::FramePass & pass,
uint32_t binding ) const

Crée une attache de frame pass.

◆ getBinding() [1/2]

C3D_API ashes::WriteDescriptorSet castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::getBinding ( uint32_t binding) const

Crée le descriptor write pour le buffer de sources lumineuses.

◆ getBinding() [2/2]

C3D_API ashes::WriteDescriptorSet castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::getBinding ( uint32_t binding,
VkDeviceSize offset,
VkDeviceSize size ) const

Crée le descriptor write pour le buffer de sources lumineuses.

◆ getLights()

C3D_API LightsArray castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::getLights ( LightType type) const

Récupère les lumières du type donné.

Paramètres
[in]typeLe type de lumière.
Renvoie
Les lumières.

◆ getLightsBufferCount()

C3D_API uint32_t castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::getLightsBufferCount ( LightType type) const
noexcept

Crée le descriptor write pour le buffer de sources lumineuses.

Paramètres
[in]typeLe type de lumière.
Renvoie
Le nombre de sources lumineuses du type donné, dans le buffer.

◆ getLightsCount()

uint32_t castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::getLightsCount ( LightType type) const
inline

◆ hasClusteredLights()

bool castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::hasClusteredLights ( ) const
inlinenoexcept

Références castor3d::ePoint, et castor3d::eSpot.

◆ initialise()

Initialise le buffer GPU.

Paramètres
[in]deviceLe device GPU.

◆ isDirty()

bool castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::isDirty ( ) const
inlinenoexcept

◆ update()

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

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

◆ upload()

Met à jour tous les tampons GPU en VRAM.

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

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