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

#include <BindGroup.hpp>

Classes

struct  Asset

Public Member Functions

 BindGroup (Engine::Core &core, std::string_view name, entt::hashed_string shaderId, uint32_t layoutIndex, std::initializer_list< Asset > assets)
 BindGroup (const BindGroup &other)=delete
 BindGroup (BindGroup &&other) noexcept
 ~BindGroup ()
const wgpu::BindGroup & GetBindGroup () const
uint32_t GetLayoutIndex () const
const std::vector< wgpu::BindGroupEntry > & GetEntries () const
void Refresh (Engine::Core &core)

Private Member Functions

void _RefreshBindGroupEntries (Engine::Core &core)
std::vector< wgpu::BindGroupEntry > _CreateBindGroupEntries (Engine::Core &core)
void _RefreshBindGroup (Engine::Core &core)
wgpu::BindGroup _CreateBindGroup (Engine::Core &core)
wgpu::BindGroupEntry _CreateBindGroupEntry (Engine::Core &core, const Asset &asset)

Private Attributes

entt::hashed_string _shaderId
uint32_t _layoutIndex = 0
std::string _name
std::vector< Asset_assets
std::vector< wgpu::BindGroupEntry > _entries
wgpu::BindGroup _bindGroup

Constructor & Destructor Documentation

◆ BindGroup() [1/3]

Graphic::Resource::BindGroup::BindGroup ( Engine::Core & core,
std::string_view name,
entt::hashed_string shaderId,
uint32_t layoutIndex,
std::initializer_list< Asset > assets )
inline

◆ BindGroup() [2/3]

Graphic::Resource::BindGroup::BindGroup ( const BindGroup & other)
delete

◆ BindGroup() [3/3]

Graphic::Resource::BindGroup::BindGroup ( BindGroup && other)
inlinenoexcept

◆ ~BindGroup()

Graphic::Resource::BindGroup::~BindGroup ( )
inline

Member Function Documentation

◆ _CreateBindGroup()

wgpu::BindGroup Graphic::Resource::BindGroup::_CreateBindGroup ( Engine::Core & core)
inlineprivate

◆ _CreateBindGroupEntries()

std::vector< wgpu::BindGroupEntry > Graphic::Resource::BindGroup::_CreateBindGroupEntries ( Engine::Core & core)
inlineprivate

◆ _CreateBindGroupEntry()

wgpu::BindGroupEntry Graphic::Resource::BindGroup::_CreateBindGroupEntry ( Engine::Core & core,
const Asset & asset )
inlineprivate

◆ _RefreshBindGroup()

void Graphic::Resource::BindGroup::_RefreshBindGroup ( Engine::Core & core)
inlineprivate

◆ _RefreshBindGroupEntries()

void Graphic::Resource::BindGroup::_RefreshBindGroupEntries ( Engine::Core & core)
inlineprivate

◆ GetBindGroup()

const wgpu::BindGroup & Graphic::Resource::BindGroup::GetBindGroup ( ) const
inline

◆ GetEntries()

const std::vector< wgpu::BindGroupEntry > & Graphic::Resource::BindGroup::GetEntries ( ) const
inline

◆ GetLayoutIndex()

uint32_t Graphic::Resource::BindGroup::GetLayoutIndex ( ) const
inline

◆ Refresh()

void Graphic::Resource::BindGroup::Refresh ( Engine::Core & core)
inline

Member Data Documentation

◆ _assets

std::vector<Asset> Graphic::Resource::BindGroup::_assets
private

◆ _bindGroup

wgpu::BindGroup Graphic::Resource::BindGroup::_bindGroup
private

◆ _entries

std::vector<wgpu::BindGroupEntry> Graphic::Resource::BindGroup::_entries
private

◆ _layoutIndex

uint32_t Graphic::Resource::BindGroup::_layoutIndex = 0
private

◆ _name

std::string Graphic::Resource::BindGroup::_name
private

◆ _shaderId

entt::hashed_string Graphic::Resource::BindGroup::_shaderId
private

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