В игре наша сборная в Интернете - это программирование, мы предполагаем, что каждый из нашей аудитории будет иметь WAY за полночь в игре.Идеальная реализация V-sync для легковесной игры OpenGL: нужен один лакомый кусочек информации
Итак, чтобы сохранить видеопамять и, надеюсь, дать немного больше времени на графическую карту, использование V-синхронизации без двойной буферизации было бы нашим лучшим вариантом. Итак, в OpenGL нам нужно знать, как это сделать.
С моей точки зрения, V-sync - это когда графическая карта приостановлена, когда она была сделана, показывая один кадр, пока этот кадр не будет отправлен на устройство отображения. Двойная буферизация не приостанавливает операции рендеринга (или, может быть, делает это, или, может быть, специфична для реализации, не уверен), потому что вместо этого обращается к второму буфере перед копированием в фреймбуфер, так что монитор либо получает полный кадр, либо нет новый кадр (в частности, последнее сохраненное изображение в фреймбуфере). Ну, нам не нужна эта функция, пока графическая карта просто записывает в фреймбуфер ТОЛЬКО, когда это чертовски нужно.
Это довольно медленная онлайн-игра (но это ОЧЕНЬ творческий^_ ^). Очень мало действий в реальном времени. Поэтому чрезвычайно точная вводная информация пользователя не требуется; он может быть захвачен из ОС в виде отдельного блока в любое время перед визуализацией кадра.
Итак, для того, чтобы делать ТОЧНО это, мне нужно иметь возможность получить сообщение «Рамка закончила отправлять на монитор» из OpenGL. Является ли это возможным? Если нет, то какая из лучших альтернатив?
Игра в настоящее время запрограммирована для Windows, но в течение нескольких месяцев должна быть выполнена работа для Linux.
Видеокарты предназначены для обеспечения достаточной памяти для двойной буферизации. Все игры там используют его. Кроме того, слои драйвера не дают вам прямого контроля над «при отправке кадра на монитор». В этом отношении готовы ли вы обрабатывать случаи с несколькими мониторами? вы готовы работать только в полноэкранном режиме? – Bahbar