Add "Separate Windows" LayoutOption (#6177)

This commit is contained in:
Ameer J
2022-11-17 16:37:30 +01:00
committed by GitHub
parent 4f715b6718
commit f44c95d638
24 changed files with 357 additions and 123 deletions
+7 -3
View File
@@ -15,7 +15,7 @@ class EmuWindow;
class RendererBase : NonCopyable {
public:
explicit RendererBase(Frontend::EmuWindow& window);
explicit RendererBase(Frontend::EmuWindow& window, Frontend::EmuWindow* secondary_window);
virtual ~RendererBase();
/// Initialize the renderer
@@ -29,7 +29,10 @@ public:
/// Draws the latest frame to the window waiting timeout_ms for a frame to arrive (Renderer
/// specific implementation)
virtual void TryPresent(int timeout_ms) = 0;
virtual void TryPresent(int timeout_ms, bool is_secondary) = 0;
virtual void TryPresent(int timeout_ms) {
TryPresent(timeout_ms, false);
}
/// Prepares for video dumping (e.g. create necessary buffers, etc)
virtual void PrepareVideoDumping() = 0;
@@ -67,7 +70,8 @@ public:
void Sync();
protected:
Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
Frontend::EmuWindow* secondary_window; ///< Reference to the secondary 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