1#ifndef UTIL_H
2#define UTIL_H
3
4#define RGBA(r, g, b, a) (((u32)(r)) | ((u32)(g) << 8) | ((u32)(b) << 16) | ((u32)(a) << 24))
5
6typedef enum {
7 MG_EC_EXIT_SUCCESS,
8 MG_EC_EXIT_FAILURE,
9
10 MG_EC_INVALID_ARGS,
11
12 MG_EC_MCCLIENT_LOGIN,
13
14 MG_EC_SDL_INIT,
15 MG_EC_SDL_CREATE_WIN,
16 MG_EC_SDL_CREATE_RENDERER,
17
18 MG_EC_MAUS_INIT,
19 MG_EC_MAUS_CREATE_WIN,
20 MG_EC_MAUS_RESIZE,
21
22 MG_EC_GL_CTX_CREATE,
23 MG_EC_GL_CTX_ACTIVATE,
24
25 MG_EC_SOKOL_INIT,
26 MG_EC_SHADER_CREATE,
27
28 MG_EC_PIPELINE_CREATE,
29
30 MG_EC_MESH_CREATE,
31
32 MG_EC_TEXTURE_LOAD,
33 MG_EC_TEXTURE_CREATE,
34 MG_EC_SAMPLER_CREATE,
35 MG_EC_VIEW_CREATE,
36
37 MG_EC_SMALL3D_FRAMEBUFFER_LIMIT,
38 MG_EC_SMALL3D_FRAMEBUFFER_ALLOC,
39 MG_EC_SMALL3D_SCREEN_TEXTURE_CREATE,
40
41 MG_EC_LAST
42} MGErrorCodes;
43
44typedef enum {
45 LOG_INF, /* info */
46 LOG_ERR, /* error */
47 LOG_DBG /* debug */
48} LogType;
49
50/* log message and exit with error code */
51void mg_die(MGErrorCodes ec, const char* fmt, ...);
52
53/* log message */
54void mg_log(LogType lt, const char* fmt, ...);
55
56#endif /* UTIL_H */