summaryrefslogtreecommitdiff
path: root/render/vulkan/swapchain.h
diff options
context:
space:
mode:
Diffstat (limited to 'render/vulkan/swapchain.h')
-rw-r--r--render/vulkan/swapchain.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/render/vulkan/swapchain.h b/render/vulkan/swapchain.h
new file mode 100644
index 0000000..d2f3d89
--- /dev/null
+++ b/render/vulkan/swapchain.h
@@ -0,0 +1,25 @@
+#ifndef VKSWAPCHAIN_H
+#define VKSWAPCHAIN_H
+
+#include "surface.h"
+#include "device.h"
+
+struct vkswapchain {
+ VkSwapchainKHR handle;
+ VkSurfaceFormatKHR format_khr;
+ VkFormat format;
+ VkSemaphore render_complete;
+ VkImage *images;
+ VkImageView *views;
+ struct vkimage *depth_attachment;
+ uint8_t max_frames;
+ uint32_t frame;
+ uint32_t img_count;
+};
+
+struct vkswapchain* create_swapchain(struct vksurface *surface, struct vkdev *dev);
+void destroy_swapchain(struct vkswapchain *swapchain, struct vkdev *dev);
+
+void vkswapchain_present(struct vkswapchain *swapchain, struct vkdev *dev);
+
+#endif