LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::VertexBuffer< TVertexBufferLayout > Class Template Referenceabstract

Describes a vertex buffer. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IVertexBuffer.

Public Types

using vertex_buffer_layout_type = TVertexBufferLayout
 

Public Member Functions

virtual ~VertexBuffer () noexcept=default
 
virtual const vertex_buffer_layout_typelayout () const noexcept=0
 Gets the layout of the vertex buffer. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IVertexBuffer
virtual ~IVertexBuffer () noexcept=default
 
virtual const IVertexBufferLayoutlayout () const noexcept=0
 Gets the layout of the vertex 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 sub-resources 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...
 
virtual const bool & writable () const noexcept=0
 Returns true, if the resource can be bound to a read/write descriptor. More...
 
virtual const ResourceState & state (const UInt32 &subresource=0) const =0
 Returns the current state of the resource. More...
 
virtual ResourceState & state (const UInt32 &subresource=0)=0
 Returns a reference of the current state of the resource. 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...
 
- Public Member Functions inherited from LiteFX::Rendering::IStateResource
virtual ~IStateResource () noexcept=default
 
virtual const Stringname () const noexcept=0
 Returns the name of the resource. More...
 

Detailed Description

template<typename TVertexBufferLayout>
requires rtti::implements<TVertexBufferLayout, IVertexBufferLayout>
class LiteFX::Rendering::VertexBuffer< TVertexBufferLayout >

Describes a vertex buffer.

Template Parameters
TVertexBufferLayoutThe type of the vertex buffer layout. Must implement IVertexBufferLayout.

Member Typedef Documentation

◆ vertex_buffer_layout_type

template<typename TVertexBufferLayout >
using LiteFX::Rendering::VertexBuffer< TVertexBufferLayout >::vertex_buffer_layout_type = TVertexBufferLayout

Constructor & Destructor Documentation

◆ ~VertexBuffer()

template<typename TVertexBufferLayout >
virtual LiteFX::Rendering::VertexBuffer< TVertexBufferLayout >::~VertexBuffer ( )
virtualdefaultnoexcept

Member Function Documentation

◆ layout()

template<typename TVertexBufferLayout >
virtual const vertex_buffer_layout_type & LiteFX::Rendering::VertexBuffer< TVertexBufferLayout >::layout ( ) const
pure virtualnoexcept