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;
|
|
|
|
}
|
|
|
|
|