diff options
| author | Lioncash <mathew1800@gmail.com> | 2018-08-01 20:59:42 -0400 |
|---|---|---|
| committer | Lioncash <mathew1800@gmail.com> | 2018-08-01 21:40:30 -0400 |
| commit | 0f2ac928f291101bd74aac661cff7d14dfa8c984 (patch) | |
| tree | 39d1ba26d25bd06874b58990c5deb4d1f4ed252d /src/video_core/renderer_opengl/renderer_opengl.h | |
| parent | 99a1d7440db6412f5cddcb7e00b523661f16cb53 (diff) | |
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_opengl/renderer_opengl.h')
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.h | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index 59d92a3dc..ab7de41c8 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h @@ -34,24 +34,21 @@ struct ScreenInfo { /// Helper class to acquire/release OpenGL context within a given scope class ScopeAcquireGLContext : NonCopyable { public: - ScopeAcquireGLContext(); + explicit ScopeAcquireGLContext(EmuWindow& window); ~ScopeAcquireGLContext(); + +private: + EmuWindow& emu_window; }; class RendererOpenGL : public RendererBase { public: - RendererOpenGL(); + explicit RendererOpenGL(EmuWindow& window); ~RendererOpenGL() override; /// Swap buffers (render frame) void SwapBuffers(boost::optional<const Tegra::FramebufferConfig&> framebuffer) override; - /** - * Set the emulator window to use for renderer - * @param window EmuWindow handle to emulator window to use for rendering - */ - void SetWindow(EmuWindow* window) override; - /// Initialize the renderer bool Init() override; @@ -72,8 +69,6 @@ private: void LoadColorToActiveGLTexture(u8 color_r, u8 color_g, u8 color_b, u8 color_a, const TextureInfo& texture); - EmuWindow* render_window; ///< Handle to render window - OpenGLState state; // OpenGL object IDs |
