X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg_log.h;h=9c8d59f373a4c4084406de3e835acac3cd4922b5;hb=f9a8fe4bad8152bdf0423fbbd177c74a4be1d80a;hp=d30e7ba330bb827d9884a63c1acf05a53bebf477;hpb=0aea2ef68a5ed32fc940673402a1b4b67f38d4d3;p=vg.git diff --git a/vg_log.h b/vg_log.h index d30e7ba..9c8d59f 100644 --- a/vg_log.h +++ b/vg_log.h @@ -1,13 +1,27 @@ #ifndef VG_LOG_H #define VG_LOG_H -#include -#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__) #define KNRM "\x1B[0m" +#define KBLK "\x1B[30m" #define KRED "\x1B[31m" #define KGRN "\x1B[32m" #define KYEL "\x1B[33m" @@ -16,89 +30,38 @@ #define KCYN "\x1B[36m" #define KWHT "\x1B[37m" -#define PRINTF_v2f( V2 ) "%.2f %.2f\n", V2[0], V2[1] -#define PRINTF_v3f( V3 ) "%.2f %.2f %.2f\n", V3[0], V3[1], V3[2] -#define PRINTF_v4f( V4 ) "%.2f %.2f %.2f %.2f\n", V4[0], V4[1], V4[2], V4[3] +#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] +#define PRINTF_v4f( V4 ) "%.4f %.4f %.4f %.4f\n", V4[0], V4[1], V4[2], V4[3] + +#ifdef _WIN32 + #define PRINTF_U64 "%llu" +#else + #define PRINTF_U64 "%lu" +#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