summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-05-07 23:59:26 +0200
committerkdx <kikoodx@paranoici.org>2023-05-07 23:59:26 +0200
commit6783df4a9c76d8be1fc090d94e23ec1a29c08a67 (patch)
tree76163504fea8255c734bf3a33a17cade92b64e5d
parent884f987c7d671634329c2770b6c28bdf5b1fd9b4 (diff)
downloadlearnopengl-6783df4a9c76d8be1fc090d94e23ec1a29c08a67.tar.gz
Hello Window
-rw-r--r--Tupfile6
-rwxr-xr-xrun.sh2
-rw-r--r--src/main.c23
3 files changed, 27 insertions, 4 deletions
diff --git a/Tupfile b/Tupfile
index d2dee1c..1fa5aa1 100644
--- a/Tupfile
+++ b/Tupfile
@@ -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
diff --git a/run.sh b/run.sh
new file mode 100755
index 0000000..5152e96
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+tup && build/gl
diff --git a/src/main.c b/src/main.c
index 93bdecf..bdb349c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);
+}