3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/oreui/rendering/IRenderingBackendTextureStorage.h"
7#include "mc/deps/core/checked_resource_service/ClientResourcePointer.h"
8#include "mc/deps/minecraft_renderer/resources/ClientTexture.h"
9#include "mc/external/gameface/renoir/DepthStencilTextureObject.h"
10#include "mc/external/gameface/renoir/Sampler2DObject.h"
11#include "mc/external/gameface/renoir/Texture2DObject.h"
12#include "mc/external/render_dragon/resources/TextureDescription.h"
13#include "mc/platform/brstd/function_ref.h"
14#include "mc/util/BackendRenderConfig.h"
52 ::ll::TypedStorage<8, 8, ::renoir::Texture2D const&> mDescription;
53 ::ll::TypedStorage<8, 8, ::renoir::Texture2DObject const&> mObject;
58 WrapUserTextureArgs& operator=(WrapUserTextureArgs
const&);
59 WrapUserTextureArgs(WrapUserTextureArgs
const&);
60 WrapUserTextureArgs();
72 ::mce::ClientResourcePointer<::dragon::ResolvedTextureResource>,
74 ::std::shared_ptr<::GeometryAtlas::IAtlasTile>>>
76 ::ll::TypedStorage<8, 64, ::dragon::TextureDescription> mDesc;
81 TextureStorage& operator=(TextureStorage
const&);
87 MCAPI TextureStorage(::Gameface::TextureStorageImpl::TextureStorage
const&);
89 MCAPI ~TextureStorage();
95 MCAPI
void* $ctor(::Gameface::TextureStorageImpl::TextureStorage
const&);
111 ::std::unordered_map<::renoir::Texture2DObject, ::Gameface::TextureStorageImpl::TextureStorage>>
116 ::std::unordered_map<::renoir::DepthStencilTextureObject, ::Gameface::TextureStorageImpl::TextureStorage>>
118 ::ll::TypedStorage<8, 64, ::std::unordered_map<::renoir::Sampler2DObject, ::mce::SamplerStateDescription>>
120 ::ll::TypedStorage<4, 20, ::std::array<::renoir::Texture2DObject, 5>> mRequestedTextures;
121 ::ll::TypedStorage<4, 20, ::std::array<::renoir::Sampler2DObject, 5>> mRequestedSamplers;
122 ::ll::TypedStorage<8, 8, ::Gameface::TemporaryTextureHolder&> mTemporaryTextureHolder;
123 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::Gameface::IRenderingBackendTextureService>>>
125 ::ll::TypedStorage<1, 2, ::Gameface::RenderUtils::BackendRenderConfig const> mConfig;
130 TextureStorageImpl& operator=(TextureStorageImpl
const&);
131 TextureStorageImpl(TextureStorageImpl
const&);
132 TextureStorageImpl();
137 virtual void wrapUserRenderTarget(
138 ::mce::ClientTexture texture,
139 ::renoir::Texture2D
const& description,
140 ::renoir::Texture2DObject
const&
object
143 virtual void wrapUserTexture(
145 ::renoir::Texture2D
const& description,
146 ::renoir::Texture2DObject
const object
149 virtual void createTexture(
150 ::renoir::Texture2DObject
const object,
151 ::renoir::Texture2D
const& description,
156 virtual void destroyTexture(::renoir::Texture2DObject
const object) ;
158 virtual void updateTexture(
159 ::renoir::Texture2DObject
const object,
160 ::renoir::Texture2D
const& description,
161 ::renoir::UpdateBox* boxes,
162 void const** newBytes,
166 virtual void createDepthStencilTexture(
167 ::renoir::DepthStencilTextureObject
const object,
168 ::renoir::DepthStencilTexture
const& description
171 virtual void destroyDepthStencilTexture(::renoir::DepthStencilTextureObject
const object) ;
174 createSampler2D(::renoir::Sampler2DObject
const object, ::renoir::Sampler2D
const& description) ;
176 virtual void destroySampler2D(::renoir::Sampler2DObject
const object) ;
178 virtual void visitRenderTarget(
179 ::renoir::SetRenderTargetCmd
const& cmd,
180 ::brstd::function_ref<
181 void(::Gameface::VisitedRenderTarget
const&)
const,
182 void(::Gameface::VisitedRenderTarget
const&)> visitor
186 setPSSamplers(::renoir::SetPSSamplersCmd
const& cmd, ::renoir::Sampler2DObject
const* samplers) ;
189 setPSTextures(::renoir::SetPSTexturesCmd
const& cmd, ::renoir::Texture2DObject
const* textures) ;
191 virtual void visitMeshTextures(
192 ::brstd::function_ref<
void(::Gameface::VisitedTexture
const&)
const,
void(::Gameface::VisitedTexture
const&)>
196 virtual void visitMeshSamplers(
197 ::brstd::function_ref<
void(::Gameface::VisitedSampler
const&)
const,
void(::Gameface::VisitedSampler
const&)>
205 MCAPI
explicit TextureStorageImpl(::Gameface::BackendTextureStorageDependencies&& deps);
208 _wrapUserTexture(::Gameface::TextureStorageImpl::WrapUserTextureArgs
const& args, ::mce::TexturePtr texture);
210 MCAPI
void _wrapUserTexture(
211 ::Gameface::TextureStorageImpl::WrapUserTextureArgs
const& args,
212 ::std::shared_ptr<::GeometryAtlas::IAtlasTile>
const& tile
219 MCAPI
void* $ctor(::Gameface::BackendTextureStorageDependencies&& deps);
225 MCAPI
void $wrapUserRenderTarget(
226 ::mce::ClientTexture texture,
227 ::renoir::Texture2D
const& description,
228 ::renoir::Texture2DObject
const&
object
232 $wrapUserTexture(uint64
id, ::renoir::Texture2D
const& description, ::renoir::Texture2DObject
const object);
234 MCAPI
void $createTexture(
235 ::renoir::Texture2DObject
const object,
236 ::renoir::Texture2D
const& description,
241 MCAPI
void $destroyTexture(::renoir::Texture2DObject
const object);
243 MCAPI
void $updateTexture(
244 ::renoir::Texture2DObject
const object,
245 ::renoir::Texture2D
const& description,
246 ::renoir::UpdateBox* boxes,
247 void const** newBytes,
251 MCAPI
void $createDepthStencilTexture(
252 ::renoir::DepthStencilTextureObject
const object,
253 ::renoir::DepthStencilTexture
const& description
256 MCAPI
void $destroyDepthStencilTexture(::renoir::DepthStencilTextureObject
const object);
258 MCAPI
void $createSampler2D(::renoir::Sampler2DObject
const object, ::renoir::Sampler2D
const& description);
260 MCAPI
void $destroySampler2D(::renoir::Sampler2DObject
const object);
262 MCAPI
void $visitRenderTarget(
263 ::renoir::SetRenderTargetCmd
const& cmd,
264 ::brstd::function_ref<
265 void(::Gameface::VisitedRenderTarget
const&)
const,
266 void(::Gameface::VisitedRenderTarget
const&)> visitor
269 MCAPI
void $setPSSamplers(::renoir::SetPSSamplersCmd
const& cmd, ::renoir::Sampler2DObject
const* samplers);
271 MCAPI
void $setPSTextures(::renoir::SetPSTexturesCmd
const& cmd, ::renoir::Texture2DObject
const* textures);
273 MCAPI
void $visitMeshTextures(
274 ::brstd::function_ref<
void(::Gameface::VisitedTexture
const&)
const,
void(::Gameface::VisitedTexture
const&)>
278 MCAPI
void $visitMeshSamplers(
279 ::brstd::function_ref<
void(::Gameface::VisitedSampler
const&)
const,
void(::Gameface::VisitedSampler
const&)>
Definition IRenderingBackendTextureService.h:7
Definition TemporaryTextureHolder.h:7
Definition TextureStorageImpl.h:7
static MCAPI void ** $vftable()
Definition IAtlasTile.h:7
Definition ResolvedTextureResource.h:7
Definition TexturePtr.h:7
Definition BackendTextureStorageDependencies.h:7
Definition TextureStorageImpl.h:18
Definition TextureStorageImpl.h:16
Definition VisitedRenderTarget.h:7
Definition VisitedSampler.h:7
Definition VisitedTexture.h:7
Definition SamplerStateDescription.h:7
Definition DepthStencilTexture.h:7
Definition SetPSSamplersCmd.h:7
Definition SetPSTexturesCmd.h:7
Definition SetRenderTargetCmd.h:7