Castor3D 0.12.0
Multiplatform 3D engine
Fonctions membres publiques | Liste de tous les membres
Référence de la classe castor3d::UniformBufferBase

#include <UniformBufferBase.hpp>

Graphe d'héritage de castor3d::UniformBufferBase:
Inheritance graph
[légende]

Fonctions membres publiques

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, FramePassTimer 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, FramePassTimer 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, FramePassTimer 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, FramePassTimer 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, FramePassTimer 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, FramePassTimer 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
 

Documentation des constructeurs et destructeur

◆ UniformBufferBase()

C3D_API castor3d::UniformBufferBase::UniformBufferBase ( RenderSystem const &  renderSystem,
VkDeviceSize  elemCount,
VkDeviceSize  elemSize,
VkBufferUsageFlags  usage,
VkMemoryPropertyFlags  flags,
castor::String  debugName,
ashes::QueueShare  sharingMode = {} 
)

Constructeur.

Paramètres
[in]renderSystemLe RenderSystem.
[in]elemCountLe nombre d'éléments.
[in]elemSizeLa taille d'un élément.
[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.

◆ ~UniformBufferBase()

virtual C3D_API castor3d::UniformBufferBase::~UniformBufferBase ( )
virtualdefault

Destructeur.

Documentation des fonctions membres

◆ allocate()

C3D_API uint32_t castor3d::UniformBufferBase::allocate ( )

Alloue une zone mémoire pour un CPU buffer.

Renvoie
L'offset de la zone mémoire.

◆ cleanup()

C3D_API void castor3d::UniformBufferBase::cleanup ( )

Nettoie le tampon GPU.

◆ deallocate()

C3D_API void castor3d::UniformBufferBase::deallocate ( uint32_t  offset)

Désalloue de la mémoire.

Paramètres
[in]offsetL'offset de la zone mémoire.

◆ download() [1/2]

void castor3d::UniformBufferBase::download ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
ashes::ByteArray &  data,
uint32_t  offset,
VkPipelineStageFlags  flags,
FramePassTimer const &  timer,
uint32_t  index 
) const
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]dataReçoit les données transférées, packed.
[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.

Références download().

Voici le graphe d'appel pour cette fonction :

◆ download() [2/2]

C3D_API void castor3d::UniformBufferBase::download ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
void *  data,
size_t  size,
uint32_t  offset,
VkPipelineStageFlags  flags,
FramePassTimer const &  timer,
uint32_t  index 
) const

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]dataReçoit les données transférées, packed.
[in]sizeLa taille des donné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.

Référencé par download().

Voici le graphe des appelants de cette fonction :

◆ getAlignedSize() [1/2]

uint32_t castor3d::UniformBufferBase::getAlignedSize ( ) const
inline
Renvoie
La taille alignée d'un élément.

Références getAlignedSize(), et getElementSize().

Référencé par getAlignedSize().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getAlignedSize() [2/2]

uint32_t castor3d::UniformBufferBase::getAlignedSize ( uint32_t  size) const
inline

Récupère la taille alignée d'un élément.

Paramètres
[in]sizeLa taille d'un élément.
Renvoie
La taille alignée.

Références getAlignedSize(), et getBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getBuffer() [1/2]

ashes::UniformBuffer & castor3d::UniformBufferBase::getBuffer ( )
inline
Renvoie
Le tampon interne.

◆ getBuffer() [2/2]

ashes::UniformBuffer const & castor3d::UniformBufferBase::getBuffer ( ) const
inline
Renvoie
Le tampon interne.

Référencé par getAlignedSize(), et getElementSize().

Voici le graphe des appelants de cette fonction :

◆ getElementSize()

uint32_t castor3d::UniformBufferBase::getElementSize ( ) const
inline
Renvoie
La taille d'un élément du tampon.

Références getBuffer(), et getElementSize().

Référencé par getAlignedSize(), et getElementSize().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ hasAvailable()

C3D_API bool castor3d::UniformBufferBase::hasAvailable ( ) const
Renvoie
true s'il y a assez de mémoire restante pour un nouvel élément.

◆ hasBuffer()

bool castor3d::UniformBufferBase::hasBuffer ( ) const
inline
Renvoie
false si le tampon interne n'existe pas.

◆ initialise() [1/2]

C3D_API uint32_t castor3d::UniformBufferBase::initialise ( RenderDevice const &  device)

Initialise le tampon GPU.

Paramètres
[in]deviceLe device GPU.

◆ initialise() [2/2]

C3D_API uint32_t castor3d::UniformBufferBase::initialise ( RenderDevice const &  device,
ashes::QueueShare  sharingMode 
)

Initialise le tampon GPU.

Paramètres
[in]deviceLe device GPU.
[in]sharingModeLe mode de partage du tampon.

◆ operator ashes::UniformBuffer &()

castor3d::UniformBufferBase::operator ashes::UniformBuffer & ( )
inline

◆ operator ashes::UniformBuffer const &()

castor3d::UniformBufferBase::operator ashes::UniformBuffer const & ( ) const
inline

◆ upload() [1/8]

void castor3d::UniformBufferBase::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::CommandBuffer const &  commandBuffer,
ashes::ByteArray const &  data,
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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.

Références upload().

Voici le graphe d'appel pour cette fonction :

◆ upload() [2/8]

void castor3d::UniformBufferBase::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::CommandBuffer const &  commandBuffer,
ashes::ByteArray const &  data,
uint32_t  offset,
VkPipelineStageFlags  flags,
FramePassTimer 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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[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.

Références upload().

Voici le graphe d'appel pour cette fonction :

◆ upload() [3/8]

C3D_API void castor3d::UniformBufferBase::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.

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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[in]sizeLa taille des données.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.

◆ upload() [4/8]

C3D_API void castor3d::UniformBufferBase::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::CommandBuffer const &  commandBuffer,
const void *  data,
size_t  size,
uint32_t  offset,
VkPipelineStageFlags  flags,
FramePassTimer const &  timer,
uint32_t  index 
) const

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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[in]sizeLa taille des donné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/8]

void castor3d::UniformBufferBase::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
ashes::ByteArray const &  data,
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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.

Références upload().

Voici le graphe d'appel pour cette fonction :

◆ upload() [6/8]

void castor3d::UniformBufferBase::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
ashes::ByteArray const &  data,
uint32_t  offset,
VkPipelineStageFlags  flags,
FramePassTimer 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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[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.

Références upload().

Voici le graphe d'appel pour cette fonction :

◆ upload() [7/8]

C3D_API void castor3d::UniformBufferBase::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.

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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[in]sizeLa taille des données.
[in]offsetL'offset de départ.
[in]flagsLes indicateurs de pipeline stage pour la barrière mémoire de sortie.

Référencé par upload().

Voici le graphe des appelants de cette fonction :

◆ upload() [8/8]

C3D_API void castor3d::UniformBufferBase::upload ( ashes::BufferBase const &  stagingBuffer,
ashes::Queue const &  queue,
ashes::CommandPool const &  commandPool,
const void *  data,
size_t  size,
uint32_t  offset,
VkPipelineStageFlags  flags,
FramePassTimer const &  timer,
uint32_t  index 
) const

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]dataLes données à transférer, packed (elles seront alignées lors de l'upload).
[in]sizeLa taille des donné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.

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