summaryrefslogtreecommitdiff
path: root/src/core/core.c
diff options
context:
space:
mode:
authoromnisci3nce <omniscient.oce@gmail.com>2024-07-12 12:47:07 +1000
committeromnisci3nce <omniscient.oce@gmail.com>2024-07-12 12:47:07 +1000
commitf74cf52946f4e569a26bc81105537b40be95c2c7 (patch)
tree1d000367350d0e28eb7cfbc800286a0ed30a4e6c /src/core/core.c
parentfedba7ff68924ff50022405fc9103a5acf7013fe (diff)
wip: big makeover
Diffstat (limited to 'src/core/core.c')
-rw-r--r--src/core/core.c56
1 files changed, 24 insertions, 32 deletions
diff --git a/src/core/core.c b/src/core/core.c
index a022366..602d35c 100644
--- a/src/core/core.c
+++ b/src/core/core.c
@@ -11,37 +11,35 @@
#include "render_types.h"
#include "scene.h"
+// These are only the initial window dimensions
#define SCR_WIDTH 1000
#define SCR_HEIGHT 1000
Core g_core; /** @brief global `Core` that other files can use */
-
struct Core {
const char* app_name;
- Renderer renderer;
- input_state input;
- model_pool models;
+ GLFWwindow* window;
+ Renderer* renderer;
+ Input_State input;
};
/** @brief Gets the global `Core` singleton */
inline Core* GetCore() { return &g_core; }
-void core_bringup() {
+void Core_Bringup() {
INFO("Initiate Core bringup");
RendererConfig conf = { .window_name = { "Celeritas Engine Core" },
- .scr_width = SCR_WIDTH,
- .scr_height = SCR_HEIGHT,
- .clear_colour = (vec3){ .08, .08, .1 } };
-
- g_core.renderer.backend_context = NULL;
+ .scr_width = SCR_WIDTH,
+ .scr_height = SCR_HEIGHT,
+ .clear_colour = (Vec3){ .08, .08, .1 } };
// initialise all subsystems
- if (!Renderer_Init(conf, &g_core.renderer)) {
+ if (!Renderer_Init(conf, g_core.renderer)) {
// FATAL("Failed to start renderer");
ERROR_EXIT("Failed to start renderer\n");
}
- if (!Input_Init(&g_core.input, g_core.renderer.window)) {
+ if (!Input_Init(&g_core.input, g_core.window)) {
// the input system needs the glfw window which is created by the renderer
// hence the order here is important
ERROR_EXIT("Failed to start input system\n");
@@ -50,34 +48,28 @@ void core_bringup() {
size_t model_data_max = 1024 * 1024 * 1024;
arena model_arena = arena_create(malloc(model_data_max), model_data_max);
- model_pool model_pool = model_pool_create(&model_arena, 256, sizeof(model));
- g_core.models = model_pool;
- INFO("Created model pool allocator");
+ // model_pool model_pool = model_pool_create(&model_arena, 256, sizeof(model));
+ // g_core.models = model_pool;
+ // INFO("Created model pool allocator");
- INFO("Creating default scene");
- scene_init(&g_core.default_scene);
+ // INFO("Creating default scene");
+ // scene_init(&g_core.default_scene);
}
#include <glfw3.h>
-/* bool should_window_close(core* core) { glfwWindowShouldClose(core->renderer.window); } */
-void core_input_update() { input_update(&g_core.input); }
-void core_frame_begin(core* core) { render_frame_begin(&core->renderer); }
-void core_frame_end(core* core) { render_frame_end(&core->renderer); }
-
-void core_shutdown() {
- // threadpool_destroy(&core->threadpool);
- input_system_shutdown(&g_core.input);
- renderer_shutdown(&g_core.renderer);
+void Core_Shutdown() {
+ Input_Shutdown(&g_core.input);
+ Renderer_Shutdown(g_core.renderer);
}
-bool should_exit() {
- return key_just_released(KEYCODE_ESCAPE) || glfwWindowShouldClose(g_core.renderer.window);
+bool ShouldExit() {
+ return key_just_released(KEYCODE_ESCAPE) || glfwWindowShouldClose(g_core.window);
}
-void frame_begin() {
+void Frame_Begin() {
glfwPollEvents();
- render_frame_begin(&g_core.renderer);
+ Render_FrameBegin(g_core.renderer);
}
-void frame_draw() {}
-void frame_end() { render_frame_end(&g_core.renderer); }
+void Frame_Draw() {}
+void Frame_End() { Render_FrameEnd(g_core.renderer); }