summaryrefslogtreecommitdiffhomepage
path: root/src/rodeo.c
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-03-08 05:16:04 -0500
committerrealtradam <[email protected]>2023-03-08 05:16:04 -0500
commit3f36ef9b24e2ce978461291d84e293776c41eb66 (patch)
treebe531c569f3a1cedebd66ec7b2dd389ad94d4b37 /src/rodeo.c
parent4b410af18ed7e76b42be1d2ab2ebdfe8e5bf97e8 (diff)
downloadRodeoKit-3f36ef9b24e2ce978461291d84e293776c41eb66.tar.gz
RodeoKit-3f36ef9b24e2ce978461291d84e293776c41eb66.zip
added logging system and improved string integration
Diffstat (limited to 'src/rodeo.c')
-rw-r--r--src/rodeo.c101
1 files changed, 70 insertions, 31 deletions
diff --git a/src/rodeo.c b/src/rodeo.c
index b513bdf..37ba49c 100644
--- a/src/rodeo.c
+++ b/src/rodeo.c
@@ -32,15 +32,28 @@ rodeo_window_init(
state.screen_height = screen_height;
state.screen_width = screen_width;
- printf("SDL_Init...\n");
+ rodeo_log(
+ rodeo_loglevel_info,
+ "Initializing SDL..."
+ );
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
- printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
+ rodeo_log(
+ rodeo_loglevel_error,
+ "Failed to initialize SDL. SDL_Error: %s",
+ SDL_GetError()
+ );
exit(EXIT_FAILURE);
}
- printf("done\n");
+ rodeo_log(
+ rodeo_loglevel_info,
+ "Success initializing SDL"
+ );
- printf("SDL_CreateWindow...\n");
+ rodeo_log(
+ rodeo_loglevel_info,
+ "Initializing SDL window..."
+ );
state.window = SDL_CreateWindow(
title,
SDL_WINDOWPOS_UNDEFINED,
@@ -49,15 +62,21 @@ rodeo_window_init(
screen_height,
SDL_WINDOW_SHOWN
);
- printf("done\n");
-
if(state.window == NULL)
{
- printf("Window could not be created! SDL_Error %s\n", SDL_GetError());
+ rodeo_log(
+ rodeo_loglevel_error,
+ "Failed creating SDL window. SDL_Error %s",
+ SDL_GetError()
+ );
exit(EXIT_FAILURE);
}
+
#if !__EMSCRIPTEN__
- printf("SDL_VERSION...\n");
+ rodeo_log(
+ rodeo_loglevel_info,
+ "SDL setting up driver specific information..."
+ );
SDL_VERSION(&state.wmi.version);
if(
!SDL_GetWindowWMInfo(
@@ -66,10 +85,16 @@ rodeo_window_init(
)
)
{
- printf("SDL_Error %s\n", SDL_GetError());
+ rodeo_log(
+ rodeo_loglevel_error,
+ "SDL failed to get driver specific information. SDL Error: %s", SDL_GetError()
+ );
exit(EXIT_FAILURE);
}
- printf("done\n");
+ rodeo_log(
+ rodeo_loglevel_info,
+ "Success getting driver specific information"
+ );
bgfx_render_frame(-1);
#endif
@@ -119,36 +144,42 @@ rodeo_window_init(
// load shaders
//const char* shader_path = "???";
- rodeo_string_p shader_path = rodeo_string_create("???");
+ rodeo_string_t shader_path = rodeo_string_create("???");
switch(bgfx_get_renderer_type()) {
case BGFX_RENDERER_TYPE_NOOP:
- printf("Noop renderer error");
+ rodeo_log(
+ rodeo_loglevel_error,
+ "BGFX failed to get determine an appropriate renderer."
+ );
exit(EXIT_FAILURE);
case BGFX_RENDERER_TYPE_OPENGLES:
rodeo_string_set(
- shader_path,
+ &shader_path,
"shaders/100_es/"
);
break;
case BGFX_RENDERER_TYPE_VULKAN:
rodeo_string_set(
- shader_path,
+ &shader_path,
"shaders/spirv/"
);
break;
default:
- printf("No shaders for selected renderer. Exiting...");
+ rodeo_log(
+ rodeo_loglevel_error,
+ "No shaders compiled for BGFX renderer chosen."
+ );
exit(EXIT_FAILURE);
}
- rodeo_string_p vertex_shader_path = rodeo_string_create("simple.vertex.bin");
- rodeo_string_p fragment_shader_path = rodeo_string_create("simple.fragment.bin");
+ rodeo_string_t vertex_shader_path = rodeo_string_create("simple.vertex.bin");
+ rodeo_string_t fragment_shader_path = rodeo_string_create("simple.fragment.bin");
rodeo_string_prepend(
- vertex_shader_path,
+ &vertex_shader_path,
shader_path
);
rodeo_string_prepend(
- fragment_shader_path,
+ &fragment_shader_path,
shader_path
);
@@ -221,15 +252,15 @@ rodeo_frame_end(void)
void
rodeo_mainloop_run(
- rodeo_mainloop_func main_loop_function
+ rodeo_mainloop_function mainloop_func
)
{
#if __EMSCRIPTEN__
- emscripten_set_main_loop(main_loop_function, 0, 1);
+ emscripten_set_main_loop(main_loop_func, 0, 1);
#else
while(!rodeo_window_check_quit())
{
- main_loop_function();
+ mainloop_func();
}
#endif
}
@@ -249,13 +280,13 @@ rodeo_set_quit(bool quit)
void
rodeo_debug_text_draw(u_int16_t x, u_int16_t y, const char *format, ...)
{
- va_list argList;
- va_start(argList, format);
- bgfx_dbg_text_vprintf(x, y, 0x65, format, argList);
- va_end(argList);
+ mrodeo_vargs_do(format)
+ {
+ bgfx_dbg_text_vprintf(x, y, 0x65, format, vargs);
+ }
}
-rodeo_string_p
+rodeo_string_t
rodeo_renderer_name_get(void)
{
return rodeo_string_create(bgfx_get_renderer_name(bgfx_get_renderer_type()));
@@ -359,16 +390,20 @@ rodeo_rectangle_draw(
}
bgfx_shader_handle_t
-irodeo_shader_load(const rodeo_string_p path)
+irodeo_shader_load(const rodeo_string_t path)
{
- const char* path_cstr = rodeo_string_to_constcstr(path);
+ const char* path_cstr = rodeo_string_to_constcstr(&path);
bgfx_shader_handle_t invalid = BGFX_INVALID_HANDLE;
FILE *file = fopen(path_cstr, "rb");
if(!file)
{
- printf("Error: shader file \"%s\" not found\n", path_cstr);
+ rodeo_log(
+ rodeo_loglevel_error,
+ "Shader file \"%s\" not found",
+ path_cstr
+ );
return invalid;
}
@@ -382,7 +417,11 @@ irodeo_shader_load(const rodeo_string_p path)
fclose(file);
bgfx_shader_handle_t shader = bgfx_create_shader(mem);
- printf("Shader loaded as idx: %d\n", shader.idx);
+ rodeo_log(
+ rodeo_loglevel_info,
+ "Shader loaded with idx: %hu",
+ (uint8_t)shader.idx
+ );
return shader;
}