Merge pull request #1556 from comex/project-moration

Rudimentary version of Wii IPC determinism.  Ported from my old udpnet branch.
This commit is contained in:
comex
2015-06-02 18:38:19 -04:00
43 changed files with 417 additions and 483 deletions

View File

@ -38,9 +38,11 @@ Make AA apply instantly during gameplay if possible
#include <algorithm>
#include <cstdarg>
#include <regex>
#include "Common/Atomic.h"
#include "Common/CommonPaths.h"
#include "Common/FileSearch.h"
#include "Common/Thread.h"
#include "Common/Logging/LogManager.h"
@ -95,39 +97,16 @@ std::string VideoBackend::GetDisplayName() const
return "OpenGL";
}
static void GetShaders(std::vector<std::string> &shaders, const std::string &sub_dir = "")
static std::vector<std::string> GetShaders(const std::string &sub_dir = "")
{
std::set<std::string> already_found;
shaders.clear();
const std::string directories[] = {
std::vector<std::string> paths = DoFileSearch({"*.glsl"}, {
File::GetUserPath(D_SHADERS_IDX) + sub_dir,
File::GetSysDirectory() + SHADERS_DIR DIR_SEP + sub_dir,
};
for (auto& directory : directories)
{
if (!File::IsDirectory(directory))
continue;
File::FSTEntry entry;
File::ScanDirectoryTree(directory, entry);
for (auto& file : entry.children)
{
std::string name = file.virtualName;
if (name.size() < 5)
continue;
if (strcasecmp(name.substr(name.size() - 5).c_str(), ".glsl"))
continue;
name = name.substr(0, name.size() - 5);
if (already_found.find(name) != already_found.end())
continue;
already_found.insert(name);
shaders.push_back(name);
}
}
std::sort(shaders.begin(), shaders.end());
File::GetSysDirectory() + SHADERS_DIR DIR_SEP + sub_dir
});
std::vector<std::string> result;
for (std::string path : paths)
result.push_back(std::regex_replace(path, std::regex("^.*/(.*)\\.glsl$"), "$1"));
return result;
}
static void InitBackendInfo()
@ -146,8 +125,8 @@ static void InitBackendInfo()
g_Config.backend_info.AAModes.assign(caamodes, caamodes + sizeof(caamodes)/sizeof(*caamodes));
// pp shaders
GetShaders(g_Config.backend_info.PPShaders);
GetShaders(g_Config.backend_info.AnaglyphShaders, std::string(ANAGLYPH_DIR DIR_SEP));
g_Config.backend_info.PPShaders = GetShaders("");
g_Config.backend_info.AnaglyphShaders = GetShaders(ANAGLYPH_DIR DIR_SEP);
}
void VideoBackend::ShowConfig(void *_hParent)