summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/renderer_base.h')
-rw-r--r--src/video_core/renderer_base.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h
index 669e26e15..1d54c3723 100644
--- a/src/video_core/renderer_base.h
+++ b/src/video_core/renderer_base.h
@@ -9,6 +9,7 @@
9#include <optional> 9#include <optional>
10 10
11#include "common/common_types.h" 11#include "common/common_types.h"
12#include "core/frontend/emu_window.h"
12#include "video_core/gpu.h" 13#include "video_core/gpu.h"
13#include "video_core/rasterizer_interface.h" 14#include "video_core/rasterizer_interface.h"
14 15
@@ -21,6 +22,12 @@ namespace VideoCore {
21struct RendererSettings { 22struct RendererSettings {
22 std::atomic_bool use_framelimiter{false}; 23 std::atomic_bool use_framelimiter{false};
23 std::atomic_bool set_background_color{false}; 24 std::atomic_bool set_background_color{false};
25
26 // Screenshot
27 std::atomic<bool> screenshot_requested{false};
28 void* screenshot_bits;
29 std::function<void()> screenshot_complete_callback;
30 Layout::FramebufferLayout screenshot_framebuffer_layout;
24}; 31};
25 32
26class RendererBase : NonCopyable { 33class RendererBase : NonCopyable {
@@ -57,9 +64,29 @@ public:
57 return *rasterizer; 64 return *rasterizer;
58 } 65 }
59 66
67 Core::Frontend::EmuWindow& GetRenderWindow() {
68 return render_window;
69 }
70
71 const Core::Frontend::EmuWindow& GetRenderWindow() const {
72 return render_window;
73 }
74
75 RendererSettings& Settings() {
76 return renderer_settings;
77 }
78
79 const RendererSettings& Settings() const {
80 return renderer_settings;
81 }
82
60 /// Refreshes the settings common to all renderers 83 /// Refreshes the settings common to all renderers
61 void RefreshBaseSettings(); 84 void RefreshBaseSettings();
62 85
86 /// Request a screenshot of the next frame
87 void RequestScreenshot(void* data, std::function<void()> callback,
88 const Layout::FramebufferLayout& layout);
89
63protected: 90protected:
64 Core::Frontend::EmuWindow& render_window; ///< Reference to the render window handle. 91 Core::Frontend::EmuWindow& render_window; ///< Reference to the render window handle.
65 std::unique_ptr<RasterizerInterface> rasterizer; 92 std::unique_ptr<RasterizerInterface> rasterizer;