LeviLamina
Loading...
Searching...
No Matches
TextureHotReloader.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/texture/IResourceWatcher.h"
7#include "mc/client/renderer/texture/TextureAtlasStatus.h"
8#include "mc/client/renderer/texture/TextureHotReloaderMode.h"
9#include "mc/deps/core/resource/ResourceLocation.h"
10#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
11#include "mc/deps/core_graphics/MipMapSupport.h"
12#include "mc/deps/core_graphics/ResourceLoader.h"
13
14// auto generated forward declare list
15// clang-format off
17class TextureAtlas;
22namespace cg { class ImageBuffer; }
23namespace cg { class TextureSetImageContainer; }
24namespace mce { class FileWatcherHandle; }
25namespace mce { class TextureGroup; }
26namespace mce { struct Image; }
27// clang-format on
28
30public:
31 // TextureHotReloader inner types define
32 using StatusCallbackType = void(::TextureAtlasStatus const&);
33
34 using ReloadCallbackType = void(::ResourceLocation const&);
35
36 using TextureAtlasTaskEnqueueType = void(::TextureAtlasResourceCallbacks);
37
38 using TextureAtlasReloadCallbackType = void(
39 ::ResourceLocation const&,
40 ::std::shared_ptr<::cg::ImageBuffer>,
41 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
42 );
43
44public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::std::map<::ResourceLocation, ::cg::ImageBuffer>>> mCachedTextures;
48 ::ll::TypedStorage<
49 8,
50 8,
51 ::std::unique_ptr<::mce::IResourceWatcher<
52 ::cg::ResourceLoader<
53 ::std::shared_ptr<::mce::Image>,
54 ::ResourceLocation,
55 ::StdIoStreamPolicy,
56 ::StbImageLoadPolicy,
57 ::std::vector<uchar>>,
58 ::ImageResourceManager>>>
59 mImageWatcher;
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ImageResourceManager>> mImageResourceManager;
61 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ResourceLocation, ::mce::FileWatcherHandle>> mFileWatcherHandles;
62 ::ll::TypedStorage<4, 4, ::TextureHotReloaderMode const> mMode;
63 // NOLINTEND
64
65public:
66 // prevent constructor by default
67 TextureHotReloader();
68
69public:
70 // member functions
71 // NOLINTBEGIN
72 MCAPI TextureHotReloader(
73 ::std::unique_ptr<::mce::IResourceWatcher<
74 ::cg::ResourceLoader<
75 ::std::shared_ptr<::mce::Image>,
76 ::ResourceLocation,
77 ::StdIoStreamPolicy,
78 ::StbImageLoadPolicy,
79 ::std::vector<uchar>>,
80 ::ImageResourceManager>> imageWatcher,
81 ::TextureHotReloaderMode mode
82 );
83
84 MCAPI void cacheTextures(::std::shared_ptr<::mce::TextureGroup> textureGroup);
85
86 MCAPI bool
87 isFileWatched(::ResourceLocation const& resloc, ::IResourceLocationExpander const& resourceLocationExpander);
88
89 MCAPI void loadCachedTextureData(::std::shared_ptr<::mce::TextureGroup> textureGroup);
90
91 MCAPI void registerAtlas(
92 ::TextureAtlas& textureAtlas,
93 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
94 ::IResourceLocationExpander const& resourceLocationExpander,
95 ::cg::MipMapSupport const& mipMapSupport,
96 ::std::function<void(::TextureAtlasResourceCallbacks)> textureAtlasTaskEnqueueCallback,
97 ::std::function<void(::TextureAtlasStatus const&)> textureAtlasStatusCallback,
98 ::std::function<void(
99 ::ResourceLocation const&,
100 ::std::shared_ptr<::cg::ImageBuffer>,
101 ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer>>
102 )> textureAtlasReloadCallback
103 );
104
105 MCAPI void registerTexture(
106 ::ResourceLocation const& resLoc,
107 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
108 ::IResourceLocationExpander const& resourceLocationExpander,
109 ::std::function<void(::ResourceLocation const&)> textureReloadCallback
110 );
111 // NOLINTEND
112
113public:
114 // constructor thunks
115 // NOLINTBEGIN
116 MCAPI void* $ctor(
117 ::std::unique_ptr<::mce::IResourceWatcher<
118 ::cg::ResourceLoader<
119 ::std::shared_ptr<::mce::Image>,
120 ::ResourceLocation,
121 ::StdIoStreamPolicy,
122 ::StbImageLoadPolicy,
123 ::std::vector<uchar>>,
124 ::ImageResourceManager>> imageWatcher,
125 ::TextureHotReloaderMode mode
126 );
127 // NOLINTEND
128};
Definition EnableNonOwnerReferences.h:7
Definition IResourceLocationExpander.h:5
Definition TextureAtlas.h:5
Definition ImageBuffer.h:16
Definition TextureSetImageContainer.h:20
Definition FileWatcherHandle.h:12
Definition TextureGroup.h:7
Definition ImageResourceManager.h:5
Definition StbImageLoadPolicy.h:5
Definition StdIoStreamPolicy.h:5
Definition TextureAtlasResourceCallbacks.h:5
Definition TextureHotReloader.h:5
Definition Image.h:13