LeviLamina
Loading...
Searching...
No Matches
IRenderingBackendTextureStorage.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/platform/brstd/function_ref.h"
7
8// auto generated forward declare list
9// clang-format off
10namespace Gameface { struct BackendTextureStorageDependencies; }
11namespace Gameface { struct VisitedRenderTarget; }
12namespace Gameface { struct VisitedSampler; }
13namespace Gameface { struct VisitedTexture; }
14namespace mce { struct ClientTexture; }
15namespace renoir { struct DepthStencilTexture; }
16namespace renoir { struct DepthStencilTextureObject; }
17namespace renoir { struct Sampler2D; }
18namespace renoir { struct Sampler2DObject; }
19namespace renoir { struct SetPSSamplersCmd; }
20namespace renoir { struct SetPSTexturesCmd; }
21namespace renoir { struct SetRenderTargetCmd; }
22namespace renoir { struct Texture2D; }
23namespace renoir { struct Texture2DObject; }
24namespace renoir { struct UpdateBox; }
25// clang-format on
26
27namespace Gameface {
28
30public:
31 // virtual functions
32 // NOLINTBEGIN
33 virtual ~IRenderingBackendTextureStorage() = default;
34
35 virtual void wrapUserRenderTarget(
36 ::mce::ClientTexture texture,
37 ::renoir::Texture2D const& description,
38 ::renoir::Texture2DObject const& object
39 ) = 0;
40
41 virtual void
42 wrapUserTexture(uint64 id, ::renoir::Texture2D const& description, ::renoir::Texture2DObject const object) = 0;
43
44 virtual void createTexture(
45 ::renoir::Texture2DObject const object,
46 ::renoir::Texture2D const& description,
47 void const* data,
48 uint const dataLen
49 ) = 0;
50
51 virtual void destroyTexture(::renoir::Texture2DObject const object) = 0;
52
53 virtual void updateTexture(
54 ::renoir::Texture2DObject const object,
55 ::renoir::Texture2D const& description,
56 ::renoir::UpdateBox* boxes,
57 void const** newBytes,
58 uint const count
59 ) = 0;
60
61 virtual void createDepthStencilTexture(
62 ::renoir::DepthStencilTextureObject const object,
63 ::renoir::DepthStencilTexture const& description
64 ) = 0;
65
66 virtual void destroyDepthStencilTexture(::renoir::DepthStencilTextureObject const object) = 0;
67
68 virtual void createSampler2D(::renoir::Sampler2DObject const object, ::renoir::Sampler2D const& description) = 0;
69
70 virtual void destroySampler2D(::renoir::Sampler2DObject const object) = 0;
71
72 virtual void setPSSamplers(::renoir::SetPSSamplersCmd const& cmd, ::renoir::Sampler2DObject const* samplers) = 0;
73
74 virtual void setPSTextures(::renoir::SetPSTexturesCmd const& cmd, ::renoir::Texture2DObject const* textures) = 0;
75
76 virtual void visitRenderTarget(
77 ::renoir::SetRenderTargetCmd const& cmd,
78 ::brstd::function_ref<
79 void(::Gameface::VisitedRenderTarget const&) const,
80 void(::Gameface::VisitedRenderTarget const&)> visitor
81 ) = 0;
82
83 virtual void visitMeshTextures(
84 ::brstd::function_ref<void(::Gameface::VisitedTexture const&) const, void(::Gameface::VisitedTexture const&)>
85 visitor
86 ) = 0;
87
88 virtual void visitMeshSamplers(
89 ::brstd::function_ref<void(::Gameface::VisitedSampler const&) const, void(::Gameface::VisitedSampler const&)>
90 visitor
91 ) = 0;
92 // NOLINTEND
93
94public:
95 // static functions
96 // NOLINTBEGIN
97 MCAPI static ::std::unique_ptr<::Gameface::IRenderingBackendTextureStorage>
98 create(::Gameface::BackendTextureStorageDependencies&& deps);
99 // NOLINTEND
100
101public:
102 // virtual function thunks
103 // NOLINTBEGIN
104
105 // NOLINTEND
106};
107
108} // namespace Gameface
Definition IRenderingBackendTextureStorage.h:7
Definition BackendTextureStorageDependencies.h:7
Definition VisitedRenderTarget.h:7
Definition VisitedSampler.h:7
Definition VisitedTexture.h:7
Definition ClientTexture.h:7
Definition DepthStencilTextureObject.h:7
Definition DepthStencilTexture.h:7
Definition Sampler2DObject.h:7
Definition Sampler2D.h:7
Definition SetPSSamplersCmd.h:7
Definition SetPSTexturesCmd.h:7
Definition SetRenderTargetCmd.h:7
Definition Texture2DObject.h:7
Definition Texture2D.h:7
Definition UpdateBox.h:7