diff options
author | kdx <kikoodx@paranoici.org> | 2023-05-07 23:59:26 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-05-07 23:59:26 +0200 |
commit | 6783df4a9c76d8be1fc090d94e23ec1a29c08a67 (patch) | |
tree | 76163504fea8255c734bf3a33a17cade92b64e5d | |
parent | 884f987c7d671634329c2770b6c28bdf5b1fd9b4 (diff) | |
download | learnopengl-6783df4a9c76d8be1fc090d94e23ec1a29c08a67.tar.gz |
Hello Window
-rw-r--r-- | Tupfile | 6 | ||||
-rwxr-xr-x | run.sh | 2 | ||||
-rw-r--r-- | src/main.c | 23 |
3 files changed, 27 insertions, 4 deletions
@@ -1,8 +1,8 @@ CC = gcc LD = $(CC) -fuse-ld=mold -CFLAGS = -std=c2x -Wall -Wextra -Iglad -LDFLAGS = -lGL +CFLAGS = -std=c99 -Wall -Wextra -Iglad +LDFLAGS = -lGL -lglfw .gitignore : foreach src/*.c glad/*.c |> $(CC) $(CFLAGS) -c -o %o %f |> build/%B.o -: build/*.o |> $(LD) -o %o %f $(LDFLAGS) |> gl +: build/*.o |> $(LD) -o %o %f $(LDFLAGS) |> build/gl @@ -0,0 +1,2 @@ +#!/bin/sh +tup && build/gl @@ -1,6 +1,9 @@ #include <glad/glad.h> #include <GLFW/glfw3.h> #include <stdio.h> +#include <stdlib.h> + +static void framebuffer_size_callback(GLFWwindow *window, int w, int h); int main([[maybe_unused]] int argc, [[maybe_unused]] char **argv) @@ -9,6 +12,11 @@ main([[maybe_unused]] int argc, [[maybe_unused]] char **argv) fprintf(stderr, "glfwInit failed\n"); return 1; } + if (atexit(glfwTerminate)) { + perror("main:atexit"); + glfwTerminate(); + return 1; + } glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); @@ -20,11 +28,24 @@ main([[maybe_unused]] int argc, [[maybe_unused]] char **argv) } glfwMakeContextCurrent(window); - if (gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { + if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { fprintf(stderr, "gladLoadGLLoader failed\n"); return 1; } glViewport(0, 0, 800, 600); + glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); + + while (!glfwWindowShouldClose(window)) { + glfwSwapBuffers(window); + glfwPollEvents(); + } + return 0; } + +static void +framebuffer_size_callback([[maybe_unused]] GLFWwindow *window, int w, int h) +{ + glViewport(0, 0, w, h); +} |