Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
EngineCore::MaterialDataStorage Class Reference

The material data storage is designed to have all material data at a compact layout. More...

#include <MaterialDataStorage.h>

Collaboration diagram for EngineCore::MaterialDataStorage:

Public Member Functions

 MaterialDataStorage ()=default
template<PipelineNames P>
auto & getStorage () const
 compile time getter for material data.

Private Attributes

std::vector< NormalMaterialDatanormalMaterialData
std::vector< DiffuseFlatColorMaterialDatadiffuseFlatColorMaterialData
std::vector< DiffuseShaderMaterialDatadiffuseShaderMaterialData
std::vector< MovableDiffuseShaderMaterialDatamovableDiffuseShaderMaterialData
std::vector< L0ShaderMaterialDatal0ShaderMaterialData
std::vector< L1ShaderMaterialDatal1ShaderMaterialData
std::vector< L2ShaderMaterialDatal2ShaderMaterialData
std::vector< DynamicTexturesMaterialDatadynamicTexturesMaterialData

Detailed Description

The material data storage is designed to have all material data at a compact layout.

Author
Konstantin Passig
Date
20.12.2025

Definition at line 14 of file MaterialDataStorage.h.

Constructor & Destructor Documentation

◆ MaterialDataStorage()

EngineCore::MaterialDataStorage::MaterialDataStorage ( )
default

Member Function Documentation

◆ getStorage()

template<PipelineNames P>
auto & EngineCore::MaterialDataStorage::getStorage ( ) const
inline

compile time getter for material data.

Template Parameters
PPipeline name
Returns
List of all material data for that pipeline

Example Usage

MaterialStorage storage;
// Compile-time dispatch - each call returns a different type!
auto& normals = storage.getStorage<NORMALS_SHADER>(); // vector<NormalMaterialData>&
auto& diffuse = storage.getStorage<DIFFUSE_FLAT_COLOR>(); //
vector<DiffuseFlatColorMaterialData>&
// Type-safe access
normals[0].getDebug(); // Works - NormalMaterialData method
diffuse[0].getColor(); // Works - DiffuseFlatColorMaterialData method

Definition at line 40 of file MaterialDataStorage.h.

References EngineCore::DIFFUSE_FLAT_COLOR, EngineCore::DIFFUSE_SHADER, diffuseFlatColorMaterialData, diffuseShaderMaterialData, EngineCore::DYNAMIC_TEXTURES, dynamicTexturesMaterialData, EngineCore::L0_SHADER, l0ShaderMaterialData, EngineCore::L1_SHADER, l1ShaderMaterialData, EngineCore::L2_SHADER, l2ShaderMaterialData, EngineCore::MOVABLE_DIFFUSE_SHADER, movableDiffuseShaderMaterialData, normalMaterialData, and EngineCore::NORMALS_SHADER.

Member Data Documentation

◆ diffuseFlatColorMaterialData

std::vector<DiffuseFlatColorMaterialData> EngineCore::MaterialDataStorage::diffuseFlatColorMaterialData
private

Definition at line 54 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ diffuseShaderMaterialData

std::vector<DiffuseShaderMaterialData> EngineCore::MaterialDataStorage::diffuseShaderMaterialData
private

Definition at line 55 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ dynamicTexturesMaterialData

std::vector<DynamicTexturesMaterialData> EngineCore::MaterialDataStorage::dynamicTexturesMaterialData
private

Definition at line 60 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ l0ShaderMaterialData

std::vector<L0ShaderMaterialData> EngineCore::MaterialDataStorage::l0ShaderMaterialData
private

Definition at line 57 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ l1ShaderMaterialData

std::vector<L1ShaderMaterialData> EngineCore::MaterialDataStorage::l1ShaderMaterialData
private

Definition at line 58 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ l2ShaderMaterialData

std::vector<L2ShaderMaterialData> EngineCore::MaterialDataStorage::l2ShaderMaterialData
private

Definition at line 59 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ movableDiffuseShaderMaterialData

std::vector<MovableDiffuseShaderMaterialData> EngineCore::MaterialDataStorage::movableDiffuseShaderMaterialData
private

Definition at line 56 of file MaterialDataStorage.h.

Referenced by getStorage().

◆ normalMaterialData

std::vector<NormalMaterialData> EngineCore::MaterialDataStorage::normalMaterialData
private

Definition at line 53 of file MaterialDataStorage.h.

Referenced by getStorage().


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