#include <gearlib.h>

int main() {
    Window window = create_window(800, 600, "textures");
    glfwSwapInterval(0); // fps unlock
    setup_textures();

    Camera* camera = create_camera(vec2(0.0f, 0.0f));
    UniformBuffer* camera_buffer = create_uniform_buffer(sizeof(CameraMatrices));

    Texture cat = load_texture("assets/cat.png"); 

    while (!glfwWindowShouldClose(window)) {
        process_input(window);
        update_camera(camera, window);
        set_uniform_data(camera_buffer, camera->m);

        glClearColor(vec4_spread(BLACK));
        glClear(GL_COLOR_BUFFER_BIT);

        draw_texture(cat, vec2(250.0f, 250.0f), vec2(500.0f, 500.0f), WHITE);

        flush();
    
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();
    return 0;
}
