diff options
| author | 2018-08-10 18:39:37 -0400 | |
|---|---|---|
| committer | 2018-08-10 19:00:09 -0400 | |
| commit | 20c2928c2b157b8a322a128732cd00cabbfa9d6d (patch) | |
| tree | f7db86f1b27135d7cc352c6eb5de4f2949d7e0f4 /src/video_core/renderer_base.h | |
| parent | renderer_base: Remove unused kFramebuffer enumeration (diff) | |
| download | yuzu-20c2928c2b157b8a322a128732cd00cabbfa9d6d.tar.gz yuzu-20c2928c2b157b8a322a128732cd00cabbfa9d6d.tar.xz yuzu-20c2928c2b157b8a322a128732cd00cabbfa9d6d.zip | |
video_core; Get rid of global g_toggle_framelimit_enabled variable
Instead, we make a struct for renderer settings and allow the renderer
to update all of these settings, getting rid of the need for
global-scoped variables.
This also uncovered a few indirect inclusions for certain headers, which
this commit also fixes.
Diffstat (limited to 'src/video_core/renderer_base.h')
| -rw-r--r-- | src/video_core/renderer_base.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h index 9dbea8b6d..fd8c47592 100644 --- a/src/video_core/renderer_base.h +++ b/src/video_core/renderer_base.h | |||
| @@ -4,9 +4,9 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <atomic> | ||
| 7 | #include <memory> | 8 | #include <memory> |
| 8 | #include <boost/optional.hpp> | 9 | #include <boost/optional.hpp> |
| 9 | #include "common/assert.h" | ||
| 10 | #include "common/common_types.h" | 10 | #include "common/common_types.h" |
| 11 | #include "video_core/gpu.h" | 11 | #include "video_core/gpu.h" |
| 12 | #include "video_core/rasterizer_interface.h" | 12 | #include "video_core/rasterizer_interface.h" |
| @@ -15,6 +15,10 @@ class EmuWindow; | |||
| 15 | 15 | ||
| 16 | namespace VideoCore { | 16 | namespace VideoCore { |
| 17 | 17 | ||
| 18 | struct RendererSettings { | ||
| 19 | std::atomic_bool use_framelimiter{false}; | ||
| 20 | }; | ||
| 21 | |||
| 18 | class RendererBase : NonCopyable { | 22 | class RendererBase : NonCopyable { |
| 19 | public: | 23 | public: |
| 20 | explicit RendererBase(EmuWindow& window); | 24 | explicit RendererBase(EmuWindow& window); |
| @@ -29,9 +33,6 @@ public: | |||
| 29 | /// Shutdown the renderer | 33 | /// Shutdown the renderer |
| 30 | virtual void ShutDown() = 0; | 34 | virtual void ShutDown() = 0; |
| 31 | 35 | ||
| 32 | /// Updates the framebuffer layout of the contained render window handle. | ||
| 33 | void UpdateCurrentFramebufferLayout(); | ||
| 34 | |||
| 35 | // Getter/setter functions: | 36 | // Getter/setter functions: |
| 36 | // ------------------------ | 37 | // ------------------------ |
| 37 | 38 | ||
| @@ -51,13 +52,23 @@ public: | |||
| 51 | return *rasterizer; | 52 | return *rasterizer; |
| 52 | } | 53 | } |
| 53 | 54 | ||
| 54 | void RefreshRasterizerSetting(); | 55 | /// Refreshes the settings common to all renderers |
| 56 | void RefreshBaseSettings(); | ||
| 55 | 57 | ||
| 56 | protected: | 58 | protected: |
| 59 | /// Refreshes settings specific to the rasterizer. | ||
| 60 | void RefreshRasterizerSetting(); | ||
| 61 | |||
| 57 | EmuWindow& render_window; ///< Reference to the render window handle. | 62 | EmuWindow& render_window; ///< Reference to the render window handle. |
| 58 | std::unique_ptr<RasterizerInterface> rasterizer; | 63 | std::unique_ptr<RasterizerInterface> rasterizer; |
| 59 | f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer | 64 | f32 m_current_fps = 0.0f; ///< Current framerate, should be set by the renderer |
| 60 | int m_current_frame = 0; ///< Current frame, should be set by the renderer | 65 | int m_current_frame = 0; ///< Current frame, should be set by the renderer |
| 66 | |||
| 67 | RendererSettings renderer_settings; | ||
| 68 | |||
| 69 | private: | ||
| 70 | /// Updates the framebuffer layout of the contained render window handle. | ||
| 71 | void UpdateCurrentFramebufferLayout(); | ||
| 61 | }; | 72 | }; |
| 62 | 73 | ||
| 63 | } // namespace VideoCore | 74 | } // namespace VideoCore |