Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | Public Attributes | List of all members
castor3d::GpuBufferOffsetT< DataT > Struct Template Reference

An offset and range of a GpuBuffer. More...

#include <GpuBufferOffset.hpp>

Inheritance diagram for castor3d::GpuBufferOffsetT< DataT >:
Inheritance graph
[legend]
Collaboration diagram for castor3d::GpuBufferOffsetT< DataT >:
Collaboration graph
[legend]

Public Member Functions

 GpuBufferOffsetT () noexcept=default
 
void setPool (GpuBufferBase &pool)
 
 operator bool () const
 
GpuBufferBase const & getPool () const
 
GpuBufferBasegetPool ()
 
ashes::Buffer< uint8_t > const & getBuffer () const
 
ashes::Buffer< uint8_t > & getBuffer ()
 
VkDeviceSize getCount () const
 
VkDeviceSize getSize () const
 
VkDeviceSize getOffset () const
 
castor::ArrayView< DataT > getData ()
 
void markDirty (VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags) const
 
void markDirty (VkDeviceSize size, VkAccessFlags dstAccessFlags, VkPipelineStageFlags dstPipelineFlags) const
 
VkDescriptorSetLayoutBinding createLayoutBinding (uint32_t index, VkShaderStageFlags stages) const
 
void createUniformPassBinding (crg::FramePass &pass, uint32_t binding, castor::String const &name) const
 
void createInputStoragePassBinding (crg::FramePass &pass, uint32_t binding, castor::String const &name) const
 
void createInOutStoragePassBinding (crg::FramePass &pass, uint32_t binding, castor::String const &name) const
 
void createOutputStoragePassBinding (crg::FramePass &pass, uint32_t binding, castor::String const &name) const
 
void createClearableOutputStorageBinding (crg::FramePass &pass, uint32_t binding, castor::String const &name) const
 
ashes::WriteDescriptorSet getUniformBinding (uint32_t binding) const
 
ashes::WriteDescriptorSet getStorageBinding (uint32_t binding) const
 
void createBinding (ashes::DescriptorSet &descriptorSet, VkDescriptorSetLayoutBinding const &binding) const
 

Public Attributes

GpuBufferBasebuffer {}
 
VkBufferUsageFlags target {}
 
VkMemoryPropertyFlags memory {}
 
MemChunk chunk {}
 

Detailed Description

template<typename DataT>
struct castor3d::GpuBufferOffsetT< DataT >

An offset and range of a GpuBuffer.

Constructor & Destructor Documentation

◆ GpuBufferOffsetT()

template<typename DataT >
castor3d::GpuBufferOffsetT< DataT >::GpuBufferOffsetT ( )
defaultnoexcept

Member Function Documentation

◆ createBinding()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::createBinding ( ashes::DescriptorSet & descriptorSet,
VkDescriptorSetLayoutBinding const & binding ) const
inline

◆ createClearableOutputStorageBinding()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::createClearableOutputStorageBinding ( crg::FramePass & pass,
uint32_t binding,
castor::String const & name ) const
inline

◆ createInOutStoragePassBinding()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::createInOutStoragePassBinding ( crg::FramePass & pass,
uint32_t binding,
castor::String const & name ) const
inline

◆ createInputStoragePassBinding()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::createInputStoragePassBinding ( crg::FramePass & pass,
uint32_t binding,
castor::String const & name ) const
inline

◆ createLayoutBinding()

template<typename DataT >
VkDescriptorSetLayoutBinding castor3d::GpuBufferOffsetT< DataT >::createLayoutBinding ( uint32_t index,
VkShaderStageFlags stages ) const
inline

References castor3d::makeDescriptorSetLayoutBinding().

Here is the call graph for this function:

◆ createOutputStoragePassBinding()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::createOutputStoragePassBinding ( crg::FramePass & pass,
uint32_t binding,
castor::String const & name ) const
inline

