(bind-func gl_draw_particles
(lambda ()
(glClear GL_COLOR_BUFFER_BIT)
;; move particles, update VBO
(VBO_update_data particles_vbo)
;; draw the world
(let ((texloc (glGetUniformLocation sp "particles_tex")))
(glUseProgram sp)
(glUniform1i texloc 0))
(VAO_bind_and_draw_arrays particles_vao GL_POINTS 0 (convert num_particles))
(glfwSwapBuffers window)
void))