diff options
| author | Tilka <tilkax@gmail.com> | 2019-02-26 04:21:05 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-26 04:21:05 +0000 |
| commit | 6ce7f44b8a0bb3b95d3f12ebffbef7a71a443fdd (patch) | |
| tree | 98380ce3a3284c52597a6fba86589c847219ecd5 /Source/Core/VideoBackends/Software/SWmain.cpp | |
| parent | 19673ce79af814ca3b77d7f8ea60458e564bfa51 (diff) | |
| parent | f039149198657c1891e1c6462ed30c31ed4b8486 (diff) | |
Merge pull request #7753 from stenzek/videocommon-all-the-things
Move a significant amount of video backend logic 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(); |
