move glutPostRedisplay() to input thread