LeviLamina
Loading...
Searching...
No Matches
TextureAtlas.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/ImageResourceManager.h"
7#include "mc/client/renderer/texture/AtlasParameters.h"
8#include "mc/client/renderer/texture/ParsedAtlasData.h"
9#include "mc/client/renderer/texture/TextureAtlasStatus.h"
10#include "mc/deps/core/resource/ResourceLocation.h"
11#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
12#include "mc/deps/core/utility/NonOwnerPointer.h"
13#include "mc/deps/core_graphics/MipMapSupport.h"
14#include "mc/deps/core_graphics/TextureAtlas.h"
15
16// auto generated forward declare list
17// clang-format off
21struct ParsedAtlasNode;
24namespace Json { class Value; }
25namespace cg { class ImageBuffer; }
26namespace cg { class TextureSetImageContainer; }
27namespace mce { class Color; }
28namespace mce { class FileWatcherHandle; }
29namespace mce { class TextureGroup; }
30namespace mce::framebuilder { class PBRTextureDataManager; }
31// clang-format on
32
34public:
35 // TextureAtlas inner types define
36 enum class PaddingMode : int {};
37
38 using SourceImageBuffers = ::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>;
39
40 using TextureAtlasTiles = ::std::vector<::TextureAtlasTile>;
41
42 using StatusCallback = ::std::function<void(::TextureAtlasStatus const&)>;
43
44 using ImageAtlasFinishedCallback = ::std::function<void()> const;
45
46 using RuntimeImageGenerators = ::std::vector<::std::weak_ptr<::RuntimeImageGeneratorInfo>>;
47
48 using SourceImagesSignature = void(::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer> const&);
49
50public:
51 // member variables
52 // NOLINTBEGIN
53 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AtlasItemManager>> mAtlasItemManager;
54 ::ll::TypedStorage<8, 240, ::ParsedAtlasData> mParsedAtlasData;
55 ::ll::TypedStorage<4, 4, ::AtlasParameters> mAtlasParameters;
56 ::ll::TypedStorage<8, 16, ::std::set<::ResourceLocation>> mResources;
57 ::ll::TypedStorage<8, 64, ::ImageResourceManager> mResourceManager;
58 ::ll::TypedStorage<8, 24, ::std::vector<::mce::FileWatcherHandle>> mFileWatcherHandle;
59 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::RuntimeImageGeneratorInfo>>> mRuntimeImageGenerators;
60 ::ll::TypedStorage<4, 4, ::TextureAtlas::PaddingMode> mPaddingMode;
61 ::ll::TypedStorage<8, 96, ::cg::TextureAtlas> mTextureAtlas;
62 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::mce::framebuilder::PBRTextureDataManager>>
63 mPBRTextureDataManager;
64 // NOLINTEND
65
66public:
67 // prevent constructor by default
68 TextureAtlas();
69
70public:
71 // virtual functions
72 // NOLINTBEGIN
73 virtual ~TextureAtlas() /*override*/ = default;
74 // NOLINTEND
75
76public:
77 // member functions
78 // NOLINTBEGIN
79 MCAPI TextureAtlas(
80 ::ResourceLocation const& metaFile,
81 ::Bedrock::NonOwnerPointer<::mce::framebuilder::PBRTextureDataManager> pbrTextureDataManager,
82 ::TextureAtlas::PaddingMode paddingMode
83 );
84
85 MCAPI void _addElementCollection(
86 ::ResourcePackManager& resourcePackManager,
87 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
88 ::Json::Value const& texture,
89 ::ParsedAtlasNode& newNode,
90 int atIndex,
91 float mipFadeAmount,
92 ::mce::Color const& mipFadeColor,
93 bool isAdditive
94 );
95
96 MCAPI ::TextureAtlasResourceCallbacks _createAtlas(
97 ::Json::Value const& root,
98 ::std::function<void(::TextureAtlasStatus const&)> statusCallback,
99 ::std::function<void()> const imageAtlasFinishedCallback,
100 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
101 ::cg::MipMapSupport const mipMapSupport,
102 ::ResourcePackManager& resourcePackManager,
103 ::std::shared_ptr<::cg::ImageBuffer> outCopyOfFinalImage,
104 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
105 outCopyOfSourceImages
106 );
107
108 MCAPI ::TextureAtlasResourceCallbacks createAtlasFromJson(
109 ::Json::Value const& json,
110 ::ResourcePackManager& resourcePackManager,
111 ::std::function<void(::TextureAtlasStatus const&)> statusCallback,
112 ::std::function<void()> imageAtlasFinishedCallback,
113 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
114 ::cg::MipMapSupport mipMapSupport,
115 ::std::shared_ptr<::cg::ImageBuffer> outCopyOfFinalImage,
116 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
117 outCopyOfSourceImages
118 );
119
120 MCAPI ::TextureAtlasResourceCallbacks createAtlasFromList(
121 ::std::string const& atlasName,
122 ::std::vector<::std::string> const& textures,
123 ::ResourcePackManager& resourcePackManager,
124 ::std::function<void(::TextureAtlasStatus const&)> statusCallback,
125 ::std::function<void()> imageAtlasFinishedCallback,
126 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
127 ::cg::MipMapSupport mipMapSupport,
128 ::std::shared_ptr<::cg::ImageBuffer> outCopyOfFinalImage,
129 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
130 outCopyOfSourceImages
131 );
132
133 MCAPI ::ResourceLocation const& getPathFromName(::std::string const& name) const;
134
135 MCAPI ::TextureAtlasResourceCallbacks loadMetaFile(
136 ::ResourcePackManager& resourcePackManager,
137 ::std::function<void(::TextureAtlasStatus const&)> statusCallback,
138 ::std::function<void()> imageAtlasFinishedCallback,
139 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
140 ::cg::MipMapSupport mipMapSupport,
141 ::std::shared_ptr<::cg::ImageBuffer> outCopyOfFinalImage,
142 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
143 outCopyOfSourceImages
144 );
145
146 MCAPI ::TextureAtlasResourceCallbacks recreateAtlas(
147 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
148 ::std::function<void(::TextureAtlasStatus const&)> statusCallback,
149 ::std::function<void()> imageAtlasFinishedCallback,
150 ::cg::MipMapSupport mipMapSupport,
151 ::std::shared_ptr<::cg::ImageBuffer> outCopyOfFinalImage,
152 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
153 outCopyOfSourceImages
154 );
155 // NOLINTEND
156
157public:
158 // constructor thunks
159 // NOLINTBEGIN
160 MCAPI void* $ctor(
161 ::ResourceLocation const& metaFile,
162 ::Bedrock::NonOwnerPointer<::mce::framebuilder::PBRTextureDataManager> pbrTextureDataManager,
163 ::TextureAtlas::PaddingMode paddingMode
164 );
165 // NOLINTEND
166};
Definition AtlasItemManager.h:5
Definition EnableNonOwnerReferences.h:7
Definition Value.h:16
Definition ResourcePackManager.h:38
Definition TextureAtlasTile.h:5
Definition TextureAtlas.h:5
Definition ImageBuffer.h:16
Definition TextureSetImageContainer.h:20
Definition Color.h:13
Definition FileWatcherHandle.h:12
Definition TextureGroup.h:7
Definition PBRTextureDataManager.h:7
Definition ParsedAtlasNode.h:5
Definition RuntimeImageGeneratorInfo.h:5
Definition TextureAtlasResourceCallbacks.h:5