LeviLamina
Loading...
Searching...
No Matches
RenderMaterial.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core_graphics/RenderMaterialBase.h"
7#include "mc/deps/core_graphics/enums/PrimitiveMode.h"
8#include "mc/deps/core_graphics/enums/TextureFormat.h"
9#include "mc/deps/core_graphics/interface/BlendStateDescription.h"
10#include "mc/deps/minecraft_renderer/framebuilder/bgfxbridge/DefineFlags.h"
11#include "mc/deps/minecraft_renderer/renderer/ActorMaterialVariation.h"
12#include "mc/deps/minecraft_renderer/renderer/MaterialRenderType.h"
13#include "mc/deps/minecraft_renderer/renderer/MaterialType.h"
14#include "mc/deps/renderer/VertexField.h"
15#include "mc/deps/renderer/VertexFormat.h"
16#include "mc/deps/renderer/hal/enums/MSAASupport.h"
17#include "mc/deps/renderer/hal/interface/DepthStencilStateDescription.h"
18#include "mc/deps/renderer/hal/interface/RasterizerStateDescription.h"
19#include "mc/deps/renderer/hal/interface/SamplerStateDescription.h"
20
21// auto generated forward declare list
22// clang-format off
23namespace Json { class Value; }
24// clang-format on
25
26namespace mce {
27
28class RenderMaterial : public ::cg::RenderMaterialBase {
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<2, 34, ::mce::VertexFormat> mVertexFormat;
33 ::ll::TypedStorage<4, 4, ::mce::MSAASupport> mMsaaSupport;
34 ::ll::TypedStorage<4, 4, float> mDepthBias;
35 ::ll::TypedStorage<4, 4, float> mSlopeScaledDepthBias;
36 ::ll::TypedStorage<1, 7, ::mce::BlendStateDescription> blendStateDescription;
37 ::ll::TypedStorage<4, 24, ::mce::DepthStencilStateDescription> depthStencilStateDescription;
38 ::ll::TypedStorage<4, 12, ::mce::RasterizerStateDescription> rasterizerStateDescription;
39 ::ll::TypedStorage<4, 96, ::std::array<::mce::SamplerStateDescription, 8>> samplerStateDescriptions;
40 ::ll::TypedStorage<8, 16, ::std::set<::mce::VertexField>> mVertexFields;
41 ::ll::TypedStorage<1, 1, ::mce::PrimitiveMode> mPrimitiveMode;
42 ::ll::TypedStorage<8, 24, ::std::vector<::mce::TextureFormat>> mDefaultRenderTargetFormats;
43 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<::mce::TextureFormat>>> mRenderTargetFormats;
44 ::ll::TypedStorage<4, 8, ::std::optional<::mce::framebuilder::bgfxbridge::DefineFlags>> mDefineFlags;
45 ::ll::TypedStorage<1, 2, ::std::optional<::mce::MaterialType>> mMaterialType;
46 ::ll::TypedStorage<8, 264, ::std::optional<::mce::ActorMaterialVariation>> mActorVariation;
47 ::ll::TypedStorage<1, 1, ::mce::MaterialRenderType> mRenderType;
48 // NOLINTEND
49
50public:
51 // prevent constructor by default
52 RenderMaterial& operator=(RenderMaterial const&);
53 RenderMaterial();
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58 virtual ::std::string buildHeader(::std::set<::std::string> const& defines) /*override*/;
59
60 virtual void parseRuntimeStates(::Json::Value const& root) /*override*/;
61
62 virtual void parseShader(::Json::Value const& root) /*override*/;
63
64 virtual void appendShaderPathForGfxAPI() /*override*/;
65
66 virtual ~RenderMaterial() /*override*/;
67 // NOLINTEND
68
69public:
70 // member functions
71 // NOLINTBEGIN
72 MCAPI RenderMaterial(::mce::RenderMaterial const&);
73
74 MCAPI explicit RenderMaterial(::std::vector<::mce::TextureFormat> const& defaultRenderTargetFormats);
75
76 MCAPI ::mce::ActorMaterialVariation getActorVariation(::mce::MaterialRenderType renderType);
77
78 MCAPI ::mce::framebuilder::bgfxbridge::DefineFlags const getDefinesFlags();
79
80 MCAPI ::std::optional<::mce::MaterialType> const getMaterialType();
81
82 MCAPI void parseDepthStencilState(::Json::Value const& root);
83
84 MCAPI void parseRenderTargetFormat(::Json::Value const& root);
85
86 MCAPI void parseSamplers(::Json::Value const& root);
87
88 MCAPI void parseVertexFields(::Json::Value const& root);
89 // NOLINTEND
90
91public:
92 // constructor thunks
93 // NOLINTBEGIN
94 MCAPI void* $ctor(::mce::RenderMaterial const&);
95
96 MCAPI void* $ctor(::std::vector<::mce::TextureFormat> const& defaultRenderTargetFormats);
97 // NOLINTEND
98
99public:
100 // destructor thunk
101 // NOLINTBEGIN
102 MCAPI void $dtor();
103 // NOLINTEND
104
105public:
106 // virtual function thunks
107 // NOLINTBEGIN
108 MCAPI ::std::string $buildHeader(::std::set<::std::string> const& defines);
109
110 MCAPI void $parseRuntimeStates(::Json::Value const& root);
111
112 MCFOLD void $parseShader(::Json::Value const& root);
113
114 MCFOLD void $appendShaderPathForGfxAPI();
115 // NOLINTEND
116
117public:
118 // vftables
119 // NOLINTBEGIN
120 MCNAPI static void** $vftable();
121 // NOLINTEND
122};
123
124} // namespace mce
Definition Value.h:16
Definition RenderMaterial.h:7
static MCAPI void ** $vftable()