У меня есть главное окно, в котором верхний 10% экрана имеет перенасыщенный пользовательский интерфейс, а в нижних 90% экрана - мир openGL. Каждый раз, когда мой курсор начинает зависать над частью GLUT, рендеринг openGL останавливается. Он возобновляется только тогда, когда курсор выходит из области GLUT.
Это потому, что, пока курсор находится над областью GLUT, предположительно glutIdleFunc никогда не вызывается, потому что glut не "простаивает", поэтому материал openGL не отображается.
Я уже пытался создать новый несвязанный поток, который просто вызывает код дисплея и / или glutPostRedisplay, но я получил частоту кадров в 20 кадров в секунду, в отличие от 100 + кадров в секунду обычным способом. Я не знаю точно, почему. (В этом тесте я также отключил glutIdleFunc, поэтому нет функции ожидания, просто отдельный поток, вызывающий отображение)
Способы обойти это (кроме «прекратить использовать перенасыщение», которое я мог бы сделать в будущем, но сейчас я бы хотел временное решение)?