diff options
Diffstat (limited to 'src/video_core/renderer_base.h')
| -rw-r--r-- | src/video_core/renderer_base.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h index 1d85219b6..649074acd 100644 --- a/src/video_core/renderer_base.h +++ b/src/video_core/renderer_base.h | |||
| @@ -15,7 +15,8 @@ | |||
| 15 | 15 | ||
| 16 | namespace Core::Frontend { | 16 | namespace Core::Frontend { |
| 17 | class EmuWindow; | 17 | class EmuWindow; |
| 18 | } | 18 | class GraphicsContext; |
| 19 | } // namespace Core::Frontend | ||
| 19 | 20 | ||
| 20 | namespace VideoCore { | 21 | namespace VideoCore { |
| 21 | 22 | ||
| @@ -25,14 +26,15 @@ struct RendererSettings { | |||
| 25 | 26 | ||
| 26 | // Screenshot | 27 | // Screenshot |
| 27 | std::atomic<bool> screenshot_requested{false}; | 28 | std::atomic<bool> screenshot_requested{false}; |
| 28 | void* screenshot_bits; | 29 | void* screenshot_bits{}; |
| 29 | std::function<void()> screenshot_complete_callback; | 30 | std::function<void()> screenshot_complete_callback; |
| 30 | Layout::FramebufferLayout screenshot_framebuffer_layout; | 31 | Layout::FramebufferLayout screenshot_framebuffer_layout; |
| 31 | }; | 32 | }; |
| 32 | 33 | ||
| 33 | class RendererBase : NonCopyable { | 34 | class RendererBase : NonCopyable { |
| 34 | public: | 35 | public: |
| 35 | explicit RendererBase(Core::Frontend::EmuWindow& window); | 36 | explicit RendererBase(Core::Frontend::EmuWindow& window, |
| 37 | std::unique_ptr<Core::Frontend::GraphicsContext> context); | ||
| 36 | virtual ~RendererBase(); | 38 | virtual ~RendererBase(); |
| 37 | 39 | ||
| 38 | /// Initialize the renderer | 40 | /// Initialize the renderer |
| @@ -68,6 +70,14 @@ public: | |||
| 68 | return *rasterizer; | 70 | return *rasterizer; |
| 69 | } | 71 | } |
| 70 | 72 | ||
| 73 | Core::Frontend::GraphicsContext& Context() { | ||
| 74 | return *context; | ||
| 75 | } | ||
| 76 | |||
| 77 | const Core::Frontend::GraphicsContext& Context() const { | ||
| 78 | return *context; | ||
| 79 | } | ||
| 80 | |||
| 71 | Core::Frontend::EmuWindow& GetRenderWindow() { | 81 | Core::Frontend::EmuWindow& GetRenderWindow() { |
| 72 | return render_window; | 82 | return render_window; |
| 73 | } | 83 | } |
| @@ -94,6 +104,7 @@ public: | |||
| 94 | protected: | 104 | protected: |
| 95 | Core::Frontend::EmuWindow& render_window; ///< Reference to the render window handle. | 105 | Core::Frontend::EmuWindow& render_window; ///< Reference to the render window handle. |
| 96 | std::unique_ptr<RasterizerInterface> rasterizer; | 106 | std::unique_ptr<RasterizerInterface> rasterizer; |
| 107 | std::unique_ptr<Core::Frontend::GraphicsContext> context; | ||
| 97 | f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer | 108 | f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer |
| 98 | int m_current_frame = 0; ///< Current frame, should be set by the renderer | 109 | int m_current_frame = 0; ///< Current frame, should be set by the renderer |
| 99 | 110 | ||