Subversion Repositories Games.Carmageddon

Rev

Rev 18 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
#ifndef HARNESS_TRACE_H
2
#define HARNESS_TRACE_H
3
 
20 pmbaty 4
#include "brender/br_types.h"
1 pmbaty 5
#include <stdlib.h>
6
 
7
extern int harness_debug_level;
8
 
20 pmbaty 9
void debug_printf(const char* fmt, const char* fn, const char* fmt2, ...);
1 pmbaty 10
void debug_print_vector3(const char* fmt, const char* fn, char* msg, br_vector3* v);
11
void debug_print_matrix34(const char* fmt, const char* fn, char* name, br_matrix34* m);
12
void debug_print_matrix4(const char* fmt, const char* fn, char* name, br_matrix4* m);
13
 
14
#define BLUE
15
 
16
#define LOG_TRACE(...)                                         \
17
    if (harness_debug_level >= 5) {                            \
18
        debug_printf("[TRACE] %s", __FUNCTION__, __VA_ARGS__); \
19
    }
20
 
21
#define LOG_TRACE10(...)                                       \
22
    if (harness_debug_level >= 10) {                           \
23
        debug_printf("[TRACE] %s", __FUNCTION__, __VA_ARGS__); \
24
    }
25
#define LOG_TRACE9(...)                                        \
26
    if (harness_debug_level >= 9) {                            \
27
        debug_printf("[TRACE] %s", __FUNCTION__, __VA_ARGS__); \
28
    }
29
 
30
#define LOG_TRACE8(...)                                        \
31
    if (harness_debug_level >= 8) {                            \
32
        debug_printf("[TRACE] %s", __FUNCTION__, __VA_ARGS__); \
33
    }
34
 
35
#define LOG_DEBUG(...) debug_printf("\033[0;34m[DEBUG] %s ", __FUNCTION__, __VA_ARGS__)
36
#define LOG_VEC(msg, v) debug_print_vector3("\033[0;34m[DEBUG] %s ", __FUNCTION__, msg, v)
37
#define LOG_MATRIX(msg, m) debug_print_matrix34("\033[0;34m[DEBUG] %s ", __FUNCTION__, msg, m)
38
#define LOG_MATRIX4(msg, m) debug_print_matrix4("\033[0;34m[DEBUG] %s ", __FUNCTION__, msg, m)
39
#define LOG_INFO(...) debug_printf("[INFO] %s ", __FUNCTION__, __VA_ARGS__)
40
#define LOG_WARN(...) debug_printf("\033[0;33m[WARN] %s ", __FUNCTION__, __VA_ARGS__)
41
#define LOG_PANIC(...)                                                    \
42
    do {                                                                  \
20 pmbaty 43
        debug_printf("\033[0;31m[PANIC] %s ", __FUNCTION__, __VA_ARGS__); \
1 pmbaty 44
        abort();                                                          \
45
    } while (0)
46
 
47
#define LOG_WARN_ONCE(...)                                               \
48
    static int warn_printed = 0;                                         \
49
    if (!warn_printed) {                                                 \
50
        debug_printf("\033[0;33m[WARN] %s ", __FUNCTION__, __VA_ARGS__); \
51
        warn_printed = 1;                                                \
52
    }
53
 
54
#define NOT_IMPLEMENTED() \
55
    LOG_PANIC("not implemented")
56
 
57
#define TELL_ME_IF_WE_PASS_THIS_WAY() \
58
    LOG_PANIC("code path not expected")
59
 
60
#define STUB() \
61
    debug_printf("\033[0;31m[WARN] %s ", __FUNCTION__, "%s", "stubbed");
62
 
63
#define STUB_ONCE()                                                          \
64
    static int stub_printed = 0;                                             \
65
    if (!stub_printed) {                                                     \
66
        debug_printf("\033[0;31m[WARN] %s ", __FUNCTION__, "%s", "stubbed"); \
67
        stub_printed = 1;                                                    \
68
    }
69
 
70
// int count_open_fds();
71
 
72
#endif