From 4b9437a5bf8dea4475a2dd5f433ee9729d6493c2 Mon Sep 17 00:00:00 2001 From: realtradam Date: Fri, 14 Apr 2023 16:45:29 -0400 Subject: split off logging into seperate files --- CMakeLists.txt | 2 +- include/compile_flags.txt | 11 +++++++ include/rodeo.h | 30 ++----------------- include/rodeo/common.h | 20 +++++++++++++ include/rodeo/log.h | 11 +++++++ include/rodeo/log_t.h | 40 ++++++++++++++++++++++++++ include/rodeo_types.h | 41 ++------------------------ src/input/rodeo_input.c | 12 ++++++-- src/log/irodeo_log.h | 12 ++++++++ src/log/rodeo_log.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++ src/rodeo_log.c | 68 ------------------------------------------- 11 files changed, 182 insertions(+), 138 deletions(-) create mode 100644 include/compile_flags.txt create mode 100644 include/rodeo/common.h create mode 100644 include/rodeo/log.h create mode 100644 include/rodeo/log_t.h create mode 100644 src/log/irodeo_log.h create mode 100644 src/log/rodeo_log.c delete mode 100644 src/rodeo_log.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 76152a5..fdfa91d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ project(RodeoKit add_library(${PROJECT_NAME} "src/rodeo.c" "src/rodeo_math.c" - "src/rodeo_log.c" + "src/log/rodeo_log.c" "src/rodeo_input.c" "src/input/rodeo_input.c" ) diff --git a/include/compile_flags.txt b/include/compile_flags.txt new file mode 100644 index 0000000..2c81d8a --- /dev/null +++ b/include/compile_flags.txt @@ -0,0 +1,11 @@ +-I./ +-I../include +-I../external/SDL/include +-I../external/bgfx/include +-I../external/bx/include +-I../external/cglm/include +-I../external/STC/include +-Wall +-Wextra +-Wpedantic +-Wconversion diff --git a/include/rodeo.h b/include/rodeo.h index 1fd27a6..2d43ce0 100644 --- a/include/rodeo.h +++ b/include/rodeo.h @@ -2,6 +2,9 @@ // -- internal -- // public #include "rodeo_types.h" +#include "rodeo/input.h" +#include "rodeo/log.h" +#include "rodeo/common.h" // -- external -- #include "stc/cstr.h" @@ -14,25 +17,6 @@ #include #include -#define mrodeo_name_concat(prefix, suffix) prefix##suffix - -#define mrodeo_macrovar(prefix) mrodeo_name_concat(prefix##_, __LINE__) - -#define mrodeo_defer_do(start, end) \ - for( \ - int mrodeo_macrovar(_macrovar_) = (start, 0); \ - !mrodeo_macrovar(_macrovar_); \ - (mrodeo_macrovar(_macrovar_) += 1), end \ - ) \ - -#define \ -mrodeo_vargs_do(final_arg) \ - va_list vargs; \ - mrodeo_defer_do( \ - va_start(vargs, final_arg), \ - va_end(vargs) \ - ) \ - /// --- Math --- rodeo_color_RGBA8_t @@ -148,14 +132,6 @@ rodeo_texture_2d_draw( const rodeo_texture_2d_t *texture ); -/// --- Log --- - -void -rodeo_log( - rodeo_logLevel_t loglevel, - const char *format, - ... -); /// --- Framerate --- diff --git a/include/rodeo/common.h b/include/rodeo/common.h new file mode 100644 index 0000000..886a82c --- /dev/null +++ b/include/rodeo/common.h @@ -0,0 +1,20 @@ + +#define mrodeo_name_concat(prefix, suffix) prefix##suffix + +#define mrodeo_macrovar(prefix) mrodeo_name_concat(prefix##_, __LINE__) + +#define mrodeo_defer_do(start, end) \ + for( \ + int mrodeo_macrovar(_macrovar_) = (start, 0); \ + !mrodeo_macrovar(_macrovar_); \ + (mrodeo_macrovar(_macrovar_) += 1), end \ + ) \ + +#define \ +mrodeo_vargs_do(final_arg) \ + va_list vargs; \ + mrodeo_defer_do( \ + va_start(vargs, final_arg), \ + va_end(vargs) \ + ) \ + diff --git a/include/rodeo/log.h b/include/rodeo/log.h new file mode 100644 index 0000000..837e795 --- /dev/null +++ b/include/rodeo/log.h @@ -0,0 +1,11 @@ + +// -- internal -- +// public +#include "rodeo/log_t.h" + +void +rodeo_log( + rodeo_logLevel_t loglevel, + const char *format, + ... +); diff --git a/include/rodeo/log_t.h b/include/rodeo/log_t.h new file mode 100644 index 0000000..844601a --- /dev/null +++ b/include/rodeo/log_t.h @@ -0,0 +1,40 @@ +#pragma once + +// -- external -- +#include "stc/cstr.h" + +typedef +enum +{ + rodeo_logLevel_info, + rodeo_logLevel_warning, + rodeo_logLevel_error +} +rodeo_logLevel_t; + +typedef +void +(*rodeo_log_function)(cstr text); + +typedef +union +{ + struct { + float x; + float y; + }; + float array[2]; +} +rodeo_vector2_t; + +typedef +union +{ + struct { + float x; + float y; + float z; + }; + float array[3]; +} +rodeo_vector3_t; diff --git a/include/rodeo_types.h b/include/rodeo_types.h index 4ed7767..bc92fb4 100644 --- a/include/rodeo_types.h +++ b/include/rodeo_types.h @@ -1,9 +1,9 @@ #pragma once -// external +// -- external -- #include "stc/cstr.h" -// system +// -- system -- #include #include #include @@ -89,40 +89,3 @@ typedef struct rodeo_frameBuffer_2d_t; */ -/// --- Log --- - -typedef -enum -{ - rodeo_logLevel_info, - rodeo_logLevel_warning, - rodeo_logLevel_error -} -rodeo_logLevel_t; - -typedef -void -(*rodeo_log_function)(cstr text); - -typedef -union -{ - struct { - float x; - float y; - }; - float array[2]; -} -rodeo_vector2_t; - -typedef -union -{ - struct { - float x; - float y; - float z; - }; - float array[3]; -} -rodeo_vector3_t; diff --git a/src/input/rodeo_input.c b/src/input/rodeo_input.c index 0137e69..e8c736b 100644 --- a/src/input/rodeo_input.c +++ b/src/input/rodeo_input.c @@ -1,9 +1,9 @@ // -- internal -- // public -#include "rodeo/input_t.h" #include "rodeo/input.h" #include "irodeo_input.h" +#include "rodeo/log.h" // -- external -- #include "SDL2/SDL.h" @@ -142,12 +142,18 @@ rodeo_input_scene_register_callback( break; case rodeo_input_binary_Invalid: - // TODO make it a log + rodeo_log( + rodeo_logLevel_error, + "Failed to register invalid binary input type" + ); break; } break; case rodeo_input_type_Invalid: - // TODO make it log + rodeo_log( + rodeo_logLevel_error, + "Failed to register invalid input type" + ); break; } } diff --git a/src/log/irodeo_log.h b/src/log/irodeo_log.h new file mode 100644 index 0000000..2eb3341 --- /dev/null +++ b/src/log/irodeo_log.h @@ -0,0 +1,12 @@ + +// -- internal -- +// public +#include "rodeo/log.h" + +typedef +struct +{ + rodeo_log_function logging_function; +} +irodeo_log_state_t; + diff --git a/src/log/rodeo_log.c b/src/log/rodeo_log.c new file mode 100644 index 0000000..bc2c4f0 --- /dev/null +++ b/src/log/rodeo_log.c @@ -0,0 +1,73 @@ + +// -- internal -- +// public +#include "rodeo/log.h" +#include "rodeo/common.h" +// private +#include "log/irodeo_log.h" + +static irodeo_log_state_t istate = {0}; + +void +rodeo_log( + rodeo_logLevel_t loglevel, + const char *format, + ... +) +{ + cstr formatted; + mrodeo_vargs_do(format) + { + formatted = cstr_from_vfmt(format, vargs); + } + + switch(loglevel) + { + case rodeo_logLevel_info: + cstr_insert( + &formatted, + 0, + "[INFO]: " + ); + break; + case rodeo_logLevel_warning: + cstr_insert( + &formatted, + 0, + "\033[33m[WARN]:\033[0m " + ); + break; + case rodeo_logLevel_error: + cstr_insert( + &formatted, + 0, + "\033[31;1m[ERROR]:\033[0m " + ); + break; + } + cstr_append( + &formatted, + "\n" + ); + + if(istate.logging_function == NULL) + { + printf("%s", cstr_str(&formatted)); + } + else + { + istate.logging_function(formatted); + } +} + +void +rodeo_log_function_set(rodeo_log_function rodeo_log_func) +{ + istate.logging_function = rodeo_log_func; +} + +rodeo_log_function +rodeo_log_function_get(void) +{ + return istate.logging_function; +} diff --git a/src/rodeo_log.c b/src/rodeo_log.c deleted file mode 100644 index 625b563..0000000 --- a/src/rodeo_log.c +++ /dev/null @@ -1,68 +0,0 @@ - -// public internal -#include "rodeo_types.h" -#include "rodeo.h" - -// external -#include "SDL2/SDL.h" - -static rodeo_log_function logging_function = NULL; - -void -rodeo_log( - rodeo_logLevel_t loglevel, - const char *format, - ... -) -{ - cstr formatted; - mrodeo_vargs_do(format) - { - formatted = cstr_from_vfmt(format, vargs); - } - - switch(loglevel) - { - case rodeo_logLevel_info: - cstr_insert( - &formatted, - 0, - "[INFO]: " - ); - break; - case rodeo_logLevel_warning: - cstr_insert( - &formatted, - 0, - "\033[33m[WARN]:\033[0m " - ); - break; - case rodeo_logLevel_error: - cstr_insert( - &formatted, - 0, - "\033[31;1m[ERROR]:\033[0m " - ); - break; - } - cstr_append( - &formatted, - "\n" - ); - - if(logging_function == NULL) - { - printf("%s", cstr_str(&formatted)); - } - else - { - logging_function(formatted); - } -} - -void -rodeo_log_function_set(rodeo_log_function rodeo_log_func) -{ - logging_function = rodeo_log_func; -} - -- cgit v1.2.3