diff options
Diffstat (limited to 'src/video_core/renderer_base.h')
| -rw-r--r-- | src/video_core/renderer_base.h | 27 |
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 { | |||
| 21 | struct RendererSettings { | 22 | struct 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 | ||
| 26 | class RendererBase : NonCopyable { | 33 | class 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 | |||
| 63 | protected: | 90 | protected: |
| 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; |