diff options
| author | Stenzek <stenzek@gmail.com> | 2019-02-15 11:59:50 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2019-02-19 16:57:54 +1000 |
| commit | f039149198657c1891e1c6462ed30c31ed4b8486 (patch) | |
| tree | b914fd7b0ef9c937e9334a880a49a26a26f17c8f /Source/Core/VideoBackends/Software/SWmain.cpp | |
| parent | 933f3ba008942cba96ed623c25e61d6ea86582fe (diff) | |
Move most backend functionality to VideoCommon
Diffstat (limited to 'Source/Core/VideoBackends/Software/SWmain.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Software/SWmain.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/Source/Core/VideoBackends/Software/SWmain.cpp b/Source/Core/VideoBackends/Software/SWmain.cpp index 0ab16bdfa8..c47072d4af 100644 --- a/Source/Core/VideoBackends/Software/SWmain.cpp +++ b/Source/Core/VideoBackends/Software/SWmain.cpp @@ -10,6 +10,7 @@ #include "Common/Common.h" #include "Common/CommonTypes.h" #include "Common/GL/GLContext.h" +#include "Common/MsgHandler.h" #include "VideoBackends/Software/Clipper.h" #include "VideoBackends/Software/DebugUtil.h" @@ -22,14 +23,11 @@ #include "VideoBackends/Software/TextureCache.h" #include "VideoBackends/Software/VideoBackend.h" -#include "VideoCommon/FramebufferManagerBase.h" -#include "VideoCommon/OnScreenDisplay.h" +#include "VideoCommon/FramebufferManager.h" #include "VideoCommon/TextureCacheBase.h" #include "VideoCommon/VideoCommon.h" #include "VideoCommon/VideoConfig.h" -#define VSYNC_ENABLED 0 - namespace SW { class PerfQuery : public PerfQueryBase @@ -59,6 +57,7 @@ void VideoSoftware::InitBackendInfo() { g_Config.backend_info.api_type = APIType::Nothing; g_Config.backend_info.MaxTextureSize = 16384; + g_Config.backend_info.bUsesLowerLeftOrigin = false; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsDualSourceBlend = true; g_Config.backend_info.bSupportsEarlyZ = true; @@ -70,6 +69,7 @@ void VideoSoftware::InitBackendInfo() g_Config.backend_info.bSupportsST3CTextures = false; g_Config.backend_info.bSupportsBPTCTextures = false; g_Config.backend_info.bSupportsCopyToVram = false; + g_Config.backend_info.bSupportsLargePoints = false; g_Config.backend_info.bSupportsFramebufferFetch = false; g_Config.backend_info.bSupportsBackgroundCompiling = false; g_Config.backend_info.bSupportsLogicOp = true; @@ -92,10 +92,22 @@ bool VideoSoftware::Initialize(const WindowSystemInfo& wsi) g_renderer = std::make_unique<SWRenderer>(std::move(window)); g_vertex_manager = std::make_unique<SWVertexLoader>(); + g_shader_cache = std::make_unique<VideoCommon::ShaderCache>(); + g_framebuffer_manager = std::make_unique<FramebufferManager>(); g_perf_query = std::make_unique<PerfQuery>(); g_texture_cache = std::make_unique<TextureCache>(); - g_shader_cache = std::make_unique<VideoCommon::ShaderCache>(); - return g_renderer->Initialize() && g_shader_cache->Initialize(); + + if (!g_vertex_manager->Initialize() || !g_shader_cache->Initialize() || + !g_renderer->Initialize() || !g_framebuffer_manager->Initialize() || + !g_texture_cache->Initialize()) + { + PanicAlert("Failed to initialize renderer classes"); + Shutdown(); + return false; + } + + g_shader_cache->InitializeShaderCache(); + return true; } void VideoSoftware::Shutdown() @@ -107,9 +119,10 @@ void VideoSoftware::Shutdown() g_renderer->Shutdown(); DebugUtil::Shutdown(); - g_framebuffer_manager.reset(); g_texture_cache.reset(); g_perf_query.reset(); + g_framebuffer_manager.reset(); + g_shader_cache.reset(); g_vertex_manager.reset(); g_renderer.reset(); ShutdownShared(); |
