Files
LearningVulkan/main.cpp
2026-01-05 10:36:27 -05:00

75 lines
1.2 KiB
C++

#include "Logger.h"
#include "VulkanInstanceManager.h"
#include "GlfwWindowManager.h"
struct AppConfig
{
std::string Title = "Learning Vulkan";
uint32_t Width = 800;
uint32_t Height = 600;
bool bResizable = false;
bool bFullscreen = false;
bool bValidationEnabled = true;
bool bVerboseLogging = false;
};
class HelloTriangleApplication
{
public:
void Run()
{
InitGlfw();
InitVulkan();
MainLoop();
Cleanup();
}
private:
VulkanInstanceManager VkInstanceManager;
GlfwWindowManager GlfwWindowManager;
AppConfig Settings = {};
void InitVulkan()
{
FVulkanConfig Config = { Settings.bValidationEnabled, Settings.bVerboseLogging };
VkInstanceManager.Initialize(Config);
}
void InitGlfw()
{
FWindowConfig Config = { Settings.Title, Settings.Width, Settings.Height, Settings.bResizable, Settings.bFullscreen };
GlfwWindowManager.Initialize(Config);
}
void MainLoop()
{
while (!GlfwWindowManager.ShouldClose())
{
GlfwWindowManager.PollEvents();
}
}
void Cleanup()
{
// VkInstanceManager.Cleanup();
// GlfwWindowManager.Cleanup();
}
};
int main()
{
HelloTriangleApplication app;
try
{
app.Run();
}
catch (const std::exception& e)
{
Log::Error(e.what());
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}