sys: Merge splash screen and ImHex into one application

This fixes so many issues the previous implementation had, especially on Unix
This commit is contained in:
WerWolv
2021-04-20 21:46:48 +02:00
parent d7811e2c55
commit 1f2fe6b93d
24 changed files with 342 additions and 335 deletions

View File

@@ -0,0 +1,41 @@
#pragma once
#include <functional>
#include <future>
#include <vector>
#include <mutex>
struct GLFWwindow;
namespace hex::init {
class WindowSplash {
public:
WindowSplash(int &argc, char **&argv);
~WindowSplash();
bool loop();
void addStartupTask(std::string_view taskName, const std::function<bool()> &task) {
this->m_tasks.emplace_back(taskName, task);
}
private:
GLFWwindow *m_window;
std::mutex m_progressMutex;
float m_progress = 0;
std::string m_currTaskName;
void initGLFW();
void initImGui();
void deinitGLFW();
void deinitImGui();
std::future<bool> processTasksAsync();
std::vector<std::pair<std::string, std::function<bool()>>> m_tasks;
};
}