vulkan_test2

diff src/vku.h @ 4:c31c4115d44a

test 2, open window, create queue, etc ...
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 22 Sep 2017 15:26:29 +0300
parents 68e1c437343f
children cec4b0e7fce8
line diff
     1.1 --- a/src/vku.h	Fri Sep 22 01:01:10 2017 +0300
     1.2 +++ b/src/vku.h	Fri Sep 22 15:26:29 2017 +0300
     1.3 @@ -1,24 +1,49 @@
     1.4  #ifndef VKU_H_
     1.5  #define VKU_H_
     1.6  
     1.7 +#ifdef __unix__
     1.8 +#define VK_USE_PLATFORM_XLIB_KHR
     1.9 +#endif
    1.10 +
    1.11  #include <vulkan/vulkan.h>
    1.12  
    1.13  VkInstance vk;
    1.14  VkDevice vkdev;
    1.15  VkQueue vkq;
    1.16  VkCommandPool vkcmdpool;
    1.17 +VkCommandBuffer vkcmdbuf;	/* primary command buffer */
    1.18  
    1.19 -struct vk_buffer {
    1.20 +struct vku_buffer {
    1.21  	VkBuffer buf;
    1.22  	VkDeviceMemory mem_pool;
    1.23  	int mem_start, mem_size;
    1.24  };
    1.25  
    1.26 +int vku_have_extension(const char *name);
    1.27 +int vku_have_device_extension(const char *name);
    1.28 +
    1.29  int vku_create_dev(void);
    1.30  void vku_cleanup(void);
    1.31  
    1.32 +VkCommandBuffer vku_alloc_cmdbuf(VkCommandPool pool, VkCommandBufferLevel level);
    1.33 +void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf);
    1.34  
    1.35 -struct vk_buffer *vku_create_buffer(int sz, unsigned int usage);
    1.36 -void vku_destroy_buffer(struct vk_buffer *buf);
    1.37 +void vku_begin_cmdbuf(VkCommandBuffer buf, unsigned int flags);
    1.38 +void vku_end_cmdbuf(VkCommandBuffer buf);
    1.39 +void vku_reset_cmdbuf(VkCommandBuffer buf);
    1.40 +
    1.41 +void vku_submit_cmdbuf(VkQueue q, VkCommandBuffer buf, VkFence done_fence);
    1.42 +
    1.43 +struct vku_buffer *vku_create_buffer(int sz, unsigned int usage);
    1.44 +void vku_destroy_buffer(struct vku_buffer *buf);
    1.45 +
    1.46 +void vku_cmd_copybuf(VkCommandBuffer cmdbuf, VkBuffer dest, int doffs,
    1.47 +		VkBuffer src, int soffs, int size);
    1.48 +
    1.49 +/* platform-specific */
    1.50 +#ifdef VK_USE_PLATFORM_XLIB_KHR
    1.51 +#include <X11/Xlib.h>
    1.52 +int vku_xlib_usable_visual(Display *dpy, VisualID vid);
    1.53 +#endif
    1.54  
    1.55  #endif	/* VKU_H_ */