Merge pull request #6334 from stenzek/startup

Video Backend Initialization/Core Boot Improvements
This commit is contained in:
Anthony
2018-02-07 23:35:54 -08:00
committed by GitHub
24 changed files with 89 additions and 290 deletions

View File

@ -26,15 +26,6 @@ SWRenderer::SWRenderer()
{
}
void SWRenderer::Init()
{
}
void SWRenderer::Shutdown()
{
UpdateActiveConfig();
}
std::unique_ptr<AbstractTexture> SWRenderer::CreateTexture(const TextureConfig& config)
{
return std::make_unique<SW::SWTexture>(config);

View File

@ -13,9 +13,6 @@ class SWRenderer : public Renderer
public:
SWRenderer();
static void Init();
static void Shutdown();
std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
std::unique_ptr<AbstractStagingTexture>
CreateStagingTexture(StagingTextureType type, const TextureConfig& config) override;

View File

@ -88,38 +88,8 @@ bool VideoSoftware::Initialize(void* window_handle)
Clipper::Init();
Rasterizer::Init();
SWRenderer::Init();
DebugUtil::Init();
return true;
}
void VideoSoftware::Shutdown()
{
SWOGLWindow::Shutdown();
ShutdownShared();
}
void VideoSoftware::Video_Cleanup()
{
CleanupShared();
SWRenderer::Shutdown();
DebugUtil::Shutdown();
// The following calls are NOT Thread Safe
// And need to be called from the video thread
SWRenderer::Shutdown();
g_framebuffer_manager.reset();
g_texture_cache.reset();
g_perf_query.reset();
g_vertex_manager.reset();
g_renderer.reset();
}
// This is called after Video_Initialize() from the Core
void VideoSoftware::Video_Prepare()
{
GLInterface->MakeCurrent();
SWOGLWindow::s_instance->Prepare();
@ -127,11 +97,21 @@ void VideoSoftware::Video_Prepare()
g_vertex_manager = std::make_unique<SWVertexLoader>();
g_perf_query = std::make_unique<PerfQuery>();
g_texture_cache = std::make_unique<TextureCache>();
SWRenderer::Init();
return true;
}
unsigned int VideoSoftware::PeekMessages()
void VideoSoftware::Shutdown()
{
return SWOGLWindow::s_instance->PeekMessages();
if (g_renderer)
g_renderer->Shutdown();
DebugUtil::Shutdown();
SWOGLWindow::Shutdown();
g_framebuffer_manager.reset();
g_texture_cache.reset();
g_perf_query.reset();
g_vertex_manager.reset();
g_renderer.reset();
ShutdownShared();
}
}

View File

@ -17,11 +17,6 @@ class VideoSoftware : public VideoBackendBase
std::string GetName() const override;
std::string GetDisplayName() const override;
void Video_Prepare() override;
void Video_Cleanup() override;
void InitBackendInfo() override;
unsigned int PeekMessages() override;
};
}