LeviLamina
Loading...
Searching...
No Matches
RendererBackend.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/gameface/renoir/CBType.h"
7#include "mc/external/gameface/renoir/IndexBufferType.h"
8#include "mc/external/gameface/renoir/ResourcesCommandsStage.h"
9#include "mc/external/gameface/renoir/VertexType.h"
10
11// auto generated forward declare list
12// clang-format off
13namespace renoir { class DynamicRendererBackend; }
14namespace renoir { struct ConstantBufferObject; }
15namespace renoir { struct DepthStencilTexture; }
16namespace renoir { struct DepthStencilTextureObject; }
17namespace renoir { struct IndexBufferObject; }
18namespace renoir { struct PipelineState; }
19namespace renoir { struct PipelineStateObject; }
20namespace renoir { struct RendererCaps; }
21namespace renoir { struct Sampler2D; }
22namespace renoir { struct Sampler2DObject; }
23namespace renoir { struct Texture2D; }
24namespace renoir { struct Texture2DObject; }
25namespace renoir { struct TextureObject; }
26namespace renoir { struct UpdateBox; }
27namespace renoir { struct VertexBufferObject; }
28namespace renoir { struct float2; }
29// clang-format on
30
31namespace renoir {
32
33class RendererBackend {
34public:
35 // RendererBackend inner types declare
36 // clang-format off
40 // clang-format on
41
42 // RendererBackend inner types define
43 enum class GPUPerfTimingResult : int {
44 Ok = 0,
45 Incomplete = 1,
46 Failed = 2,
47 };
48
50 public:
51 // member variables
52 // NOLINTBEGIN
53 ::ll::UntypedStorage<8, 8> mUnk3037f7;
54 ::ll::UntypedStorage<8, 8> mUnk62b09e;
55 ::ll::UntypedStorage<4, 4> mUnk92117d;
56 ::ll::UntypedStorage<4, 4> mUnk53c4d5;
57 // NOLINTEND
58
59 public:
60 // prevent constructor by default
61 BackendCommandsBuffer& operator=(BackendCommandsBuffer const&);
62 BackendCommandsBuffer(BackendCommandsBuffer const&);
63 BackendCommandsBuffer();
64 };
65
67 public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::UntypedStorage<8, 8> mUnkc0f4ee;
71 ::ll::UntypedStorage<8, 8> mUnkb1b5c9;
72 ::ll::UntypedStorage<4, 4> mUnk8bc8dc;
73 // NOLINTEND
74
75 public:
76 // prevent constructor by default
77 BackendResourceCommandsBuffer& operator=(BackendResourceCommandsBuffer const&);
78 BackendResourceCommandsBuffer(BackendResourceCommandsBuffer const&);
79 BackendResourceCommandsBuffer();
80 };
81
83 public:
84 // member variables
85 // NOLINTBEGIN
86 ::ll::UntypedStorage<4, 4> mUnkd277ca;
87 ::ll::UntypedStorage<8, 8> mUnka765fd;
88 ::ll::UntypedStorage<4, 4> mUnk27394e;
89 // NOLINTEND
90
91 public:
92 // prevent constructor by default
93 ConstantBufferUpdateData& operator=(ConstantBufferUpdateData const&);
94 ConstantBufferUpdateData(ConstantBufferUpdateData const&);
95 ConstantBufferUpdateData();
96 };
97
98public:
99 // virtual functions
100 // NOLINTBEGIN
101 virtual ~RendererBackend() = default;
102
103 virtual void FillCaps(::renoir::RendererCaps& outCaps) = 0;
104
105 virtual void BeginCommands() = 0;
106
107 virtual void WrapUserRenderTarget(
108 void* userObject,
109 ::renoir::Texture2D const& description,
110 ::renoir::Texture2DObject object,
111 void* depthStencil,
112 ::renoir::DepthStencilTexture const& dsDescription,
113 ::renoir::DepthStencilTextureObject dsObject
114 ) = 0;
115
116 virtual void
117 WrapUserTexture(void* userObject, ::renoir::Texture2D const& description, ::renoir::Texture2DObject object) = 0;
118
119 virtual bool CreatePipelineState(::renoir::PipelineState const& state, ::renoir::PipelineStateObject object) = 0;
120
121 virtual void DestroyPipelineState(::renoir::PipelineStateObject object) = 0;
122
123 virtual bool CreateVertexBuffer(::renoir::VertexType, uint, ::renoir::VertexBufferObject, bool) = 0;
124
125 virtual void DestroyVertexBuffer(::renoir::VertexBufferObject object) = 0;
126
127 virtual void* MapVertexBuffer(::renoir::VertexBufferObject object) = 0;
128
129 virtual void UnmapVertexBuffer(::renoir::VertexBufferObject object, uint count) = 0;
130
131 virtual bool CreateIndexBuffer(::renoir::IndexBufferType, uint, ::renoir::IndexBufferObject, bool) = 0;
132
133 virtual void DestroyIndexBuffer(::renoir::IndexBufferObject object) = 0;
134
135 virtual void* MapIndexBuffer(::renoir::IndexBufferObject object) = 0;
136
137 virtual void UnmapIndexBuffer(::renoir::IndexBufferObject object, uint elemCount) = 0;
138
139 virtual bool CreateConstantBuffer(::renoir::CBType type, ::renoir::ConstantBufferObject object, uint size) = 0;
140
141 virtual void DestroyConstantBuffer(::renoir::ConstantBufferObject object) = 0;
142
143 virtual bool CreateTexture(
144 ::renoir::Texture2DObject object,
145 ::renoir::Texture2D const& description,
146 void const* data,
147 uint dataLen
148 ) = 0;
149
150 virtual void DestroyTexture(::renoir::Texture2DObject object) = 0;
151
152 virtual void UpdateTexture(
153 ::renoir::Texture2DObject,
154 ::renoir::Texture2D const&,
155 ::renoir::UpdateBox*,
156 void const**,
157 uint,
158 bool
159 ) = 0;
160
161 virtual bool CreateDepthStencilTexture(
162 ::renoir::DepthStencilTextureObject object,
163 ::renoir::DepthStencilTexture const& description
164 ) = 0;
165
166 virtual void DestroyDepthStencilTexture(::renoir::DepthStencilTextureObject object) = 0;
167
168 virtual void CopyTextureToTexture(
169 ::renoir::Texture2DObject,
170 ::renoir::Texture2DObject,
171 ::renoir::UpdateBox,
172 ::renoir::float2
173 ) = 0;
174
175 virtual bool CreateSampler2D(::renoir::Sampler2DObject object, ::renoir::Sampler2D const& description) = 0;
176
177 virtual void DestroySampler2D(::renoir::Sampler2DObject object) = 0;
178
179 virtual void ExecuteRendering(
180 ::renoir::RendererBackend::BackendCommandsBuffer const* buffers,
181 uint buffersCount,
182 ::renoir::RendererBackend::ConstantBufferUpdateData const* cboUpdates,
183 uint numCboUpdates
184 ) = 0;
185
186 virtual void ExecuteResourceCommands(
187 ::renoir::RendererBackend::BackendResourceCommandsBuffer const*,
188 uint,
189 ::renoir::ResourcesCommandsStage
190 ) = 0;
191
192 virtual void EndCommands() = 0;
193
194 virtual ::renoir::DynamicRendererBackend* GetDynamicInterface();
195
196 virtual void SetDebugName(::renoir::Texture2DObject, char const*);
197
198 virtual void SetDebugName(::renoir::DepthStencilTextureObject, char const*);
199
200 virtual void SetDebugName(::renoir::VertexBufferObject, char const*);
201
202 virtual void SetDebugName(::renoir::IndexBufferObject, char const*);
203
204 virtual void SetDebugName(::renoir::PipelineStateObject, char const*);
205
206 virtual void SetDebugName(::renoir::ConstantBufferObject, char const*);
207
208 virtual void SetDebugName(::renoir::Sampler2DObject, char const*);
209
210 virtual void BeginGPUPerformanceTiming(uint);
211
212 virtual void EndGPUPerformanceTiming(uint);
213
214 virtual bool ReadTexture(::renoir::TextureObject, ::renoir::UpdateBox const&, void*);
215
216 virtual bool ReadVertexBuffer(::renoir::VertexBufferObject, void*);
217
218 virtual bool ReadIndexBuffer(::renoir::IndexBufferObject, void*);
219
220 virtual bool GetNativeTexture(::renoir::Texture2DObject, void*);
221
222 virtual ::renoir::RendererBackend::GPUPerfTimingResult TryGetLatestGPUPerformanceTiming(uint, float&);
223 // NOLINTEND
224
225public:
226 // virtual function thunks
227 // NOLINTBEGIN
228 MCNAPI ::renoir::DynamicRendererBackend* $GetDynamicInterface();
229
230 MCNAPI void $SetDebugName(::renoir::Texture2DObject, char const*);
231
233
235
237
239
241
242 MCNAPI void $SetDebugName(::renoir::Sampler2DObject, char const*);
243
244 MCNAPI void $BeginGPUPerformanceTiming(uint);
245
246 MCNAPI void $EndGPUPerformanceTiming(uint);
247
249
251
253
255
256 MCNAPI ::renoir::RendererBackend::GPUPerfTimingResult $TryGetLatestGPUPerformanceTiming(uint, float&);
257 // NOLINTEND
258
259public:
260 // vftables
261 // NOLINTBEGIN
262 MCNAPI static void** $vftable();
263 // NOLINTEND
264};
265
266} // namespace renoir
Definition DynamicRendererBackend.h:7
Definition RendererBackend.h:7
static MCAPI void ** $vftable()
MCAPI void $EndGPUPerformanceTiming(uint)
MCAPI void $SetDebugName(::renoir::PipelineStateObject, char const *)
MCAPI void $SetDebugName(::renoir::Texture2DObject, char const *)
MCAPI void $SetDebugName(::renoir::ConstantBufferObject, char const *)
MCAPI void $SetDebugName(::renoir::DepthStencilTextureObject, char const *)
MCAPI void $SetDebugName(::renoir::VertexBufferObject, char const *)
MCAPI bool $ReadIndexBuffer(::renoir::IndexBufferObject, void *)
MCAPI bool $ReadTexture(::renoir::TextureObject, ::renoir::UpdateBox const &, void *)
MCAPI::renoir::DynamicRendererBackend * $GetDynamicInterface()
MCAPI::renoir::RendererBackend::GPUPerfTimingResult $TryGetLatestGPUPerformanceTiming(uint, float &)
MCAPI void $SetDebugName(::renoir::Sampler2DObject, char const *)
MCAPI bool $GetNativeTexture(::renoir::Texture2DObject, void *)
MCAPI bool $ReadVertexBuffer(::renoir::VertexBufferObject, void *)
MCAPI void $BeginGPUPerformanceTiming(uint)
MCAPI void $SetDebugName(::renoir::IndexBufferObject, char const *)
Definition ConstantBufferObject.h:7
Definition DepthStencilTextureObject.h:7
Definition DepthStencilTexture.h:7
Definition IndexBufferObject.h:7
Definition PipelineStateObject.h:7
Definition PipelineState.h:7
Definition RendererBackend.h:19
Definition RendererCaps.h:7
Definition Sampler2DObject.h:7
Definition Sampler2D.h:7
Definition Texture2DObject.h:7
Definition Texture2D.h:7
Definition TextureObject.h:7
Definition UpdateBox.h:7
Definition VertexBufferObject.h:7
Definition float2.h:7