Castor3D 0.12.0
Multiplatform 3D engine
|
#include <UniformBufferBase.hpp>
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 |
C3D_API castor3d::UniformBufferBase::UniformBufferBase | ( | RenderSystem const & | renderSystem, |
VkDeviceSize | elemCount, | ||
VkDeviceSize | elemSize, | ||
VkBufferUsageFlags | usage, | ||
VkMemoryPropertyFlags | flags, | ||
castor::String | debugName, | ||
ashes::QueueShare | sharingMode = {} |
||
) |
Constructeur.
[in] | renderSystem | Le RenderSystem. |
[in] | elemCount | Le nombre d'éléments. |
[in] | elemSize | La taille d'un élément. |
[in] | usage | Les indicateurs d'utilisation du tampon. |
[in] | flags | Les indicateurs de mémoire du tampon. |
[in] | debugName | Le nom debug du tampon. |
[in] | sharingMode | Le mode de partage du tampon. |
|
virtualdefault |
Destructeur.
C3D_API uint32_t castor3d::UniformBufferBase::allocate | ( | ) |
Alloue une zone mémoire pour un CPU buffer.
C3D_API void castor3d::UniformBufferBase::cleanup | ( | ) |
Nettoie le tampon GPU.
C3D_API void castor3d::UniformBufferBase::deallocate | ( | uint32_t | offset | ) |
Désalloue de la mémoire.
[in] | offset | L'offset de la zone mémoire. |
|
inline |
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] | data | Reçoit les données transférées, packed. |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
[in] | timer | Le timer de passe de rendu. |
[in] | index | L'indice de passe de rendu. |
Références download().
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.
[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] | data | Reçoit les données transférées, packed. |
[in] | size | La taille des données. |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
[in] | timer | Le timer de passe de rendu. |
[in] | index | L'indice de passe de rendu. |
Référencé par download().
|
inline |
Références getAlignedSize(), et getElementSize().
Référencé par getAlignedSize().
|
inline |
Récupère la taille alignée d'un élément.
[in] | size | La taille d'un élément. |
Références getAlignedSize(), et getBuffer().
|
inline |
|
inline |
Référencé par getAlignedSize(), et getElementSize().
|
inline |
Références getBuffer(), et getElementSize().
Référencé par getAlignedSize(), et getElementSize().
C3D_API bool castor3d::UniformBufferBase::hasAvailable | ( | ) | const |
true
s'il y a assez de mémoire restante pour un nouvel élément.
|
inline |
false
si le tampon interne n'existe pas. C3D_API uint32_t castor3d::UniformBufferBase::initialise | ( | RenderDevice const & | device | ) |
Initialise le tampon GPU.
[in] | device | Le device GPU. |
C3D_API uint32_t castor3d::UniformBufferBase::initialise | ( | RenderDevice const & | device, |
ashes::QueueShare | sharingMode | ||
) |
Initialise le tampon GPU.
[in] | device | Le device GPU. |
[in] | sharingMode | Le mode de partage du tampon. |
|
inline |
|
inline |
|
inline |
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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
Références upload().
|
inline |
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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
[in] | timer | Le timer de passe de rendu. |
[in] | index | L'indice de passe de rendu. |
Références upload().
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.
[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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | size | La taille des données. |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
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.
[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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | size | La taille des données. |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
[in] | timer | Le timer de passe de rendu. |
[in] | index | L'indice de passe de rendu. |
|
inline |
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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
Références upload().
|
inline |
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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
[in] | timer | Le timer de passe de rendu. |
[in] | index | L'indice de passe de rendu. |
Références upload().
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.
[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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | size | La taille des données. |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
Référencé par upload().
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.
[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] | data | Les données à transférer, packed (elles seront alignées lors de l'upload). |
[in] | size | La taille des données. |
[in] | offset | L'offset de départ. |
[in] | flags | Les indicateurs de pipeline stage pour la barrière mémoire de sortie. |
[in] | timer | Le timer de passe de rendu. |
[in] | index | L'indice de passe de rendu. |