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.
This commit is contained in:
Lioncash
2018-08-01 20:59:42 -04:00
parent 99a1d7440d
commit 0f2ac928f2
13 changed files with 54 additions and 64 deletions

View File

@ -5,10 +5,9 @@
#include "core/gdbstub/gdbstub.h"
#include "core/hle/service/hid/hid.h"
#include "core/settings.h"
#include "video_core/renderer_base.h"
#include "video_core/video_core.h"
#include "core/frontend/emu_window.h"
namespace Settings {
Values values = {};
@ -20,9 +19,8 @@ void Apply() {
VideoCore::g_toggle_framelimit_enabled = values.toggle_framelimit;
if (VideoCore::g_emu_window) {
auto layout = VideoCore::g_emu_window->GetFramebufferLayout();
VideoCore::g_emu_window->UpdateCurrentFramebufferLayout(layout.width, layout.height);
if (VideoCore::g_renderer) {
VideoCore::g_renderer->UpdateCurrentFramebufferLayout();
}
Service::HID::ReloadInputDevices();