LeviLamina
Loading...
Searching...
No Matches
RenderMaterialGroup.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
13
14// auto generated forward declare list
15// clang-format off
18struct PackIdVersion;
19namespace mce { class MaterialPtr; }
20namespace mce { class RenderMaterialInfo; }
21namespace mce { class ShaderGroup; }
22// clang-format on
23
24namespace mce {
25
26class RenderMaterialGroup : public ::AppPlatformListener, public ::mce::RenderMaterialGroupBase {
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::mce::RenderMaterialInfo>>>
31 mMaterials;
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;
40 // NOLINTEND
41
42public:
43 // virtual functions
44 // NOLINTBEGIN
45 virtual void onAppResumed() /*override*/;
46
47 virtual ::mce::RenderMaterialInfo& getMaterialInfo(::HashedString const& name) /*override*/;
48
49 virtual void clearMaterial(::HashedString const& name) /*override*/;
50 // NOLINTEND
51
52public:
53 // member functions
54 // NOLINTBEGIN
55 MCAPI RenderMaterialGroup();
56
57 MCAPI bool
58 _loadList(::Bedrock::NonOwnerPointer<::mce::ShaderGroup> shaderGroup, ::ResourcePackManager& resourcePackManager);
59
60 MCAPI ::mce::MaterialPtr getMaterial(::HashedString const& name);
61
62 MCFOLD ::std::unordered_map<::HashedString, ::std::shared_ptr<::mce::RenderMaterialInfo>> const&
63 getMaterialMap() const;
64
65 MCAPI bool loadList(
66 ::Bedrock::NonOwnerPointer<::mce::ShaderGroup> shaderGroup,
67 ::ResourceLocation const& listPath,
68 ::ResourcePackManager& resourcePacks,
69 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
70 bool cleanReload
71 );
72
73 MCAPI void reset();
74
75 MCAPI void setShaderGroup(::Bedrock::NonOwnerPointer<::mce::ShaderGroup> const& shaderGroup);
76 // NOLINTEND
77
78public:
79 // static functions
80 // NOLINTBEGIN
81 MCAPI static void resetAll();
82 // NOLINTEND
83
84public:
85 // static variables
86 // NOLINTBEGIN
87 MCAPI static ::mce::RenderMaterialGroup& common();
88
89 MCAPI static ::mce::RenderMaterialGroup& switchable();
90 // NOLINTEND
91
92public:
93 // constructor thunks
94 // NOLINTBEGIN
95 MCAPI void* $ctor();
96 // NOLINTEND
97
98public:
99 // virtual function thunks
100 // NOLINTBEGIN
101 MCAPI void $onAppResumed();
102
103 MCAPI ::mce::RenderMaterialInfo& $getMaterialInfo(::HashedString const& name);
104
105 MCAPI void $clearMaterial(::HashedString const& name);
106 // NOLINTEND
107
108public:
109 // vftables
110 // NOLINTBEGIN
112
113 MCNAPI static void** $vftableForAppPlatformListener();
114 // NOLINTEND
115};
116
117} // namespace mce
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