debug.c
changeset 5657 54c99d0f6ba4
parent 5568 75f13d7bfaed
equal deleted inserted replaced
5656:0ce356fe63ad 5657:54c99d0f6ba4
    23 int _debug_yapf_level;
    23 int _debug_yapf_level;
    24 int _debug_freetype_level;
    24 int _debug_freetype_level;
    25 int _debug_sl_level;
    25 int _debug_sl_level;
    26 
    26 
    27 
    27 
    28 void CDECL debug(const char *dbg, ...)
       
    29 {
       
    30 	va_list va;
       
    31 	const char *s;
       
    32 	char buf[1024];
       
    33 
       
    34 	va_start(va, dbg);
       
    35 	s = va_arg(va, const char*);
       
    36 	vsnprintf(buf, lengthof(buf), s, va);
       
    37 	va_end(va);
       
    38 	fprintf(stderr, "dbg: [%s] %s\n", dbg, buf);
       
    39 	IConsoleDebug(dbg, buf);
       
    40 }
       
    41 
       
    42 typedef struct DebugLevel {
    28 typedef struct DebugLevel {
    43 	const char *name;
    29 	const char *name;
    44 	int *level;
    30 	int *level;
    45 } DebugLevel;
    31 } DebugLevel;
    46 
    32 
    60 	DEBUG_LEVEL(yapf),
    46 	DEBUG_LEVEL(yapf),
    61 	DEBUG_LEVEL(freetype),
    47 	DEBUG_LEVEL(freetype),
    62 	DEBUG_LEVEL(sl),
    48 	DEBUG_LEVEL(sl),
    63 	};
    49 	};
    64 #undef DEBUG_LEVEL
    50 #undef DEBUG_LEVEL
       
    51 
       
    52 #if !defined(NO_DEBUG_MESSAGES)
       
    53 
       
    54 /** Functionized DEBUG macro for compilers that don't support
       
    55  * variadic macros (__VA_ARGS__) such as...yes MSVC2003 and lower */
       
    56 #if defined(NO_VARARG_MACRO)
       
    57 void CDECL DEBUG(int name, int level, ...)
       
    58 {
       
    59 	va_list va;
       
    60 	const char *dbg;
       
    61 	const DebugLevel *dl = &debug_level[name];
       
    62 
       
    63 	if (level != 0 && *dl->level < level) return;
       
    64 	dbg = dl->name;
       
    65 	va_start(va, level);
       
    66 #else
       
    67 void CDECL debug(const char *dbg, ...)
       
    68 {
       
    69 	va_list va;
       
    70 	va_start(va, dbg);
       
    71 #endif /* NO_VARARG_MACRO */
       
    72 	{
       
    73 		const char *s;
       
    74 		char buf[1024];
       
    75 
       
    76 		s = va_arg(va, const char*);
       
    77 		vsnprintf(buf, lengthof(buf), s, va);
       
    78 		va_end(va);
       
    79 		fprintf(stderr, "dbg: [%s] %s\n", dbg, buf);
       
    80 		IConsoleDebug(dbg, buf);
       
    81 	}
       
    82 }
       
    83 #endif /* NO_DEBUG_MESSAGES */
    65 
    84 
    66 void SetDebugString(const char *s)
    85 void SetDebugString(const char *s)
    67 {
    86 {
    68 	int v;
    87 	int v;
    69 	char *end;
    88 	char *end;