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