Skip to content
LeviMC
English
AutoLightDark
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
73 ::std::unique_ptr<::mce::IResourceWatcher<
75 ::std::shared_ptr<::mce::Image>,
79 ::std::vector<uchar>>,
80 ::ImageResourceManager>> imageWatcher,
81 ::TextureHotReloaderMode mode
82 );
83
84 MCNAPI void cacheTextures(::std::shared_ptr<::mce::TextureGroup> textureGroup);
85
86 MCNAPI bool
87 isFileWatched(::ResourceLocation const& resloc, ::IResourceLocationExpander const& resourceLocationExpander);
88
89 MCNAPI void loadCachedTextureData(::std::shared_ptr<::mce::TextureGroup> textureGroup);
90
91 MCNAPI 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 MCNAPI 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 MCNAPI void* $ctor(
117 ::std::unique_ptr<::mce::IResourceWatcher<
119 ::std::shared_ptr<::mce::Image>,
123 ::std::vector<uchar>>,
124 ::ImageResourceManager>> imageWatcher,
125 ::TextureHotReloaderMode mode
126 );
127 // NOLINTEND
128};
Definition EnableNonOwnerReferences.h:7
Definition IResourceLocationExpander.h:5
Definition ResourceLocation.h:15
Definition TextureAtlas.h:5
Definition ImageBuffer.h:16
Definition ResourceLoader.h:8
Definition TextureSetImageContainer.h:20
Definition FileWatcherHandle.h:12
Definition IResourceWatcher.h:8
Definition TextureGroup.h:7
Definition ImageResourceManager.h:5
Definition StbImageLoadPolicy.h:5
Definition StdIoStreamPolicy.h:5
Definition TextureAtlasResourceCallbacks.h:5
Definition TextureHotReloader.h:5
MCAPI void registerAtlas(::TextureAtlas &textureAtlas, ::std::shared_ptr<::mce::TextureGroup > textureGroup, ::IResourceLocationExpander const &resourceLocationExpander, ::cg::MipMapSupport const &mipMapSupport, ::std::function< void(::TextureAtlasResourceCallbacks)> textureAtlasTaskEnqueueCallback, ::std::function< void(::TextureAtlasStatus const &)> textureAtlasStatusCallback, ::std::function< void(::ResourceLocation const &, ::std::shared_ptr<::cg::ImageBuffer >, ::std::shared_ptr<::std::unordered_map<::ResourceLocation, ::cg::TextureSetImageContainer > >)> textureAtlasReloadCallback)
MCAPI void loadCachedTextureData(::std::shared_ptr<::mce::TextureGroup > textureGroup)
MCAPI bool isFileWatched(::ResourceLocation const &resloc, ::IResourceLocationExpander const &resourceLocationExpander)
MCAPI TextureHotReloader(::std::unique_ptr<::mce::IResourceWatcher< ::cg::ResourceLoader< ::std::shared_ptr<::mce::Image >, ::ResourceLocation, ::StdIoStreamPolicy, ::StbImageLoadPolicy, ::std::vector< uchar > >, ::ImageResourceManager > > imageWatcher, ::TextureHotReloaderMode mode)
MCAPI void registerTexture(::ResourceLocation const &resLoc, ::std::shared_ptr<::mce::TextureGroup > textureGroup, ::IResourceLocationExpander const &resourceLocationExpander, ::std::function< void(::ResourceLocation const &)> textureReloadCallback)
MCAPI void * $ctor(::std::unique_ptr<::mce::IResourceWatcher< ::cg::ResourceLoader< ::std::shared_ptr<::mce::Image >, ::ResourceLocation, ::StdIoStreamPolicy, ::StbImageLoadPolicy, ::std::vector< uchar > >, ::ImageResourceManager > > imageWatcher, ::TextureHotReloaderMode mode)
MCAPI void cacheTextures(::std::shared_ptr<::mce::TextureGroup > textureGroup)
Definition Image.h:13