-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.cpp
More file actions
48 lines (33 loc) · 1.25 KB
/
app.cpp
File metadata and controls
48 lines (33 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "app.hpp"
Application::Application(void) : appname("App") {}
Application::Application(const std::string name) : appname(name) {}
Application::Application(const uint32_t &w, const uint32_t &h) : win(w, h), appname("App") {}
Application::Application(const std::string name, const uint32_t &w, const uint32_t &h) : win(w, h), appname(name) {}
void Application::run(void) {
win.initWin();
initVulkan();
mainloop();
cleanup();
}
void Application::initVulkan(void) {
inst.layerExtension.getInstanceLayerProperties();
if(inst.createInstance(appname.c_str()) != VK_SUCCESS) {
throw std::runtime_error("Failed to create instance");
}
if(inst.layerExtension.setupDebugMessenger(inst.instance) != VK_SUCCESS) {
throw std::runtime_error("Failed to setup debug messenger");
}
device.enumeratePhysicalDevices(inst.instance);
device.createLogicalDevice();
}
void Application::mainloop(void) {
while(!glfwWindowShouldClose(win.window)) {
win.processInput();
glfwPollEvents();
}
}
void Application::cleanup(void) {
device.destroyDevice();
inst.destroyInstance();
win.destWin();
}