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