Castor3D 0.15.0
Multiplatform 3D engine
Fonctions membres publiques | Amis | Liste de tous les membres
Référence du modèle de la classe castor3d::GpuBufferT< AllocatorT >

Un pool de buffer GPU, utilisant un allocateur pour allouer des sous-tampons. Plus de détails...

#include <GpuBuffer.hpp>

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

Fonctions membres publiques

 GpuBufferT (RenderSystem const &renderSystem, VkBufferUsageFlags usage, VkMemoryPropertyFlags memoryFlags, castor::String debugName, ashes::QueueShare sharingMode, AllocatorT allocator, bool smallData=false)
 Constructeur.
 
bool hasAvailable (VkDeviceSize size) const
 
MemChunk allocate (VkDeviceSize size)
 Alloue une zone mémoire pour un CPU buffer.
 
void deallocate (MemChunk const &mem)
 Désalloue de la mémoire.
 
size_t getMinAlignment () const
 
- Fonctions membres publiques hérités de castor3d::GpuBufferBase
C3D_API GpuBufferBase (RenderSystem const &renderSystem, VkBufferUsageFlags usage, VkMemoryPropertyFlags memoryFlags, castor::String debugName, ashes::QueueShare sharingMode, VkDeviceSize allocatedSize, bool smallData=false)
 Constructeur.
 
C3D_API void upload (ashes::CommandBuffer const &cb)
 Met à jour tous les intervalles mémoire prêts en VRAM.
 
C3D_API void uploadDirect (ashes::Queue const &queue, ashes::CommandPool const &commandPool, VkDeviceSize offset, VkDeviceSize size, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags)
 Met à jour un intervalle mémoire en VRAM.
 
C3D_API void markDirty (VkDeviceSize offset, VkDeviceSize size, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags)
 Marque un intervalle mémoire comme prêt à l'upload.
 
bool hasBuffer () const
 
ashes::Buffer< uint8_t > const & getBuffer () const
 
 operator ashes::Buffer< uint8_t > const & () const
 
ashes::Buffer< uint8_t > & getBuffer ()
 
 operator ashes::Buffer< uint8_t > & ()
 
template<typename DataT >
DataT const & getData (VkDeviceSize offset) const
 
template<typename DataT >
DataT & getData (VkDeviceSize offset)
 
castor::ArrayView< uint8_t > const & getDatas () const
 
castor::ArrayView< uint8_t > & getDatas ()
 

Amis

class GpuBufferPool
 

Description détaillée

template<typename AllocatorT>
class castor3d::GpuBufferT< AllocatorT >

Un pool de buffer GPU, utilisant un allocateur pour allouer des sous-tampons.

Remarques

Documentation des constructeurs et destructeur

◆ GpuBufferT()

template<typename AllocatorT >
castor3d::GpuBufferT< AllocatorT >::GpuBufferT ( RenderSystem const &  renderSystem,
VkBufferUsageFlags  usage,
VkMemoryPropertyFlags  memoryFlags,
castor::String  debugName,
ashes::QueueShare  sharingMode,
AllocatorT  allocator,
bool  smallData = false 
)

Constructeur.

Paramètres
[in]renderSystemLe device sur lequel le stockage est alloué.
[in]usageLes cibles du tampon.
[in]memoryFlagsLes propriétés mémoire du tampon.
[in]debugNameLe nom debug.
[in]sharingModeLe mode de partage.
[in]allocatorL'allocateur.
[in]smallDataDit si les chunks mémoire alloués via ce buffer font moins de 65536 bytes.

Documentation des fonctions membres

◆ allocate()

template<typename AllocatorT >
MemChunk castor3d::GpuBufferT< AllocatorT >::allocate ( VkDeviceSize  size)

Alloue une zone mémoire pour un CPU buffer.

Paramètres
[in]sizeLa taille requise pour la mémoire.
Renvoie
L'offset de la zone mémoire.

◆ deallocate()

template<typename AllocatorT >
void castor3d::GpuBufferT< AllocatorT >::deallocate ( MemChunk const &  mem)

Désalloue de la mémoire.

Paramètres
[in]memLa zone mémoire.

◆ getMinAlignment()

template<typename AllocatorT >
size_t castor3d::GpuBufferT< AllocatorT >::getMinAlignment ( ) const
Renvoie
La taille alignée d'un élément.

◆ hasAvailable()

template<typename AllocatorT >
bool castor3d::GpuBufferT< AllocatorT >::hasAvailable ( VkDeviceSize  size) const
Paramètres
[in]sizeLa taille requise pour la mémoire.
Renvoie
true s'il y a assez de mémoire restante pour la taille donnée.

Documentation des fonctions amies et associées

◆ GpuBufferPool

template<typename AllocatorT >
friend class GpuBufferPool
friend

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