Castor3D 0.16.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. | |
virtual C3D_API | ~UniformBufferBase () noexcept=default |
Destructeur. | |
C3D_API uint32_t | initialise (RenderDevice const &device) |
Initialise le tampon GPU. | |
C3D_API uint32_t | initialise (RenderDevice const &device, ashes::QueueShare sharingMode) |
Initialise le tampon GPU. | |
C3D_API void | cleanup () noexcept |
Nettoie le tampon GPU. | |
C3D_API bool | hasAvailable () const noexcept |
C3D_API uint32_t | allocate () noexcept |
Alloue une zone mémoire pour un CPU buffer. | |
C3D_API void | deallocate (uint32_t offset) |
Désalloue de la mémoire. | |
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. | |
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. | |
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. | |
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. | |
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 &timer) const |
Transfère des données au tampon GPU à partir de la RAM. | |
void | upload (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, ashes::ByteArray const &data, uint32_t offset, VkPipelineStageFlags flags, FramePassTimer &timer) const |
Transfère des données au tampon GPU à partir de la RAM. | |
C3D_API void | upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, const void *data, size_t size, uint32_t offset, VkPipelineStageFlags flags, FramePassTimer &timer) const |
Transfère des données au tampon GPU à partir de la RAM. | |
void | upload (ashes::BufferBase const &stagingBuffer, ashes::CommandBuffer const &commandBuffer, ashes::ByteArray const &data, uint32_t offset, VkPipelineStageFlags flags, FramePassTimer &timer) const |
Transfère des données au tampon GPU à partir de la RAM. | |
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 &timer) const |
Transfère des données du tampon GPU vers la RAM. | |
void | download (ashes::BufferBase const &stagingBuffer, ashes::Queue const &queue, ashes::CommandPool const &commandPool, ashes::ByteArray &data, uint32_t offset, VkPipelineStageFlags flags, FramePassTimer &timer) const |
Transfère des données du tampon GPU vers la RAM. | |
bool | hasBuffer () const |
ashes::UniformBuffer const & | getBuffer () const |
ashes::UniformBuffer & | getBuffer () |
uint32_t | getElementSize () const |
uint32_t | getAlignedSize (uint32_t size) const |
Récupère la taille alignée d'un élément. | |
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. |
|
virtualdefaultnoexcept |
Destructeur.
|
noexcept |
Alloue une zone mémoire pour un CPU buffer.
|
noexcept |
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. |
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 & | timer ) 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. |
Référencé par download().
|
inline |
Références getAlignedSize(), et getElementSize().
Référencé par getAlignedSize(), et 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().
|
noexcept |
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 |
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. |
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 & | timer ) 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. |
|
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. |
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(), upload(), upload(), et 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 & | timer ) 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. |