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 RenderMaterialInfo; }
20namespace mce { class ShaderGroup; }
21// clang-format on
22
23namespace mce {
24
25class RenderMaterialGroup : public ::AppPlatformListener, public ::mce::RenderMaterialGroupBase {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::mce::RenderMaterialInfo>>>
30 mMaterials;
31 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::vector<::PackIdVersion>>> mLoadedMaterialFiles;
32 ::ll::TypedStorage<8, 56, ::ResourceLocation> mBoundList;
33 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mAsyncLoadLock;
34 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mRestartAsyncLoad;
35 ::ll::TypedStorage<8, 64, ::mce::SamplerGroupCache> mSamplerGroupCache;
36 ::ll::TypedStorage<8, 8, ::ResourcePackManager*> mResourcePackManager;
37 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ResourceLoadManager>> mResourceLoadManager;
38 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::mce::ShaderGroup>> mShaderGroup;
39 // NOLINTEND
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual void onAppResumed() /*override*/;
45
46 virtual ::mce::RenderMaterialInfo& getMaterialInfo(::HashedString const& name) /*override*/;
47
48 virtual void clearMaterial(::HashedString const& name) /*override*/;
49
50 virtual ~RenderMaterialGroup() /*override*/;
51 // NOLINTEND
52
53public:
54 // member functions
55 // NOLINTBEGIN
56 MCAPI RenderMaterialGroup();
57
58 MCAPI bool
59 _loadList(::Bedrock::NonOwnerPointer<::mce::ShaderGroup> shaderGroup, ::ResourcePackManager& resourcePackManager);
60
61 MCAPI void clear();
62
63 MCAPI bool loadList(
64 ::Bedrock::NonOwnerPointer<::mce::ShaderGroup> shaderGroup,
65 ::ResourceLocation const& listPath,
66 ::ResourcePackManager& resourcePacks,
67 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
68 bool cleanReload
69 );
70
71 MCAPI void reset();
72 // NOLINTEND
73
74public:
75 // static variables
76 // NOLINTBEGIN
77 MCAPI static ::mce::RenderMaterialGroup& common();
78
79 MCAPI static ::mce::RenderMaterialGroup& switchable();
80 // NOLINTEND
81
82public:
83 // constructor thunks
84 // NOLINTBEGIN
85 MCAPI void* $ctor();
86 // NOLINTEND
87
88public:
89 // destructor thunk
90 // NOLINTBEGIN
91 MCAPI void $dtor();
92 // NOLINTEND
93
94public:
95 // virtual function thunks
96 // NOLINTBEGIN
97 MCAPI void $onAppResumed();
98
99 MCAPI ::mce::RenderMaterialInfo& $getMaterialInfo(::HashedString const& name);
100
101 MCAPI void $clearMaterial(::HashedString const& name);
102 // NOLINTEND
103
104public:
105 // vftables
106 // NOLINTBEGIN
108
109 MCNAPI static void** $vftableForAppPlatformListener();
110 // NOLINTEND
111};
112
113} // namespace mce
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:30
Definition RenderMaterialGroup.h:7
static MCAPI void ** $vftableForAppPlatformListener()
static MCAPI void ** $vftableForRenderMaterialGroupBase()
Definition RenderMaterialInfo.h:15
Definition ShaderGroup.h:7
Definition PackIdVersion.h:10