summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2018-02-09 20:52:25 +1000
committerStenzek <stenzek@gmail.com>2018-12-04 17:36:08 +1000
commit1adcd47dcbd80e0435d42e61dab3f00a22d1ca38 (patch)
treede2ce449d688e0d5d13fdb46dfd9e6396f63fb2c /Source/Core/VideoBackends/OGL
parent38479dd7830ab0790b487cbdee7477e6eb6b941d (diff)
Renderer: Add a base Initialize() method to match Shutdown()
Diffstat (limited to 'Source/Core/VideoBackends/OGL')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp27
-rw-r--r--Source/Core/VideoBackends/OGL/Render.h2
-rw-r--r--Source/Core/VideoBackends/OGL/main.cpp3
3 files changed, 19 insertions, 13 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index 120774b4f7..8b35e59bbb 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -811,19 +811,11 @@ bool Renderer::IsHeadless() const
return m_main_gl_context->IsHeadless();
}
-void Renderer::Shutdown()
+bool Renderer::Initialize()
{
- ::Renderer::Shutdown();
- g_framebuffer_manager.reset();
+ if (!::Renderer::Initialize())
+ return false;
- UpdateActiveConfig();
-
- s_raster_font.reset();
- m_post_processor.reset();
-}
-
-void Renderer::Init()
-{
// Initialize the FramebufferManager
g_framebuffer_manager = std::make_unique<FramebufferManager>(
m_target_width, m_target_height, s_MSAASamples, BoundingBox::NeedsStencilBuffer());
@@ -832,6 +824,19 @@ void Renderer::Init()
m_post_processor = std::make_unique<OpenGLPostProcessing>();
s_raster_font = std::make_unique<RasterFont>();
+
+ return true;
+}
+
+void Renderer::Shutdown()
+{
+ ::Renderer::Shutdown();
+ g_framebuffer_manager.reset();
+
+ UpdateActiveConfig();
+
+ s_raster_font.reset();
+ m_post_processor.reset();
}
std::unique_ptr<AbstractTexture> Renderer::CreateTexture(const TextureConfig& config)
diff --git a/Source/Core/VideoBackends/OGL/Render.h b/Source/Core/VideoBackends/OGL/Render.h
index f0cc668563..de051ba0d7 100644
--- a/Source/Core/VideoBackends/OGL/Render.h
+++ b/Source/Core/VideoBackends/OGL/Render.h
@@ -88,7 +88,7 @@ public:
bool IsHeadless() const override;
- void Init();
+ bool Initialize() override;
void Shutdown() override;
std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
diff --git a/Source/Core/VideoBackends/OGL/main.cpp b/Source/Core/VideoBackends/OGL/main.cpp
index 6e364113cc..c4ccbdcfd5 100644
--- a/Source/Core/VideoBackends/OGL/main.cpp
+++ b/Source/Core/VideoBackends/OGL/main.cpp
@@ -179,7 +179,8 @@ bool VideoBackend::Initialize(const WindowSystemInfo& wsi)
g_texture_cache = std::make_unique<TextureCache>();
g_sampler_cache = std::make_unique<SamplerCache>();
g_shader_cache = std::make_unique<VideoCommon::ShaderCache>();
- static_cast<Renderer*>(g_renderer.get())->Init();
+ if (!g_renderer->Initialize())
+ return false;
TextureConverter::Init();
BoundingBox::Init(g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight());
return g_shader_cache->Initialize();