Castor3D 0.16.0
Multiplatform 3D engine
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
castor3d::UploadData Class Referenceabstract

#include <UploadData.hpp>

Inheritance diagram for castor3d::UploadData:
Inheritance graph
[legend]
Collaboration diagram for castor3d::UploadData:
Collaboration graph
[legend]

Classes

struct  BufferDataRange
 
struct  ImageDataRange
 
struct  SemaphoreUsed
 

Public Member Functions

 UploadData (UploadData const &)=delete
 
 UploadData (UploadData &&) noexcept=delete
 
UploadDataoperator= (UploadData const &)=delete
 
UploadDataoperator= (UploadData &&) noexcept=delete
 
virtual C3D_API ~UploadData () noexcept=default
 
C3D_API void begin ()
 
C3D_API void pushUpload (void const *srcData, VkDeviceSize srcSize, ashes::BufferBase const &dstBuffer, VkDeviceSize dstOffset, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags)
 
C3D_API void pushUpload (void const *srcData, VkDeviceSize srcSize, ashes::Image const &dstImage, castor::ImageLayout dstLayout, VkImageSubresourceRange dstRange, VkImageLayout dstImageLayout, VkPipelineStageFlags dstPipelineFlags)
 
C3D_API void process ()
 
C3D_API SemaphoreUsed end (ashes::Queue const &queue, ashes::Fence const *fence=nullptr, castor::Milliseconds timeout=castor::Milliseconds{ ashes::MaxTimeout })
 
void pushUpload (castor::ByteArray const &srcData, ashes::BufferBase const &dstBuffer, VkDeviceSize dstOffset, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags)
 
void pushUpload (castor::ByteArray const &srcData, ashes::Image const &dstImage, castor::ImageLayout dstLayout, VkImageSubresourceRange dstRange, VkImageLayout dstImageLayout, VkPipelineStageFlags dstPipelineFlags)
 
void pushUpload (castor::ByteArrayView const &srcData, ashes::BufferBase const &dstBuffer, VkDeviceSize dstOffset, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags)
 
void pushUpload (castor::ByteArrayView const &srcData, ashes::Image const &dstImage, castor::ImageLayout dstLayout, VkImageSubresourceRange dstRange, VkImageLayout dstImageLayout, VkPipelineStageFlags dstPipelineFlags)
 
ashes::CommandBuffer const & getCommandBuffer () const noexcept
 
RenderDevice const & getDevice () const noexcept
 
castor::String const & getName () const noexcept
 

Protected Member Functions

C3D_API UploadData (RenderDevice const &device, castor::String debugName, ashes::CommandBuffer const *commandBuffer)
 
C3D_API bool doCopyData (void const *srcData, VkDeviceSize size, ashes::BufferBase const &dstBuffer, VkDeviceSize dstOffset) const
 
C3D_API void doUploadBuffer (BufferDataRange const &data, ashes::BufferBase const *srcBuffer, VkDeviceSize srcOffset) const
 
C3D_API void doUploadImage (ImageDataRange &data, ashes::BufferBase const &srcBuffer, VkDeviceSize srcOffset) const
 

Protected Attributes

RenderDevice const & m_device
 
castor::String m_debugName
 
ashes::CommandBuffer const * m_commandBuffer
 
castor::Vector< BufferDataRangem_pendingBuffers
 
castor::Vector< ImageDataRangem_pendingImages
 

Constructor & Destructor Documentation

◆ UploadData() [1/3]

castor3d::UploadData::UploadData ( UploadData const & )
delete

◆ UploadData() [2/3]

castor3d::UploadData::UploadData ( UploadData && )
deletenoexcept

◆ ~UploadData()

virtual C3D_API castor3d::UploadData::~UploadData ( )
virtualdefaultnoexcept

◆ UploadData() [3/3]

C3D_API castor3d::UploadData::UploadData ( RenderDevice const & device,
castor::String debugName,
ashes::CommandBuffer const * commandBuffer )
protected

Member Function Documentation

◆ begin()

C3D_API void castor3d::UploadData::begin ( )

◆ doCopyData()

C3D_API bool castor3d::UploadData::doCopyData ( void const * srcData,
VkDeviceSize size,
ashes::BufferBase const & dstBuffer,
VkDeviceSize dstOffset ) const
protected

◆ doUploadBuffer()

C3D_API void castor3d::UploadData::doUploadBuffer ( BufferDataRange const & data,
ashes::BufferBase const * srcBuffer,
VkDeviceSize srcOffset ) const
protected

◆ doUploadImage()

