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"
25namespace Json {
class Value; }
34 ::ll::TypedStorage<2, 34, ::mce::VertexFormat> mVertexFormat;
35 ::ll::TypedStorage<4, 4, ::mce::MSAASupport> mMsaaSupport;
36 ::ll::TypedStorage<4, 4, float> mDepthBias;
37 ::ll::TypedStorage<4, 4, float> mSlopeScaledDepthBias;
38 ::ll::TypedStorage<1, 7, ::mce::BlendStateDescription> blendStateDescription;
39 ::ll::TypedStorage<4, 24, ::mce::DepthStencilStateDescription> depthStencilStateDescription;
40 ::ll::TypedStorage<4, 12, ::mce::RasterizerStateDescription> rasterizerStateDescription;
41 ::ll::TypedStorage<4, 96, ::std::array<::mce::SamplerStateDescription, 8>> samplerStateDescriptions;
42 ::ll::TypedStorage<8, 16, ::std::set<::mce::VertexField>> mVertexFields;
43 ::ll::TypedStorage<1, 1, ::mce::PrimitiveMode> mPrimitiveMode;
44 ::ll::TypedStorage<8, 24, ::std::vector<::mce::TextureFormat>> mDefaultRenderTargetFormats;
45 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<::mce::TextureFormat>>> mRenderTargetFormats;
46 ::ll::TypedStorage<4, 8, ::std::optional<::mce::framebuilder::bgfxbridge::DefineFlags>> mDefineFlags;
47 ::ll::TypedStorage<1, 2, ::std::optional<::mce::MaterialType>> mMaterialType;
48 ::ll::TypedStorage<8, 264, ::std::optional<::mce::ActorMaterialVariation>> mActorVariation;
49 ::ll::TypedStorage<1, 1, ::mce::MaterialRenderType> mRenderType;
54 RenderMaterial& operator=(RenderMaterial
const&);
60 virtual ::std::string buildHeader(::std::set<::std::string>
const& defines) ;
62 virtual void parseRuntimeStates(::Json::Value
const& root) ;
64 virtual void parseShader(::Json::Value
const& root) ;
66 virtual void appendShaderPathForGfxAPI() ;
72 MCAPI
explicit RenderMaterial(::std::vector<::mce::TextureFormat>
const& defaultRenderTargetFormats);
74 MCAPI RenderMaterial(::mce::RenderMaterial
const& parent);
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 MCFOLD ::mce::VertexFormat
const& getVertexFormat()
const;
84 MCAPI
void parseBlendState(::Json::Value
const& root);
86 MCAPI
void parseDepthStencilState(::Json::Value
const& root);
88 MCAPI
void parseRasterizerState(::Json::Value
const& root);
90 MCAPI
void parseRenderTargetFormat(::Json::Value
const& root);
92 MCAPI
void parseSamplers(::Json::Value
const& root);
94 MCAPI
void parseVertexFields(::Json::Value
const& root);
97 validateTextures(::ServerPBRTextureData
const& textureData, ::HashedString
const& renderControllerName)
const;
103 MCAPI
void* $ctor(::std::vector<::mce::TextureFormat>
const& defaultRenderTargetFormats);
105 MCAPI
void* $ctor(::mce::RenderMaterial
const& parent);
111 MCAPI ::std::string $buildHeader(::std::set<::std::string>
const& defines);
113 MCAPI
void $parseRuntimeStates(::Json::Value
const& root);
115 MCAPI
void $parseShader(::Json::Value
const& root);
117 MCFOLD
void $appendShaderPathForGfxAPI();
Definition HashedString.h:5
Definition RenderMaterial.h:7
static MCAPI void ** $vftable()
Definition ServerPBRTextureData.h:5