|
libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
|
Metal implementation of the Fast3D rendering API. More...
#include <gfx_metal.h>
Public Member Functions | |
| GfxRenderingAPIMetal (std::shared_ptr< Ship::ConsoleVariable > consoleVariable=nullptr, std::shared_ptr< Ship::ResourceManager > resourceManager=nullptr) | |
| Constructs the Metal renderer with optional shared dependencies. | |
| ~GfxRenderingAPIMetal () override=default | |
| void | NewFrame () |
| Begins a new ImGui frame for the Metal renderer bridge. | |
| void | SetupFloatingFrame () |
| Prepares floating-frame state for rendering ImGui draw data. | |
| void | RenderDrawData (ImDrawData *drawData) |
| Renders ImGui draw data using the active Metal command encoder. | |
| bool | MetalInit (SDL_Renderer *renderer) |
| Initializes Metal/SDL bridge objects for this renderer instance. | |
GfxRenderingAPI implementation | |
| const char * | GetName () override |
| int | GetMaxTextureSize () override |
| GfxClipParameters | GetClipParameters () override |
| void | UnloadShader (ShaderProgram *oldPrg) override |
| void | LoadShader (ShaderProgram *newPrg) override |
| ShaderProgram * | CreateAndLoadNewShader (uint64_t shaderId0, uint64_t shaderId1) override |
| ShaderProgram * | LookupShader (uint64_t shaderId0, uint64_t shaderId1) override |
| void | ShaderGetInfo (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 fbIdTarge, 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) |
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 |
Metal implementation of the Fast3D rendering API.
| Fast::GfxRenderingAPIMetal::GfxRenderingAPIMetal | ( | std::shared_ptr< Ship::ConsoleVariable > | consoleVariable = nullptr, |
| std::shared_ptr< Ship::ResourceManager > | resourceManager = nullptr |
||
| ) |
Constructs the Metal renderer with optional shared dependencies.
|
overridedefault |
|
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.
| bool Fast::GfxRenderingAPIMetal::MetalInit | ( | SDL_Renderer * | renderer | ) |
Initializes Metal/SDL bridge objects for this renderer instance.
| void Fast::GfxRenderingAPIMetal::NewFrame | ( | ) |
Begins a new ImGui frame for the Metal renderer bridge.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
|
overridevirtual |
Implements Fast::GfxRenderingAPI.
| void Fast::GfxRenderingAPIMetal::RenderDrawData | ( | ImDrawData * | drawData | ) |
Renders ImGui draw data using the active Metal command encoder.
|
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.
| void Fast::GfxRenderingAPIMetal::SetupFloatingFrame | ( | ) |
Prepares floating-frame state for rendering ImGui draw data.
|
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.