X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=blobdiff_plain;f=vg_log.h;h=d30e7ba330bb827d9884a63c1acf05a53bebf477;hp=dfb4fc91f8d4851be6fc34ca06dd4da5e4057144;hb=HEAD;hpb=4c48fe01a5d1983be89b7dce6f08e6b708cfbb05 diff --git a/vg_log.h b/vg_log.h index dfb4fc9..cf2b737 100644 --- a/vg_log.h +++ b/vg_log.h @@ -1,13 +1,26 @@ -#ifndef VG_LOG_H -#define VG_LOG_H +#pragma once -#include -#include -#include -#include "vg_stdint.h" #include "vg_platform.h" +#include + +#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",KNRM,__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,85 +29,40 @@ #define KCYN "\x1B[36m" #define KWHT "\x1B[37m" -#ifdef VG_GAME -static SDL_SpinLock log_print_sl; -#endif - -struct vg_log -{ - char buffer[64][96]; - u32 buffer_line_count, buffer_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 ++; - - char *dest = vg_log.buffer[ vg_log.buffer_line_current ++ ]; +#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] - for( int i=0; i= vg_list_size( vg_log.buffer ) ) - vg_log.buffer_line_current = 0; -} +#ifdef VG_ENGINE + #include "dep/sdl/include/SDL.h" +#endif -VG_STATIC void vg_log_write( FILE *file, const char *prefix, - const char *fmt, va_list args ) +struct vg_log { -#ifdef VG_GAME - SDL_AtomicLock( &log_print_sl ); -#endif + char log[64][96]; + u32 log_line_count, log_line_current; - char buffer[ 4096 ]; - int i, j; - - for( i=0; i