LeviLamina
Loading...
Searching...
No Matches
RenderMaterialBase.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/file/PathBuffer.h"
7#include "mc/deps/core/sem_ver/SemVersion.h"
8#include "mc/deps/core_graphics/VariationMap.h"
9#include "mc/deps/core_graphics/enums/RenderState.h"
10#include "mc/deps/core_graphics/helpers/InheritanceType.h"
11
12// auto generated forward declare list
13// clang-format off
14namespace Json { class Value; }
15namespace cg { struct RenderFeaturesConfiguration; }
16// clang-format on
17
18namespace cg {
19
21public:
22 // RenderMaterialBase inner types define
23 using DefineSet = ::std::set<::std::string>;
24
25 using MaterialVariationMap = ::std::map<::std::string, ::std::shared_ptr<::cg::RenderMaterialBase>>;
26
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::shared_ptr<::cg::RenderMaterialBase>>>
31 mMaterialVariations;
32 ::ll::TypedStorage<8, 32, ::cg::VariationMap> mVariationMap;
33 ::ll::TypedStorage<8, 32, ::std::string> mFullMaterialName;
34 ::ll::TypedStorage<8, 32, ::std::string> mVariantName;
35 ::ll::TypedStorage<8, 32, ::std::string> mMaterialIdentifier;
36 ::ll::TypedStorage<8, 16, ::std::set<::std::string>> mDefines;
37 ::ll::TypedStorage<2, 2, ::mce::RenderState> mStateMask;
38 ::ll::TypedStorage<8, 32, ::std::string> mShaderHeader;
39 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mVertexShader;
40 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mFragmentShader;
41 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mGeometryShader;
42 ::ll::TypedStorage<8, 24, ::SemVersion> mVersion;
43 ::ll::TypedStorage<1, 1, uchar> mRequiredTextures;
44 // NOLINTEND
45
46public:
47 // virtual functions
48 // NOLINTBEGIN
49#ifdef LL_PLAT_S
50 virtual ~RenderMaterialBase() = default;
51#else // LL_PLAT_C
52 virtual ~RenderMaterialBase();
53#endif
54
55 virtual void parseRuntimeStates(::Json::Value const& root) = 0;
56
57 virtual void appendShaderPathForGfxAPI() = 0;
58
59#ifdef LL_PLAT_S
60 virtual ::std::string buildHeader(::std::set<::std::string> const&);
61#else // LL_PLAT_C
62 virtual ::std::string buildHeader(::std::set<::std::string> const& defines);
63#endif
64
65#ifdef LL_PLAT_S
66 virtual void parseShader(::Json::Value const&);
67#else // LL_PLAT_C
68 virtual void parseShader(::Json::Value const& root);
69#endif
70
71 // NOLINTEND
72
73public:
74 // member functions
75 // NOLINTBEGIN
76#ifdef LL_PLAT_C
77 MCAPI RenderMaterialBase();
78
79 MCAPI void modifyDefines(::cg::RenderFeaturesConfiguration const& features);
80
81 MCAPI void parseDefines(::Json::Value const& root);
82
83 MCAPI void parseMaterial(::Json::Value const& root);
84
85 MCAPI void parseStates(::Json::Value const& root);
86
87 MCAPI bool parseVariantWithInheritance(
88 ::Json::Value const& root,
89 ::std::string_view key,
90 ::mce::InheritanceType inheritanceType
91 );
92
93 MCAPI void parseVersion(::Json::Value const& root);
94#endif
95 // NOLINTEND
96
97public:
98 // constructor thunks
99 // NOLINTBEGIN
100#ifdef LL_PLAT_C
101 MCAPI void* $ctor();
102#endif
103 // NOLINTEND
104
105public:
106 // destructor thunk
107 // NOLINTBEGIN
108#ifdef LL_PLAT_C
109 MCAPI void $dtor();
110#endif
111 // NOLINTEND
112
113public:
114 // virtual function thunks
115 // NOLINTBEGIN
116#ifdef LL_PLAT_C
117 MCAPI ::std::string $buildHeader(::std::set<::std::string> const& defines);
118
119 MCAPI void $parseShader(::Json::Value const& root);
120#endif
121
122
123 // NOLINTEND
124
125public:
126 // vftables
127 // NOLINTBEGIN
128 MCNAPI static void** $vftable();
129 // NOLINTEND
130};
131
132} // namespace cg
Definition Value.h:16
Definition RenderMaterialBase.h:20
static MCAPI void ** $vftable()
Definition RenderFeaturesConfiguration.h:7