update submodules , fixed sdl update , rewrote config with new toml11 v4

This commit is contained in:
georgemoralis 2024-08-05 19:27:03 +03:00
parent ab56665d4b
commit 5a68224a13
8 changed files with 55 additions and 69 deletions

2
externals/fmt vendored

@ -1 +1 @@
Subproject commit bc8d32e9643d2be5fc070abf2a50bc021544545d Subproject commit 15f939c3de44d4e7521432b0c9d82f9358b24c2a

2
externals/glslang vendored

@ -1 +1 @@
Subproject commit 52f68dc6b2a9d017b43161f31f13a6f44636ee7c Subproject commit e40c14a3e007fac0e4f2e4164fdf14d1712355bd

@ -1 +1 @@
Subproject commit 664ee62c12570948b0e025d15b42d641fba8d54a Subproject commit dae6bbf16c363e9ead4e628a47fdb02956a634f3

2
externals/sdl3 vendored

@ -1 +1 @@
Subproject commit f9a06c20ed85fb1d6754fc2280d6183382217910 Subproject commit 881e2bc344f43bf04927fb2045f46f3d3f611d36

2
externals/toml11 vendored

@ -1 +1 @@
Subproject commit b389bbc4ebf90fa2fe7651de3046fb19f661ba3c Subproject commit 12c0f379f2e865b4ce984758d5ae004f9de07d69

@ -1 +1 @@
Subproject commit b379292b2ab6df5771ba9870d53cf8b2c9295daf Subproject commit 595c8d4794410a4e64b98dc58d27c0310d7ea2fd

View File

