LeviLamina
Loading...
Searching...
No Matches
RendererContextI.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/bgfx/acceleration_structure_build_flags/Enum.h"
7#include "mc/external/bgfx/renderer_type/Enum.h"
8#include "mc/external/bgfx/texture_format/Enum.h"
9#include "mc/external/bgfx/uniform_type/Enum.h"
10
11// auto generated forward declare list
12// clang-format off
13namespace bgfx { struct AccelerationStructureHandle; }
14namespace bgfx { struct Attachment; }
15namespace bgfx { struct ClearQuad; }
16namespace bgfx { struct Frame; }
17namespace bgfx { struct FrameBufferHandle; }
18namespace bgfx { struct Handle; }
19namespace bgfx { struct IndexBufferHandle; }
20namespace bgfx { struct Memory; }
21namespace bgfx { struct OcclusionQueryHandle; }
22namespace bgfx { struct ProgramHandle; }
23namespace bgfx { struct Rect; }
24namespace bgfx { struct ShaderBufferHandle; }
25namespace bgfx { struct ShaderHandle; }
26namespace bgfx { struct TextVideoMemBlitter; }
27namespace bgfx { struct TextureHandle; }
28namespace bgfx { struct TopLevelInstanceDesc; }
29namespace bgfx { struct UniformHandle; }
30namespace bgfx { struct VertexBufferHandle; }
31namespace bgfx { struct VertexDecl; }
32namespace bgfx { struct VertexDeclHandle; }
33namespace bx { class StringT; }
34// clang-format on
35
36namespace bgfx {
37
38struct RendererContextI {
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ~RendererContextI() = 0;
43
44 virtual ::bgfx::RendererType::Enum getRendererType() const = 0;
45
46 virtual uint64 getRendererVersion() const = 0;
47
48 virtual uint64 getShaderVersion() const = 0;
49
50 virtual char const* getRendererName() const = 0;
51
52 virtual bool isDeviceRemoved() = 0;
53
54 virtual void flip() = 0;
55
56 virtual void advanceToNextFrame() = 0;
57
58 virtual void suspend() = 0;
59
60 virtual void resume() = 0;
61
62 virtual void createIndexBuffer(::bgfx::IndexBufferHandle _handle, ::bgfx::Memory const* _mem, ushort _flags) = 0;
63
64 virtual void destroyIndexBuffer(::bgfx::IndexBufferHandle _handle) = 0;
65
66 virtual void createVertexDecl(::bgfx::VertexDeclHandle _handle, ::bgfx::VertexDecl const& _decl) = 0;
67
68 virtual void destroyVertexDecl(::bgfx::VertexDeclHandle) = 0;
69
70 virtual void createVertexBuffer(
71 ::bgfx::VertexBufferHandle _handle,
72 ::bgfx::Memory const* _mem,
73 ::bgfx::VertexDeclHandle _declHandle,
74 ushort _flags
75 ) = 0;
76
77 virtual void destroyVertexBuffer(::bgfx::VertexBufferHandle _handle) = 0;
78
79 virtual void createDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle, uint _size, ushort _flags) = 0;
80
81 virtual void updateDynamicIndexBuffer(
82 ::bgfx::IndexBufferHandle _handle,
83 uint _offset,
84 uint _size,
85 ::bgfx::Memory const* _mem
86 ) = 0;
87
88 virtual void destroyDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle) = 0;
89
90 virtual void createDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle, uint _size, ushort _flags) = 0;
91
92 virtual void updateDynamicVertexBuffer(
93 ::bgfx::VertexBufferHandle _handle,
94 uint _offset,
95 uint _size,
96 ::bgfx::Memory const* _mem
97 ) = 0;
98
99 virtual void destroyDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle) = 0;
100
101 virtual void createShader(::bgfx::ShaderHandle _handle, ::bgfx::Memory const* _mem) = 0;
102
103 virtual void destroyShader(::bgfx::ShaderHandle _handle) = 0;
104
105 virtual void createProgram(::bgfx::ProgramHandle _handle, ::bgfx::ShaderHandle _vsh, ::bgfx::ShaderHandle _fsh) = 0;
106
107 virtual void destroyProgram(::bgfx::ProgramHandle _handle) = 0;
108
109 virtual void* createTexture(
110 ::bgfx::TextureHandle _handle,
111 ::bgfx::Memory const* _mem,
112 uint _flags,
113 uchar _skip,
114 ::bgfx::Memory const** _imageContainerData
115 ) = 0;
116
117 virtual void updateTextureBegin(::bgfx::TextureHandle _handle, uchar _side, uchar _mip) = 0;
118
119 virtual void updateTexture(
120 ::bgfx::TextureHandle _handle,
121 uchar _side,
122 uchar _mip,
123 ::bgfx::Rect const& _rect,
124 ushort _z,
125 ushort _depth,
126 ushort _pitch,
127 ::bgfx::Memory const* _mem
128 ) = 0;
129
130 virtual void updateTextureEnd() = 0;
131
132 virtual void readTexture(::bgfx::TextureHandle _handle, void* _data, uchar _mip) = 0;
133
134 virtual void
135 resizeTexture(::bgfx::TextureHandle _handle, ushort _width, ushort _height, uchar _numMips, ushort _numLayers) = 0;
136
137 virtual void overrideInternal(::bgfx::TextureHandle _handle, uint64 _ptr, uint _flags) = 0;
138
139 virtual uint64 getInternal(::bgfx::TextureHandle _handle) = 0;
140
141 virtual void destroyTexture(::bgfx::TextureHandle _handle) = 0;
142
143 virtual void
144 wrapExternalTexture(::bgfx::TextureHandle _handle, ::bgfx::RendererType::Enum _type, void* _texturePtr, void* ref);
145
146 virtual void createShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _size, uint _stride, ushort _flags) = 0;
147
148 virtual void updateShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _offset, ::bgfx::Memory const* _mem) = 0;
149
150 virtual void destroyShaderBuffer(::bgfx::ShaderBufferHandle _handle);
151
152 virtual void
153 createFrameBuffer(::bgfx::FrameBufferHandle _handle, uchar _num, ::bgfx::Attachment const* _attachment) = 0;
154
155 virtual void createFrameBuffer(
156 ::bgfx::FrameBufferHandle _handle,
157 void* _nwh,
158 uint _width,
159 uint _height,
160 ::bgfx::TextureFormat::Enum _depthFormat
161 ) = 0;
162
163 virtual void destroyFrameBuffer(::bgfx::FrameBufferHandle _handle) = 0;
164
165 virtual void
166 createUniform(::bgfx::UniformHandle _handle, ::bgfx::UniformType::Enum _type, ushort _num, char const* _name) = 0;
167
168 virtual void destroyUniform(::bgfx::UniformHandle _handle) = 0;
169
170 virtual void requestScreenShot(::bgfx::FrameBufferHandle _handle, char const* _filePath) = 0;
171
172 virtual void updateViewName(ushort _id, char const* _name) = 0;
173
174 virtual void updateUniform(void* _uniformsTarget, ushort _loc, void const* _data, uint _size) = 0;
175
176 virtual void setMarker(void*, char const*, uint) = 0;
177
178 virtual void invalidateOcclusionQuery(::bgfx::OcclusionQueryHandle _handle) = 0;
179
180 virtual void setName(::bgfx::Handle _handle, char const* _name) = 0;
181
182 virtual void submit(
183 ::bgfx::Frame* _render,
184 ::bgfx::ClearQuad& _clearQuad,
185 ::bgfx::TextVideoMemBlitter& _textVideoMemBlitter
186 ) = 0;
187
188 virtual void blitSetup(::bgfx::TextVideoMemBlitter& _blitter) = 0;
189
190 virtual void blitRender(::bgfx::TextVideoMemBlitter& _blitter, uint _numIndices) = 0;
191
192 virtual void waitForFlipQueue() = 0;
193
194 virtual void schedulePreBlasSkinningDispatch(
195 ::bgfx::VertexBufferHandle,
196 uint,
197 ::bgfx::VertexBufferHandle,
198 uint,
199 ::bgfx::VertexDeclHandle,
200 uint,
201 ::bgfx::Memory const*,
202 ::bx::StringT const&
203 );
204
205 virtual void createBottomLevelAccelerationStructure(
206 ::bgfx::AccelerationStructureHandle _handle,
207 ::bgfx::VertexBufferHandle _vertexBufferHandle,
208 ::bgfx::VertexDeclHandle _vertexDeclHandle,
209 uint _vertexCount,
210 uint _vertexOffset,
211 ::bgfx::IndexBufferHandle _indexBufferHandle,
212 uint _indexCount,
213 uint _indexOffset,
214 ushort indexSize,
215 ::bgfx::AccelerationStructureBuildFlags::Enum _flags
216 );
217
218 virtual void createTopLevelAccelerationStructure(
219 ::bgfx::AccelerationStructureHandle _handle,
220 uint numInstances,
221 ::bgfx::TopLevelInstanceDesc* instanceDescs
222 );
223
224 virtual void destroyAccelerationStructureBuffer(::bgfx::AccelerationStructureHandle _handle);
225 // NOLINTEND
226
227public:
228 // virtual function thunks
229 // NOLINTBEGIN
230 MCFOLD void
231 $wrapExternalTexture(::bgfx::TextureHandle _handle, ::bgfx::RendererType::Enum _type, void* _texturePtr, void* ref);
232
233 MCFOLD void $createBottomLevelAccelerationStructure(
234 ::bgfx::AccelerationStructureHandle _handle,
235 ::bgfx::VertexBufferHandle _vertexBufferHandle,
236 ::bgfx::VertexDeclHandle _vertexDeclHandle,
237 uint _vertexCount,
238 uint _vertexOffset,
239 ::bgfx::IndexBufferHandle _indexBufferHandle,
240 uint _indexCount,
241 uint _indexOffset,
242 ushort indexSize,
243 ::bgfx::AccelerationStructureBuildFlags::Enum _flags
244 );
245
246 MCFOLD void $createTopLevelAccelerationStructure(
247 ::bgfx::AccelerationStructureHandle _handle,
248 uint numInstances,
249 ::bgfx::TopLevelInstanceDesc* instanceDescs
250 );
251
252 MCFOLD void $destroyAccelerationStructureBuffer(::bgfx::AccelerationStructureHandle _handle);
253 // NOLINTEND
254};
255
256} // namespace bgfx
Definition StringT.h:9
Definition AccelerationStructureHandle.h:7
Definition Attachment.h:7
Definition ClearQuad.h:7
Definition FrameBufferHandle.h:7
Definition Frame.h:7
Definition Handle.h:7
Definition IndexBufferHandle.h:7
Definition Memory.h:7
Definition OcclusionQueryHandle.h:7
Definition ProgramHandle.h:7
Definition Rect.h:7
Definition RendererContextI.h:7
Definition ShaderBufferHandle.h:7
Definition ShaderHandle.h:7
Definition TextVideoMemBlitter.h:7
Definition TextureHandle.h:7
Definition TopLevelInstanceDesc.h:7
Definition UniformHandle.h:7
Definition VertexBufferHandle.h:7
Definition VertexDeclHandle.h:7
Definition VertexDecl.h:7