1
0
mirror of synced 2024-11-27 17:10:51 +01:00
ImHex/main/include/init/splash_window.hpp
WerWolv d8219ad971
build: Cleaned up cmake build structure (#399)
* build: Cleanup build process, move main application to /main folder

* build: Try fixing MacOS bundling

* build: Fixed swapped parameters

* build: One imhex -> main too much

* build: Move resources to a better location

* build: Try to fix macos bundle creation

* build: More bundle fixes

* build: Fixed syntax

* build: Another try

* build: Added macos debugging stuff

* build: Fix bundle path

* build: Removed duplicated adding of Frameworks folder to rpath

* build: Removed debugging
2022-01-15 00:14:12 +01:00

44 lines
823 B
C++

#pragma once
#include <functional>
#include <future>
#include <vector>
#include <mutex>
struct GLFWwindow;
namespace hex::init {
using TaskFunction = std::function<bool()>;
class WindowSplash {
public:
WindowSplash();
~WindowSplash();
bool loop();
void addStartupTask(const std::string &taskName, const TaskFunction &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, TaskFunction>> m_tasks;
};
}