diff options
author | gramanas <anastasis.gramm2@gmail.com> | 2024-05-19 04:06:41 +0300 |
---|---|---|
committer | gramanas <anastasis.gramm2@gmail.com> | 2024-05-19 04:06:41 +0300 |
commit | 9ead62940aecb7793b3d82c9c8eb73bc9eb4f60f (patch) | |
tree | e6f614b0e2c5e05bed95705778a0d5d5dedbe446 /src/vkutil.h | |
download | cgame-9ead62940aecb7793b3d82c9c8eb73bc9eb4f60f.tar.gz cgame-9ead62940aecb7793b3d82c9c8eb73bc9eb4f60f.tar.bz2 cgame-9ead62940aecb7793b3d82c9c8eb73bc9eb4f60f.zip |
aait
Diffstat (limited to 'src/vkutil.h')
-rw-r--r-- | src/vkutil.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/vkutil.h b/src/vkutil.h new file mode 100644 index 0000000..7ab19a0 --- /dev/null +++ b/src/vkutil.h @@ -0,0 +1,58 @@ +#ifndef _VKUTIL_H +#define _VKUTIL_H + +/** + * vkutil.h -- helper functions and macros for working with vulkan in C + */ + +#include <stdio.h> +#include <stdarg.h> + +#include <vulkan/vulkan.h> +#include <vulkan/vk_enum_string_helper.h> // for string_VkResult + +#define VK_ARRAY_LEN(arr) sizeof((arr))/sizeof((arr)[0]) + +#define VK_CHECK(x) \ +do { \ + VkResult err = x; \ + if (err) { \ + fprintf(stderr, "%s:%d:0: vulkan error: %s \n", \ + __FILE__+3, __LINE__, string_VkResult(err)); \ + abort(); \ + } \ +} while (0) + +typedef enum { + VK_INFO = 0, + VK_WARN, + VK_ERROR, +} log_type; + +void +vk_log(log_type t, const char * f, ...) +{ +#ifdef VKDEBUG + va_list args; + va_start(args, f); + switch (t) { + case VK_INFO: + printf("INFO: "); + vprintf(f, args); + break; + case VK_WARN: + fprintf(stderr, "WARN: "); + vfprintf(stderr, f, args); + break; + case VK_ERROR: + fprintf(stderr, "ERROR: "); + vfprintf(stderr, f, args); + break; + } + va_end(args); +#else + return; +#endif +} + +#endif /* _VKUTIL_H */ |