C3D_API void castor3d::UploadData::doUploadImage ( ImageDataRange & data,
ashes::BufferBase const & srcBuffer,
VkDeviceSize srcOffset ) const
protected

◆ end()

C3D_API SemaphoreUsed castor3d::UploadData::end ( ashes::Queue const & queue,
ashes::Fence const * fence = nullptr,
castor::Milliseconds timeout = castor::Milliseconds{ ashes::MaxTimeout } )

Referenced by castor3d::InstantUploadDataT< UploaderT >::~InstantUploadDataT().

Here is the caller graph for this function:

◆ getCommandBuffer()

ashes::CommandBuffer const & castor3d::UploadData::getCommandBuffer ( ) const
inlinenoexcept

References m_commandBuffer.

◆ getDevice()

RenderDevice const & castor3d::UploadData::getDevice ( ) const
inlinenoexcept

References m_device.

Referenced by castor3d::InstantUploadDataT< UploaderT >::~InstantUploadDataT().

Here is the caller graph for this function:

◆ getName()

castor::String const & castor3d::UploadData::getName ( ) const
inlinenoexcept

References m_debugName.

Referenced by castor3d::InstantUploadDataT< UploaderT >::~InstantUploadDataT().

Here is the caller graph for this function:

◆ operator=() [1/2]

UploadData & castor3d::UploadData::operator= ( UploadData && )
deletenoexcept

◆ operator=() [2/2]

UploadData & castor3d::UploadData::operator= ( UploadData const & )
delete

◆ process()

C3D_API void castor3d::UploadData::process ( )

Referenced by castor3d::InstantUploadDataT< UploaderT >::~InstantUploadDataT().

Here is the caller graph for this function:

◆ pushUpload() [1/6]

void castor3d::UploadData::pushUpload ( castor::ByteArray const & srcData,
ashes::BufferBase const & dstBuffer,
VkDeviceSize dstOffset,
VkAccessFlags dstAccessFlags,
VkPipelineStageFlags dstPipelineFlags )
inline

References pushUpload().

Here is the call graph for this function:

◆ pushUpload() [2/6]

void castor3d::UploadData::pushUpload ( castor::ByteArray const & srcData,
ashes::Image const & dstImage,
castor::ImageLayout dstLayout,
VkImageSubresourceRange dstRange,
VkImageLayout dstImageLayout,
VkPipelineStageFlags dstPipelineFlags )
inline

References pushUpload().

Here is the call graph for this function:

◆ pushUpload() [3/6]

void castor3d::UploadData::pushUpload ( castor::ByteArrayView const & srcData,
ashes::BufferBase const & dstBuffer,
VkDeviceSize dstOffset,
VkAccessFlags dstAccessFlags,
VkPipelineStageFlags dstPipelineFlags )
inline

References pushUpload().

Here is the call graph for this function:

◆ pushUpload() [4/6]

void castor3d::UploadData::pushUpload ( castor::ByteArrayView const & srcData,
ashes::Image const & dstImage,
castor::ImageLayout dstLayout,
VkImageSubresourceRange dstRange,
VkImageLayout dstImageLayout,
VkPipelineStageFlags dstPipelineFlags )
inline

References pushUpload().

Here is the call graph for this function:

◆ pushUpload() [5/6]

C3D_API void castor3d::UploadData::pushUpload ( void const * srcData,
VkDeviceSize srcSize,
ashes::BufferBase const & dstBuffer,
VkDeviceSize dstOffset,
VkAccessFlags dstAccessFlags,
VkPipelineStageFlags dstPipelineFlags )

Referenced by pushUpload(), pushUpload(), pushUpload(), and pushUpload().

Here is the caller graph for this function:

◆ pushUpload() [6/6]

C3D_API void castor3d::UploadData::pushUpload ( void const * srcData,
VkDeviceSize srcSize,
ashes::Image const & dstImage,
castor::ImageLayout dstLayout,
VkImageSubresourceRange dstRange,
VkImageLayout dstImageLayout,
VkPipelineStageFlags dstPipelineFlags )

Member Data Documentation

◆ m_commandBuffer

ashes::CommandBuffer const* castor3d::UploadData::m_commandBuffer
protected

Referenced by getCommandBuffer().

◆ m_debugName

castor::String castor3d::UploadData::m_debugName
protected

Referenced by getName().

◆ m_device

RenderDevice const& castor3d::UploadData::m_device
protected

Referenced by getDevice().

◆ m_pendingBuffers

castor::Vector< BufferDataRange > castor3d::UploadData::m_pendingBuffers
protected

◆ m_pendingImages

castor::Vector< ImageDataRange > castor3d::UploadData::m_pendingImages
protected

The documentation for this class was generated from the following file: