diff options
| author | 2018-08-01 20:59:42 -0400 | |
|---|---|---|
| committer | 2018-08-01 21:40:30 -0400 | |
| commit | 0f2ac928f291101bd74aac661cff7d14dfa8c984 (patch) | |
| tree | 39d1ba26d25bd06874b58990c5deb4d1f4ed252d /src/video_core/renderer_base.cpp | |
| parent | Merge pull request #885 from greggameplayer/R32-Float (diff) | |
| download | yuzu-0f2ac928f291101bd74aac661cff7d14dfa8c984.tar.gz yuzu-0f2ac928f291101bd74aac661cff7d14dfa8c984.tar.xz yuzu-0f2ac928f291101bd74aac661cff7d14dfa8c984.zip | |
video_core: Make global EmuWindow instance part of the base renderer class
Makes the global a member of the RendererBase class. We also change this
to be a reference. Passing any form of null pointer to these functions
is incorrect entirely, especially given the code itself assumes that the
pointer would always be in a valid state.
This also makes it easier to follow the lifecycle of instances being
used, as we explicitly interact the renderer with the rasterizer, rather
than it just operating on a global pointer.
Diffstat (limited to 'src/video_core/renderer_base.cpp')
| -rw-r--r-- | src/video_core/renderer_base.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/video_core/renderer_base.cpp b/src/video_core/renderer_base.cpp index 30075b23c..dbe3edf09 100644 --- a/src/video_core/renderer_base.cpp +++ b/src/video_core/renderer_base.cpp | |||
| @@ -2,14 +2,22 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include <atomic> | ||
| 6 | #include <memory> | 5 | #include <memory> |
| 6 | #include "core/frontend/emu_window.h" | ||
| 7 | #include "video_core/renderer_base.h" | 7 | #include "video_core/renderer_base.h" |
| 8 | #include "video_core/renderer_opengl/gl_rasterizer.h" | 8 | #include "video_core/renderer_opengl/gl_rasterizer.h" |
| 9 | #include "video_core/video_core.h" | 9 | |
| 10 | RendererBase::RendererBase(EmuWindow& window) : render_window{window} {} | ||
| 11 | RendererBase::~RendererBase() = default; | ||
| 12 | |||
| 13 | void RendererBase::UpdateCurrentFramebufferLayout() { | ||
| 14 | const Layout::FramebufferLayout& layout = render_window.GetFramebufferLayout(); | ||
| 15 | |||
| 16 | render_window.UpdateCurrentFramebufferLayout(layout.width, layout.height); | ||
| 17 | } | ||
| 10 | 18 | ||
| 11 | void RendererBase::RefreshRasterizerSetting() { | 19 | void RendererBase::RefreshRasterizerSetting() { |
| 12 | if (rasterizer == nullptr) { | 20 | if (rasterizer == nullptr) { |
| 13 | rasterizer = std::make_unique<RasterizerOpenGL>(); | 21 | rasterizer = std::make_unique<RasterizerOpenGL>(render_window); |
| 14 | } | 22 | } |
| 15 | } | 23 | } |