Castor3D
0.11.0
Multiplatform 3D engine
|
Fonctions membres publiques | |
C3D_API | GpuBuffer (RenderSystem const &renderSystem, VkBufferUsageFlags usage, VkMemoryPropertyFlags memoryFlags, castor::String debugName, ashes::QueueShare sharingMode, uint32_t numLevels, uint32_t minBlockSize) |
Constructeur. Plus de détails... | |
C3D_API uint32_t | initialise (RenderDevice const &device) |
Initialise le stockage GPU du tampon. Plus de détails... | |
C3D_API void | cleanup (RenderDevice const &device) |
Nettoie le tampon GPU. Plus de détails... | |
C3D_API bool | hasAvailable (VkDeviceSize size) const |
C3D_API MemChunk | allocate (VkDeviceSize size) |
Alloue une zone mémoire pour un CPU buffer. Plus de détails... | |
C3D_API void | deallocate (MemChunk const &mem) |
Désalloue de la mémoire. Plus de détails... | |
C3D_API uint8_t * | lock (MemChunk const &chunk) const |
Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications. Plus de détails... | |
C3D_API void | flush (MemChunk const &chunk) const |
Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications. Plus de détails... | |
C3D_API void | invalidate (MemChunk const &chunk) const |
Marque la zone mémoire donnée comme "sale". Plus de détails... | |
C3D_API void | unlock () const |
Un locke le tampon, càd l'unmappe de la mémoire ram afin de ne plus autoriser de modifications dessus. Plus de détails... | |
C3D_API void | copy (ashes::CommandBuffer const &commandBuffer, GpuBuffer const &src, MemChunk const &srcChunk, VkDeviceSize dstOffset) const |
Copie les données du tampon donné dans celui-ci. Plus de détails... | |
C3D_API void | upload (ashes::StagingBuffer &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, MemChunk const &chunk, uint8_t const *buffer) const |
Transfère des données au tampon GPU à partir de la RAM. Plus de détails... | |
C3D_API void | upload (ashes::StagingBuffer &stagingBuffer, ashes::CommandBuffer const &commandBuffer, MemChunk const &chunk, uint8_t const *buffer) const |
Transfère des données au tampon GPU à partir de la RAM. Plus de détails... | |
C3D_API void | download (ashes::StagingBuffer &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, MemChunk const &chunk, uint8_t *buffer) const |
Transfère des données du tampon GPU vers la RAM. 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 > & () | |
Amis | |
class | GpuBufferPool |
C3D_API castor3d::GpuBuffer::GpuBuffer | ( | RenderSystem const & | renderSystem, |
VkBufferUsageFlags | usage, | ||
VkMemoryPropertyFlags | memoryFlags, | ||
castor::String | debugName, | ||
ashes::QueueShare | sharingMode, | ||
uint32_t | numLevels, | ||
uint32_t | minBlockSize | ||
) |
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] | numLevels | La taille maximale de l'arbre de l'allocateur. |
[in] | minBlockSize | La taille minimale d'un bloc. |
Alloue une zone mémoire pour un CPU buffer.
[in] | size | La taille requise pour la mémoire. |
C3D_API void castor3d::GpuBuffer::cleanup | ( | RenderDevice const & | device | ) |
Nettoie le tampon GPU.
[in] | device | Le device GPU. |
C3D_API void castor3d::GpuBuffer::copy | ( | ashes::CommandBuffer const & | commandBuffer, |
GpuBuffer const & | src, | ||
MemChunk const & | srcChunk, | ||
VkDeviceSize | dstOffset | ||
) | const |
Copie les données du tampon donné dans celui-ci.
[in] | commandBuffer | Le command buffer sur lequel les commandes de copie sont enregistrées. |
[in] | src | Le tampon source. |
[in] | srcChunk | La zone mémoire. |
[in] | dstOffset | L'offset de départ dans ce tampon. |
Désalloue de la mémoire.
[in] | mem | La zone mémoire. |
C3D_API void castor3d::GpuBuffer::download | ( | ashes::StagingBuffer & | stagingBuffer, |
ashes::Queue const & | queue, | ||
ashes::CommandPool const & | commandPool, | ||
MemChunk const & | chunk, | ||
uint8_t * | buffer | ||
) | const |
Transfère des données du tampon GPU vers la RAM.
[in] | stagingBuffer | Le staging buffer utilisé pour effectuer le transfer. |
[in] | queue | La file sur laquelle le transfert sera effectué. |
[in] | commandPool | Le command pool depuis lequel le command buffer sera créé. |
[in] | chunk | La zone mémoire. |
[out] | buffer | Les données. |
Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications.
[in] | chunk | La zone mémoire. |
|
inline |
|
inline |
C3D_API bool castor3d::GpuBuffer::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.
|
inline |
Référencé par castor3d::GpuBufferOffsetT< DataT >::operator bool().
C3D_API uint32_t castor3d::GpuBuffer::initialise | ( | RenderDevice const & | device | ) |
Initialise le stockage GPU du tampon.
[in] | device | Le device GPU. |
Marque la zone mémoire donnée comme "sale".
[in] | chunk | La zone mémoire. |
Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications.
[in] | chunk | L'intervalle de mémoire à mapper. |
|
inline |
|
inline |
C3D_API void castor3d::GpuBuffer::unlock | ( | ) | const |
Un locke le tampon, càd l'unmappe de la mémoire ram afin de ne plus autoriser de modifications dessus.
C3D_API void castor3d::GpuBuffer::upload | ( | ashes::StagingBuffer & | stagingBuffer, |
ashes::Queue const & | queue, | ||
ashes::CommandPool const & | commandPool, | ||
MemChunk const & | chunk, | ||
uint8_t const * | buffer | ||
) | const |
Transfère des données au tampon GPU à partir de la RAM.
[in] | stagingBuffer | Le staging buffer utilisé pour effectuer le transfer. |
[in] | queue | La file sur laquelle le transfert sera effectué. |
[in] | commandPool | Le command pool depuis lequel le command buffer sera créé. |
[in] | chunk | La zone mémoire. |
[in] | buffer | Les données. |
C3D_API void castor3d::GpuBuffer::upload | ( | ashes::StagingBuffer & | stagingBuffer, |
ashes::CommandBuffer const & | commandBuffer, | ||
MemChunk const & | chunk, | ||
uint8_t const * | buffer | ||
) | const |
Transfère des données au tampon GPU à partir de la RAM.
[in] | stagingBuffer | Le staging buffer utilisé pour effectuer le transfer. |
[in] | commandBuffer | Le command buffer sur lequel les commandes de transfert sont enregistrées. |
[in] | chunk | La zone mémoire. |
[in] | buffer | Les données. |
|
friend |