3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/bgfx/BufferD3D11.h"
7#include "mc/external/bgfx/Dxgi.h"
8#include "mc/external/bgfx/FatalError.h"
9#include "mc/external/bgfx/FrameBufferD3D11.h"
10#include "mc/external/bgfx/FrameBufferHandle.h"
11#include "mc/external/bgfx/GuardedPagedHeapBackedArray.h"
12#include "mc/external/bgfx/NvApi.h"
13#include "mc/external/bgfx/OcclusionQueryD3D11.h"
14#include "mc/external/bgfx/ProgramD3D11.h"
15#include "mc/external/bgfx/RendererContextI.h"
16#include "mc/external/bgfx/Resolution.h"
17#include "mc/external/bgfx/ShaderD3D11.h"
18#include "mc/external/bgfx/StateCacheLru.h"
19#include "mc/external/bgfx/StateCacheT.h"
20#include "mc/external/bgfx/SwapChainDesc.h"
21#include "mc/external/bgfx/TextVideoMem.h"
22#include "mc/external/bgfx/TextureStage.h"
23#include "mc/external/bgfx/TimerQueryD3D11.h"
24#include "mc/external/bgfx/UniformRegistry.h"
25#include "mc/external/bgfx/VertexBufferD3D11.h"
26#include "mc/external/bgfx/VertexDecl.h"
27#include "mc/external/bgfx/renderer_type/Enum.h"
28#include "mc/external/bgfx/texture_format/Enum.h"
29#include "mc/external/bgfx/uniform_type/Enum.h"
37namespace bgfx {
struct Frame; }
38namespace bgfx {
struct Handle; }
40namespace bgfx {
struct Memory; }
43namespace bgfx {
struct Rect; }
55namespace bgfx::d3d11 {
61 ::ll::TypedStorage<8, 8, void*> m_d3d9dll;
62 ::ll::TypedStorage<8, 8, void*> m_d3d11dll;
63 ::ll::TypedStorage<8, 8, void*> m_renderdocdll;
64 ::ll::TypedStorage<8, 8, void*> m_agsdll;
65 ::ll::TypedStorage<8, 448, ::bgfx::Dxgi> m_dxgi;
66 ::ll::TypedStorage<8, 8, ::bgfx::d3d11::AGSContext*> m_ags;
67 ::ll::TypedStorage<8, 48, ::bgfx::NvApi> m_nvapi;
68 ::ll::TypedStorage<4, 4, ::D3D_FEATURE_LEVEL> m_featureLevel;
69 ::ll::TypedStorage<8, 8, ::IDXGISwapChain3*> m_swapChain;
70 ::ll::TypedStorage<8, 8, ::ID3D11Texture2D*> m_msaaRenderTarget;
71 ::ll::TypedStorage<1, 1, bool> m_needPresent;
72 ::ll::TypedStorage<1, 1, bool> m_fatal;
73 ::ll::TypedStorage<4, 8, ::bgfx::FatalError> m_fatalError;
74 ::ll::TypedStorage<2, 2, ushort> m_numWindows;
75 ::ll::TypedStorage<2, 256, ::bgfx::FrameBufferHandle[128]> m_windows;
76 ::ll::TypedStorage<8, 8, ::ID3D11Device*> m_device;
77 ::ll::TypedStorage<8, 8, ::ID3D11DeviceContext*> m_deviceCtx;
78 ::ll::TypedStorage<8, 8, ::ID3DUserDefinedAnnotation*> m_annotation;
79 ::ll::TypedStorage<8, 8, ::ID3D11InfoQueue*> m_infoQueue;
80 ::ll::TypedStorage<8, 49200, ::bgfx::d3d11::TimerQueryD3D11> m_gpuTimer;
81 ::ll::TypedStorage<8, 4112, ::bgfx::d3d11::OcclusionQueryD3D11> m_occlusionQuery;
82 ::ll::TypedStorage<4, 4, uint> m_deviceInterfaceVersion;
83 ::ll::TypedStorage<8, 8, ::ID3D11RenderTargetView*> m_backBufferColor;
84 ::ll::TypedStorage<8, 8, ::ID3D11DepthStencilView*> m_backBufferDepthStencil;
85 ::ll::TypedStorage<8, 8, ::ID3D11RenderTargetView*> m_currentColor;
86 ::ll::TypedStorage<8, 8, ::ID3D11DepthStencilView*> m_currentDepthStencil;
87 ::ll::TypedStorage<8, 8, ::ID3D11Texture2D*> m_captureTexture;
88 ::ll::TypedStorage<8, 8, ::ID3D11Texture2D*> m_captureResolve;
89 ::ll::TypedStorage<4, 12, ::bgfx::Resolution> m_resolution;
90 ::ll::TypedStorage<8, 72, ::bgfx::SwapChainDesc> m_scd;
91 ::ll::TypedStorage<4, 4, ::DXGI_SWAP_EFFECT> m_swapEffect;
92 ::ll::TypedStorage<4, 4, uint> m_swapBufferCount;
93 ::ll::TypedStorage<4, 4, uint> m_maxAnisotropy;
94 ::ll::TypedStorage<1, 1, bool> m_depthClamp;
95 ::ll::TypedStorage<1, 1, bool> m_wireframe;
96 ::ll::TypedStorage<8, 131072, ::bgfx::d3d11::BufferD3D11[4096]> m_indexBuffers;
97 ::ll::TypedStorage<8, 163840, ::bgfx::d3d11::VertexBufferD3D11[4096]> m_vertexBuffers;
98 ::ll::TypedStorage<8, 131072, ::bgfx::d3d11::BufferD3D11[4096]> m_shaderBuffers;
99 ::ll::TypedStorage<8, 786432, ::bgfx::d3d11::ShaderD3D11[4096]> m_shaders;
100 ::ll::TypedStorage<8, 507904, ::bgfx::d3d11::ProgramD3D11[2048]> m_program;
101 ::ll::TypedStorage<8, 294944, ::bgfx::GuardedPagedHeapBackedArray<::bgfx::d3d11::TextureD3D11, 4096>> m_textures;
102 ::ll::TypedStorage<4, 5376, ::bgfx::VertexDecl[64]> m_vertexDecls;
103 ::ll::TypedStorage<8, 24576, ::bgfx::d3d11::FrameBufferD3D11[128]> m_frameBuffers;
104 ::ll::TypedStorage<8, 4096, void* [512]> m_uniforms;
105 ::ll::TypedStorage<4, 7176, ::bgfx::UniformRegistry> m_uniformReg;
106 ::ll::TypedStorage<8, 32, ::bgfx::StateCacheT<::ID3D11BlendState>> m_blendStateCache;
107 ::ll::TypedStorage<8, 32, ::bgfx::StateCacheT<::ID3D11DepthStencilState>> m_depthStencilStateCache;
108 ::ll::TypedStorage<8, 32, ::bgfx::StateCacheT<::ID3D11InputLayout>> m_inputLayoutCache;
109 ::ll::TypedStorage<8, 32, ::bgfx::StateCacheT<::ID3D11RasterizerState>> m_rasterizerStateCache;
110 ::ll::TypedStorage<8, 32, ::bgfx::StateCacheT<::ID3D11SamplerState>> m_samplerStateCache;
111 ::ll::TypedStorage<8, 32808, ::bgfx::StateCacheLru<::IUnknown*, 1024>> m_srvUavLru;
112 ::ll::TypedStorage<8, 24, ::bgfx::TextVideoMem> m_textVideoMem;
113 ::ll::TypedStorage<8, 1040, ::bgfx::d3d11::TextureStage> m_textureStage;
114 ::ll::TypedStorage<8, 8, ::bgfx::d3d11::ProgramD3D11*> m_currentProgram;
115 ::ll::TypedStorage<1, 65536, uchar[65536]> m_vsScratch;
116 ::ll::TypedStorage<1, 65536, uchar[65536]> m_fsScratch;
117 ::ll::TypedStorage<4, 4, uint> m_vsChanges;
118 ::ll::TypedStorage<4, 4, uint> m_fsChanges;
119 ::ll::TypedStorage<2, 2, ::bgfx::FrameBufferHandle> m_fbh;
120 ::ll::TypedStorage<1, 1, bool> m_rtMsaa;
121 ::ll::TypedStorage<1, 1, bool> m_directAccessSupport;
127 virtual ~RendererContextD3D11() =
default;
129 virtual ::bgfx::RendererType::Enum getRendererType() const ;
131 virtual uint64 getRendererVersion() const ;
133 virtual uint64 getShaderVersion() const ;
135 virtual
char const* getRendererName() const ;
138 createIndexBuffer(::bgfx::IndexBufferHandle _handle, ::bgfx::Memory const* _mem, ushort _flags) ;
140 virtual
void destroyIndexBuffer(::bgfx::IndexBufferHandle _handle) ;
142 virtual
void createVertexDecl(::bgfx::VertexDeclHandle _handle, ::bgfx::VertexDecl const& _decl) ;
144 virtual
void destroyVertexDecl(::bgfx::VertexDeclHandle) ;
146 virtual
void createVertexBuffer(
147 ::bgfx::VertexBufferHandle _handle,
148 ::bgfx::Memory const* _mem,
149 ::bgfx::VertexDeclHandle _declHandle,
153 virtual
void destroyVertexBuffer(::bgfx::VertexBufferHandle _handle) ;
155 virtual
void createDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle, uint _size, ushort _flags) ;
157 virtual
void updateDynamicIndexBuffer(
158 ::bgfx::IndexBufferHandle _handle,
161 ::bgfx::Memory const* _mem
164 virtual
void destroyDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle) ;
166 virtual
void createDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle, uint _size, ushort _flags) ;
168 virtual
void updateDynamicVertexBuffer(
169 ::bgfx::VertexBufferHandle _handle,
172 ::bgfx::Memory const* _mem
175 virtual
void destroyDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle) ;
177 virtual
void createShader(::bgfx::ShaderHandle _handle, ::bgfx::Memory const* _mem) ;
179 virtual
void destroyShader(::bgfx::ShaderHandle _handle) ;
182 createProgram(::bgfx::ProgramHandle _handle, ::bgfx::ShaderHandle _vsh, ::bgfx::ShaderHandle _fsh) ;
184 virtual
void destroyProgram(::bgfx::ProgramHandle _handle) ;
186 virtual
void* createTexture(
187 ::bgfx::TextureHandle _handle,
188 ::bgfx::Memory const* _mem,
191 ::bgfx::Memory const**
194 virtual
void wrapExternalTexture(
195 ::bgfx::TextureHandle _handle,
196 ::bgfx::RendererType::Enum _type,
201 virtual
void updateTextureBegin(::bgfx::TextureHandle, uchar, uchar) ;
203 virtual
void updateTexture(
204 ::bgfx::TextureHandle _handle,
207 ::bgfx::Rect const& _rect,
211 ::bgfx::Memory const* _mem
214 virtual
void updateTextureEnd() ;
216 virtual
void readTexture(::bgfx::TextureHandle _handle,
void* _data, uchar _mip) ;
218 virtual
void resizeTexture(
219 ::bgfx::TextureHandle _handle,
226 virtual
void overrideInternal(::bgfx::TextureHandle _handle, uint64 _ptr, uint _flags) ;
228 virtual uint64 getInternal(::bgfx::TextureHandle _handle) ;
230 virtual
void destroyTexture(::bgfx::TextureHandle _handle) ;
233 createShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _size, uint _stride, ushort _flags) ;
236 updateShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _offset, ::bgfx::Memory const* _mem) ;
238 virtual
void destroyShaderBuffer(::bgfx::ShaderBufferHandle _handle) ;
240 virtual
void createFrameBuffer(
241 ::bgfx::FrameBufferHandle _handle,
243 ::bgfx::Attachment const* _attachment
246 virtual
void createFrameBuffer(
247 ::bgfx::FrameBufferHandle _handle,
251 ::bgfx::TextureFormat::Enum _depthFormat
254 virtual
void destroyFrameBuffer(::bgfx::FrameBufferHandle _handle) ;
256 virtual
void createUniform(
257 ::bgfx::UniformHandle _handle,
258 ::bgfx::UniformType::Enum _type,
263 virtual
void destroyUniform(::bgfx::UniformHandle _handle) ;
265 virtual
void requestScreenShot(::bgfx::FrameBufferHandle _handle,
char const* _filePath) ;
267 virtual
void updateViewName(ushort _id,
char const* _name) ;
269 virtual
void updateUniform(
void*, ushort _loc,
void const* _data, uint _size) ;
271 virtual
void setMarker(
void*,
char const* _marker, uint _size) ;
273 virtual
void invalidateOcclusionQuery(::bgfx::OcclusionQueryHandle _handle) ;
275 virtual
void setName(::bgfx::Handle _handle,
char const* _name) ;
278 ::bgfx::Frame* _render,
279 ::bgfx::ClearQuad& _clearQuad,
280 ::bgfx::TextVideoMemBlitter& _textVideoMemBlitter
283 virtual
void blitSetup(::bgfx::TextVideoMemBlitter& _blitter) ;
285 virtual
void blitRender(::bgfx::TextVideoMemBlitter& _blitter, uint _numIndices) ;
287 virtual
bool isDeviceRemoved() ;
289 virtual
void suspend() ;
291 virtual
void resume() ;
293 virtual
void advanceToNextFrame() ;
295 virtual
void flip() ;
297 virtual
void waitForFlipQueue() ;
321 ushort _numInstanceData
359 ::bgfx::
Memory const* _mem,
379 ::bgfx::
Memory const* _mem
394 ::bgfx::
Memory const* _mem,
402 ::bgfx::RendererType::Enum _type,
413 ::bgfx::
Rect const& _rect,
417 ::bgfx::
Memory const* _mem
447 ::bgfx::TextureFormat::Enum _depthFormat
463 MCNAPI
void $setMarker(
void*,
char const* _marker, uint _size);
Definition Attachment.h:7
Definition FrameBufferHandle.h:7
Definition IndexBufferHandle.h:7
Definition OcclusionQueryHandle.h:7
Definition ProgramHandle.h:7
Definition ShaderBufferHandle.h:7
Definition ShaderHandle.h:7
Definition TextVideoMemBlitter.h:7
Definition TextureHandle.h:7
Definition VertexBufferHandle.h:7
Definition VertexDeclHandle.h:7
Definition VertexDecl.h:7
Definition AGSContext.h:7
Definition ProgramD3D11.h:7
Definition RendererContextD3D11.h:7
MCAPI void setInputLayout(uchar _numStreams, ::bgfx::VertexDecl const **_vertexDecls, ::bgfx::d3d11::ProgramD3D11 const &_program, ushort _numInstanceData)
MCAPI void $destroyShaderBuffer(::bgfx::ShaderBufferHandle _handle)
MCAPI void commit(::bgfx::UniformBuffer &_uniformBuffer)
MCAPI void $updateTextureEnd()
MCAPI void $createVertexBuffer(::bgfx::VertexBufferHandle _handle, ::bgfx::Memory const *_mem, ::bgfx::VertexDeclHandle _declHandle, ushort _flags)
MCAPI void setDepthStencilState(uint64 _state, uint64 _stencil)
MCAPI bool $isDeviceRemoved()
MCAPI::ID3D11SamplerState * getSamplerState(uint _flags, float const *_rgba)
MCAPI void setFrameBuffer(::bgfx::FrameBufferHandle _fbh, bool _msaa, bool _needPresent)
MCAPI void $setName(::bgfx::Handle _handle, char const *_name)
MCAPI void $destroyTexture(::bgfx::TextureHandle _handle)
MCAPI void $blitSetup(::bgfx::TextVideoMemBlitter &_blitter)
MCAPI void $createFrameBuffer(::bgfx::FrameBufferHandle _handle, uchar _num, ::bgfx::Attachment const *_attachment)
MCAPI void setRasterizerState(uint64 _state, int _biasConst, float _biasSlope, float _biasClamp, bool _wireframe, bool _scissor)
MCAPI void $invalidateOcclusionQuery(::bgfx::OcclusionQueryHandle _handle)
MCAPI void $updateUniform(void *, ushort _loc, void const *_data, uint _size)
MCAPI void $destroyDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle)
MCAPI void $createDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle, uint _size, ushort _flags)
MCAPI void $updateViewName(ushort _id, char const *_name)
MCAPI void $destroyProgram(::bgfx::ProgramHandle _handle)
MCAPI void $destroyShader(::bgfx::ShaderHandle _handle)
MCAPI void $destroyFrameBuffer(::bgfx::FrameBufferHandle _handle)
MCAPI void $waitForFlipQueue()
MCAPI void $updateTexture(::bgfx::TextureHandle _handle, uchar _side, uchar _mip, ::bgfx::Rect const &_rect, ushort _z, ushort _depth, ushort _pitch, ::bgfx::Memory const *_mem)
MCAPI void $createUniform(::bgfx::UniformHandle _handle, ::bgfx::UniformType::Enum _type, ushort _num, char const *_name)
MCAPI void $wrapExternalTexture(::bgfx::TextureHandle _handle, ::bgfx::RendererType::Enum _type, void *_texturePtr, void *_deferredRef)
MCAPI void $destroyDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle)
MCAPI void $createShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _size, uint _stride, ushort _flags)
MCAPI void $createProgram(::bgfx::ProgramHandle _handle, ::bgfx::ShaderHandle _vsh, ::bgfx::ShaderHandle _fsh)
MCAPI void $readTexture(::bgfx::TextureHandle _handle, void *_data, uchar _mip)
MCAPI void $destroyVertexDecl(::bgfx::VertexDeclHandle)
MCAPI void $requestScreenShot(::bgfx::FrameBufferHandle _handle, char const *_filePath)
MCAPI void $updateShaderBuffer(::bgfx::ShaderBufferHandle _handle, uint _offset, ::bgfx::Memory const *_mem)
MCAPI void $createDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle, uint _size, ushort _flags)
MCAPI void $setMarker(void *, char const *_marker, uint _size)
MCAPI void $createShader(::bgfx::ShaderHandle _handle, ::bgfx::Memory const *_mem)
MCAPI void $advanceToNextFrame()
MCAPI void $overrideInternal(::bgfx::TextureHandle _handle, uint64 _ptr, uint _flags)
MCAPI void $createVertexDecl(::bgfx::VertexDeclHandle _handle, ::bgfx::VertexDecl const &_decl)
MCAPI void updateMsaa(::DXGI_FORMAT _format) const
MCAPI void submitBlit(::bgfx::BlitState &_bs, ushort _view)
MCAPI uint64 $getRendererVersion() const
MCAPI void * $createTexture(::bgfx::TextureHandle _handle, ::bgfx::Memory const *_mem, uint _flags, uchar _skip, ::bgfx::Memory const **)
MCAPI uint64 $getShaderVersion() const
MCAPI::bgfx::RendererType::Enum $getRendererType() const
MCAPI void $resizeTexture(::bgfx::TextureHandle _handle, ushort _width, ushort _height, uchar _numMips, ushort _numLayers)
MCAPI void $destroyVertexBuffer(::bgfx::VertexBufferHandle _handle)
MCAPI void $updateDynamicIndexBuffer(::bgfx::IndexBufferHandle _handle, uint _offset, uint _size, ::bgfx::Memory const *_mem)
MCAPI void $updateTextureBegin(::bgfx::TextureHandle, uchar, uchar)
MCAPI void $updateDynamicVertexBuffer(::bgfx::VertexBufferHandle _handle, uint _offset, uint _size, ::bgfx::Memory const *_mem)
MCAPI void $createIndexBuffer(::bgfx::IndexBufferHandle _handle, ::bgfx::Memory const *_mem, ushort _flags)
MCAPI char const * $getRendererName() const
MCAPI uint64 $getInternal(::bgfx::TextureHandle _handle)
MCAPI void $destroyUniform(::bgfx::UniformHandle _handle)
MCAPI void setBlendState(uint64 _state, uint _rgba)
MCAPI void $destroyIndexBuffer(::bgfx::IndexBufferHandle _handle)
MCAPI void $blitRender(::bgfx::TextVideoMemBlitter &_blitter, uint _numIndices)
Definition TextureD3D11.h:7