mirror of
https://gitea.windcorp.ru/Wind-Corporation/Progressia.git
synced 2025-04-22 00:50:45 +03:00
55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
#include <iostream>
|
|
|
|
#include "../main/game.h"
|
|
#include "../main/logging.h"
|
|
#include "../main/meta.h"
|
|
#include "graphics/glfw_mgmt.h"
|
|
#include "graphics/vulkan_mgmt.h"
|
|
|
|
using namespace progressia::main::logging;
|
|
|
|
int main(int argc, char *argv[]) {
|
|
|
|
using namespace progressia;
|
|
|
|
for (int i = 1; i < argc; i++) {
|
|
char *arg = argv[i];
|
|
if (strcmp(arg, "--version") == 0 || strcmp(arg, "-v") == 0) {
|
|
std::cout << main::meta::NAME << " " << main::meta::VERSION << "+"
|
|
<< main::meta::BUILD_ID << " (version number "
|
|
<< main::meta::VERSION_NUMBER << ")" << std::endl;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
info() << "Starting " << main::meta::NAME << " " << main::meta::VERSION
|
|
<< "+" << main::meta::BUILD_ID << " (version number "
|
|
<< main::meta::VERSION_NUMBER << ")";
|
|
debug("Debug is enabled");
|
|
|
|
auto glfwManager = desktop::makeGlfwManager();
|
|
desktop::VulkanManager vulkanManager;
|
|
glfwManager->setOnScreenResize([&]() { vulkanManager.resizeSurface(); });
|
|
glfwManager->showWindow();
|
|
|
|
auto game = main::makeGame(vulkanManager.getVulkan()->getGint());
|
|
|
|
info("Loading complete");
|
|
while (glfwManager->shouldRun()) {
|
|
bool abortFrame = !vulkanManager.startRender();
|
|
if (abortFrame) {
|
|
continue;
|
|
}
|
|
|
|
game->renderTick();
|
|
|
|
vulkanManager.endRender();
|
|
glfwManager->doGlfwRoutine();
|
|
}
|
|
info("Shutting down");
|
|
|
|
vulkanManager.getVulkan()->waitIdle();
|
|
|
|
return 0;
|
|
}
|