summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--include/compile_flags.txt11
-rw-r--r--include/rodeo.h30
-rw-r--r--include/rodeo/common.h20
-rw-r--r--include/rodeo/log.h11
-rw-r--r--include/rodeo/log_t.h40
-rw-r--r--include/rodeo_types.h41
-rw-r--r--src/input/rodeo_input.c12
-rw-r--r--src/log/irodeo_log.h12
-rw-r--r--src/log/rodeo_log.c (renamed from src/rodeo_log.c)25
10 files changed, 124 insertions, 80 deletions
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 <string.h>
#include <limits.h>
-#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 <stdbool.h>
#include <stdint.h>
#include <stddef.h>
@@ -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/rodeo_log.c b/src/log/rodeo_log.c
index 625b563..bc2c4f0 100644
--- a/src/rodeo_log.c
+++ b/src/log/rodeo_log.c
@@ -1,12 +1,12 @@
-// public internal
-#include "rodeo_types.h"
-#include "rodeo.h"
+// -- internal --
+// public
+#include "rodeo/log.h"
+#include "rodeo/common.h"
+// private
+#include "log/irodeo_log.h"
-// external
-#include "SDL2/SDL.h"
-
-static rodeo_log_function logging_function = NULL;
+static irodeo_log_state_t istate = {0};
void
rodeo_log(
@@ -50,19 +50,24 @@ rodeo_log(
"\n"
);
- if(logging_function == NULL)
+ if(istate.logging_function == NULL)
{
printf("%s", cstr_str(&formatted));
}
else
{
- logging_function(formatted);
+ istate.logging_function(formatted);
}
}
void
rodeo_log_function_set(rodeo_log_function rodeo_log_func)
{
- logging_function = rodeo_log_func;
+ istate.logging_function = rodeo_log_func;
}
+rodeo_log_function
+rodeo_log_function_get(void)
+{
+ return istate.logging_function;
+}