Update Vita3k stand alone.
This commit is contained in:
parent
c6e3205968
commit
e0f08b4e08
4 changed files with 43 additions and 624 deletions
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="vita3k-sa"
|
||||
PKG_VERSION="564417b3b6a31296a2a09912c249a0145376e3c8"
|
||||
PKG_VERSION="da73a57"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/Vita3K/Vita3K"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
@ -33,7 +33,8 @@ pre_configure_target() {
|
|||
PKG_CMAKE_OPTS_TARGET+=" -DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DUSE_DISCORD_RICH_PRESENCE=OFF \
|
||||
-DUSE_VITA3K_UPDATE=OFF"
|
||||
-DUSE_VITA3K_UPDATE=OFF \
|
||||
-DXXH_X86DISPATCH_ALLOW_AVX=ON"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
|
|
|
@ -1,15 +1,26 @@
|
|||
diff --git a/vita3k/main.cpp b/vita3k/main.cpp
|
||||
index 4439ad9b6e..c26b84ff82 100644
|
||||
--- a/vita3k/main.cpp
|
||||
+++ b/vita3k/main.cpp
|
||||
@@ -84,8 +84,8 @@ static void run_execv(char *argv[], EmuEnvState &emuenv) {
|
||||
int main(int argc, char *argv[]) {
|
||||
ZoneScoped; // Tracy - Track main function scope
|
||||
Root root_paths;
|
||||
- root_paths.set_base_path(string_utils::utf_to_wide(SDL_GetBasePath()));
|
||||
- root_paths.set_pref_path(string_utils::utf_to_wide(SDL_GetPrefPath(org_name, app_name)));
|
||||
+ root_paths.set_base_path(string_utils::utf_to_wide("/storage/.config/vita3k/"));
|
||||
+ root_paths.set_pref_path(string_utils::utf_to_wide("/storage/psvita/vita3k/"));
|
||||
diff --git a/vita3k/app/src/app_init.cpp b/vita3k/app/src/app_init.cpp
|
||||
index 8536b401..459e21f5 100644
|
||||
--- a/vita3k/app/src/app_init.cpp
|
||||
+++ b/vita3k/app/src/app_init.cpp
|
||||
@@ -103,9 +103,7 @@ void update_viewport(EmuEnvState &state) {
|
||||
}
|
||||
|
||||
// Create default preference path for safety
|
||||
if (!fs::exists(root_paths.get_pref_path()))
|
||||
void init_paths(Root &root_paths) {
|
||||
- auto sdl_base_path = SDL_GetBasePath();
|
||||
- auto base_path = fs_utils::utf8_to_path(sdl_base_path);
|
||||
- SDL_free(sdl_base_path);
|
||||
+ auto base_path = fs_utils::utf8_to_path("/storage/.config/vita3k/");
|
||||
|
||||
root_paths.set_base_path(base_path);
|
||||
root_paths.set_static_assets_path(base_path);
|
||||
@@ -129,9 +127,7 @@ void init_paths(Root &root_paths) {
|
||||
} else {
|
||||
// SDL_GetPrefPath is deferred as it creates the directory.
|
||||
// When using a portable directory, it is not needed.
|
||||
- auto sdl_pref_path = SDL_GetPrefPath(org_name, app_name);
|
||||
- auto pref_path = fs_utils::utf8_to_path(sdl_pref_path);
|
||||
- SDL_free(sdl_pref_path);
|
||||
+ auto pref_path = fs_utils::utf8_to_path("/storage/psvita/vita3k/");
|
||||
|
||||
#if defined(__APPLE__)
|
||||
// Store other data in the user-wide path. Otherwise we may end up dumping
|
||||
|
|
|
@ -1,596 +0,0 @@
|
|||
diff --git a/.gitmodules b/.gitmodules
|
||||
index e57fd159..bb5ed956 100644
|
||||
--- a/.gitmodules
|
||||
+++ b/.gitmodules
|
||||
@@ -90,9 +90,9 @@
|
||||
[submodule "external/tracy"]
|
||||
path = external/tracy
|
||||
url = https://github.com/wolfpld/tracy.git
|
||||
-[submodule "external/nativefiledialog-extended"]
|
||||
- path = external/nativefiledialog-extended
|
||||
- url = https://github.com/btzy/nativefiledialog-extended.git
|
||||
+[submodule "external/nativefiledialog-cmake"]
|
||||
+ path = external/nativefiledialog-cmake
|
||||
+ url = https://github.com/Vita3K/nativefiledialog-cmake
|
||||
[submodule "external/cubeb"]
|
||||
path = external/cubeb
|
||||
url = https://github.com/mozilla/cubeb.git
|
||||
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
|
||||
index d4dcfc94..4cb3e1ee 100644
|
||||
--- a/external/CMakeLists.txt
|
||||
+++ b/external/CMakeLists.txt
|
||||
@@ -344,11 +344,20 @@ target_compile_definitions(tracy PUBLIC $<$<CONFIG:Debug,RelWithDebInfo>:TRACY_E
|
||||
#
|
||||
# target_compile_definitions(tracy PUBLIC TRACY_ENABLE)
|
||||
|
||||
-# Use XDG desktop portals on Linux
|
||||
-set(NFD_PORTAL ON)
|
||||
+# Create alias to prevent the need of multiple changes in case the target name changes
|
||||
+# Batocera - bring back nativefiledialog
|
||||
+if(UNIX)
|
||||
+ find_package(PkgConfig REQUIRED)
|
||||
+ pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
|
||||
-# nativefiledialog-extended
|
||||
-add_subdirectory(nativefiledialog-extended)
|
||||
+ include_directories(${GTK3_INCLUDE_DIRS})
|
||||
+ link_directories(${GTK3_LIBRARY_DIRS})
|
||||
+
|
||||
+ add_definitions(${GTK3_CFLAGS_OTHER})
|
||||
+
|
||||
+ add_library(nativefiledialog STATIC nativefiledialog-cmake/src/nfd_gtk.c nativefiledialog-cmake/src/nfd_common.c)
|
||||
+ target_include_directories(nativefiledialog PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/nativefiledialog-cmake/src/include")
|
||||
+ target_link_libraries(nativefiledialog ${GTK3_LIBRARIES})
|
||||
+endif()
|
||||
+set_property(TARGET nativefiledialog PROPERTY FOLDER externals)
|
||||
|
||||
-# Create alias to prevent the need of multiple changes in case the target name changes
|
||||
-add_library(NFDe::NFDe ALIAS nfd)
|
||||
diff --git a/vita3k/CMakeLists.txt b/vita3k/CMakeLists.txt
|
||||
index e1b27dfd..25d8f88b 100644
|
||||
--- a/vita3k/CMakeLists.txt
|
||||
+++ b/vita3k/CMakeLists.txt
|
||||
@@ -105,7 +105,6 @@ add_subdirectory(features)
|
||||
add_subdirectory(glutil)
|
||||
add_subdirectory(gui)
|
||||
add_subdirectory(gxm)
|
||||
-add_subdirectory(host)
|
||||
add_subdirectory(ime)
|
||||
add_subdirectory(lang)
|
||||
add_subdirectory(net)
|
||||
diff --git a/vita3k/dir_doc.cpp b/vita3k/dir_doc.cpp
|
||||
index b66bbd98..28d5a6f4 100644
|
||||
--- a/vita3k/dir_doc.cpp
|
||||
+++ b/vita3k/dir_doc.cpp
|
||||
@@ -115,12 +115,6 @@
|
||||
* @brief Vita's GXM low-level graphics API translation layer
|
||||
*/
|
||||
|
||||
-/**
|
||||
- * @dir vita3k/host
|
||||
- *
|
||||
- * @brief Host operating system abstraction layer
|
||||
- */
|
||||
-
|
||||
/**
|
||||
* @dir vita3k/io
|
||||
*
|
||||
diff --git a/vita3k/gui/CMakeLists.txt b/vita3k/gui/CMakeLists.txt
|
||||
index ef7de553..811ee661 100644
|
||||
--- a/vita3k/gui/CMakeLists.txt
|
||||
+++ b/vita3k/gui/CMakeLists.txt
|
||||
@@ -51,5 +51,5 @@ add_library(
|
||||
|
||||
target_include_directories(gui PUBLIC include ${CMAKE_SOURCE_DIR}/vita3k)
|
||||
target_link_libraries(gui PUBLIC app compat config dialog emuenv https ime imgui glutil lang regmgr np)
|
||||
-target_link_libraries(gui PRIVATE audio ctrl kernel miniz psvpfsparser pugixml::pugixml stb renderer packages sdl2 touch vkutil host::dialog)
|
||||
+target_link_libraries(gui PRIVATE audio ctrl kernel miniz psvpfsparser pugixml::pugixml stb renderer packages sdl2 touch vkutil nativefiledialog)
|
||||
target_link_libraries(gui PUBLIC tracy)
|
||||
diff --git a/vita3k/gui/src/archive_install_dialog.cpp b/vita3k/gui/src/archive_install_dialog.cpp
|
||||
index 67832991..5d724637 100644
|
||||
--- a/vita3k/gui/src/archive_install_dialog.cpp
|
||||
+++ b/vita3k/gui/src/archive_install_dialog.cpp
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "private.h"
|
||||
|
||||
#include <gui/functions.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
+#include <nfd.h>
|
||||
#include <packages/sfo.h>
|
||||
|
||||
#include <util/string_utils.h>
|
||||
@@ -32,7 +33,7 @@ static bool delete_archive_file;
|
||||
static std::string state, type, title;
|
||||
static std::map<fs::path, std::vector<ContentInfo>> contents_archives;
|
||||
static std::vector<fs::path> invalid_archives;
|
||||
-static std::filesystem::path archive_path = "";
|
||||
+static nfdchar_t *archive_path;
|
||||
static float global_progress = 0.f;
|
||||
static float archives_count = 0.f;
|
||||
|
||||
@@ -104,20 +104,12 @@ void draw_archive_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
gui.file_menu.archive_install_dialog = false;
|
||||
} else {
|
||||
if (state.empty()) {
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
|
||||
- if (type == "file") {
|
||||
- // Set file filters for the file picking dialog
|
||||
- std::vector<host::dialog::filesystem::FileFilter> file_filters = {
|
||||
- { "PlayStation Vita commercial software package (NoNpDrm/FAGDec) / PlayStation Vita homebrew software package", { "zip", "vpk" } },
|
||||
- { "PlayStation Vita commercial software package (NoNpDrm/FAGDec)", { "zip" } },
|
||||
- { "PlayStation Vita homebrew software package", { "vpk" } },
|
||||
- };
|
||||
- // Call file picking dialog from the native file browser
|
||||
- result = host::dialog::filesystem::open_file(archive_path, file_filters);
|
||||
- } else {
|
||||
- result = host::dialog::filesystem::pick_folder(archive_path);
|
||||
- }
|
||||
- if (result == host::dialog::filesystem::Result::SUCCESS) {
|
||||
+ nfdresult_t result = NFD_CANCEL;
|
||||
+ if (type == "file")
|
||||
+ result = NFD_OpenDialog("zip,vpk", nullptr, &archive_path);
|
||||
+ else
|
||||
+ result = NFD_PickFolder(nullptr, &archive_path);
|
||||
+ if (result == NFD_OKAY) {
|
||||
state = "install";
|
||||
} else
|
||||
type.clear();
|
||||
@@ -133,7 +127,7 @@ void draw_archive_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
} else
|
||||
invalid_archives.push_back(archive_path);
|
||||
};
|
||||
- const auto contents_path = fs::path(archive_path.wstring());
|
||||
+ const auto contents_path = fs::path(string_utils::utf_to_wide(archive_path));
|
||||
if (type == "directory") {
|
||||
const auto archives_path = get_path_of_archives(contents_path);
|
||||
archives_count = float(archives_path.size());
|
||||
@@ -264,7 +258,7 @@ void draw_archive_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
for (const auto archive : invalid_archives)
|
||||
fs::remove(archive);
|
||||
}
|
||||
- archive_path = "";
|
||||
+ archive_path = nullptr;
|
||||
gui.file_menu.archive_install_dialog = false;
|
||||
delete_archive_file = false;
|
||||
contents_archives.clear();
|
||||
diff --git a/vita3k/gui/src/firmware_install_dialog.cpp b/vita3k/gui/src/firmware_install_dialog.cpp
|
||||
index 1b7208e6..f29150f7 100644
|
||||
--- a/vita3k/gui/src/firmware_install_dialog.cpp
|
||||
+++ b/vita3k/gui/src/firmware_install_dialog.cpp
|
||||
@@ -19,18 +19,19 @@
|
||||
|
||||
#include <config/state.h>
|
||||
#include <gui/functions.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <packages/functions.h>
|
||||
#include <util/log.h>
|
||||
#include <util/string_utils.h>
|
||||
|
||||
+#include <nfd.h>
|
||||
+
|
||||
#include <thread>
|
||||
|
||||
namespace gui {
|
||||
|
||||
std::string fw_version;
|
||||
bool delete_pup_file;
|
||||
-std::filesystem::path pup_path = "";
|
||||
+nfdchar_t *pup_path;
|
||||
|
||||
static void get_firmware_version(EmuEnvState &emuenv) {
|
||||
fs::ifstream versionFile(emuenv.pref_path + L"/PUP_DEC/PUP/version.txt");
|
||||
@@ -46,7 +46,7 @@ static void get_firmware_version(EmuEnvState &emuenv) {
|
||||
}
|
||||
|
||||
void draw_firmware_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
|
||||
+ nfdresult_t result = NFD_CANCEL;
|
||||
|
||||
static std::mutex install_mutex;
|
||||
static bool draw_file_dialog = true;
|
||||
@@ -62,23 +62,23 @@ void draw_firmware_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
std::lock_guard<std::mutex> lock(install_mutex);
|
||||
|
||||
if (draw_file_dialog) {
|
||||
- result = host::dialog::filesystem::open_file(pup_path, { { "PlayStation Vita Firmware Package", { "PUP" } } });
|
||||
+ result = NFD_OpenDialog("PUP", nullptr, &pup_path);
|
||||
draw_file_dialog = false;
|
||||
finished_installing = false;
|
||||
|
||||
- if (result == host::dialog::filesystem::Result::SUCCESS) {
|
||||
+ if (result == NFD_OKAY) {
|
||||
std::thread installation([&emuenv]() {
|
||||
- install_pup(emuenv.pref_path, pup_path.string(), progress_callback);
|
||||
+ install_pup(emuenv.pref_path, pup_path, progress_callback);
|
||||
std::lock_guard<std::mutex> lock(install_mutex);
|
||||
finished_installing = true;
|
||||
get_firmware_version(emuenv);
|
||||
});
|
||||
installation.detach();
|
||||
- } else if (result == host::dialog::filesystem::Result::CANCEL) {
|
||||
+ } else if (result == NFD_CANCEL) {
|
||||
gui.file_menu.firmware_install_dialog = false;
|
||||
draw_file_dialog = true;
|
||||
} else {
|
||||
- LOG_ERROR("Error initializing file dialog: {}", host::dialog::filesystem::get_error());
|
||||
+ LOG_ERROR("Error initializing file dialog: {}", NFD_GetError());
|
||||
gui.file_menu.firmware_install_dialog = false;
|
||||
draw_file_dialog = true;
|
||||
}
|
||||
@@ -117,7 +118,7 @@ void draw_firmware_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
ImGui::SetCursorPosX(ImGui::GetWindowWidth() / 2 - 30);
|
||||
if (ImGui::Button("OK", BUTTON_SIZE)) {
|
||||
if (delete_pup_file) {
|
||||
- fs::remove(fs::path(pup_path.wstring()));
|
||||
+ fs::remove(fs::path(string_utils::utf_to_wide(pup_path)));
|
||||
delete_pup_file = false;
|
||||
}
|
||||
if (emuenv.cfg.initial_setup)
|
||||
diff --git a/vita3k/gui/src/initial_setup.cpp b/vita3k/gui/src/initial_setup.cpp
|
||||
index 0bbe3548..e327c6cb 100644
|
||||
--- a/vita3k/gui/src/initial_setup.cpp
|
||||
+++ b/vita3k/gui/src/initial_setup.cpp
|
||||
@@ -19,11 +19,12 @@
|
||||
|
||||
#include <config/state.h>
|
||||
#include <gui/functions.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <lang/functions.h>
|
||||
|
||||
#include <util/string_utils.h>
|
||||
|
||||
+#include <nfd.h>
|
||||
+
|
||||
namespace gui {
|
||||
|
||||
enum InitialSetup {
|
||||
@@ -121,12 +122,12 @@ void draw_initial_setup(GuiState &gui, EmuEnvState &emuenv) {
|
||||
ImGui::TextWrapped("%s", emuenv.cfg.pref_path.c_str());
|
||||
ImGui::SetCursorPos(!is_default_path ? ImVec2((WINDOW_SIZE.x / 2.f) - BIG_BUTTON_SIZE.x - (20.f * SCALE.x), BIG_BUTTON_POS.y) : BIG_BUTTON_POS);
|
||||
if (ImGui::Button("Change Emulator Path", BIG_BUTTON_SIZE)) {
|
||||
- std::filesystem::path emulator_path = "";
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::pick_folder(emulator_path);
|
||||
+ nfdchar_t *emulator_path = nullptr;
|
||||
+ nfdresult_t result = NFD_PickFolder(nullptr, &emulator_path);
|
||||
|
||||
- if ((result == host::dialog::filesystem::Result::SUCCESS) && (emulator_path.wstring() != emuenv.pref_path)) {
|
||||
- emuenv.pref_path = emulator_path.wstring() + L'/';
|
||||
- emuenv.cfg.pref_path = emulator_path.string();
|
||||
+ if ((result == NFD_OKAY) && (string_utils::utf_to_wide(emulator_path) != emuenv.pref_path)) {
|
||||
+ emuenv.pref_path = string_utils::utf_to_wide(emulator_path) + L'/';
|
||||
+ emuenv.cfg.pref_path = emulator_path;
|
||||
}
|
||||
}
|
||||
if (!is_default_path) {
|
||||
diff --git a/vita3k/gui/src/license_install_dialog.cpp b/vita3k/gui/src/license_install_dialog.cpp
|
||||
index beabedb8..7eb910a5 100644
|
||||
--- a/vita3k/gui/src/license_install_dialog.cpp
|
||||
+++ b/vita3k/gui/src/license_install_dialog.cpp
|
||||
@@ -17,15 +17,15 @@
|
||||
|
||||
#include "private.h"
|
||||
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <misc/cpp/imgui_stdlib.h>
|
||||
#include <packages/functions.h>
|
||||
#include <util/string_utils.h>
|
||||
+#include <nfd.h>
|
||||
|
||||
namespace gui {
|
||||
|
||||
static std::string state, title, zRIF;
|
||||
-std::filesystem::path license_path = "";
|
||||
+nfdchar_t *license_path;
|
||||
static bool delete_license_file;
|
||||
|
||||
void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
@@ -67,10 +67,10 @@ void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
if (ImGui::Button(common["cancel"].c_str(), BUTTON_SIZE))
|
||||
gui.file_menu.license_install_dialog = false;
|
||||
} else if (state == "license") {
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
|
||||
- result = host::dialog::filesystem::open_file(license_path, { { "PlayStation Vita software license file", { "bin", "rif" } } });
|
||||
- if (result == host::dialog::filesystem::Result::SUCCESS) {
|
||||
- if (copy_license(emuenv, fs::path(license_path.wstring())))
|
||||
+ nfdresult_t result = NFD_CANCEL;
|
||||
+ result = NFD_OpenDialog("bin,rif", nullptr, &license_path);
|
||||
+ if (result == NFD_OKAY) {
|
||||
+ if (copy_license(emuenv, license_path))
|
||||
state = "success";
|
||||
else
|
||||
state = "fail";
|
||||
@@ -105,12 +105,12 @@ void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
ImGui::Spacing();
|
||||
ImGui::Separator();
|
||||
ImGui::Spacing();
|
||||
- if (license_path != "")
|
||||
+ if (license_path)
|
||||
ImGui::Checkbox(license["delete_bin_rif"].c_str(), &delete_license_file);
|
||||
ImGui::SetCursorPos(ImVec2(POS_BUTTON, ImGui::GetWindowSize().y - BUTTON_SIZE.y - (20.f * SCALE.y)));
|
||||
if (ImGui::Button(common["ok"].c_str(), BUTTON_SIZE)) {
|
||||
if (delete_license_file) {
|
||||
- fs::remove(fs::path(license_path.wstring()));
|
||||
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(license_path))));
|
||||
delete_license_file = false;
|
||||
}
|
||||
license_path = nullptr;
|
||||
diff --git a/vita3k/gui/src/pkg_install_dialog.cpp b/vita3k/gui/src/pkg_install_dialog.cpp
|
||||
index 75c11214..46fcf6f8 100644
|
||||
--- a/vita3k/gui/src/pkg_install_dialog.cpp
|
||||
+++ b/vita3k/gui/src/pkg_install_dialog.cpp
|
||||
@@ -18,7 +18,6 @@
|
||||
#include "private.h"
|
||||
|
||||
#include <gui/functions.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <misc/cpp/imgui_stdlib.h>
|
||||
#include <packages/functions.h>
|
||||
#include <packages/pkg.h>
|
||||
@@ -25,19 +25,18 @@
|
||||
#include <rif2zrif.h>
|
||||
#include <util/log.h>
|
||||
#include <util/string_utils.h>
|
||||
-
|
||||
+#include <nfd.h>
|
||||
#include <thread>
|
||||
|
||||
namespace gui {
|
||||
|
||||
-static std::filesystem::path pkg_path = "";
|
||||
-static std::filesystem::path license_path = "";
|
||||
+static nfdchar_t *pkg_path, *license_path;
|
||||
static std::string state, title, zRIF;
|
||||
static bool draw_file_dialog = true;
|
||||
static bool delete_pkg_file, delete_license_file;
|
||||
|
||||
void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
|
||||
+ nfdresult_t result = NFD_CANCEL;
|
||||
static std::atomic<float> progress(0);
|
||||
static std::mutex install_mutex;
|
||||
static const auto progress_callback = [&](float updated_progress) {
|
||||
@@ -53,15 +53,15 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
const auto BUTTON_SIZE = ImVec2(160.f * SCALE.x, 45.f * SCALE.y);
|
||||
|
||||
if (draw_file_dialog) {
|
||||
- result = host::dialog::filesystem::open_file(pkg_path, { { "PlayStation Store Downloaded Package", { "pkg" } } });
|
||||
+ result = NFD_OpenDialog("pkg", nullptr, &pkg_path);
|
||||
draw_file_dialog = false;
|
||||
- if (result == host::dialog::filesystem::Result::SUCCESS)
|
||||
+ if (result == NFD_OKAY)
|
||||
ImGui::OpenPopup("install");
|
||||
- else if (result == host::dialog::filesystem::Result::CANCEL) {
|
||||
+ else if (result == NFD_CANCEL) {
|
||||
gui.file_menu.pkg_install_dialog = false;
|
||||
draw_file_dialog = true;
|
||||
} else {
|
||||
- LOG_ERROR("Error initializing file dialog: {}", host::dialog::filesystem::get_error());
|
||||
+ LOG_ERROR("Error initializing file dialog: {}", NFD_GetError());
|
||||
gui.file_menu.pkg_install_dialog = false;
|
||||
draw_file_dialog = true;
|
||||
}
|
||||
@@ -97,9 +96,9 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
draw_file_dialog = true;
|
||||
}
|
||||
} else if (state == "license") {
|
||||
- result = host::dialog::filesystem::open_file(license_path, { { "PlayStation Vita software license file", { "bin", "rif" } } });
|
||||
- if (result == host::dialog::filesystem::Result::SUCCESS) {
|
||||
- fs::ifstream binfile(license_path.wstring(), std::ios::in | std::ios::binary | std::ios::ate);
|
||||
+ result = NFD_OpenDialog("bin,rif", nullptr, &license_path);
|
||||
+ if (result == NFD_OKAY) {
|
||||
+ fs::ifstream binfile(string_utils::utf_to_wide(std::string(license_path)), std::ios::in | std::ios::binary | std::ios::ate);
|
||||
zRIF = rif2zrif(binfile);
|
||||
state = "install";
|
||||
} else
|
||||
@@ -125,7 +125,7 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
state = "install";
|
||||
} else if (state == "install") {
|
||||
std::thread installation([&emuenv]() {
|
||||
- if (install_pkg(pkg_path.string(), emuenv, zRIF, progress_callback)) {
|
||||
+ if (install_pkg(std::string(pkg_path), emuenv, zRIF, progress_callback)) {
|
||||
std::lock_guard<std::mutex> lock(install_mutex);
|
||||
state = "success";
|
||||
} else {
|
||||
@@ -143,17 +142,17 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
ImGui::Separator();
|
||||
ImGui::Spacing();
|
||||
ImGui::Checkbox(lang["delete_pkg"].c_str(), &delete_pkg_file);
|
||||
- if (license_path != "")
|
||||
+ if (license_path)
|
||||
ImGui::Checkbox(lang["delete_bin_rif"].c_str(), &delete_license_file);
|
||||
ImGui::Spacing();
|
||||
ImGui::SetCursorPos(ImVec2(POS_BUTTON, ImGui::GetWindowSize().y - BUTTON_SIZE.y - (20.f * SCALE.y)));
|
||||
if (ImGui::Button(common["ok"].c_str(), BUTTON_SIZE)) {
|
||||
if (delete_pkg_file) {
|
||||
- fs::remove(fs::path(pkg_path.wstring()));
|
||||
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(pkg_path))));
|
||||
delete_pkg_file = false;
|
||||
}
|
||||
if (delete_license_file) {
|
||||
- fs::remove(fs::path(license_path.wstring()));
|
||||
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(pkg_path))));
|
||||
delete_license_file = false;
|
||||
}
|
||||
if ((emuenv.app_info.app_category.find("gd") != std::string::npos) || (emuenv.app_info.app_category.find("gp") != std::string::npos)) {
|
||||
@@ -160,8 +160,8 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
save_apps_cache(gui, emuenv);
|
||||
}
|
||||
update_notice_info(gui, emuenv, "content");
|
||||
- pkg_path = "";
|
||||
- license_path = "";
|
||||
+ pkg_path = nullptr;
|
||||
+ license_path = nullptr;
|
||||
gui.file_menu.pkg_install_dialog = false;
|
||||
draw_file_dialog = true;
|
||||
state.clear();
|
||||
@@ -175,7 +175,7 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
|
||||
ImGui::SetCursorPos(ImVec2(POS_BUTTON, ImGui::GetWindowSize().y - BUTTON_SIZE.y - (20.f * SCALE.y)));
|
||||
if (ImGui::Button("OK", BUTTON_SIZE)) {
|
||||
gui.file_menu.pkg_install_dialog = false;
|
||||
- pkg_path = "";
|
||||
+ pkg_path = nullptr;
|
||||
draw_file_dialog = true;
|
||||
work_path = "";
|
||||
state.clear();
|
||||
diff --git a/vita3k/gui/src/settings.cpp b/vita3k/gui/src/settings.cpp
|
||||
index 72ffabdb..7a6f4265 100644
|
||||
--- a/vita3k/gui/src/settings.cpp
|
||||
+++ b/vita3k/gui/src/settings.cpp
|
||||
@@ -20,7 +20,6 @@
|
||||
#include <config/functions.h>
|
||||
#include <config/state.h>
|
||||
#include <gui/functions.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <ime/functions.h>
|
||||
#include <io/device.h>
|
||||
#include <io/state.h>
|
||||
@@ -29,6 +28,7 @@
|
||||
#include <util/safe_time.h>
|
||||
#include <util/string_utils.h>
|
||||
|
||||
+#include <nfd.h>
|
||||
#include <pugixml.hpp>
|
||||
#include <stb_image.h>
|
||||
|
||||
@@ -581,11 +581,11 @@ void draw_settings(GuiState &gui, EmuEnvState &emuenv) {
|
||||
sub_menu.clear();
|
||||
}
|
||||
} else if (sub_menu == "image") {
|
||||
- std::filesystem::path image_path = "";
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::open_file(image_path, { { "Image file", { "bmp", "gif", "jpg", "png", "tif" } } });
|
||||
+ nfdchar_t *image_path;
|
||||
+ nfdresult_t result = NFD_OpenDialog("bmp,gif,jpg,png,tif", nullptr, &image_path);
|
||||
|
||||
- if ((result == host::dialog::filesystem::Result::SUCCESS) && init_user_start_background(gui, image_path.string())) {
|
||||
- gui.users[emuenv.io.user_id].start_path = image_path.string();
|
||||
+ if ((result == NFD_OKAY) && init_user_start_background(gui, image_path)) {
|
||||
+ gui.users[emuenv.io.user_id].start_path = image_path;
|
||||
gui.users[emuenv.io.user_id].start_type = "image";
|
||||
save_user(gui, emuenv, emuenv.io.user_id);
|
||||
}
|
||||
@@ -641,12 +641,12 @@ void draw_settings(GuiState &gui, EmuEnvState &emuenv) {
|
||||
ImGui::NextColumn();
|
||||
}
|
||||
if (ImGui::Selectable(theme_background.home_screen_backgrounds["add_background"].c_str(), false, ImGuiSelectableFlags_None, SIZE_PACKAGE)) {
|
||||
- std::filesystem::path background_path = "";
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::open_file(background_path, { { "Image file", { "bmp", "gif", "jpg", "png", "tif" } } });
|
||||
+ nfdchar_t *background_path;
|
||||
+ nfdresult_t result = NFD_OpenDialog("bmp,gif,jpg,png,tif", nullptr, &background_path);
|
||||
|
||||
- if ((result == host::dialog::filesystem::Result::SUCCESS) && (!gui.user_backgrounds.contains(background_path.string()))) {
|
||||
- if (init_user_background(gui, emuenv, background_path.string())) {
|
||||
- gui.users[emuenv.io.user_id].backgrounds.push_back(background_path.string());
|
||||
+ if ((result == NFD_OKAY) && (gui.user_backgrounds.find(background_path) == gui.user_backgrounds.end())) {
|
||||
+ if (init_user_background(gui, emuenv, background_path)) {
|
||||
+ gui.users[emuenv.io.user_id].backgrounds.push_back(background_path);
|
||||
gui.users[emuenv.io.user_id].use_theme_bg = false;
|
||||
save_user(gui, emuenv, emuenv.io.user_id);
|
||||
}
|
||||
diff --git a/vita3k/gui/src/settings_dialog.cpp b/vita3k/gui/src/settings_dialog.cpp
|
||||
index 37c05f1c..73dc08c3 100644
|
||||
--- a/vita3k/gui/src/settings_dialog.cpp
|
||||
+++ b/vita3k/gui/src/settings_dialog.cpp
|
||||
@@ -21,7 +21,6 @@
|
||||
#include <config/functions.h>
|
||||
#include <config/state.h>
|
||||
#include <display/state.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <io/state.h>
|
||||
#include <kernel/state.h>
|
||||
#include <renderer/state.h>
|
||||
@@ -43,6 +42,7 @@
|
||||
#include <SDL.h>
|
||||
|
||||
#include <algorithm>
|
||||
+#include <nfd.h>
|
||||
#include <pugixml.hpp>
|
||||
#include <sstream>
|
||||
|
||||
@@ -105,12 +105,12 @@ static void reset_emulator(GuiState &gui, EmuEnvState &emuenv) {
|
||||
}
|
||||
|
||||
static void change_emulator_path(GuiState &gui, EmuEnvState &emuenv) {
|
||||
- std::filesystem::path emulator_path = "";
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::pick_folder(emulator_path);
|
||||
+ nfdchar_t *emulator_path = nullptr;
|
||||
+ nfdresult_t result = NFD_PickFolder(nullptr, &emulator_path);
|
||||
|
||||
- if (result == host::dialog::filesystem::Result::SUCCESS && emulator_path.wstring() != emuenv.pref_path) {
|
||||
+ if (result == NFD_OKAY && string_utils::utf_to_wide(emulator_path) != emuenv.pref_path) {
|
||||
// Refresh the working paths
|
||||
- emuenv.pref_path = emulator_path.wstring() + L'/';
|
||||
+ emuenv.pref_path = string_utils::utf_to_wide(emulator_path) + L'/';
|
||||
|
||||
// TODO: Move app old to new path
|
||||
reset_emulator(gui, emuenv);
|
||||
diff --git a/vita3k/gui/src/trophy_collection.cpp b/vita3k/gui/src/trophy_collection.cpp
|
||||
index 85854dc3..97193c7d 100644
|
||||
--- a/vita3k/gui/src/trophy_collection.cpp
|
||||
+++ b/vita3k/gui/src/trophy_collection.cpp
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <io/device.h>
|
||||
#include <io/functions.h>
|
||||
|
||||
+#include <nfd.h>
|
||||
#include <pugixml.hpp>
|
||||
#include <stb_image.h>
|
||||
|
||||
diff --git a/vita3k/gui/src/user_management.cpp b/vita3k/gui/src/user_management.cpp
|
||||
index e1d23bfb..f0b8a935 100644
|
||||
--- a/vita3k/gui/src/user_management.cpp
|
||||
+++ b/vita3k/gui/src/user_management.cpp
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
#include <display/state.h>
|
||||
#include <gui/functions.h>
|
||||
-#include <host/dialog/filesystem.hpp>
|
||||
#include <io/state.h>
|
||||
#include <np/common.h>
|
||||
|
||||
#include <util/log.h>
|
||||
#include <util/string_utils.h>
|
||||
|
||||
+#include <nfd.h>
|
||||
#include <pugixml.hpp>
|
||||
#include <stb_image.h>
|
||||
|
||||
@@ -373,11 +373,11 @@ void draw_user_management(GuiState &gui, EmuEnvState &emuenv) {
|
||||
const auto CHANGE_AVATAR_BTN_SIZE = ImGui::CalcTextSize(lang["change_avatar"].c_str()).x + (ImGui::GetStyle().FramePadding.x * 2.f);
|
||||
ImGui::SetCursorPos(ImVec2(AVATAR_POS.x + (AVATAR_SIZE.x / 2.f) - (CHANGE_AVATAR_BTN_SIZE / 2.f), AVATAR_POS.y + AVATAR_SIZE.y));
|
||||
if (ImGui::Button(lang["choose_avatar"].c_str(), CHANGE_AVATAR_BTN_SIZE)) {
|
||||
- std::filesystem::path avatar_path = "";
|
||||
- host::dialog::filesystem::Result result = host::dialog::filesystem::open_file(avatar_path, { { "Image file", { "bmp", "gif", "jpg", "png", "tif" } } });
|
||||
+ nfdchar_t *avatar_path;
|
||||
+ nfdresult_t result = NFD_OpenDialog("bmp,gif,jpg,png,tif", nullptr, &avatar_path);
|
||||
|
||||
- if ((result == host::dialog::filesystem::Result::SUCCESS) && init_avatar(gui, emuenv, "temp", avatar_path.string()))
|
||||
- temp.avatar = avatar_path.string();
|
||||
+ if ((result == NFD_OKAY) && init_avatar(gui, emuenv, "temp", avatar_path))
|
||||
+ temp.avatar = avatar_path;
|
||||
}
|
||||
ImGui::SetWindowFontScale(0.8f);
|
||||
const auto INPUT_NAME_SIZE = 330.f * SCALE.x;
|
||||
diff --git a/vita3k/host/CMakeLists.txt b/vita3k/host/CMakeLists.txt
|
||||
deleted file mode 100644
|
||||
index f9d89128..00000000
|
||||
--- a/vita3k/host/CMakeLists.txt
|
||||
+++ /dev/null
|
||||
@@ -1 +0,0 @@
|
||||
-add_subdirectory(dialog)
|
||||
diff --git a/vita3k/host/dialog/CMakeLists.txt b/vita3k/host/dialog/CMakeLists.txt
|
||||
deleted file mode 100644
|
||||
index d577a152..00000000
|
||||
--- a/vita3k/host/dialog/CMakeLists.txt
|
||||
+++ /dev/null
|
||||
@@ -1,11 +0,0 @@
|
||||
-add_library(host_dialog STATIC
|
||||
- src/filesystem.cpp
|
||||
-)
|
||||
-
|
||||
-# Create alias for more friendly naming and avoid conflicts
|
||||
-# in global CMake scope
|
||||
-add_library(host::dialog ALIAS host_dialog)
|
||||
-
|
||||
-target_include_directories(host_dialog PUBLIC include)
|
||||
-
|
||||
-target_link_libraries(host_dialog PRIVATE NFDe::NFDe)
|
|
@ -1,12 +1,15 @@
|
|||
diff --git a/vita3k/https/CMakeLists.txt b/vita3k/https/CMakeLists.txt
|
||||
index f64456bd..e9555080 100644
|
||||
--- a/vita3k/https/CMakeLists.txt
|
||||
+++ b/vita3k/https/CMakeLists.txt
|
||||
@@ -6,5 +6,6 @@ add_library(
|
||||
)
|
||||
|
||||
target_include_directories(https PUBLIC include)
|
||||
-target_include_directories(https PRIVATE ${OPENSSL_INCLUDE_DIR})
|
||||
+target_include_directories(https PRIVATE crypto ssl)
|
||||
target_link_libraries(https PUBLIC util)
|
||||
+target_link_libraries(https PRIVATE crypto ssl)
|
||||
diff --git a/vita3k/CMakeLists.txt b/vita3k/CMakeLists.txt
|
||||
index 04177f04..4adb1e0b 100644
|
||||
--- a/vita3k/CMakeLists.txt
|
||||
+++ b/vita3k/CMakeLists.txt
|
||||
@@ -136,10 +136,6 @@ if(USE_DISCORD_RICH_PRESENCE)
|
||||
target_link_libraries(vita3k PRIVATE discord-rpc)
|
||||
endif()
|
||||
|
||||
-if(LINUX)
|
||||
- target_link_libraries(vita3k PRIVATE -static-libgcc -static-libstdc++)
|
||||
-endif()
|
||||
-
|
||||
set_target_properties(vita3k PROPERTIES OUTPUT_NAME Vita3K
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
||||
|
|
Loading…
Reference in a new issue