X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fvkutil.h;h=eda0e7170c30b4c74559565c3cd6ac4dd0ae07e8;hb=32feb79dc3b9ddeeab84a0329d53b8aaff86bb80;hp=f9cbf94835d0b0adc0d3a73c93d34ec57d60a097;hpb=9148ff7614b1dc22fd5d1dcf6d74e2fb4ff13706;p=demo diff --git a/src/vulkan/vkutil.h b/src/vulkan/vkutil.h index f9cbf94..eda0e71 100644 --- a/src/vulkan/vkutil.h +++ b/src/vulkan/vkutil.h @@ -2,10 +2,12 @@ #define VKUTIL_H_ #include +#include -extern VkSwapchainKHR vkswapchain; -extern VkImage *vkswapchain_images; -extern VkSurfaceKHR vksurface; +extern VkPipeline *vkgparent_pipeline; +extern VkDescriptorSet *vkdescset; +extern VkFramebuffer *vkfbufs; +extern VkRenderPass vkrpass; extern VkInstance vkinst; extern VkPhysicalDevice vkpdev; extern VkDevice vkdev; @@ -13,7 +15,16 @@ extern VkQueue vkq; extern VkCommandPool vkcmdpool; extern VkCommandBuffer vkcmdbuf; /* primary command buffer */ extern int vkqfamily; -extern int vknext_swapchain_image; + +/* presentation */ +extern VkSurfaceKHR vksurface; +extern VkSwapchainKHR vkswapchain; +extern int vknum_swapchain_images; +extern VkImage *vkswapchain_images; +extern VkImageView *vkswapchain_views; +extern int vk_curr_swapchain_image; +extern VkSemaphore vk_img_avail_sema; +extern VkSemaphore vk_rend_done_sema; struct vku_buffer { VkBuffer buf; @@ -29,6 +40,9 @@ bool vku_have_device_extension(const char *name); bool vku_create_device(); void vku_cleanup(); +/* semaphores */ +bool vku_create_semaphores(); + /* command buffers */ VkCommandBuffer vku_alloc_cmdbuf(VkCommandPool pool, VkCommandBufferLevel level); void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf); @@ -36,24 +50,35 @@ void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf); void vku_begin_cmdbuf(VkCommandBuffer buf, unsigned int flags); void vku_end_cmdbuf(VkCommandBuffer buf); void vku_reset_cmdbuf(VkCommandBuffer buf); - void vku_submit_cmdbuf(VkQueue q, VkCommandBuffer buf, VkFence done_fence); /* swapchain */ VkSwapchainKHR vku_create_swapchain(VkSurfaceKHR surf, int xsz, int ysz, int n, VkPresentModeKHR pmode, VkSwapchainKHR prev); VkImage *vku_get_swapchain_images(VkSwapchainKHR sc, int *count); +VkImageView *vku_create_image_views(VkImage *images, int count); int vku_get_next_image(VkSwapchainKHR sc); void vku_present(VkSwapchainKHR sc, int img_idx); +/* rederpass */ +bool vku_create_renderpass(); + +/* framebuffer */ +bool vku_create_framebuffers(VkImageView *image_views, int count, int w, int h); + /* buffers */ vku_buffer *vku_create_buffer(int sz, unsigned int usage); void vku_destroy_buffer(vku_buffer *buf); - void vku_cmd_copybuf(VkCommandBuffer cmdbuf, VkBuffer dest, int doffs, VkBuffer src, int soffs, int size); /* other */ const char *vku_get_vulkan_error_str(VkResult error); -#endif // VKUTIL_H_ \ No newline at end of file +/* pipeline */ +bool vku_create_graphics_pipeline(VkPipelineLayout *layout); + +/* descriptor set */ +//bool vku_create_descriptor_set() + +#endif // VKUTIL_H_