renderer_vulkan: Implement renderer and rasterizer classes

* Also WIP. Vulkan crashes when allocating command buffers, need to investigate...
This commit is contained in:
emufan4568
2022-09-18 01:11:37 +03:00
committed by GPUCode
parent 7ae0d0ef27
commit ab3a228e5e
34 changed files with 4191 additions and 347 deletions

View File

@ -21,6 +21,9 @@ public:
/// Initialize the renderer
virtual VideoCore::ResultStatus Init() = 0;
/// Returns the rasterizer owned by the renderer
virtual VideoCore::RasterizerInterface* Rasterizer() = 0;
/// Shutdown the renderer
virtual void ShutDown() = 0;
@ -37,6 +40,8 @@ public:
/// Cleans up after video dumping is ended
virtual void CleanupVideoDumping() = 0;
virtual void Sync() = 0;
/// Updates the framebuffer layout of the contained render window handle.
void UpdateCurrentFramebufferLayout(bool is_portrait_mode = {});
@ -51,10 +56,6 @@ public:
return m_current_frame;
}
VideoCore::RasterizerInterface* Rasterizer() const {
return rasterizer.get();
}
Frontend::EmuWindow& GetRenderWindow() {
return render_window;
}
@ -63,11 +64,8 @@ public:
return render_window;
}
void Sync();
protected:
Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
std::unique_ptr<VideoCore::RasterizerInterface> rasterizer;
f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer
int m_current_frame = 0; ///< Current frame, should be set by the renderer
};