vulkan_test2

view src/vku.h @ 5:cec4b0e7fce8

created swapchain
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 22 Sep 2017 17:48:18 +0300
parents c31c4115d44a
children 1dd2c7398afc
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 struct vku_buffer {
17 VkBuffer buf;
18 VkDeviceMemory mem_pool;
19 int mem_start, mem_size;
20 };
22 int vku_have_extension(const char *name);
23 int vku_have_device_extension(const char *name);
25 int vku_create_dev(void);
26 void vku_cleanup(void);
28 VkCommandBuffer vku_alloc_cmdbuf(VkCommandPool pool, VkCommandBufferLevel level);
29 void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf);
31 void vku_begin_cmdbuf(VkCommandBuffer buf, unsigned int flags);
32 void vku_end_cmdbuf(VkCommandBuffer buf);
33 void vku_reset_cmdbuf(VkCommandBuffer buf);
35 void vku_submit_cmdbuf(VkQueue q, VkCommandBuffer buf, VkFence done_fence);
37 VkSwapchainKHR vku_create_swapchain(VkSurfaceKHR surf, int xsz, int ysz, int n,
38 VkPresentModeKHR pmode, VkSwapchainKHR prev);
40 struct vku_buffer *vku_create_buffer(int sz, unsigned int usage);
41 void vku_destroy_buffer(struct vku_buffer *buf);
43 void vku_cmd_copybuf(VkCommandBuffer cmdbuf, VkBuffer dest, int doffs,
44 VkBuffer src, int soffs, int size);
46 /* platform-specific */
47 #ifdef VK_USE_PLATFORM_XLIB_KHR
48 #include <X11/Xlib.h>
49 int vku_xlib_usable_visual(Display *dpy, VisualID vid);
50 VkSurfaceKHR vku_xlib_create_surface(Display *dpy, Window win);
51 #endif
53 #endif /* VKU_H_ */