|
libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
|
Direct3D 11 implementation of the Fast3D rendering backend. More...
#include <gfx_direct3d_common.h>
Public Member Functions | |
| GfxRenderingAPIDX11 ()=default | |
| Constructs an uninitialized D3D11 renderer instance. | |
| ~GfxRenderingAPIDX11 () override | |
| GfxRenderingAPIDX11 (GfxWindowBackendDXGI *backend, std::shared_ptr< Ship::ConsoleVariable > consoleVariable=nullptr, std::shared_ptr< Ship::ResourceManager > resourceManager=nullptr) | |
| Constructs a D3D11 renderer bound to an existing DXGI window backend. | |
GfxRenderingAPI implementation | |
| const char * | GetName () override |
| int | GetMaxTextureSize () override |
| GfxClipParameters | GetClipParameters () override |
| void | UnloadShader (struct ShaderProgram *oldPrg) override |
| void | LoadShader (struct ShaderProgram *newPrg) override |
| struct ShaderProgram * | CreateAndLoadNewShader (uint64_t shaderId0, uint64_t shaderId1) override |
| struct ShaderProgram * | LookupShader (uint64_t shaderId0, uint64_t shaderId1) override |
| void | ShaderGetInfo (struct ShaderProgram *prg, uint8_t *numInputs, bool usedTextures[2]) override |
| void | ClearShaderCache () override |
| uint32_t | NewTexture () override |
| void | SelectTexture (int tile, uint32_t textureId) override |
| void | UploadTexture (const uint8_t *rgba32Buf, uint32_t width, uint32_t height) override |
| void | SetSamplerParameters (int sampler, bool linear_filter, uint32_t cms, uint32_t cmt) override |
| void | SetDepthTestAndMask (bool depth_test, bool z_upd) override |
| void | SetCurrentPrimDepth (float depth) override |
| void | SetZmodeDecal (bool decal) override |
| void | SetViewport (int x, int y, int width, int height) override |
| void | SetScissor (int x, int y, int width, int height) override |
| void | SetUseAlpha (bool useAlpha) override |
| void | DrawTriangles (float buf_vbo[], size_t buf_vbo_len, size_t buf_vbo_num_tris) override |
| void | Init () override |
| void | OnResize () override |
| void | StartFrame () override |
| void | EndFrame () override |
| void | FinishRender () override |
| int | CreateFramebuffer () override |
| void | UpdateFramebufferParameters (int fb_id, uint32_t width, uint32_t height, uint32_t msaa_level, bool opengl_invertY, bool render_target, bool has_depth_buffer, bool can_extract_depth) override |
| void | StartDrawToFramebuffer (int fbId, float noiseScale) override |
| void | CopyFramebuffer (int fbDstId, int fbSrcId, int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1) override |
| void | ClearFramebuffer (bool color, bool depth) override |
| void | ReadFramebufferToCPU (int fbId, uint32_t width, uint32_t height, uint16_t *rgba16Buf) override |
| void | ResolveMSAAColorBuffer (int fbIdTarger, int fbIdSrc) override |
| std::unordered_map< std::pair< float, float >, uint16_t, hash_pair_ff > | GetPixelDepth (int fb_id, const std::set< std::pair< float, float > > &coordinates) override |
| void * | GetFramebufferTextureId (int fbId) override |
| void | SelectTextureFb (int fbId) override |
| void | DeleteTexture (uint32_t texId) override |
| void | SetTextureFilter (FilteringMode mode) override |
| FilteringMode | GetTextureFilter () override |
| void | SetSrgbMode () override |
| ImTextureID | GetTextureById (int id) override |
Public Member Functions inherited from Fast::GfxRenderingAPI | |
| virtual | ~GfxRenderingAPI ()=default |
| virtual void | ClearDepthRegion (int x, int y, int w, int h) |
Public Attributes | |
| PFN_D3D11_CREATE_DEVICE | mDX11CreateDevice |
| Microsoft::WRL::ComPtr< ID3D11DeviceContext > | mContext |
| Microsoft::WRL::ComPtr< ID3D11Device > | mDevice |
| GfxWindowBackendDXGI * | mWindowBackend = nullptr |
| D3D_FEATURE_LEVEL | mFeatureLevel |
| std::shared_ptr< Ship::ConsoleVariable > | mConsoleVariable |
| std::shared_ptr< Ship::ResourceManager > | mResourceManager |
Additional Inherited Members | |
Protected Attributes inherited from Fast::GfxRenderingAPI | |
| int8_t | mCurrentDepthTest = 0 |
| int8_t | mCurrentDepthMask = 0 |
| int8_t | mCurrentZmodeDecal = 0 |
| int8_t | mLastDepthTest = -1 |
| int8_t | mLastDepthMask = -1 |
| int8_t | mLastZmodeDecal = -1 |
| bool | mSrgbMode = false |
| float | mCurrentPrimDepth = 0.0f |
| bool | mPrimDepthDirty = true |
Direct3D 11 implementation of the Fast3D rendering backend.
This class implements the GfxRenderingAPI contract for D3D11, including shader management, texture upload/caching, framebuffer operations, and depth query support.
|
default |
Constructs an uninitialized D3D11 renderer instance.
|
override |
| Fast::GfxRenderingAPIDX11::GfxRenderingAPIDX11 | ( | GfxWindowBackendDXGI * | backend, |
| std::shared_ptr< Ship::ConsoleVariable > | consoleVariable = nullptr, |
||
| std::shared_ptr< Ship::ResourceManager > | resourceManager = nullptr |
||
| ) |
Constructs a D3D11 renderer bound to an existing DXGI window backend.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
| std::shared_ptr<Ship::ConsoleVariable> Fast::GfxRenderingAPIDX11::mConsoleVariable |
| Microsoft::WRL::ComPtr<ID3D11DeviceContext> Fast::GfxRenderingAPIDX11::mContext |
| Microsoft::WRL::ComPtr<ID3D11Device> Fast::GfxRenderingAPIDX11::mDevice |
| PFN_D3D11_CREATE_DEVICE Fast::GfxRenderingAPIDX11::mDX11CreateDevice |
| D3D_FEATURE_LEVEL Fast::GfxRenderingAPIDX11::mFeatureLevel |
| std::shared_ptr<Ship::ResourceManager> Fast::GfxRenderingAPIDX11::mResourceManager |
| GfxWindowBackendDXGI* Fast::GfxRenderingAPIDX11::mWindowBackend = nullptr |