(bind-func gl_draw_loop
(lambda (time:i64 delta_t:double)
(glClear GL_COLOR_BUFFER_BIT)
(glUseProgram sp)
(glBindVertexArray vao)
(glDrawArrays GL_TRIANGLES 0 3)
(glfwPollEvents)
(glfwSwapBuffers window)
(let ((next_time (+ time (convert (* 44100. delta_t)))))
(callback next_time gl_draw_loop next_time delta_t))))