summaryrefslogtreecommitdiff
path: root/src/app.cpp
diff options
context:
space:
mode:
authorChuyan Zhang <me@zcy.moe>2024-09-14 22:38:51 -0700
committerChuyan Zhang <me@zcy.moe>2024-09-14 22:38:51 -0700
commite5eed5bdfa01cf549436c6001eaf334d266acc40 (patch)
tree0cef8c1c20aca8380d058c2676e0718040e3beda /src/app.cpp
parent7f14138e1baa2c40fb30d90ebcd45ad17b12e0a3 (diff)
downloadiris-e5eed5bdfa01cf549436c6001eaf334d266acc40.tar.gz
iris-e5eed5bdfa01cf549436c6001eaf334d266acc40.zip
fix lifetime problem
Diffstat (limited to 'src/app.cpp')
-rw-r--r--src/app.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/app.cpp b/src/app.cpp
index 6148e04..f48edd9 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -16,7 +16,7 @@
#include <vector>
int main(int argc, char** argv) {
- argparse::ArgumentParser program("IrisRenderer");
+ argparse::ArgumentParser program("Iris Renderer");
program.add_argument("width")
.help("display width of the window")
.scan<'i', int>();
@@ -48,15 +48,11 @@ int main(int argc, char** argv) {
return -1;
}
auto glfw_extensions = get_glfw_instance_extensions();
- for (const auto& extension : glfw_extensions) {
- std::cerr << "GLFW extension: " << extension << std::endl;
- }
-
std::vector<std::string> layers;
- iris::Device device({}, glfw_extensions);
+ iris::Device device(layers, glfw_extensions);
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
- auto window = glfwCreateWindow(window_width, window_height, "IrisRenderer", nullptr, nullptr);
+ auto window = glfwCreateWindow(window_width, window_height, "Iris Renderer", nullptr, nullptr);
if (window == nullptr) {
std::cerr << "Failed to create GLFW window" << std::endl;
abort();
@@ -66,7 +62,9 @@ int main(int argc, char** argv) {
iris::Texture2D debug_texture = device.create_texture_from_image(
"assets/debug.png",
VK_FORMAT_R8G8B8A8_UNORM,
- VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT,
+ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
+ VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
+ VK_IMAGE_USAGE_TRANSFER_DST_BIT,
VmaAllocationCreateInfo {
.flags = VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT,
.usage = VMA_MEMORY_USAGE_AUTO,
@@ -74,7 +72,6 @@ int main(int argc, char** argv) {
// end load debug image
auto swapchain = iris::Swapchain(window, device, window_width, window_height);
- std::cerr << "Swapchain created" << std::endl;
while (!glfwWindowShouldClose(swapchain.window)) {
glfwPollEvents();
@@ -92,19 +89,16 @@ int main(int argc, char** argv) {
swapchain.needs_recreate = false;
}
- std::cerr << "Rendering frame" << std::endl;
ImGui_ImplVulkan_NewFrame();
ImGui_ImplGlfw_NewFrame();
swapchain.start_frame();
- std::cerr << "Frame started" << std::endl;
ImGui::NewFrame();
ImGui::ShowDemoWindow();
ImGui::Render();
- std::cerr << "ImGui rendered" << std::endl;
swapchain.display(debug_texture);
- std::cerr << "Frame displayed" << std::endl;
}
+ debug_texture->release();
ImGui_ImplVulkan_Shutdown();
glfwDestroyWindow(swapchain.window);