diff --git a/src/main.c b/src/main.c index 19aa04e..25285d0 100644 --- a/src/main.c +++ b/src/main.c @@ -1,10 +1,25 @@ +#include "GLFW/glfw3.h" #include "error.h" +#include "window/render.h" + +struct renderdat rdat; // contains the relevant data needed for rendering, contains rubbish data until init was + +static inline int init(void) { + glfwInitHint(GLFW_JOYSTICK_HAT_BUTTONS, GLFW_FALSE); // disable joystick buttons + + if (!glfwInit()) return 1; // initialize GLFW + if (render_init(&rdat)) return 1; // initialize the rendering and create a window + + return 0; +} + +static inline void quit(void) { + glfwTerminate(); +} int main(int argc, char** argv) { (void)argc, (void)argv; - debug("%s", "owo"); - info("%s", "owo"); - warn("%s", "owo"); - error("%s", "owo"); - fatal("%s", "owo"); + if (init()) fatal("failed to initialize!"); + while (1); + quit(); } diff --git a/src/window/render.c b/src/window/render.c new file mode 100644 index 0000000..30fc865 --- /dev/null +++ b/src/window/render.c @@ -0,0 +1,21 @@ +#include "render.h" + +#include +#include + +// macros for ease of access +#define WIN_NAME "MCA Selector Lite" +#define WIN_DEFAULT_WIDTH 640 +#define WIN_DEFAULT_HEIGHT 480 + +int render_init(struct renderdat* restrict rdat) { + GLFWwindow* const win = glfwCreateWindow(WIN_DEFAULT_WIDTH, WIN_DEFAULT_HEIGHT, WIN_NAME, NULL, NULL); + if (win == NULL) return 1; + rdat->win = win; + + return 0; +} + +void render_free(struct renderdat* restrict rdat) { + glfwDestroyWindow(rdat->win); +} diff --git a/src/window/render.h b/src/window/render.h new file mode 100644 index 0000000..c47a41e --- /dev/null +++ b/src/window/render.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +struct renderdat { + GLFWwindow* win; +}; + +int render_init(struct renderdat* restrict rdat); +void render_free(struct renderdat* restrict rdat);