Castor3D  0.11.0
Multiplatform 3D engine
Fonctions membres publiques | Liste de tous les membres
Référence du modèle de la classe castor3d::UniformBufferT< DataT >

Un tampon typé d'uniformes, puovant contenir de multiples sous-tampons. Plus de détails...

Graphe d'héritage de castor3d::UniformBufferT< DataT >:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::UniformBufferT< DataT >:
Collaboration graph
[légende]

Fonctions membres publiques

 UniformBufferT (RenderSystem const &renderSystem, VkDeviceSize count, VkBufferUsageFlags usage, VkMemoryPropertyFlags flags, castor::String debugName, ashes::QueueShare sharingMode={})
 Constructeur. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, uint32_t offset, VkPipelineStageFlags flags) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, uint32_t offset, VkPipelineStageFlags flags) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (VkDeviceSize offset=0u, VkDeviceSize range=1u) const
 Met en VRAM les données du tampon. Plus de détails...
 
void download (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index)
 Transfère des données du tampon GPU vers la RAM. Plus de détails...
 
DataT const & getData (VkDeviceSize index=0) const
 
DataT & getData (VkDeviceSize index=0)
 
std::vector< DataT > const & getDatas () const
 
std::vector< DataT > & getDatas ()
 
- Fonctions membres publiques hérités de castor3d::UniformBufferBase
C3D_API UniformBufferBase (RenderSystem const &renderSystem, VkDeviceSize elemCount, VkDeviceSize elemSize, VkBufferUsageFlags usage, VkMemoryPropertyFlags flags, castor::String debugName, ashes::QueueShare sharingMode={})
 Constructeur. Plus de détails...
 
virtual C3D_API ~UniformBufferBase ()=default
 Destructeur. Plus de détails...
 
C3D_API uint32_t initialise (RenderDevice const &device)
 Initialise le tampon GPU. Plus de détails...
 
C3D_API uint32_t initialise (RenderDevice const &device, ashes::QueueShare sharingMode)
 Initialise le tampon GPU. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie le tampon GPU. Plus de détails...
 
C3D_API bool hasAvailable () const
 
C3D_API uint32_t allocate ()
 Alloue une zone mémoire pour un CPU buffer. Plus de détails...
 
C3D_API void deallocate (uint32_t offset)
 Désalloue de la mémoire. Plus de détails...
 
C3D_API void upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, const void *data, size_t size, uint32_t offset, VkPipelineStageFlags flags) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, ashes::ByteArray const &data, uint32_t offset, VkPipelineStageFlags flags) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
C3D_API void upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, const void *data, size_t size, uint32_t offset, VkPipelineStageFlags flags) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, ashes::ByteArray const &data, uint32_t offset, VkPipelineStageFlags flags) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
C3D_API void upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, const void *data, size_t size, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, ashes::ByteArray const &data, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
C3D_API void upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, const void *data, size_t size, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, ashes::ByteArray const &data, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
C3D_API void download (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, void *data, size_t size, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données du tampon GPU vers la RAM. Plus de détails...
 
void download (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, ashes::ByteArray &data, uint32_t offset, VkPipelineStageFlags flags, RenderPassTimer const &timer, uint32_t index) const
 Transfère des données du tampon GPU vers la RAM. Plus de détails...
 
bool hasBuffer () const
 
ashes::UniformBuffer const & getBuffer () const
 
 operator ashes::UniformBuffer const & () const
 
ashes::UniformBuffer & getBuffer ()
 
 operator ashes::UniformBuffer & ()
 
uint32_t getElementSize () const
 
uint32_t getAlignedSize (uint32_t size) const
 Récupère la taille alignée d'un élément. Plus de détails...
 
uint32_t getAlignedSize () const
 

Description détaillée

template<typename DataT>
class castor3d::UniformBufferT< DataT >

Un tampon typé d'uniformes, puovant contenir de multiples sous-tampons.

Remarques

Documentation des constructeurs et destructeur

◆ UniformBufferT()

template<typename DataT>
castor3d::UniformBufferT< DataT >::UniformBufferT ( RenderSystem const &  renderSystem,
VkDeviceSize  count,
VkBufferUsageFlags  usage,
VkMemoryPropertyFlags  flags,
castor::String  debugName,
ashes::QueueShare  sharingMode = {} 
)
inline

Constructeur.

Paramètres
[in]renderSystemLe RenderSystem.
[in]countLe nombre d'éléments.
[in]usageLes indicateurs d'utilisation du tampon.
[in]flagsLes indicateurs de mémoire du tampon.
[in]debugNameLe nom debug du tampon.
[in]sharingModeLe mode de partage du tampon.

Documentation des fonctions membres

◆ download()

template<typename DataT>
void castor3d::UniformBufferT< DataT >::download ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
uint32_t  offset,
VkPipelineStageFlags  flags,
RenderPassTimer const &  timer,
uint32_t  index 
)
inline

