summaryrefslogtreecommitdiff
path: root/debug
diff options
context:
space:
mode:
Diffstat (limited to 'debug')
-rwxr-xr-xdebug/build.sh7
-rwxr-xr-xdebug/debugbin0 -> 396728 bytes
-rw-r--r--debug/debug.c62
-rw-r--r--debug/shader.frag12
-rw-r--r--debug/shader.vert13
5 files changed, 94 insertions, 0 deletions
diff --git a/debug/build.sh b/debug/build.sh
new file mode 100755
index 0000000..40da223
--- /dev/null
+++ b/debug/build.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+include='-I../libs -I../libs/pwyazh'
+cflags="-g -Wall -Wextra -Wno-unused-parameter $include"
+libs='-lm -lGL -lGLEW -lglfw'
+target='debug'
+set -x
+gcc -o $target $cflags $target.c $libs
diff --git a/debug/debug b/debug/debug
new file mode 100755
index 0000000..d516f24
--- /dev/null
+++ b/debug/debug
Binary files differ
diff --git a/debug/debug.c b/debug/debug.c
new file mode 100644
index 0000000..8cddc16
--- /dev/null
+++ b/debug/debug.c
@@ -0,0 +1,62 @@
+#include <GL/glew.h>
+#include <GLFW/glfw3.h>
+
+#include "common.h"
+
+int main(void)
+{
+ state_t state = init_state(1600, 800, 1);
+ init_glfw(&state);
+ init_gl();
+
+ F32 vertices[] = {
+ -0.5f, -0.5f,
+ 0.0f, 0.5f,
+ 0.5f, -0.5f
+ };
+ U32 indices[] = {
+ 0, 1, 2
+ };
+ U32 vao = 0, vbo = 0, ebo = 0;
+ glGenVertexArrays(1, &vao);
+ glGenBuffers(1, &ebo);
+ glGenBuffers(1, &vbo);
+ glBindVertexArray(vao);
+ glBindBuffer(GL_ARRAY_BUFFER, vbo);
+ glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
+ glEnableVertexAttribArray(0);
+ glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(F32), 0);
+ glBindVertexArray(0);
+
+ add_shader("shader.vert", "shader.frag", 0);
+ U32 shader = find_shader("shader");
+ glUseProgram(shader);
+
+ glClearColor(0.16f, 0.16f, 0.16f, 1.0f);
+ glBindVertexArray(vao);
+
+ V2F offset = v2f(0.0f, 0.0f);
+ F32 time = 0.0f;
+
+ while (!glfwWindowShouldClose(state.window)) {
+ handle_glfw_events(state.window, &state.input);
+ F32 dt = lock_framerate(60);
+
+ /* update */
+ offset.x += 0.5f * dt;
+
+ /* render */
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glUniform2fv(glGetUniformLocation(shader, "offset"), 1, (F32 *)&offset);
+ glUniform1f(glGetUniformLocation(shader, "time"), time);
+ glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, 0);
+
+ glfwSwapBuffers(state.window);
+
+ time += dt;
+ }
+
+ return 0;
+}
diff --git a/debug/shader.frag b/debug/shader.frag
new file mode 100644
index 0000000..fd25c5f
--- /dev/null
+++ b/debug/shader.frag
@@ -0,0 +1,12 @@
+#version 330 core
+
+in vec2 pos;
+
+out vec4 frag_color;
+
+uniform float time;
+
+void main()
+{
+ frag_color = vec4(sin(2.0 * time) * pos.x + 0.5, cos(2.0 * time) * pos.y + 0.5, 0.5, 1.0);
+}
diff --git a/debug/shader.vert b/debug/shader.vert
new file mode 100644
index 0000000..e37e212
--- /dev/null
+++ b/debug/shader.vert
@@ -0,0 +1,13 @@
+#version 330 core
+
+layout(location = 0) in vec2 apos;
+
+out vec2 pos;
+
+uniform vec2 offset;
+
+void main()
+{
+ pos = apos;
+ gl_Position = vec4(apos + offset, 0.0, 1.0);
+}