#include #include #include #include int main() { init_gl(4, 6); GLFWwindow* window = create_window(800, 600, "gearlib"); enable_debugging(); 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 }; uint32_t vbo; glCreateBuffers(1, &vbo); glNamedBufferStorage(vbo, sizeof(vertices), vertices, GL_DYNAMIC_STORAGE_BIT); 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); uint32_t program = load_shader_program( compile_shader("shader.vert", GL_VERTEX_SHADER), compile_shader("shader.frag", GL_FRAGMENT_SHADER), 0); while (!glfwWindowShouldClose(window)) { process_input(window); glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glUseProgram(program); glBindVertexArray(vao); glDrawArrays(GL_TRIANGLES, 0, 3); glfwSwapBuffers(window); glfwPollEvents(); } glfwTerminate(); return 0; }