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/deps/renoir/CBType.h"
7#include "mc/deps/renoir/IndexBufferType.h"
8#include "mc/deps/renoir/ResourcesCommandsStage.h"
9#include "mc/deps/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; }
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<4, 4> mUnkd277ca;
86 ::ll::UntypedStorage<8, 8> mUnka765fd;
87 ::ll::UntypedStorage<4, 4> mUnk675020;
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&) = 0;
104
105 virtual void BeginCommands() = 0;
106
107 virtual void WrapUserRenderTarget(
108 void*,
109 ::renoir::Texture2D const&,
110 ::renoir::Texture2DObject,
111 void*,
112 ::renoir::DepthStencilTexture const&,
113 ::renoir::DepthStencilTextureObject
114 ) = 0;
115
116 virtual void WrapUserTexture(void*, ::renoir::Texture2D const&, ::renoir::Texture2DObject) = 0;
117
118 virtual bool CreatePipelineState(::renoir::PipelineState const&, ::renoir::PipelineStateObject) = 0;
119
120 virtual void DestroyPipelineState(::renoir::PipelineStateObject) = 0;
121
122 virtual bool CreateVertexBuffer(::renoir::VertexType, uint, ::renoir::VertexBufferObject, bool) = 0;
123
124 virtual void DestroyVertexBuffer(::renoir::VertexBufferObject) = 0;
125
126 virtual void* MapVertexBuffer(::renoir::VertexBufferObject) = 0;
127
128 virtual void UnmapVertexBuffer(::renoir::VertexBufferObject, uint) = 0;
129
130 virtual bool CreateIndexBuffer(::renoir::IndexBufferType, uint, ::renoir::IndexBufferObject, bool) = 0;
131
132 virtual void DestroyIndexBuffer(::renoir::IndexBufferObject) = 0;
133
134 virtual void* MapIndexBuffer(::renoir::IndexBufferObject) = 0;
135
136 virtual void UnmapIndexBuffer(::renoir::IndexBufferObject, uint) = 0;
137
138 virtual bool CreateConstantBuffer(::renoir::CBType, ::renoir::ConstantBufferObject, uint) = 0;
139
140 virtual void DestroyConstantBuffer(::renoir::ConstantBufferObject) = 0;
141
142 virtual bool CreateTexture(::renoir::Texture2DObject, ::renoir::Texture2D const&, void const*, uint) = 0;
143
144 virtual void DestroyTexture(::renoir::Texture2DObject) = 0;
145
146 virtual void UpdateTexture(
147 ::renoir::Texture2DObject,
148 ::renoir::Texture2D const&,
149 ::renoir::UpdateBox*,
150 void const**,
151 uint,
152 bool
153 ) = 0;
154
155 virtual bool
156 CreateDepthStencilTexture(::renoir::DepthStencilTextureObject, ::renoir::DepthStencilTexture const&) = 0;
157
158 virtual void DestroyDepthStencilTexture(::renoir::DepthStencilTextureObject) = 0;
159
160 virtual bool CreateSampler2D(::renoir::Sampler2DObject, ::renoir::Sampler2D const&) = 0;
161
162 virtual void DestroySampler2D(::renoir::Sampler2DObject) = 0;
163
164 virtual void ExecuteRendering(
165 ::renoir::RendererBackend::BackendCommandsBuffer const*,
166 uint,
167 ::renoir::RendererBackend::ConstantBufferUpdateData const*,
168 uint
169 ) = 0;
170
171 virtual void ExecuteResourceCommands(
172 ::renoir::RendererBackend::BackendResourceCommandsBuffer const*,
173 uint,
174 ::renoir::ResourcesCommandsStage
175 ) = 0;
176
177 virtual void EndCommands() = 0;
178
179 virtual ::renoir::DynamicRendererBackend* GetDynamicInterface();
180
181 virtual void SetDebugName(::renoir::Texture2DObject, char const*);
182
183 virtual void SetDebugName(::renoir::DepthStencilTextureObject, char const*);
184
185 virtual void SetDebugName(::renoir::VertexBufferObject, char const*);
186
187 virtual void SetDebugName(::renoir::IndexBufferObject, char const*);
188
189 virtual void SetDebugName(::renoir::PipelineStateObject, char const*);
190
191 virtual void SetDebugName(::renoir::ConstantBufferObject, char const*);
192
193 virtual void SetDebugName(::renoir::Sampler2DObject, char const*);
194
195 virtual void BeginGPUPerformanceTiming(uint);
196
197 virtual void EndGPUPerformanceTiming(uint);
198
199 virtual bool ReadTexture(::renoir::TextureObject, ::renoir::UpdateBox const&, void*);
200
201 virtual bool ReadVertexBuffer(::renoir::VertexBufferObject, void*);
202
203 virtual bool ReadIndexBuffer(::renoir::IndexBufferObject, void*);
204
205 virtual bool GetNativeTexture(::renoir::Texture2DObject, void*);
206
207 virtual ::renoir::RendererBackend::GPUPerfTimingResult TryGetLatestGPUPerformanceTiming(uint, float&);
208 // NOLINTEND
209
210public:
211 // virtual function thunks
212 // NOLINTBEGIN
213 MCNAPI ::renoir::DynamicRendererBackend* $GetDynamicInterface();
214
215 MCNAPI void $SetDebugName(::renoir::Texture2DObject, char const*);
216
218
220
222
224
226
227 MCNAPI void $SetDebugName(::renoir::Sampler2DObject, char const*);
228
229 MCNAPI void $BeginGPUPerformanceTiming(uint);
230
231 MCNAPI void $EndGPUPerformanceTiming(uint);
232
234
236
238
240
241 MCNAPI ::renoir::RendererBackend::GPUPerfTimingResult $TryGetLatestGPUPerformanceTiming(uint, float&);
242 // NOLINTEND
243
244public:
245 // vftables
246 // NOLINTBEGIN
247 MCNAPI static void** $vftable();
248 // NOLINTEND
249};
250
251} // 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