◆ createUniformPassBinding()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::createUniformPassBinding ( crg::FramePass & pass,
uint32_t binding,
castor::String const & name ) const
inline

◆ getBuffer() [1/2]

template<typename DataT >
ashes::Buffer< uint8_t > & castor3d::GpuBufferOffsetT< DataT >::getBuffer ( )
inline

References castor3d::GpuBufferOffsetT< DataT >::buffer, and castor3d::GpuBufferBase::getBuffer().

Here is the call graph for this function:

◆ getBuffer() [2/2]

template<typename DataT >
ashes::Buffer< uint8_t > const & castor3d::GpuBufferOffsetT< DataT >::getBuffer ( ) const
inline

◆ getCount()

template<typename DataT >
VkDeviceSize castor3d::GpuBufferOffsetT< DataT >::getCount ( ) const
inline

References castor3d::MemChunk::askedSize, and castor3d::GpuBufferOffsetT< DataT >::chunk.

Referenced by castor3d::GpuBufferOffsetT< DataT >::getData().

Here is the caller graph for this function:

◆ getData()

template<typename DataT >
castor::ArrayView< DataT > castor3d::GpuBufferOffsetT< DataT >::getData ( )
inline

◆ getOffset()

template<typename DataT >
VkDeviceSize castor3d::GpuBufferOffsetT< DataT >::getOffset ( ) const
inline

◆ getPool() [1/2]

template<typename DataT >
GpuBufferBase & castor3d::GpuBufferOffsetT< DataT >::getPool ( )
inline

◆ getPool() [2/2]

template<typename DataT >
GpuBufferBase const & castor3d::GpuBufferOffsetT< DataT >::getPool ( ) const
inline

◆ getSize()

template<typename DataT >
VkDeviceSize castor3d::GpuBufferOffsetT< DataT >::getSize ( ) const
inline

◆ getStorageBinding()

template<typename DataT >
ashes::WriteDescriptorSet castor3d::GpuBufferOffsetT< DataT >::getStorageBinding ( uint32_t binding) const
inline

◆ getUniformBinding()

template<typename DataT >
ashes::WriteDescriptorSet castor3d::GpuBufferOffsetT< DataT >::getUniformBinding ( uint32_t binding) const
inline

◆ markDirty() [1/2]

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::markDirty ( VkAccessFlags dstAccessFlags,
VkPipelineStageFlags dstPipelineFlags ) const
inline

References castor3d::GpuBufferOffsetT< DataT >::getSize(), and castor3d::GpuBufferOffsetT< DataT >::markDirty().

Referenced by castor3d::GpuBufferOffsetT< DataT >::markDirty().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ markDirty() [2/2]

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::markDirty ( VkDeviceSize size,
VkAccessFlags dstAccessFlags,
VkPipelineStageFlags dstPipelineFlags ) const
inline

◆ operator bool()

template<typename DataT >
castor3d::GpuBufferOffsetT< DataT >::operator bool ( ) const
inlineexplicit

References castor3d::GpuBufferOffsetT< DataT >::buffer, and castor3d::GpuBufferBase::hasBuffer().

Here is the call graph for this function:

◆ setPool()

template<typename DataT >
void castor3d::GpuBufferOffsetT< DataT >::setPool ( GpuBufferBase & pool)
inline

Member Data Documentation

◆ buffer

template<typename DataT >
GpuBufferBase* castor3d::GpuBufferOffsetT< DataT >::buffer {}

◆ chunk

template<typename DataT >
MemChunk castor3d::GpuBufferOffsetT< DataT >::chunk {}

◆ memory

template<typename DataT >
VkMemoryPropertyFlags castor3d::GpuBufferOffsetT< DataT >::memory {}

◆ target

template<typename DataT >
VkBufferUsageFlags castor3d::GpuBufferOffsetT< DataT >::target {}

The documentation for this struct was generated from the following files: