LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::IndexBuffer< TIndexBufferLayout > Class Template Referenceabstract

Describes an index buffer. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IIndexBuffer.

Public Types

using index_buffer_layout_type = TIndexBufferLayout
 

Public Member Functions

 ~IndexBuffer () noexcept override=default
 
const index_buffer_layout_typelayout () const noexcept override=0
 Gets the layout of the index buffer.
Returns
The layout of the index buffer.

 
- Public Member Functions inherited from LiteFX::Rendering::IIndexBuffer
 ~IIndexBuffer () noexcept override=default
 
- 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

 IndexBuffer () noexcept=default
 
 IndexBuffer (const IndexBuffer &)=default
 
 IndexBuffer (IndexBuffer &&) noexcept=default
 
IndexBufferoperator= (const IndexBuffer &)=default
 
IndexBufferoperator= (IndexBuffer &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IIndexBuffer
 IIndexBuffer () noexcept=default
 
 IIndexBuffer (const IIndexBuffer &)=delete
 
 IIndexBuffer (IIndexBuffer &&) noexcept=default
 
IIndexBufferoperator= (const IIndexBuffer &)=delete
 
IIndexBufferoperator= (IIndexBuffer &&) 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

template<typename TIndexBufferLayout>
requires meta::implements<TIndexBufferLayout, IIndexBufferLayout>
class LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >

Describes an index buffer.

Template Parameters
TIndexBufferLayoutThe type of the index buffer layout. Must implement IIndexBufferLayout.

Member Typedef Documentation

◆ index_buffer_layout_type

template<typename TIndexBufferLayout >
using LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::index_buffer_layout_type = TIndexBufferLayout

Constructor & Destructor Documentation

◆ IndexBuffer() [1/3]

template<typename TIndexBufferLayout >
LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::IndexBuffer ( )
protecteddefaultnoexcept

◆ IndexBuffer() [2/3]

template<typename TIndexBufferLayout >
LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::IndexBuffer ( const IndexBuffer< TIndexBufferLayout > & )
protecteddefault

◆ IndexBuffer() [3/3]

template<typename TIndexBufferLayout >
LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::IndexBuffer ( IndexBuffer< TIndexBufferLayout > && )
protecteddefaultnoexcept

◆ ~IndexBuffer()

template<typename TIndexBufferLayout >
LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::~IndexBuffer ( )
overridedefaultnoexcept

Member Function Documentation

◆ layout()

template<typename TIndexBufferLayout >
const index_buffer_layout_type & LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::layout ( ) const
overridepure virtualnoexcept

Gets the layout of the index buffer.

Returns
The layout of the index buffer.

Implements LiteFX::Rendering::IIndexBuffer.

Implemented in LiteFX::Rendering::Backends::DirectX12IndexBuffer, and LiteFX::Rendering::Backends::VulkanIndexBuffer.

◆ operator=() [1/2]

template<typename TIndexBufferLayout >
IndexBuffer & LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::operator= ( const IndexBuffer< TIndexBufferLayout > & )
protecteddefault

◆ operator=() [2/2]

template<typename TIndexBufferLayout >
IndexBuffer & LiteFX::Rendering::IndexBuffer< TIndexBufferLayout >::operator= ( IndexBuffer< TIndexBufferLayout > && )
protecteddefaultnoexcept