Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
MaterialDataStorage.h
Go to the documentation of this file.
1#pragma once
2#include "MaterialData.h"
3
4#include <vector>
5
6namespace EngineCore
7{
15 {
16 public:
18
39 template <PipelineNames P>
40 auto& getStorage() const
41 {
42 if constexpr (P == NORMALS_SHADER) return normalMaterialData;
43 else if constexpr (P == DIFFUSE_FLAT_COLOR) return diffuseFlatColorMaterialData;
44 else if constexpr (P == DIFFUSE_SHADER) return diffuseShaderMaterialData;
45 else if constexpr (P == MOVABLE_DIFFUSE_SHADER) return movableDiffuseShaderMaterialData;
46 else if constexpr (P == L0_SHADER) return l0ShaderMaterialData;
47 else if constexpr (P == L1_SHADER) return l1ShaderMaterialData;
48 else if constexpr (P == L2_SHADER) return l2ShaderMaterialData;
49 else if constexpr (P == DYNAMIC_TEXTURES) return dynamicTexturesMaterialData;
50 }
51
52 private:
53 std::vector<NormalMaterialData> normalMaterialData;
54 std::vector<DiffuseFlatColorMaterialData> diffuseFlatColorMaterialData;
55 std::vector<DiffuseShaderMaterialData> diffuseShaderMaterialData;
56 std::vector<MovableDiffuseShaderMaterialData> movableDiffuseShaderMaterialData;
57 std::vector<L0ShaderMaterialData> l0ShaderMaterialData;
58 std::vector<L1ShaderMaterialData> l1ShaderMaterialData;
59 std::vector<L2ShaderMaterialData> l2ShaderMaterialData;
60 std::vector<DynamicTexturesMaterialData> dynamicTexturesMaterialData;
61 };
62}
std::vector< DynamicTexturesMaterialData > dynamicTexturesMaterialData
std::vector< NormalMaterialData > normalMaterialData
std::vector< DiffuseFlatColorMaterialData > diffuseFlatColorMaterialData
std::vector< L0ShaderMaterialData > l0ShaderMaterialData
auto & getStorage() const
compile time getter for material data.
std::vector< MovableDiffuseShaderMaterialData > movableDiffuseShaderMaterialData
std::vector< DiffuseShaderMaterialData > diffuseShaderMaterialData
std::vector< L2ShaderMaterialData > l2ShaderMaterialData
std::vector< L1ShaderMaterialData > l1ShaderMaterialData
Log category system implementation.
@ MOVABLE_DIFFUSE_SHADER