+void
+vk_set_viewport(struct vk_ctx *ctx,
+ VkCommandBuffer cmd_buf,
+ float x, float y,
+ float w, float h,
+ float near, float far);
+
+/* swapchain */
+
+bool
+vk_create_swapchain(struct vk_ctx *ctx,
+ int width, int height,
+ bool vsync,
+ VkSurfaceKHR surf,
+ struct vk_swapchain *old_swapchain,
+ struct vk_swapchain *swapchain);
+void
+vk_destroy_swapchain(struct vk_ctx *ctx,
+ struct vk_swapchain *swapchain);
+
+bool
+vk_queue_present(struct vk_swapchain *swapchain,
+ VkQueue queue,
+ uint32_t image_idx,
+ VkSemaphore wait_sema);
+