Избегайте ожидания SwapBuffers

Я обнаружил, что SwapBuffers в OpenGL будет занят-ждать, пока графическая карта не завершит свой рендеринг или если это ' Ожидание V-Sync.

Это проблема для меня, потому что я не хочу тратить 100% ядра ЦП, просто ожидая завершения работы карты. Я не пишу игру, поэтому я не могу использовать циклы ЦП для чего-то более продуктивного, я просто хочу передать их какому-нибудь другому процессу в операционной системе.

Я нашел функции обратного вызова, такие как glutTimerFunc и glutIdleFunc, который может сработать для меня, но я не хочу использовать перенасыщение. Тем не менее, перенасыщение должно каким-то образом использовать для этого обычные функции gl, верно?

Есть ли какая-нибудь функция, такая как "glReadyToSwap" или подобная? В этом случае я мог бы проверять это каждую миллисекунду или около того и определять, следует ли мне подождать еще немного или выполнить замену. Я мог бы также представить, что, возможно, пропущу SwapBuffers и напишу свою аналогичную функцию, которая не t занято-подождите, если кто-нибудь может указать мне верное направление.

22
задан DaedalusAlpha 29 April 2011 в 08:39
поделиться