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