X-Git-Url: https://eleni.mutantstargoat.com/git/?p=demo;a=blobdiff_plain;f=src%2Fvulkan%2Fvkutil.h;fp=src%2Fvulkan%2Fvkutil.h;h=1c9ceac4c3312f76d2ec62fcf5b306d870bc179b;hp=71943bdd8c7a88ebb3c26a72efed5afbcebe5cb8;hb=86c912d603be75ac8b2fdb2229f1696e9c0c01d9;hpb=e04bbfa8eb50d10fc87c3cbd6667de5de767eaa7 diff --git a/src/vulkan/vkutil.h b/src/vulkan/vkutil.h index 71943bd..1c9ceac 100644 --- a/src/vulkan/vkutil.h +++ b/src/vulkan/vkutil.h @@ -10,22 +10,9 @@ extern VkCommandPool vk_pool; extern VkQueue vk_queue; extern VkSwapchainKHR vk_swapchain; extern VkSurfaceKHR vk_surface; - -extern VkPipeline *vkgparent_pipeline; -extern VkDescriptorSet *vkdescset; -extern VkFramebuffer *vkfbufs; -extern VkRenderPass vkrpass; -extern VkInstance vkinst; -extern VkCommandBuffer vkcmdbuf; /* primary command buffer */ -extern int vkqfamily; - -/* presentation */ -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; +extern VkInstance vk_instance; +extern int vk_qfamily; +extern VkDescriptorPool vk_dpool; struct vku_buffer { VkBuffer buf; @@ -33,6 +20,14 @@ struct vku_buffer { int mem_start, mem_size; }; +struct vku_descriptor { + VkDescriptorSetLayout layout; + VkDescriptorType type; + VkFlags stage_flags; + int binding_point; + int size; +}; + /* extensions */ bool vku_have_extension(const char *name); bool vku_have_device_extension(const char *name); @@ -41,9 +36,6 @@ 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); bool vku_alloc_cmdbufs(VkCommandPool pool, VkCommandBufferLevel level, unsigned int count, VkCommandBuffer *buf_array); @@ -63,11 +55,20 @@ void vku_present(VkSwapchainKHR sc, int img_idx); /* buffers */ vku_buffer *vku_create_buffer(int sz, unsigned int usage); void vku_destroy_buffer(vku_buffer *buf); +bool vku_update_buffer(vku_buffer *buf, int size, void *data); + 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); +/* pipelines */ +vku_descriptor *vku_create_descriptor(VkDescriptorType type, VkFlags stage, + int binding_point, int size); +void vku_destroy_descriptor(vku_descriptor *descriptor); + +bool vku_create_descriptor_pool(vku_descriptor **descriptors, int num_desc, VkDescriptorSet set); +void vku_destroy_descriptor_pool(); #endif // VKUTIL_H_