VkFence vkh_fence_create (VkhDevice dev);
VkFence vkh_fence_create_signaled (VkhDevice dev);
VkSemaphore vkh_semaphore_create (VkhDevice dev);
+VkEvent vkh_event_create (VkhDevice dev);
VkCommandPool vkh_cmd_pool_create (VkhDevice dev, uint32_t qFamIndex, VkCommandPoolCreateFlags flags);
VkCommandBuffer vkh_cmd_buff_create (VkhDevice dev, VkCommandPool cmdPool, VkCommandBufferLevel level);
#ifndef VKH_APP_H
#define VKH_APP_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "vkh.h"
typedef struct _vkh_app_t{
VkApplicationInfo infos;
VkInstance inst;
}vkh_app_t;
+#ifdef __cplusplus
+}
+#endif
#endif
#ifndef VKH_BUFFER_H
#define VKH_BUFFER_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "vkh.h"
typedef struct _vkh_buffer_t {
void* mapped;
}vkh_buffer_t;
+#ifdef __cplusplus
+}
+#endif
#endif
#ifndef VKH_DEVICE_H
#define VKH_DEVICE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "vkh.h"
typedef struct _vkh_device_t{
VmaAllocator allocator;
}vkh_device_t;
+#ifdef __cplusplus
+}
+#endif
#endif
#ifndef VKH_IMAGE_H
#define VKH_IMAGE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "vkh.h"
typedef struct _vkh_image_t {
VkImageLayout layout; //current layout
bool imported;
}vkh_image_t;
+#ifdef __cplusplus
+}
+#endif
#endif
#ifndef VKH_PHY_H
#define VKH_PHY_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "vkh.h"
typedef struct _vkh_phy_t{
uint32_t qCreateInfosCount;
VkDeviceQueueCreateInfo* qCreateInfos;
}vkh_phy_t;
+#ifdef __cplusplus
+}
+#endif
#endif
r->cmdPool = vkh_cmd_pool_create (r->dev, presentQueueFamIdx, 0);
r->semaPresentEnd = vkh_semaphore_create (r->dev);
r->semaDrawEnd = vkh_semaphore_create (r->dev);
+ r->evtReady = vkh_event_create (r->dev);
_init_phy_surface (r, preferedFormat, presentMode);
_swapchain_destroy (r);
+ vkDestroyEvent (r->dev->dev, r->evtReady, NULL);
vkDestroySemaphore (r->dev->dev, r->semaDrawEnd, NULL);
vkDestroySemaphore (r->dev->dev, r->semaPresentEnd, NULL);
vkDestroyCommandPool(r->dev->dev, r->cmdPool, NULL);
#ifndef VKH_QUEUE_H
#define VKH_QUEUE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "vkh.h"
typedef struct _vkh_queue_t{
VkQueueFlags flags;
}vkh_queue_t;
+#ifdef __cplusplus
+}
+#endif
#endif
VK_CHECK_RESULT(vkCreateSemaphore(dev->dev, &info, NULL, &semaphore));
return semaphore;
}
+VkEvent vkh_event_create (VkhDevice dev) {
+ VkEvent evt;
+ VkEventCreateInfo evtInfo = {.sType = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO};
+ VK_CHECK_RESULT(vkCreateEvent (dev->dev, &evtInfo, NULL, &evt));
+ return evt;
+}
VkCommandPool vkh_cmd_pool_create (VkhDevice dev, uint32_t qFamIndex, VkCommandPoolCreateFlags flags){
VkCommandPool cmdPool;
VkCommandPoolCreateInfo cmd_pool_info = { .sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,