int vk_reshape(int xsz, int ysz);
+/* returns the number of swapchain images */
+int vk_num_swap_images(void);
+VkImageView vk_swap_image(int idx);
/* returns the image index, or -1 on failure. Pass optional semaphore to signal */
-int vk_next_image(VkSemaphore sem);
+int vk_next_swap_image(VkSemaphore sem);
+
+int vk_submit(VkQueue q, VkCommandBuffer cmdbuf, VkSemaphore semwait, VkSemaphore semsig);
+int vk_present(VkQueue q, int imgid, VkSemaphore semwait);
int vk_find_qfamily(unsigned int flags);
VkQueue vk_getq_fam(int fam, int n);
VkCommandBuffer vk_create_cmdbuf_fam(int qfam, int level);
VkCommandBuffer vk_create_cmdbuf(unsigned int qflags, int level);
+/* return one of the swap-chain command buffers */
+VkCommandBuffer vk_get_cmdbuf(int imgid);
int vk_create_rpass(void);
void vk_free_rpass(int rp);
VkSemaphore vk_create_sem(void);
void vk_free_sem(VkSemaphore sem);
+/* random helpers */
+void vk_rect(VkRect2D *r, int x, int y, int w, int h);
#endif /* VK_H_ */