LeviLamina
Loading...
Searching...
No Matches
BlockResourceHandler.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/controls/renderers/UIThumbnailAtlasRenderer.h"
7#include "mc/client/gui/oreui/interface/IResourceHandler.h"
8#include "mc/client/gui/oreui/interface/ResourceHandlerStatus.h"
9#include "mc/client/gui/oreui/resources/AtlasIndex.h"
10#include "mc/deps/core/threading/MPMCQueue.h"
11#include "mc/deps/game_refs/WeakRef.h"
12#include "mc/deps/minecraft_renderer/renderer/TexturePtr.h"
13#include "mc/platform/threading/Mutex.h"
14
15// auto generated forward declare list
16// clang-format off
17class IClientInstance;
18namespace Gameface { class ResourceResponse; }
19namespace Gameface { class ResourceStreamResponse; }
20namespace Gameface { class TemporaryTextureHolder; }
21namespace Gameface { class UserImageData; }
22namespace Gameface { struct ResourceRequest; }
23namespace OreUI { class UIBlockThumbnailAtlasManager; }
24// clang-format on
25
26namespace OreUI {
27
28class BlockResourceHandler : public ::Gameface::IResourceHandler {
29public:
30 // BlockResourceHandler inner types define
31 using ReqResponsePair = ::std::pair<::Gameface::ResourceRequest, ::Gameface::ResourceResponse>;
32
33public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 616, ::MPMCQueue<::std::pair<::Gameface::ResourceRequest, ::Gameface::ResourceResponse>>>
37 mBlockRequestsQueue;
38 ::ll::TypedStorage<1, 1, bool> mBlockRequestsQueuePending;
39 ::ll::TypedStorage<8, 8, ::Gameface::TemporaryTextureHolder&> mTextureHolder;
40 ::ll::TypedStorage<8, 16, ::OreUI::AtlasIndex::ItemEntry> mAir;
41 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mAtlasTexturePtr;
42 ::ll::TypedStorage<8, 16, ::WeakRef<::OreUI::UIBlockThumbnailAtlasManager>> mAtlasManager;
43 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mBlockRequestActive;
44 ::ll::TypedStorage<8, 8, uint64> mImageId;
45 ::ll::TypedStorage<8, 8, uint64> mBatchingHint;
46 // NOLINTEND
47
48public:
49 // prevent constructor by default
50 BlockResourceHandler& operator=(BlockResourceHandler const&);
51 BlockResourceHandler(BlockResourceHandler const&);
52 BlockResourceHandler();
53
54public:
55 // virtual functions
56 // NOLINTBEGIN
57 virtual ~BlockResourceHandler() /*override*/ = default;
58
59 virtual void update() /*override*/;
60
61 virtual ::Gameface::ResourceHandlerStatus
62 onResourceRequest(::Gameface::ResourceRequest const& request, ::Gameface::ResourceResponse& response) /*override*/;
63
64 virtual ::Gameface::ResourceHandlerStatus
65 onResourceStreamRequest(::Gameface::ResourceRequest const&, ::Gameface::ResourceStreamResponse&) /*override*/;
66
67 virtual void onViewCreate(::IClientInstance& primaryClient) /*override*/;
68
69 virtual void onAppPreSuspend() /*override*/;
70 // NOLINTEND
71
72public:
73 // member functions
74 // NOLINTBEGIN
75 MCAPI explicit BlockResourceHandler(::Gameface::TemporaryTextureHolder& temporaryTextureHolder);
76
77 MCAPI void _buildUserImageData(
78 ::Gameface::UserImageData& userImageData,
79 ::UIThumbnailAtlasRenderer::AtlasInfo const& atlasInfo,
80 ::OreUI::AtlasIndex::ItemEntry& entry
81 );
82
83 MCAPI ::Gameface::UserImageData _generateUserImage(::Gameface::ResourceRequest const& request);
84
85 MCAPI void
86 _handleImageRequestAsync(::Gameface::ResourceRequest const& request, ::Gameface::ResourceResponse& response);
87
88 MCAPI void _rejectResourceRequests();
89 // NOLINTEND
90
91public:
92 // constructor thunks
93 // NOLINTBEGIN
94 MCAPI void* $ctor(::Gameface::TemporaryTextureHolder& temporaryTextureHolder);
95 // NOLINTEND
96
97public:
98 // virtual function thunks
99 // NOLINTBEGIN
100 MCAPI void $update();
101
102 MCAPI ::Gameface::ResourceHandlerStatus
103 $onResourceRequest(::Gameface::ResourceRequest const& request, ::Gameface::ResourceResponse& response);
104
105 MCFOLD ::Gameface::ResourceHandlerStatus
106 $onResourceStreamRequest(::Gameface::ResourceRequest const&, ::Gameface::ResourceStreamResponse&);
107
108 MCAPI void $onViewCreate(::IClientInstance& primaryClient);
109
110 MCAPI void $onAppPreSuspend();
111 // NOLINTEND
112
113public:
114 // vftables
115 // NOLINTBEGIN
116 MCNAPI static void** $vftable();
117 // NOLINTEND
118};
119
120} // namespace OreUI
Definition ResourceResponse.h:7
Definition ResourceStreamResponse.h:7
Definition TemporaryTextureHolder.h:7
Definition UserImageData.h:7
Definition IClientInstance.h:5
Definition BlockResourceHandler.h:7
static MCAPI void ** $vftable()
Definition UIBlockThumbnailAtlasManager.h:7
Definition ResourceRequest.h:7