vulkan_test2

view src/vku.h @ 14:9fb6c24691ea

this shit never ends...
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 26 Jun 2018 07:20:03 +0300
parents d34f84bede17
children 196122a2b8c2
line source
1 #ifndef VKU_H_
2 #define VKU_H_
4 #ifdef __unix__
5 #define VK_USE_PLATFORM_XLIB_KHR
6 #endif
8 #include <vulkan/vulkan.h>
10 VkInstance vk;
11 VkDevice vkdev;
12 VkQueue vkq;
13 VkCommandPool vkcmdpool;
14 VkCommandBuffer vkcmdbuf; /* primary command buffer */
16 int swapchain_size;
17 VkImage *swapchain_images;
18 VkFormat swapchain_image_fmt;
19 VkImageView *swapchain_views;
20 int next_swapchain_image;
21 VkFramebuffer *swapchain_framebuf;
23 VkViewport vkvport;
24 VkRenderPass vkrpass;
27 struct vku_buffer {
28 VkBuffer buf;
29 VkDeviceMemory mem_pool;
30 int mem_start, mem_size;
31 };
33 int vku_have_extension(const char *name);
34 int vku_have_device_extension(const char *name);
36 int vku_create_dev(void);
37 void vku_cleanup(void);
39 VkCommandBuffer vku_alloc_cmdbuf(VkCommandPool pool, VkCommandBufferLevel level);
40 void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf);
42 void vku_begin_cmdbuf(VkCommandBuffer buf, unsigned int flags);
43 void vku_end_cmdbuf(VkCommandBuffer buf);
44 void vku_reset_cmdbuf(VkCommandBuffer buf);
46 void vku_submit_cmdbuf(VkQueue q, VkCommandBuffer buf, VkFence done_fence);
48 VkSwapchainKHR vku_create_swapchain(VkSurfaceKHR surf, int xsz, int ysz, int n,
49 VkFormat fmt, VkPresentModeKHR pmode, VkSwapchainKHR prev);
50 VkImage *vku_get_swapchain_images(VkSwapchainKHR sc, int *count);
51 int vku_get_next_image(VkSwapchainKHR sc);
52 void vku_present(VkSwapchainKHR sc, int img_idx);
54 VkImageView vku_create_view(VkImage img, VkFormat fmt);
55 void vku_destroy_view(VkImageView view);
57 VkFramebuffer vku_create_framebuffer(VkImageView view, int width, int height, VkRenderPass rpass);
58 void vku_destroy_framebuffer(VkFramebuffer fb);
60 struct vku_buffer *vku_create_buffer(int sz, unsigned int usage);
61 void vku_destroy_buffer(struct vku_buffer *buf);
63 void vku_cmd_copybuf(VkCommandBuffer cmdbuf, VkBuffer dest, int doffs,
64 VkBuffer src, int soffs, int size);
66 VkRenderPass vku_create_renderpass(VkFormat cfmt, VkFormat dsfmt);
67 void vku_destroy_renderpass(VkRenderPass rpass);
69 /* platform-specific */
70 #ifdef VK_USE_PLATFORM_XLIB_KHR
71 #include <X11/Xlib.h>
72 int vku_xlib_usable_visual(Display *dpy, VisualID vid);
73 VkSurfaceKHR vku_xlib_create_surface(Display *dpy, Window win);
74 #endif
76 #endif /* VKU_H_ */