7#include "vulkan/vulkan.h"
13#define log_once(...) log__once(__FILE__, __LINE__, LOG_ONCE, __VA_ARGS__)
19#define log_trace(...) log_out(__FILE__, __LINE__, LOG_TRACE, __VA_ARGS__)
27#define log_debug(...) log_out(__FILE__, __LINE__, LOG_DEBUG, __VA_ARGS__)
31#define log_verbose(...) log_out(__FILE__, __LINE__, LOG_VERBOSE, __VA_ARGS__)
34#define log_info(...) log_out(__FILE__, __LINE__, LOG_INFO, __VA_ARGS__)
35#define log_warning(...) log_out(__FILE__, __LINE__, LOG_WARNING, __VA_ARGS__)
36#define log_error(...) log_out(__FILE__, __LINE__, LOG_ERROR, __VA_ARGS__)
37#define log_bad(...) log__bad(__FILE__, __LINE__, LOG_BAD, __VA_ARGS__)
38#define log_vkabad(...) log__vkabad(__FILE__, __LINE__, LOG_VKABAD, __VA_ARGS__)
39#define log_fatal(...) log_out(__FILE__, __LINE__, LOG_FATAL, __VA_ARGS__)
40#define log_vs(...) log__vs(__FILE__, __LINE__, LOG_INFO, __VA_ARGS__)
43#define ASSERT_PRINT(condition,...) \
45 if (! (condition)) { \
46 log_out(__FILE__, __LINE__, LOG_INFO, __VA_ARGS__);\
69void testit(
const char* fmt, ...);
73void log_out(
const char* file,
int line,
enum LOG_LEVEL level,
const char* fmt, ...);
74void log__bad(
const char* file,
int line,
enum LOG_LEVEL level,
const char* fmt, ...);
75void log__vkabad(
const char* file,
int line,
enum LOG_LEVEL level, VkResult code,
const char* fmt, ...);
79void log__vs(
const char* file,
int line,
enum LOG_LEVEL level,
const char* fmt, ...);
85static const char* log_label(
enum LOG_LEVEL level)
89 return "\x1b[37m[TRACE]\x1b[0m";
91 return "\x1b[36m[DEBUG]\x1b[0m";
93 return "\x1b[34m[VERBOSE]\x1b[0m";
95 return "\x1b[32m[INFO]\x1b[0m";
97 return "\x1b[33m[WARN]\x1b[0m";
99 return "\x1b[35m[ERROR]\x1b[0m";
101 return "\x1b[41m\x1b[1m[BAD]\x1b[0m";
103 return "\x1b[33m\x1b[1m[VKABAD]\x1b[0m";
105 return "\x1b[42m[ONCE]\x1b[0m";
107 return "\x1b[32m\x1b[1m[THREAD]\x1b[0m";
111 return "\x1b[43m[CPP]\x1b[0m";
113 return "\x1b[31m[FATAL]\x1b[0m";
void log__thread(const char *file, int line, enum LOG_LEVEL level, const char *fmt,...)
void log__bad(const char *file, int line, enum LOG_LEVEL level, const char *fmt,...)
void log__save(const char *file, const char *fmt)
const char * errorString(VkResult errorCode)
void log_out(const char *file, int line, enum LOG_LEVEL level, const char *fmt,...)
void log__vkabad(const char *file, int line, enum LOG_LEVEL level, VkResult code, const char *fmt,...)
void log__once(const char *file, int line, enum LOG_LEVEL level, const char *fmt,...)
void testit(const char *fmt,...)
void log__vs(const char *file, int line, enum LOG_LEVEL level, const char *fmt,...)