![]() |
Castor3D 0.14.0
Multiplatform 3D engine
|
Un tampon GPU, utilisant un buddy allocator pour allouer des sous-tampons. Plus de détails...
#include <GpuBuffer.hpp>
Fonctions membres publiques | |
GpuBufferT (RenderSystem const &renderSystem, VkBufferUsageFlags usage, VkMemoryPropertyFlags memoryFlags, castor::String debugName, ashes::QueueShare sharingMode, AllocatorT allocator, bool smallData=false) | |
Constructeur. Plus de détails... | |
bool | hasAvailable (VkDeviceSize size) const |
MemChunk | allocate (VkDeviceSize size) |
Alloue une zone mémoire pour un CPU buffer. Plus de détails... | |
void | deallocate (MemChunk const &mem) |
Désalloue de la mémoire. Plus de détails... | |
size_t | getMinAlignment () const |
![]() | |
C3D_API | GpuBufferBase (RenderSystem const &renderSystem, VkBufferUsageFlags usage, VkMemoryPropertyFlags memoryFlags, castor::String debugName, ashes::QueueShare sharingMode, VkDeviceSize allocatedSize, bool smallData=false) |
Constructeur. Plus de détails... | |
C3D_API void | upload (ashes::CommandBuffer const &cb) |
Met à jour tous les intervalles mémoire prêts en VRAM. Plus de détails... | |
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. Plus de détails... | |
C3D_API void | markDirty (VkDeviceSize offset, VkDeviceSize size, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags) |
Marque un intervalle mémoire comme prêt à l'upload. Plus de détails... | |
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 |
Un tampon GPU, utilisant un buddy allocator pour allouer des sous-tampons.
castor3d::GpuBufferT< AllocatorT >::GpuBufferT | ( | RenderSystem const & | renderSystem, |
VkBufferUsageFlags | usage, | ||
VkMemoryPropertyFlags | memoryFlags, | ||
castor::String | debugName, | ||
ashes::QueueShare | sharingMode, | ||
AllocatorT | allocator, | ||
bool | smallData = false |
||
) |
Constructeur.
[in] | renderSystem | Le device sur lequel le stockage est alloué. |
[in] | usage | Les cibles du tampon. |
[in] | memoryFlags | Les propriétés mémoire du tampon. |
[in] | debugName | Le nom debug. |
[in] | sharingMode | Le mode de partage. |
[in] | allocator | L'allocateur. |
[in] | smallData | Dit si les chunks mémoire alloués via ce buffer font moins de 65536 bytes. |
MemChunk castor3d::GpuBufferT< AllocatorT >::allocate | ( | VkDeviceSize | size | ) |
Alloue une zone mémoire pour un CPU buffer.
[in] | size | La taille requise pour la mémoire. |
void castor3d::GpuBufferT< AllocatorT >::deallocate | ( | MemChunk const & | mem | ) |
Désalloue de la mémoire.
[in] | mem | La zone mémoire. |
size_t castor3d::GpuBufferT< AllocatorT >::getMinAlignment | ( | ) | const |
bool castor3d::GpuBufferT< AllocatorT >::hasAvailable | ( | VkDeviceSize | size | ) | const |
[in] | size | La taille requise pour la mémoire. |
true
s'il y a assez de mémoire restante pour la taille donnée.
|
friend |