LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::IVertexBuffer Class Referenceabstract

The interface for a vertex buffer. More...

#include <rendering_api.hpp>

Inherits LiteFX::Rendering::IBuffer.

Inherited by LiteFX::Rendering::VertexBuffer< DirectX12VertexBufferLayout > [virtual], LiteFX::Rendering::VertexBuffer< VulkanVertexBufferLayout > [virtual], and LiteFX::Rendering::VertexBuffer< TVertexBufferLayout > [virtual].

Public Member Functions

 ~IVertexBuffer () noexcept override=default
 
virtual const IVertexBufferLayoutlayout () const noexcept=0
 Gets the layout of the vertex buffer.
 
- Public Member Functions inherited from LiteFX::Rendering::IBuffer
 ~IBuffer () noexcept override=default
 
virtual BufferType type () const noexcept=0
 Returns the type of the buffer.
 
- Public Member Functions inherited from LiteFX::Rendering::IDeviceMemory
virtual ~IDeviceMemory () noexcept=default
 
virtual UInt32 elements () const noexcept=0
 Gets the number of sub-resources inside the memory chunk.
 
virtual size_t size () const noexcept=0
 Gets the size (in bytes) of the aligned memory chunk.
 
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.
 
virtual size_t elementAlignment () const noexcept=0
 Returns the alignment of a single element.
 
virtual size_t alignedElementSize () const noexcept=0
 Returns the actual size of the element in device memory.
 
virtual ResourceUsage usage () const noexcept=0
 Returns the usage flags for the resource.
 
bool writable () const noexcept
 Returns true, if the resource can be bound to a read/write descriptor.
 
virtual UInt64 virtualAddress () const noexcept=0
 Gets the address of the resource in GPU memory.
 
- Public Member Functions inherited from LiteFX::Rendering::IMappable
virtual ~IMappable () noexcept=default
 
virtual void map (const void *const data, size_t size, UInt32 element=0)=0
 Maps the memory at data to the internal memory of this object.
 
virtual void map (Span< const void *const > data, size_t elementSize, UInt32 firstElement=0)=0
 Maps the memory blocks within data to the internal memory of an array.
 
virtual void map (void *data, size_t size, UInt32 element=0, bool write=true)=0
 Maps the memory at data to the internal memory of this object.
 
virtual void map (Span< void * > data, size_t elementSize, UInt32 firstElement=0, bool write=true)=0
 Maps the memory blocks within data to the internal memory of an array.
 
- Public Member Functions inherited from LiteFX::Rendering::IStateResource
virtual ~IStateResource () noexcept=default
 Releases the state resource instance.
 
virtual const Stringname () const noexcept=0
 Returns the name of the resource.
 
- Public Member Functions inherited from LiteFX::SharedObject
virtual ~SharedObject () noexcept=default
 Destroys the shared object.
 
template<typename TSelf >
auto shared_from_this (this TSelf &&self) noexcept
 Returns a shared pointer to the current object instance.
 
template<typename TSelf >
auto weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > >
 Returns a weak pointer to the current object instance.
 

Protected Member Functions

 IVertexBuffer () noexcept=default
 
 IVertexBuffer (const IVertexBuffer &)=delete
 
 IVertexBuffer (IVertexBuffer &&) noexcept=default
 
IVertexBufferoperator= (const IVertexBuffer &)=delete
 
IVertexBufferoperator= (IVertexBuffer &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IBuffer
 IBuffer () noexcept=default
 
 IBuffer (IBuffer &&) noexcept=default
 
 IBuffer (const IBuffer &)=delete
 
IBufferoperator= (IBuffer &&) noexcept=default
 
IBufferoperator= (const IBuffer &)=delete
 
- Protected Member Functions inherited from LiteFX::Rendering::IDeviceMemory
 IDeviceMemory () noexcept=default
 
 IDeviceMemory (IDeviceMemory &&) noexcept=default
 
 IDeviceMemory (const IDeviceMemory &)=default
 
IDeviceMemoryoperator= (IDeviceMemory &&) noexcept=default
 
IDeviceMemoryoperator= (const IDeviceMemory &)=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IMappable
 IMappable () noexcept=default
 
 IMappable (IMappable &&) noexcept=default
 
 IMappable (const IMappable &)=default
 
IMappableoperator= (IMappable &&) noexcept=default
 
IMappableoperator= (const IMappable &)=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IStateResource
 IStateResource () noexcept=default
 
 IStateResource (const IStateResource &)=delete
 
 IStateResource (IStateResource &&) noexcept=default
 
IStateResourceoperator= (const IStateResource &)=delete
 
IStateResourceoperator= (IStateResource &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::SharedObject
 SharedObject () noexcept=default
 Initializes a new shared object.
 
 SharedObject (SharedObject &&) noexcept=default
 
 SharedObject (const SharedObject &)=default
 
SharedObjectoperator= (SharedObject &&) noexcept=default
 
SharedObjectoperator= (const SharedObject &)=default
 

Additional Inherited Members

- Static Protected Member Functions inherited from LiteFX::SharedObject
template<typename T , typename... TArgs>
static auto create (TArgs &&... args) -> SharedPtr< T >
 Generic factory method used to create instances of the shared object.
 

Detailed Description

The interface for a vertex buffer.

Constructor & Destructor Documentation

◆ IVertexBuffer() [1/3]

LiteFX::Rendering::IVertexBuffer::IVertexBuffer ( )
protecteddefaultnoexcept

◆ IVertexBuffer() [2/3]

LiteFX::Rendering::IVertexBuffer::IVertexBuffer ( const IVertexBuffer & )
protecteddelete

◆ IVertexBuffer() [3/3]

LiteFX::Rendering::IVertexBuffer::IVertexBuffer ( IVertexBuffer && )
protecteddefaultnoexcept

◆ ~IVertexBuffer()

LiteFX::Rendering::IVertexBuffer::~IVertexBuffer ( )
overridedefaultnoexcept

Member Function Documentation

◆ layout()

virtual const IVertexBufferLayout & LiteFX::Rendering::IVertexBuffer::layout ( ) const
pure virtualnoexcept

◆ operator=() [1/2]

IVertexBuffer & LiteFX::Rendering::IVertexBuffer::operator= ( const IVertexBuffer & )
protecteddelete

◆ operator=() [2/2]

IVertexBuffer & LiteFX::Rendering::IVertexBuffer::operator= ( IVertexBuffer && )
protecteddefaultnoexcept