diff options
author | pryazha <pryadeiniv@mail.ru> | 2025-08-02 13:21:42 +0500 |
---|---|---|
committer | pryazha <pryadeiniv@mail.ru> | 2025-08-02 13:21:42 +0500 |
commit | 2e64d3c5d6eb1eb04168d39d5eb5f2d89af1a8b0 (patch) | |
tree | 85c8a586a1343469cdcdab5dccad023053571ecd /debug/debug.c | |
parent | 33d5f67044d104d69cb2d11e78e6a79bc20d4c4e (diff) |
Diffstat (limited to 'debug/debug.c')
-rw-r--r-- | debug/debug.c | 62 |
1 files changed, 62 insertions, 0 deletions
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; +} |