3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/application/AppPlatformListener.h"
7#include "mc/deps/core/renderer/RenderMaterialGroupBase.h"
8#include "mc/deps/core/resource/ResourceLocation.h"
9#include "mc/deps/core/string/HashedString.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/renderer/SamplerGroupCache.h"
12#include "mc/platform/threading/Mutex.h"
26class RenderMaterialGroup :
public ::AppPlatformListener,
public ::mce::RenderMaterialGroupBase {
30 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::mce::RenderMaterialInfo>>>
32 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::vector<::PackIdVersion>>> mLoadedMaterialFiles;
33 ::ll::TypedStorage<8, 56, ::ResourceLocation> mBoundList;
34 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mAsyncLoadLock;
35 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mRestartAsyncLoad;
36 ::ll::TypedStorage<8, 64, ::mce::SamplerGroupCache> mSamplerGroupCache;
37 ::ll::TypedStorage<8, 8, ::ResourcePackManager*> mResourcePackManager;
38 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourceLoadManager>> mResourceLoadManager;
39 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::mce::ShaderGroup>> mShaderGroup;
45 virtual void onAppResumed() ;
47 virtual ::mce::RenderMaterialInfo& getMaterialInfo(::HashedString
const& name) ;
49 virtual void clearMaterial(::HashedString
const& name) ;
55 MCAPI RenderMaterialGroup();
58 _loadList(::Bedrock::NonOwnerPointer<::mce::ShaderGroup> shaderGroup, ::ResourcePackManager& resourcePackManager);
60 MCAPI ::mce::MaterialPtr getMaterial(::HashedString
const& name);
62 MCFOLD ::std::unordered_map<::HashedString, ::std::shared_ptr<::mce::RenderMaterialInfo>>
const&
63 getMaterialMap()
const;
66 ::Bedrock::NonOwnerPointer<::mce::ShaderGroup> shaderGroup,
67 ::ResourceLocation
const& listPath,
68 ::ResourcePackManager& resourcePacks,
69 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
75 MCAPI
void setShaderGroup(::Bedrock::NonOwnerPointer<::mce::ShaderGroup>
const& shaderGroup);
81 MCAPI
static void resetAll();
87 MCAPI static ::mce::RenderMaterialGroup& common();
89 MCAPI static ::mce::RenderMaterialGroup& switchable();
101 MCAPI
void $onAppResumed();
103 MCAPI ::mce::RenderMaterialInfo& $getMaterialInfo(::HashedString
const& name);
105 MCAPI
void $clearMaterial(::HashedString
const& name);
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:35
Definition MaterialPtr.h:15
Definition RenderMaterialGroup.h:7
static MCAPI void ** $vftableForAppPlatformListener()
static MCAPI void ** $vftableForRenderMaterialGroupBase()
Definition RenderMaterialInfo.h:7
Definition ShaderGroup.h:7
Definition PackIdVersion.h:10