use interrupts to handle button presses
OpenGL version - much faster!