#ifndef VK_UTIL_H
#define VK_UTIL_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* common inlines and macros for vulkan drivers */
#include <vulkan/vulkan.h>
return NULL;
if (a->data != NULL)
- p = a->data + (*a->filled_len) * elem_size;
+ p = (uint8_t *)a->data + (*a->filled_len) * elem_size;
*a->filled_len += 1;
#define vk_find_struct_const(__start, __sType) \
(const void *)__vk_find_struct((void *)(__start), VK_STRUCTURE_TYPE_##__sType)
+static inline void
+__vk_append_struct(void *start, void *element)
+{
+ vk_foreach_struct(s, start) {
+ if (s->pNext)
+ continue;
+
+ s->pNext = (struct VkBaseOutStructure *) element;
+ break;
+ }
+}
+
uint32_t vk_get_driver_version(void);
uint32_t vk_get_version_override(void);
#define VK_ENUM_OFFSET(__enum) \
((__enum) >= VK_EXT_OFFSET ? ((__enum) % 1000) : (__enum))
+#ifdef __cplusplus
+}
+#endif
+
#endif /* VK_UTIL_H */