X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg_log.h;h=8d2420a5fa7125d38ef05343d7422ea7f024c2e0;hb=dd402a7717847a2d74c3b98e3f3970cde4874a73;hp=b28cefbe1ec8bf671af453872794684d8d861d6f;hpb=48149581c10efff916dfad10f014b90837d531ea;p=vg.git diff --git a/vg_log.h b/vg_log.h index b28cefb..8d2420a 100644 --- a/vg_log.h +++ b/vg_log.h @@ -1,23 +1,22 @@ #ifndef VG_LOG_H #define VG_LOG_H -#include -#include -#include -#include "vg_stdint.h" -#include "vg_platform.h" +#define VG_LOG_MCSTR(S) VG_LOG_MCSTR2(S) +#define VG_LOG_MCSTR2(S) #S +#define VG_LOG_WHERE "@"__FILE__":"VG_LOG_MCSTR(__LINE__)\ + " " + +#define vg_success( ... ) \ + vg_logx(stdout,VG_LOG_WHERE,"success",KGRN,__VA_ARGS__) +#define vg_info( ... ) \ + vg_logx(stdout,VG_LOG_WHERE,"info",KWHT,__VA_ARGS__) +#define vg_warn( ... ) \ + vg_logx(stdout,VG_LOG_WHERE,"warn",KYEL,__VA_ARGS__ ) +#define vg_error( ... ) \ + vg_logx(stdout,VG_LOG_WHERE,"error",KRED,__VA_ARGS__) +#define vg_low( ... ) \ + vg_logx(stdout,VG_LOG_WHERE,"log",KWHT,__VA_ARGS__) -#ifdef _WIN32 -#define KNRM "" -#define KBLK "" -#define KRED "" -#define KGRN "" -#define KYEL "" -#define KBLU "" -#define KMAG "" -#define KCYN "" -#define KWHT "" -#else #define KNRM "\x1B[0m" #define KBLK "\x1B[30m" #define KRED "\x1B[31m" @@ -27,7 +26,6 @@ #define KMAG "\x1B[35m" #define KCYN "\x1B[36m" #define KWHT "\x1B[37m" -#endif #define PRINTF_v2f( V2 ) "%.4f %.4f\n", V2[0], V2[1] #define PRINTF_v3f( V3 ) "%.4f %.4f %.4f\n", V3[0], V3[1], V3[2] @@ -40,77 +38,27 @@ #endif #ifdef VG_GAME -static SDL_SpinLock log_print_sl; + #include "dep/sdl/include/SDL.h" + static SDL_SpinLock log_print_sl; #endif -struct vg_log -{ - char buffer[64][96]; - u32 buffer_line_count, buffer_line_current; +struct vg_log{ + char log[64][96]; + u32 log_line_count, log_line_current; } static vg_log; -void _vg_console_append_to_log( const char *str ) -{ - if( vg_log.buffer_line_count < vg_list_size( vg_log.buffer ) ) - vg_log.buffer_line_count ++; +static void vg_logx( FILE *file, + const char *location, const char *prefix, + const char *colour, + const char *fmt, ... ); - char *dest = vg_log.buffer[ vg_log.buffer_line_current ++ ]; +static void _vg_logx_va( FILE *file, + const char *location, const char *prefix, + const char *colour, + const char *fmt, va_list args ); - for( int i=0; i= vg_list_size( vg_log.buffer ) ) - vg_log.buffer_line_current = 0; -} - -VG_STATIC void _vg_log_write( FILE *file, const char *prefix, - const char *fmt, va_list args ) -{ -#ifdef VG_GAME - SDL_AtomicLock( &log_print_sl ); -#endif - char buffer[ 4096 ]; - int i, j; - - for( i=0; i