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

#include <PoolUniformBuffer.hpp>

Fonctions membres publiques

C3D_API PoolUniformBuffer (RenderSystem const &renderSystem, VkBufferUsageFlags usage, VkMemoryPropertyFlags flags, castor::String debugName, ashes::QueueShare sharingMode={})
 Constructeur.
 
C3D_API uint32_t initialise (RenderDevice const &device)
 Initialise le tampon GPU.
 
C3D_API void cleanup (RenderDevice const &device) noexcept
 Nettoie le tampon GPU.
 
C3D_API void flush ()
 Rend disponible en VRAM les modifications locales.
 
C3D_API bool hasAvailable (VkDeviceSize size) const noexcept
 
C3D_API bool hasAllocated () const noexcept
 
C3D_API MemChunk allocate (VkDeviceSize size)
 Alloue une zone mémoire pour un CPU buffer.
 
C3D_API void deallocate (VkDeviceSize offset) noexcept
 Désalloue de la mémoire.
 
template<typename DataT >
DataT const & getData (VkDeviceSize offset) const noexcept
 
template<typename DataT >
DataT & getData (VkDeviceSize offset) noexcept
 
castor::ByteArrayView const & getDatas () const noexcept
 
castor::ByteArrayView & getDatas () noexcept
 
bool hasBuffer () const noexcept
 
ashes::UniformBuffer const & getBuffer () const noexcept
 
ashes::UniformBuffer & getBuffer () noexcept
 
uint32_t getElementSize () const noexcept
 
uint32_t getAlignedSize (uint32_t size) const noexcept
 Récupère la taille alignée d'un élément.
 
uint32_t getAlignedSize () const noexcept
 

Documentation des constructeurs et destructeur

◆ PoolUniformBuffer()

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

Constructeur.

Paramètres
[in]renderSystemLe RenderSystem.
[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.

Documentation des fonctions membres

◆ allocate()

C3D_API MemChunk castor3d::PoolUniformBuffer::allocate ( VkDeviceSize size)

Alloue une zone mémoire pour un CPU buffer.

Paramètres
sizeLa taille voulue.
Renvoie
L'offset de la zone mémoire.

◆ cleanup()

C3D_API void castor3d::PoolUniformBuffer::cleanup ( RenderDevice const & device)
noexcept

Nettoie le tampon GPU.

Paramètres
[in]deviceLe device GPU.

◆ deallocate()

C3D_API void castor3d::PoolUniformBuffer::deallocate ( VkDeviceSize offset)
noexcept

Désalloue de la mémoire.

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

◆ flush()

C3D_API void castor3d::PoolUniformBuffer::flush ( )

Rend disponible en VRAM les modifications locales.

◆ getAlignedSize() [1/2]

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

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

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

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

◆ getAlignedSize() [2/2]

uint32_t castor3d::PoolUniformBuffer::getAlignedSize ( uint32_t size) const
inlinenoexcept

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().

Référencé par castor3d::UniformBufferOffsetT< DataT >::getAlignedSize(), castor3d::UniformBufferOffsetT< DataT >::getData(), et castor3d::UniformBufferOffsetT< DataT >::getData().

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

◆ getBuffer() [1/2]

ashes::UniformBuffer const & castor3d::PoolUniformBuffer::getBuffer ( ) const
inlinenoexcept

◆ getBuffer() [2/2]

ashes::UniformBuffer & castor3d::PoolUniformBuffer::getBuffer ( )
inlinenoexcept
Renvoie
Le tampon interne.

◆ getData() [1/2]

template<typename DataT >
DataT const & castor3d::PoolUniformBuffer::getData ( VkDeviceSize offset) const
inlinenoexcept
Renvoie
La n-ème instance des données.
Paramètres
[in]offsetL'offset de la zone mémoire.

Référencé par castor3d::UniformBufferOffsetT< DataT >::getData(), et castor3d::UniformBufferOffsetT< DataT >::getData().

Voici le graphe des appelants de cette fonction :

◆ getData() [2/2]

template<typename DataT >
DataT & castor3d::PoolUniformBuffer::getData ( VkDeviceSize offset)
inlinenoexcept
Renvoie
La n-ème instance des données.
Paramètres
[in]offsetL'offset de la zone mémoire.

◆ getDatas() [1/2]

castor::ByteArrayView const & castor3d::PoolUniformBuffer::getDatas ( ) const
inlinenoexcept
Renvoie
Les données.

◆ getDatas() [2/2]

castor::ByteArrayView & castor3d::PoolUniformBuffer::getDatas ( )
inlinenoexcept
Renvoie
Les données.

◆ getElementSize()

uint32_t castor3d::PoolUniformBuffer::getElementSize ( ) const
inlinenoexcept
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 :

◆ hasAllocated()

C3D_API bool castor3d::PoolUniformBuffer::hasAllocated ( ) const
noexcept
Renvoie
true si au moins un élément a été alloué.

◆ hasAvailable()

C3D_API bool castor3d::PoolUniformBuffer::hasAvailable ( VkDeviceSize size) const
noexcept
Paramètres
sizeLa taille voulue.
Renvoie
true s'il y a assez de mémoire restante pour un nouvel élément.

◆ hasBuffer()

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

Référencé par castor3d::UniformBufferOffsetT< DataT >::operator bool().

Voici le graphe des appelants de cette fonction :

◆ initialise()

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

Initialise le tampon GPU.

Paramètres
[in]deviceLe device GPU.

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