Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
Graphic::Utils::VertexBufferLayout Class Reference

#include <VertexBufferLayout.hpp>

Inheritance diagram for Graphic::Utils::VertexBufferLayout:
Graphic::Utils::IValidable

Public Member Functions

 VertexBufferLayout ()=default
 ~VertexBufferLayout () override=default
VertexBufferLayoutaddVertexAttribute (wgpu::VertexFormat format, uint32_t offset, uint32_t shaderLocation)
VertexBufferLayoutsetArrayStride (uint32_t stride)
VertexBufferLayoutsetStepMode (wgpu::VertexStepMode mode)
uint32_t getArrayStride () const
wgpu::VertexStepMode getStepMode () const
const std::vector< wgpu::VertexAttribute > & getVertexAttributes () const
std::vector< ValidationErrorvalidate (void) const override
Public Member Functions inherited from Graphic::Utils::IValidable
virtual ~IValidable ()=default

Private Member Functions

uint32_t _computeArrayStride () const
uint32_t _getVertexFormatSize (wgpu::VertexFormat format) const
std::vector< std::pair< uint64_t, uint64_t > > _getDuplicatedShaderLocation (void) const
std::vector< std::pair< uint64_t, uint64_t > > _getOverlappingVertexAttributes (void) const
bool _doVertexAttributeOverlap (const wgpu::VertexAttribute &firstAttribute, const wgpu::VertexAttribute &secondAttribute) const

Private Attributes

std::vector< wgpu::VertexAttribute > vertexAttributes
std::optional< uint32_t > arrayStride
wgpu::VertexStepMode stepMode = wgpu::VertexStepMode::Vertex

Constructor & Destructor Documentation

◆ VertexBufferLayout()

Graphic::Utils::VertexBufferLayout::VertexBufferLayout ( )
default

◆ ~VertexBufferLayout()

Graphic::Utils::VertexBufferLayout::~VertexBufferLayout ( )
overridedefault

Member Function Documentation

◆ _computeArrayStride()

uint32_t Graphic::Utils::VertexBufferLayout::_computeArrayStride ( ) const
inlineprivate

◆ _doVertexAttributeOverlap()

bool Graphic::Utils::VertexBufferLayout::_doVertexAttributeOverlap ( const wgpu::VertexAttribute & firstAttribute,
const wgpu::VertexAttribute & secondAttribute ) const
inlineprivate

◆ _getDuplicatedShaderLocation()

std::vector< std::pair< uint64_t, uint64_t > > Graphic::Utils::VertexBufferLayout::_getDuplicatedShaderLocation ( void ) const
inlineprivate

◆ _getOverlappingVertexAttributes()

std::vector< std::pair< uint64_t, uint64_t > > Graphic::Utils::VertexBufferLayout::_getOverlappingVertexAttributes ( void ) const
inlineprivate

◆ _getVertexFormatSize()

uint32_t Graphic::Utils::VertexBufferLayout::_getVertexFormatSize ( wgpu::VertexFormat format) const
inlineprivate

◆ addVertexAttribute()

VertexBufferLayout & Graphic::Utils::VertexBufferLayout::addVertexAttribute ( wgpu::VertexFormat format,
uint32_t offset,
uint32_t shaderLocation )
inline

◆ getArrayStride()

uint32_t Graphic::Utils::VertexBufferLayout::getArrayStride ( ) const
inline

◆ getStepMode()

wgpu::VertexStepMode Graphic::Utils::VertexBufferLayout::getStepMode ( ) const
inline

◆ getVertexAttributes()

const std::vector< wgpu::VertexAttribute > & Graphic::Utils::VertexBufferLayout::getVertexAttributes ( ) const
inline

◆ setArrayStride()

VertexBufferLayout & Graphic::Utils::VertexBufferLayout::setArrayStride ( uint32_t stride)
inline

◆ setStepMode()

VertexBufferLayout & Graphic::Utils::VertexBufferLayout::setStepMode ( wgpu::VertexStepMode mode)
inline

◆ validate()

std::vector< ValidationError > Graphic::Utils::VertexBufferLayout::validate ( void ) const
inlineoverridevirtual

Member Data Documentation

◆ arrayStride

std::optional<uint32_t> Graphic::Utils::VertexBufferLayout::arrayStride
private

◆ stepMode

wgpu::VertexStepMode Graphic::Utils::VertexBufferLayout::stepMode = wgpu::VertexStepMode::Vertex
private

◆ vertexAttributes

std::vector<wgpu::VertexAttribute> Graphic::Utils::VertexBufferLayout::vertexAttributes
private

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