vulkan_test2

annotate src/vku.h @ 12:e17abe477616

pipeline madness
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 23 Jun 2018 07:47:49 +0300
parents 20eb42197ab8
children d34f84bede17
rev   line source
nuclear@3 1 #ifndef VKU_H_
nuclear@3 2 #define VKU_H_
nuclear@3 3
nuclear@4 4 #ifdef __unix__
nuclear@4 5 #define VK_USE_PLATFORM_XLIB_KHR
nuclear@4 6 #endif
nuclear@4 7
nuclear@3 8 #include <vulkan/vulkan.h>
nuclear@3 9
nuclear@3 10 VkInstance vk;
nuclear@3 11 VkDevice vkdev;
nuclear@3 12 VkQueue vkq;
nuclear@3 13 VkCommandPool vkcmdpool;
nuclear@4 14 VkCommandBuffer vkcmdbuf; /* primary command buffer */
nuclear@3 15
nuclear@7 16 VkImage *swapchain_images;
nuclear@7 17 int next_swapchain_image;
nuclear@7 18
nuclear@12 19 VkViewport vkvport;
nuclear@12 20
nuclear@7 21
nuclear@4 22 struct vku_buffer {
nuclear@3 23 VkBuffer buf;
nuclear@3 24 VkDeviceMemory mem_pool;
nuclear@3 25 int mem_start, mem_size;
nuclear@3 26 };
nuclear@3 27
nuclear@4 28 int vku_have_extension(const char *name);
nuclear@4 29 int vku_have_device_extension(const char *name);
nuclear@4 30
nuclear@3 31 int vku_create_dev(void);
nuclear@3 32 void vku_cleanup(void);
nuclear@3 33
nuclear@4 34 VkCommandBuffer vku_alloc_cmdbuf(VkCommandPool pool, VkCommandBufferLevel level);
nuclear@4 35 void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf);
nuclear@3 36
nuclear@4 37 void vku_begin_cmdbuf(VkCommandBuffer buf, unsigned int flags);
nuclear@4 38 void vku_end_cmdbuf(VkCommandBuffer buf);
nuclear@4 39 void vku_reset_cmdbuf(VkCommandBuffer buf);
nuclear@4 40
nuclear@4 41 void vku_submit_cmdbuf(VkQueue q, VkCommandBuffer buf, VkFence done_fence);
nuclear@4 42
nuclear@5 43 VkSwapchainKHR vku_create_swapchain(VkSurfaceKHR surf, int xsz, int ysz, int n,
nuclear@5 44 VkPresentModeKHR pmode, VkSwapchainKHR prev);
nuclear@6 45 VkImage *vku_get_swapchain_images(VkSwapchainKHR sc, int *count);
nuclear@6 46 int vku_get_next_image(VkSwapchainKHR sc);
nuclear@6 47 void vku_present(VkSwapchainKHR sc, int img_idx);
nuclear@5 48
nuclear@4 49 struct vku_buffer *vku_create_buffer(int sz, unsigned int usage);
nuclear@4 50 void vku_destroy_buffer(struct vku_buffer *buf);
nuclear@4 51
nuclear@4 52 void vku_cmd_copybuf(VkCommandBuffer cmdbuf, VkBuffer dest, int doffs,
nuclear@4 53 VkBuffer src, int soffs, int size);
nuclear@4 54
nuclear@4 55 /* platform-specific */
nuclear@4 56 #ifdef VK_USE_PLATFORM_XLIB_KHR
nuclear@4 57 #include <X11/Xlib.h>
nuclear@4 58 int vku_xlib_usable_visual(Display *dpy, VisualID vid);
nuclear@5 59 VkSurfaceKHR vku_xlib_create_surface(Display *dpy, Window win);
nuclear@4 60 #endif
nuclear@3 61
nuclear@3 62 #endif /* VKU_H_ */