summaryrefslogtreecommitdiff
path: root/archive/src/core/core.h
diff options
context:
space:
mode:
Diffstat (limited to 'archive/src/core/core.h')
-rw-r--r--archive/src/core/core.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/archive/src/core/core.h b/archive/src/core/core.h
new file mode 100644
index 0000000..14ba65d
--- /dev/null
+++ b/archive/src/core/core.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "input.h"
+#include "mem.h"
+#include "render_types.h"
+#include "screenspace.h"
+#include "terrain.h"
+#include "text.h"
+
+TYPED_POOL(Model, Model)
+#define MODEL_GET(h) (Model_pool_get(&g_core.models, h))
+Model* Model_Get(ModelHandle h);
+
+typedef struct GLFWwindow GLFWwindow;
+
+typedef struct Core {
+ const char* app_name;
+ GLFWwindow* window;
+ Renderer* renderer;
+ Input_State input;
+ // Model_pool models;
+} Core;
+extern Core g_core;
+
+struct Renderer;
+
+Core* get_global_core();
+
+/**
+ @brief Throws error if the core cannot be instantiated
+ @param [in] optional_window - Leave NULL if you want Celeritas to instantiate its own window with
+ GLFW, if you want to provide the glfw window then pass it in here.
+*/
+void Core_Bringup(const char* window_name, GLFWwindow* optional_window);
+void Core_Shutdown();
+bool ShouldExit();
+
+GLFWwindow* Core_GetGlfwWindowPtr(Core* core);
+struct Renderer* Core_GetRenderer(Core* core);
+
+void Frame_Begin();
+void Frame_Draw();
+void Frame_End();