main
1#ifndef GOG_ERR_H
2#define GOG_ERR_H
3
4#include <stdio.h>
5#include <vulkan/vulkan_core.h>
6
7#define GOG_DEBUG
8
9#ifdef GOG_DEBUG
10 #define GOG_LOG_INFO( fmt, ...) { printf("[GOG INFO] " fmt "\n", __VA_ARGS__); }
11 #define GOG_LOG_WARN( fmt, ...) { printf("[GOG WARN] " fmt "\n", __VA_ARGS__); }
12 #define GOG_LOG_ERR(res, msg) printf("[GOG ERROR] %s (VkResult: %d)\n", msg, res)
13#else
14 #define GOG_LOG(...)
15 #define GOG_LOG_ERR(res, msg)
16#endif
17
18
19
20typedef enum
21{
22 GOG_SUCCES = 1,
23 GOG_FAIL = 0
24} gog_err;
25
26typedef struct
27{
28 gog_err status;
29 int err_code;
30} gog_result;
31
32#define GET_GOG_RESULT(status_, code_) \
33 ((gog_result){.status = status_, .err_code = code_})
34
35#define GOG_CHECK_VK(result, msg) \
36 if (result != VK_SUCCESS) { \
37 GOG_LOG_ERR(result, msg); \
38 return GET_GOG_RESULT(GOG_FAIL, result); \
39 }
40
41#define GOG_ERR_MISMATCH 0x2
42#define GOG_ERR_PIPELINE_CREATION 0x3
43
44#endif