Transfère des données du tampon GPU vers la RAM.

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]stagingBufferLe staging buffer utilisé pour effectuer le transfer.
[in]queueLa file sur laquelle le transfert sera effectué.
[in]commandPoolLe command pool depuis lequel le command buffer sera créé.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.
[in]timerLe timer de passe de rendu.
[in]indexL'indice de passe de rendu.

◆ getData() [1/2]

template<typename DataT>
DataT const& castor3d::UniformBufferT< DataT >::getData ( VkDeviceSize  index = 0) const
inline
Renvoie
La n-ème instance des données.
Paramètres
[in]indexL'indice de l'instance.

◆ getData() [2/2]

template<typename DataT>
DataT& castor3d::UniformBufferT< DataT >::getData ( VkDeviceSize  index = 0)
inline
Renvoie
La n-ème instance des données.
Paramètres
[in]indexL'indice de l'instance.

◆ getDatas() [1/2]

template<typename DataT>
std::vector< DataT > const& castor3d::UniformBufferT< DataT >::getDatas ( ) const
inline
Renvoie
Les données.

◆ getDatas() [2/2]

template<typename DataT>
std::vector< DataT >& castor3d::UniformBufferT< DataT >::getDatas ( )
inline
Renvoie
Les données.

◆ upload() [1/5]

template<typename DataT>
void castor3d::UniformBufferT< DataT >::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
uint32_t  offset,
VkPipelineStageFlags  flags 
) const
inline

Transfère des données au tampon GPU à partir de la RAM.

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]stagingBufferLe staging buffer utilisé pour effectuer le transfer.
[in]queueLa file sur laquelle le transfert sera effectué.
[in]commandPoolLe command pool depuis lequel le command buffer sera créé.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.

◆ upload() [2/5]

template<typename DataT>
void castor3d::UniformBufferT< DataT >::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::CommandBuffer const &  commandBuffer,
uint32_t  offset,
VkPipelineStageFlags  flags 
) const
inline

Transfère des données au tampon GPU à partir de la RAM.

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]stagingBufferLe staging buffer utilisé pour effectuer le transfer.
[in]commandBufferLe command buffer sur lequel les commandes de transfert sont enregistrées.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.

◆ upload() [3/5]

template<typename DataT>
void castor3d::UniformBufferT< DataT >::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
uint32_t  offset,
VkPipelineStageFlags  flags,
RenderPassTimer const &  timer,
uint32_t  index 
) const
inline

Transfère des données au tampon GPU à partir de la RAM.

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]stagingBufferLe staging buffer utilisé pour effectuer le transfer.
[in]queueLa file sur laquelle le transfert sera effectué.
[in]commandPoolLe command pool depuis lequel le command buffer sera créé.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.
[in]timerLe timer de passe de rendu.
[in]indexL'indice de passe de rendu.

◆ upload() [4/5]

template<typename DataT>
void castor3d::UniformBufferT< DataT >::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::CommandBuffer const &  commandBuffer,
uint32_t  offset,
VkPipelineStageFlags  flags,
RenderPassTimer const &  timer,
uint32_t  index 
) const
inline

Transfère des données au tampon GPU à partir de la RAM.

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]stagingBufferLe staging buffer utilisé pour effectuer le transfer.
[in]commandBufferLe command buffer sur lequel les commandes de transfert sont enregistrées.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.
[in]timerLe timer de passe de rendu.
[in]indexL'indice de passe de rendu.

◆ upload() [5/5]

template<typename DataT>
void castor3d::UniformBufferT< DataT >::upload ( VkDeviceSize  offset = 0u,
VkDeviceSize  range = 1u 
) const
inline

Met en VRAM les données du tampon.

Paramètres
[in]offsetL'offset à partir duquel la mémoire du tampon est mappée.
[in]rangeLe nombre d'éléments à mapper.

La documentation de cette classe a été générée à partir des fichiers suivants :