3#include "mc/_HeaderOutputPredefine.h"
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"
16namespace bgfx {
struct Frame; }
18namespace bgfx {
struct Handle; }
20namespace bgfx {
struct Memory; }
23namespace bgfx {
struct Rect; }
42 virtual ~RendererContextI() = 0;
44 virtual ::bgfx::RendererType::Enum getRendererType()
const = 0;
46 virtual uint64 getRendererVersion()
const = 0;
48 virtual uint64 getShaderVersion()
const = 0;
50 virtual char const* getRendererName()
const = 0;
52 virtual bool isDeviceRemoved() = 0;
54 virtual void flip() = 0;
56 virtual void advanceToNextFrame() = 0;
58 virtual void suspend() = 0;
60 virtual void resume() = 0;
62 virtual void createIndexBuffer(::bgfx::IndexBufferHandle _handle, ::bgfx::Memory
const* _mem, ushort _flags) = 0;
64 virtual void destroyIndexBuffer(::bgfx::IndexBufferHandle _handle) = 0;
66 virtual void createVertexDecl(::bgfx::VertexDeclHandle _handle, ::bgfx::VertexDecl
const& _decl) = 0;
68 virtual void destroyVertexDecl(::bgfx::VertexDeclHandle) = 0;
70 virtual void createVertexBuffer(
71 ::bgfx::VertexBufferHandle _handle,
72 ::bgfx::Memory
const* _mem,
73 ::bgfx::VertexDeclHandle _declHandle,
77 virtual void destroyVertexBuffer(::bgfx::VertexBufferHandle _handle) = 0;
79 virtual void createDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle, uint _size, ushort _flags) = 0;
81 virtual void updateDynamicIndexBuffer(
82 ::bgfx::IndexBufferHandle _handle,
85 ::bgfx::Memory
const* _mem
88 virtual void destroyDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle) = 0;
90 virtual void createDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle, uint _size, ushort _flags) = 0;
92 virtual void updateDynamicVertexBuffer(
93 ::bgfx::VertexBufferHandle _handle,
96 ::bgfx::Memory
const* _mem
99 virtual void destroyDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle) = 0;
101 virtual void createShader(::bgfx::ShaderHandle _handle, ::bgfx::Memory
const* _mem) = 0;
103 virtual void destroyShader(::bgfx::ShaderHandle _handle) = 0;
105 virtual void createProgram(::bgfx::ProgramHandle _handle, ::bgfx::ShaderHandle _vsh, ::bgfx::ShaderHandle _fsh) = 0;
107 virtual void destroyProgram(::bgfx::ProgramHandle _handle) = 0;
109 virtual void* createTexture(
110 ::bgfx::TextureHandle _handle,
111 ::bgfx::Memory
const* _mem,
114 ::bgfx::Memory
const** _imageContainerData
117 virtual void updateTextureBegin(::bgfx::TextureHandle _handle, uchar _side, uchar _mip) = 0;
119 virtual void updateTexture(
120 ::bgfx::TextureHandle _handle,
123 ::bgfx::Rect
const& _rect,
127 ::bgfx::Memory
const* _mem
130 virtual void updateTextureEnd() = 0;
132 virtual void readTexture(::bgfx::TextureHandle _handle,
void* _data, uchar _mip) = 0;
135 resizeTexture(::bgfx::TextureHandle _handle, ushort _width, ushort _height, uchar _numMips, ushort _numLayers) = 0;
137 virtual void overrideInternal(::bgfx::TextureHandle _handle, uint64 _ptr, uint _flags) = 0;
139 virtual uint64 getInternal(::bgfx::TextureHandle _handle) = 0;
141 virtual void destroyTexture(::bgfx::TextureHandle _handle) = 0;
144 wrapExternalTexture(::bgfx::TextureHandle _handle, ::bgfx::RendererType::Enum _type,
void* _texturePtr,
void* ref);
146 virtual void createShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _size, uint _stride, ushort _flags) = 0;
148 virtual void updateShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _offset, ::bgfx::Memory
const* _mem) = 0;
150 virtual void destroyShaderBuffer(::bgfx::ShaderBufferHandle _handle);
153 createFrameBuffer(::bgfx::FrameBufferHandle _handle, uchar _num, ::bgfx::Attachment
const* _attachment) = 0;
155 virtual void createFrameBuffer(
156 ::bgfx::FrameBufferHandle _handle,
160 ::bgfx::TextureFormat::Enum _depthFormat
163 virtual void destroyFrameBuffer(::bgfx::FrameBufferHandle _handle) = 0;
166 createUniform(::bgfx::UniformHandle _handle, ::bgfx::UniformType::Enum _type, ushort _num,
char const* _name) = 0;
168 virtual void destroyUniform(::bgfx::UniformHandle _handle) = 0;
170 virtual void requestScreenShot(::bgfx::FrameBufferHandle _handle,
char const* _filePath) = 0;
172 virtual void updateViewName(ushort _id,
char const* _name) = 0;
174 virtual void updateUniform(
void* _uniformsTarget, ushort _loc,
void const* _data, uint _size) = 0;
176 virtual void setMarker(
void*,
char const*, uint) = 0;
178 virtual void invalidateOcclusionQuery(::bgfx::OcclusionQueryHandle _handle) = 0;
180 virtual void setName(::bgfx::Handle _handle,
char const* _name) = 0;
183 ::bgfx::Frame* _render,
184 ::bgfx::ClearQuad& _clearQuad,
185 ::bgfx::TextVideoMemBlitter& _textVideoMemBlitter
188 virtual void blitSetup(::bgfx::TextVideoMemBlitter& _blitter) = 0;
190 virtual void blitRender(::bgfx::TextVideoMemBlitter& _blitter, uint _numIndices) = 0;
192 virtual void waitForFlipQueue() = 0;
194 virtual void schedulePreBlasSkinningDispatch(
195 ::bgfx::VertexBufferHandle,
197 ::bgfx::VertexBufferHandle,
199 ::bgfx::VertexDeclHandle,
201 ::bgfx::Memory
const*,
205 virtual void createBottomLevelAccelerationStructure(
206 ::bgfx::AccelerationStructureHandle _handle,
207 ::bgfx::VertexBufferHandle _vertexBufferHandle,
208 ::bgfx::VertexDeclHandle _vertexDeclHandle,
211 ::bgfx::IndexBufferHandle _indexBufferHandle,
215 ::bgfx::AccelerationStructureBuildFlags::Enum _flags
218 virtual void createTopLevelAccelerationStructure(
219 ::bgfx::AccelerationStructureHandle _handle,
221 ::bgfx::TopLevelInstanceDesc* instanceDescs
224 virtual void destroyAccelerationStructureBuffer(::bgfx::AccelerationStructureHandle _handle);
231 $wrapExternalTexture(::bgfx::TextureHandle _handle, ::bgfx::RendererType::Enum _type,
void* _texturePtr,
void* ref);
233 MCFOLD
void $createBottomLevelAccelerationStructure(
234 ::bgfx::AccelerationStructureHandle _handle,
235 ::bgfx::VertexBufferHandle _vertexBufferHandle,
236 ::bgfx::VertexDeclHandle _vertexDeclHandle,
239 ::bgfx::IndexBufferHandle _indexBufferHandle,
243 ::bgfx::AccelerationStructureBuildFlags::Enum _flags
246 MCFOLD
void $createTopLevelAccelerationStructure(
247 ::bgfx::AccelerationStructureHandle _handle,
249 ::bgfx::TopLevelInstanceDesc* instanceDescs
252 MCFOLD
void $destroyAccelerationStructureBuffer(::bgfx::AccelerationStructureHandle _handle);
Definition AccelerationStructureHandle.h:7
Definition Attachment.h:7
Definition FrameBufferHandle.h:7
Definition IndexBufferHandle.h:7
Definition OcclusionQueryHandle.h:7
Definition ProgramHandle.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 VertexBufferHandle.h:7
Definition VertexDeclHandle.h:7
Definition VertexDecl.h:7