Progressia/desktop/main.cpp
OLEGSHA ae4e265a90
Squash improve-ide-compat into main
Fixes GH-5

- cppcheck replaced with clang-tidy
- clang-tidy lint warnings fixed
- Reworked build tools from scratch to make IDE setup easier
- Added 1.5 IDE setup guides
2023-11-10 21:30:55 +01:00

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;
}