@ -223,90 +223,76 @@ void load(const std::filesystem::path& path) {
fmt::print("Got exception trying to load config file. Exception: {}\n", ex.what()); fmt::print("Got exception trying to load config file. Exception: {}\n", ex.what());
return; return;
} }
if (data.contains("General")) { if (data.contains("General")) {
auto generalResult = toml::expect<toml::value>(data.at("General")); const toml::value& general = data.at("General");
if (generalResult.is_ok()) {
auto general = generalResult.unwrap();
isNeo = toml::find_or<toml::boolean>(general, "isPS4Pro", false); isNeo = toml::find_or<bool>(general, "isPS4Pro", false);
isFullscreen = toml::find_or<toml::boolean>(general, "Fullscreen", false); isFullscreen = toml::find_or<bool>(general, "Fullscreen", false);
logFilter = toml::find_or<toml::string>(general, "logFilter", ""); logFilter = toml::find_or<std::string>(general, "logFilter", "");
logType = toml::find_or<toml::string>(general, "logType", "sync"); logType = toml::find_or<std::string>(general, "logType", "sync");
isShowSplash = toml::find_or<toml::boolean>(general, "showSplash", true); isShowSplash = toml::find_or<bool>(general, "showSplash", true);
}
} }
if (data.contains("GPU")) { if (data.contains("GPU")) {
auto gpuResult = toml::expect<toml::value>(data.at("GPU")); const toml::value& gpu = data.at("GPU");
if (gpuResult.is_ok()) {
auto gpu = gpuResult.unwrap();
screenWidth = toml::find_or<toml::integer>(gpu, "screenWidth", screenWidth); screenWidth = toml::find_or<int>(gpu, "screenWidth", screenWidth);
screenHeight = toml::find_or<toml::integer>(gpu, "screenHeight", screenHeight); screenHeight = toml::find_or<int>(gpu, "screenHeight", screenHeight);
isNullGpu = toml::find_or<toml::boolean>(gpu, "nullGpu", false); isNullGpu = toml::find_or<bool>(gpu, "nullGpu", false);
shouldDumpShaders = toml::find_or<toml::boolean>(gpu, "dumpShaders", false); shouldDumpShaders = toml::find_or<bool>(gpu, "dumpShaders", false);
shouldDumpPM4 = toml::find_or<toml::boolean>(gpu, "dumpPM4", false); shouldDumpPM4 = toml::find_or<bool>(gpu, "dumpPM4", false);
vblankDivider = toml::find_or<toml::integer>(gpu, "vblankDivider", 1); vblankDivider = toml::find_or<int>(gpu, "vblankDivider", 1);
}
} }
if (data.contains("Vulkan")) { if (data.contains("Vulkan")) {
const auto vkResult = toml::expect<toml::value>(data.at("Vulkan")); const toml::value& vk = data.at("Vulkan");
if (vkResult.is_ok()) {
auto vk = vkResult.unwrap();
gpuId = toml::find_or<toml::integer>(vk, "gpuId", 0); gpuId = toml::find_or<int>(vk, "gpuId", -1);
vkValidation = toml::find_or<toml::boolean>(vk, "validation", true); vkValidation = toml::find_or<bool>(vk, "validation", false);
vkValidationSync = toml::find_or<toml::boolean>(vk, "validation_sync", true); vkValidationSync = toml::find_or<bool>(vk, "validation_sync", false);
rdocEnable = toml::find_or<toml::boolean>(vk, "rdocEnable", false); rdocEnable = toml::find_or<bool>(vk, "rdocEnable", false);
}
} }
if (data.contains("Debug")) { if (data.contains("Debug")) {
auto debugResult = toml::expect<toml::value>(data.at("Debug")); const toml::value& debug = data.at("Debug");
if (debugResult.is_ok()) {
auto debug = debugResult.unwrap();
isDebugDump = toml::find_or<toml::boolean>(debug, "DebugDump", false); isDebugDump = toml::find_or<bool>(debug, "DebugDump", false);
}
} }
if (data.contains("LLE")) { if (data.contains("LLE")) {
auto lleResult = toml::expect<toml::value>(data.at("LLE")); const toml::value& lle = data.at("LLE");
if (lleResult.is_ok()) {
auto lle = lleResult.unwrap();
isLibc = toml::find_or<toml::boolean>(lle, "libc", true); isLibc = toml::find_or<bool>(lle, "libc", true);
}
} }
if (data.contains("GUI")) {
auto guiResult = toml::expect<toml::value>(data.at("GUI"));
if (guiResult.is_ok()) {
auto gui = guiResult.unwrap();
m_icon_size = toml::find_or<toml::integer>(gui, "iconSize", 0); if (data.contains("GUI")) {
m_icon_size_grid = toml::find_or<toml::integer>(gui, "iconSizeGrid", 0); const toml::value& gui = data.at("GUI");
m_slider_pos = toml::find_or<toml::integer>(gui, "sliderPos", 0);
m_slider_pos_grid = toml::find_or<toml::integer>(gui, "sliderPosGrid", 0); m_icon_size = toml::find_or<int>(gui, "iconSize", 0);
mw_themes = toml::find_or<toml::integer>(gui, "theme", 0); m_icon_size_grid = toml::find_or<int>(gui, "iconSizeGrid", 0);
m_window_size_W = toml::find_or<toml::integer>(gui, "mw_width", 0); m_slider_pos = toml::find_or<int>(gui, "sliderPos", 0);
m_window_size_H = toml::find_or<toml::integer>(gui, "mw_height", 0); m_slider_pos_grid = toml::find_or<int>(gui, "sliderPosGrid", 0);
settings_install_dir = toml::find_or<toml::string>(gui, "installDir", ""); mw_themes = toml::find_or<int>(gui, "theme", 0);
main_window_geometry_x = toml::find_or<toml::integer>(gui, "geometry_x", 0); m_window_size_W = toml::find_or<int>(gui, "mw_width", 0);
main_window_geometry_y = toml::find_or<toml::integer>(gui, "geometry_y", 0); m_window_size_H = toml::find_or<int>(gui, "mw_height", 0);
main_window_geometry_w = toml::find_or<toml::integer>(gui, "geometry_w", 0); settings_install_dir = toml::find_or<std::string>(gui, "installDir", "");
main_window_geometry_h = toml::find_or<toml::integer>(gui, "geometry_h", 0); main_window_geometry_x = toml::find_or<int>(gui, "geometry_x", 0);
m_pkg_viewer = toml::find_or<std::vector<std::string>>(gui, "pkgDirs", {}); main_window_geometry_y = toml::find_or<int>(gui, "geometry_y", 0);
m_elf_viewer = toml::find_or<std::vector<std::string>>(gui, "elfDirs", {}); main_window_geometry_w = toml::find_or<int>(gui, "geometry_w", 0);
m_recent_files = toml::find_or<std::vector<std::string>>(gui, "recentFiles", {}); main_window_geometry_h = toml::find_or<int>(gui, "geometry_h", 0);
m_table_mode = toml::find_or<toml::integer>(gui, "gameTableMode", 0); m_pkg_viewer = toml::find_or<std::vector<std::string>>(gui, "pkgDirs", {});
} m_elf_viewer = toml::find_or<std::vector<std::string>>(gui, "elfDirs", {});
m_recent_files = toml::find_or<std::vector<std::string>>(gui, "recentFiles", {});
m_table_mode = toml::find_or<int>(gui, "gameTableMode", 0);
} }
} }
void save(const std::filesystem::path& path) { void save(const std::filesystem::path& path) {
toml::basic_value<toml::preserve_comments> data; toml::value data;
std::error_code error; std::error_code error;
if (std::filesystem::exists(path, error)) { if (std::filesystem::exists(path, error)) {
try { try {
data = toml::parse<toml::preserve_comments>(path); data = toml::parse(path);
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
fmt::print("Exception trying to parse config file. Exception: {}\n", ex.what()); fmt::print("Exception trying to parse config file. Exception: {}\n", ex.what());
return; return;

View File

@ -45,8 +45,8 @@ WindowSDL::WindowSDL(s32 width_, s32 height_, Input::GameController* controller_
#if defined(SDL_PLATFORM_WIN32) #if defined(SDL_PLATFORM_WIN32)
window_info.type = WindowSystemType::Windows; window_info.type = WindowSystemType::Windows;
window_info.render_surface = window_info.render_surface = SDL_GetPointerProperty(SDL_GetWindowProperties(window),
SDL_GetProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_WIN32_HWND_POINTER, NULL); SDL_PROP_WINDOW_WIN32_HWND_POINTER, NULL);
#elif defined(SDL_PLATFORM_LINUX) #elif defined(SDL_PLATFORM_LINUX)
if (SDL_strcmp(SDL_GetCurrentVideoDriver(), "x11") == 0) { if (SDL_strcmp(SDL_GetCurrentVideoDriver(), "x11") == 0) {
window_info.type = WindowSystemType::X11; window_info.type = WindowSystemType::X11;