gearlib/src/main.c

51 lines
1.3 KiB
C
Raw Normal View History

2024-04-29 22:41:13 +12:00
#include <init.h>
#include <debugging.h>
#include <shaders.h>
#include <events.h>
2024-04-29 19:32:59 +12:00
2024-04-29 22:41:13 +12:00
int main() {
init_gl(4, 6);
GLFWwindow* window = create_window(800, 600, "gearlib");
enable_debugging();
2024-04-29 19:32:59 +12:00
2024-04-29 22:41:13 +12:00
float vertices[] = {
-0.5f, -0.5f, 0.0f, // bottom left
0.5f, -0.5f, 0.0f, // bottom right
0.0f, 0.5f, 0.0f // top
};
2024-04-29 19:32:59 +12:00
2024-04-29 22:41:13 +12:00
uint32_t vbo;
glCreateBuffers(1, &vbo);
glNamedBufferStorage(vbo, sizeof(vertices), vertices, GL_DYNAMIC_STORAGE_BIT);
2024-04-29 19:32:59 +12:00
2024-04-29 22:41:13 +12:00
uint32_t vao;
glCreateVertexArrays(1, &vao);
glVertexArrayVertexBuffer(vao, 0, vbo, 0, 3 * sizeof(float));
glEnableVertexArrayAttrib(vao, 0);
glVertexArrayAttribFormat(vao, 0, 3, GL_FLOAT, GL_FALSE, 0);
glVertexArrayAttribBinding(vao, 0, 0);
2024-04-29 19:32:59 +12:00
2024-04-29 22:41:13 +12:00
uint32_t program = load_shader_program(
compile_shader("shader.vert", GL_VERTEX_SHADER),
compile_shader("shader.frag", GL_FRAGMENT_SHADER), 0);
2024-04-29 19:32:59 +12:00
while (!glfwWindowShouldClose(window)) {
process_input(window);
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
2024-04-29 22:41:13 +12:00
glUseProgram(program);
glBindVertexArray(vao);
glDrawArrays(GL_TRIANGLES, 0, 3);
2024-04-29 19:32:59 +12:00
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}