Muto 0.0.1
Cross-Platform Application Template
GitHub Repo | Muto Updates | Muto's Author
Loading...
Searching...
No Matches
Muto::BufferLayout Class Reference

Represents the layout of a buffer, consisting of multiple BufferElements. More...

#include <Buffer.h>

Public Member Functions

std::vector< BufferElement >::iterator begin ()
 
std::vector< BufferElement >::const_iterator begin () const
 
 BufferLayout ()
 
 BufferLayout (const std::initializer_list< BufferElement > &elements)
 Constructs a BufferLayout with the given list of BufferElements.
 
std::vector< BufferElement >::iterator end ()
 
std::vector< BufferElement >::const_iterator end () const
 
const std::vector< BufferElement > & GetElements () const
 Returns the list of BufferElements in the layout.
 
uint32_t GetStride () const
 Returns the stride (total size in bytes) of the buffer layout.
 

Private Member Functions

void CalculateOffsetsAndStride ()
 Calculates the offsets and stride for the buffer layout based on its elements.
 

Private Attributes

std::vector< BufferElement > m_Elements
 
uint32_t m_Stride = 0
 

Detailed Description

Represents the layout of a buffer, consisting of multiple BufferElements.

Constructor & Destructor Documentation

◆ BufferLayout() [1/2]

Muto::BufferLayout::BufferLayout ( )
inline
89{}

◆ BufferLayout() [2/2]

Muto::BufferLayout::BufferLayout ( const std::initializer_list< BufferElement > &  elements)
inline

Constructs a BufferLayout with the given list of BufferElements.

Parameters
elementsThe list of BufferElements that make up the layout. Automatically calculates offsets and stride.
96 : m_Elements(elements), m_Stride(0)
97 {
99 }
uint32_t m_Stride
Definition Buffer.h:128
void CalculateOffsetsAndStride()
Calculates the offsets and stride for the buffer layout based on its elements.
Definition Buffer.h:116
std::vector< BufferElement > m_Elements
Definition Buffer.h:127

References BufferLayout(), CalculateOffsetsAndStride(), and m_Stride.

Referenced by BufferLayout().

Member Function Documentation

◆ begin() [1/2]

std::vector< BufferElement >::iterator Muto::BufferLayout::begin ( )
inline
107{ return m_Elements.begin(); }

◆ begin() [2/2]

std::vector< BufferElement >::const_iterator Muto::BufferLayout::begin ( ) const
inline
108{ return m_Elements.begin(); }

◆ CalculateOffsetsAndStride()

void Muto::BufferLayout::CalculateOffsetsAndStride ( )
inlineprivate

Calculates the offsets and stride for the buffer layout based on its elements.

116 {
117 uint32_t offset = 0;
118 m_Stride = 0;
119 for (auto& element : m_Elements) {
120 element.Offset = offset;
121 offset += element.Size;
122 m_Stride += element.Size;
123 }
124 }

References m_Stride.

Referenced by BufferLayout().

◆ end() [1/2]

std::vector< BufferElement >::iterator Muto::BufferLayout::end ( )
inline
109{ return m_Elements.end(); }

◆ end() [2/2]

std::vector< BufferElement >::const_iterator Muto::BufferLayout::end ( ) const
inline
110{ return m_Elements.end(); }

◆ GetElements()

const std::vector< BufferElement > & Muto::BufferLayout::GetElements ( ) const
inline

Returns the list of BufferElements in the layout.

103{ return m_Elements; }

◆ GetStride()

uint32_t Muto::BufferLayout::GetStride ( ) const
inline

Returns the stride (total size in bytes) of the buffer layout.

105{ return m_Stride; }

References m_Stride.

Member Data Documentation

◆ m_Elements

std::vector<BufferElement> Muto::BufferLayout::m_Elements
private

◆ m_Stride

uint32_t Muto::BufferLayout::m_Stride = 0
private

The documentation for this class was generated from the following file: