From e4b01079f0c432485301e736cad09a83dacefca7 Mon Sep 17 00:00:00 2001 From: Dimitri Lozeve Date: Tue, 23 Feb 2021 20:06:05 +0100 Subject: [PATCH] Better handle errors --- main.c | 16 +++++++++++----- renderer.c | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index 27b3dbe..d969066 100644 --- a/main.c +++ b/main.c @@ -3,8 +3,8 @@ #include #include "log.h" -#include "shaders.h" #include "renderer.h" +#include "shaders.h" #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600 @@ -13,15 +13,21 @@ int main() { GLFWwindow *window = initialize_window(WINDOW_WIDTH, WINDOW_HEIGHT); + if (window == NULL) { + glfwTerminate(); + return EXIT_FAILURE; + } unsigned int VAO = initialize_vertices(); unsigned int shader_program = glCreateProgram(); - int result = compile_shaders(&shader_program, FRAGMENT_SHADER_FILE); - if (!shader_program || result) { - log_error("Could not compile shaders"); + if (!shader_program) { + log_error("Could not create shader program"); + glfwDestroyWindow(window); + glfwTerminate(); return EXIT_FAILURE; } + compile_shaders(&shader_program, FRAGMENT_SHADER_FILE); /* Drawing loop */ size_t frame = 0; @@ -65,7 +71,7 @@ int main() { frame++; } + glfwDestroyWindow(window); glfwTerminate(); return EXIT_SUCCESS; } - diff --git a/renderer.c b/renderer.c index ce1185a..9cdda45 100644 --- a/renderer.c +++ b/renderer.c @@ -12,7 +12,7 @@ * * @param width The width of the window to create. * @param height The height of the window to create. - * @return A pointer to the newly created GLFW window. + * @return A pointer to the newly created GLFW window, or `NULL` on error. */ GLFWwindow *initialize_window(int width, int height) { /* Initialize GLFW */