Castor3D 0.16.0
Multiplatform 3D engine
|
Cache de Light. Plus de détails...
#include <LightCache.hpp>
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é. | |
Engine * | getEngine () 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 | |
ResourceCacheBaseT & | operator= (ResourceCacheBaseT const &)=delete |
ResourceCacheBaseT (ResourceCacheBaseT &&) noexcept=delete | |
ResourceCacheBaseT & | operator= (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 |
Cache de Light.
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementAttacherT = typename ElementObjectCacheT::ElementAttacherT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementCacheTraitsT = LightCacheTraits |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementCleanerT = typename ElementObjectCacheT::ElementCleanerT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementContT = typename ElementObjectCacheT::ElementContT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementDetacherT = typename ElementObjectCacheT::ElementDetacherT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementInitialiserT = typename ElementObjectCacheT::ElementInitialiserT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementKeyT = castor::String |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementMergerT = typename ElementObjectCacheT::ElementMergerT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementObjectCacheT = ObjectCacheBaseT< ElementT, ElementKeyT, ElementCacheTraitsT > |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementPtrT = typename ElementObjectCacheT::ElementPtrT |
using castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ElementT = Light |
C3D_API castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::ObjectCacheT | ( | Scene & | scene, |
SceneNodeRPtr | rootNode, | ||
SceneNodeRPtr | rootCameraNode, | ||
SceneNodeRPtr | rootObjectNode ) |
Constructeur.
[in] | scene | La scène. |
[in] | rootNode | Le noeud racine. |
[in] | rootCameraNode | Le noeud racine des caméras. |
[in] | rootObjectNode | Le noeud racine des objets. |
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.
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é.
[in,out] | bindings | Reçoit l'attache. |
[in] | stages | Les shader stages impactés. |
[in,out] | index | L'indice du point d'attache. |
C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::cleanup | ( | ) |
Met tous les éléments à nettoyer.
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é.
[in] | stages | Les shader stages impactés. |
[in] | index | L'indice du point d'attache. |
C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::createPassBinding | ( | crg::FramePass & | pass, |
uint32_t | binding ) const |
Crée une attache de frame pass.
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.
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.
C3D_API LightsArray castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::getLights | ( | LightType | type | ) | const |
Récupère les lumières du type donné.
[in] | type | Le type de lumière. |
|
noexcept |
Crée le descriptor write pour le buffer de sources lumineuses.
[in] | type | Le type de lumière. |
|
inline |
|
inlinenoexcept |
Références castor3d::ePoint, et castor3d::eSpot.
C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::initialise | ( | castor3d::RenderDevice const & | device | ) |
Initialise le buffer GPU.
[in] | device | Le device GPU. |
|
inlinenoexcept |
C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::update | ( | CpuUpdater & | updater | ) |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
C3D_API void castor3d::ObjectCacheT< Light, castor::String, LightCacheTraits >::upload | ( | UploadData & | uploader | ) | const |
Met à jour tous les tampons GPU en VRAM.
[in,out] | uploader | Reçoit les requêtes d'upload. |