LiteFX  0.1.1.2021
Computer Graphics Engine
LiteFX::Rendering::ITransferableBuffer< TBufferInterface, TCommandBuffer > Class Template Reference

Describes a transferable buffer object. Should be used as base class for all buffers. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::ITransferable< TBufferInterface, TCommandBuffer >, and LiteFX::Rendering::IBuffer.

Inherited by LiteFX::Rendering::IConstantBuffer< TBufferInterface, TCommandBuffer, TDescriptorLayout > [virtual].

Public Member Functions

virtual ~ITransferableBuffer () noexcept=default
 
- Public Member Functions inherited from LiteFX::Rendering::ITransferable< TBufferInterface, TCommandBuffer >
virtual ~ITransferable () noexcept=default
 
virtual void transferFrom (const TCommandBuffer &commandBuffer, const TBufferInterface &source, const UInt32 &sourceElement=0, const UInt32 &targetElement=0, const UInt32 &elements=1) const =0
 Transfers data from the source buffer into the objects local memory. More...
 
virtual void transferTo (const TCommandBuffer &commandBuffer, const TBufferInterface &target, const UInt32 &sourceElement=0, const UInt32 &targetElement=0, const UInt32 &elements=1) const =0
 Transfers data from the objects local memory into the target buffer. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IBuffer
virtual ~IBuffer () noexcept=default
 
virtual const BufferType & type () const noexcept=0
 Returns the type of the buffer. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IDeviceMemory
virtual ~IDeviceMemory () noexcept=default
 
virtual const UInt32elements () const noexcept=0
 Gets the number of array elements inside the memory chunk. More...
 
virtual size_t size () const noexcept=0
 Gets the size (in bytes) of the aligned memory chunk. More...
 
virtual size_t elementSize () const noexcept=0
 Returns the size of a single element within the buffer. If there is only one element, this is equal to size. More...
 
virtual size_t elementAlignment () const noexcept=0
 Returns the alignment of a single element. More...
 
virtual size_t alignedElementSize () const noexcept=0
 Returns the actual size of the element in device memory. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IMappable
virtual ~IMappable () noexcept=default
 
virtual void map (const void *const data, const size_t &size, const UInt32 &element=0)=0
 Maps the memory at data to the internal memory of this object. More...
 
virtual void map (Span< const void *const > data, const size_t &elementSize, const UInt32 &firstElement=0)=0
 Maps the memory blocks within data to the internal memory of an array. More...
 

Additional Inherited Members

- Public Types inherited from LiteFX::Rendering::ITransferable< TBufferInterface, TCommandBuffer >
using command_buffer_type = TCommandBuffer
 
using buffer_type = TBufferInterface
 

Detailed Description

template<typename TBufferInterface, typename TCommandBuffer>
class LiteFX::Rendering::ITransferableBuffer< TBufferInterface, TCommandBuffer >

Describes a transferable buffer object. Should be used as base class for all buffers.

Template Parameters
TBufferInterfaceThe base buffer interface. Must inherit from IBuffer.
TCommandBufferThe type of the command buffer. Must implement from ICommandBuffer.
See also
IDescriptor, IDescriptorSet

Constructor & Destructor Documentation

◆ ~ITransferableBuffer()

template<typename TBufferInterface , typename TCommandBuffer >
virtual LiteFX::Rendering::ITransferableBuffer< TBufferInterface, TCommandBuffer >::~ITransferableBuffer ( )
virtualdefaultnoexcept