3#include "mc/_HeaderOutputPredefine.h"
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"
23namespace Json {
class Value; }
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;
52 RenderMaterial& operator=(RenderMaterial
const&);
58 virtual ::std::string buildHeader(::std::set<::std::string>
const& defines) ;
60 virtual void parseRuntimeStates(::Json::Value
const& root) ;
62 virtual void parseShader(::Json::Value
const& root) ;
64 virtual void appendShaderPathForGfxAPI() ;
66 virtual ~RenderMaterial() ;
72 MCAPI RenderMaterial(::mce::RenderMaterial
const&);
74 MCAPI
explicit RenderMaterial(::std::vector<::mce::TextureFormat>
const& defaultRenderTargetFormats);
76 MCAPI ::mce::ActorMaterialVariation getActorVariation(::mce::MaterialRenderType renderType);
78 MCAPI ::mce::framebuilder::bgfxbridge::DefineFlags
const getDefinesFlags();
80 MCAPI ::std::optional<::mce::MaterialType>
const getMaterialType();
82 MCAPI
void parseDepthStencilState(::Json::Value
const& root);
84 MCAPI
void parseRenderTargetFormat(::Json::Value
const& root);
86 MCAPI
void parseSamplers(::Json::Value
const& root);
88 MCAPI
void parseVertexFields(::Json::Value
const& root);
94 MCAPI
void* $ctor(::mce::RenderMaterial
const&);
96 MCAPI
void* $ctor(::std::vector<::mce::TextureFormat>
const& defaultRenderTargetFormats);
108 MCAPI ::std::string $buildHeader(::std::set<::std::string>
const& defines);
110 MCAPI
void $parseRuntimeStates(::Json::Value
const& root);
112 MCFOLD
void $parseShader(::Json::Value
const& root);
114 MCFOLD
void $appendShaderPathForGfxAPI();
Definition RenderMaterial.h:7
static MCAPI void ** $vftable()